Archive for the ‘Web Architecture’ Category

Web Application Description Language

Tuesday, May 24th, 2005

Marc Hadley has developed a Web Application Description Language (WADL). It is similar in scope and implementation to WSDL, but is targeted to RESTful web applications and the HTTP verb set.

It’s very XML centric, but it does make an effort to handle non-XML responses.

I’d be curious to see if a response can have different MIME type representations. This can aid clients and servers with content negotiation.

Representation

Thursday, February 5th, 2004

XML.com: Web Architecture Review: Representation [Feb. 02, 2004]

Representations of resource states on the Web, as concretized by particular data formats, are meant to be consumed by agents, both human and machine, in a mutually beneficial way. In other words, for any representational system to work, its producers and consumers have to hold in common first and higher-order expectations about their own behavior and about the expectations and behavior of the others.

Web Resource Identification

Wednesday, January 14th, 2004

XML.com: Concluding, Unscientific Postscript: Web Resource Identification [Jan. 14, 2004]

In this column I will conclude that discussion by considering the issues of URI ambiguity, opacity, and fragment identifiers.

Indentification in Web Arch.

Wednesday, January 7th, 2004

XML.com: Reviewing Web Architecture: Identification [Jan. 07, 2004]

The first point the AWWW makes is what it calls a constraint, that is, that one identifies resources in the Web by providing a URI for the resource. The motivation here is that, in the absence of a URI, user agents are unable to do anything with (interaction — AWWW’s second principle) representations (AWWW’s third principle) of the state of a resource. The necessary, but not sufficient, condition of a user agent interacting with a resource by means of the Web is for that resource to have a URI. The user agent is able to retrieve a representation of the state of that resource by means of the scheme encoded in the URI — a detail which will concern us in the next two columns.

Architectural Building Blocks

Wednesday, January 7th, 2004

XML.com: Reviewing Web Architecture [Dec. 17, 2003]

As the AWWW puts it, the architecture of the web is based upon three concepts, each of which is related to the idea of a resource: identification of, interaction with, and representation of resources. Since, as we know from the REST position, the web is an information space within which agents have access to various representations of the state of various resources, it makes sense to orient the building blocks of the web’s architecture around the idea of a resource. These concepts correspond, of course, with particular technologies, like URIs (the means of resource identification), the HTTP protocol (the means of agent-resource interaction), and various representation languages, like HTML, XML, RDF, etc. (the means of resource representation).

Formal Description of Web Architecture

Thursday, November 6th, 2003

Index of /2001/tag/fdesc54

An attempt at a formal description of the web architecure.

Struts and WebArch

Thursday, August 7th, 2003

The Apache Struts Web Application Framework

At first I thought this post wouldn’t fit this blog’s theme, but then again, I realized it’s all about Web Architecture.

I’ve been using Struts for years, and it’s a true love/hate relationship. Actually, it’s more of a Like/Hate.

I’m going to try to enumerate why I like it, and why I don’t.

Why I like it:

  • Automatic form validation. In retrospect, I only use this sometimes. Still, it’s nice to have a form fail validation and get redirected to the input page.
  • Automatic form filling for those failed forms. It’s nice to have the select box, for instance, come up to the correct option.
  • It’s a well known framework. Don’t have to teach people much.

Why I don’t like it:

  • No support for action name with wildcards. For instance, you can’t setup a mapping for /person/*. There is some hacking you can do, but it only gets you half way. In the <html:form> tag, you can’t use those wildcards without hacking the source deep down.
  • Too much emphasis on verbs instead of nouns. Here is my major beef with Struts. It wants you to think in terms of Actions (such as addUser.do or editAddress.do). This is too RPC for my tastes. We’ve been taught that the WebArch likes URIs that identify nouns. The HTTP method (GET or POST) is what identifies the action. Struts makes this too hard. It’s fairly possible to work with struts where the Actions become nouns, but it’s not pretty.
  • Struts’ I18N uses some weird class MessageResources instead of the standard ResourceBundle like the rest of Java’s I18N implementations. We had to write an Adaptor from one to the other. This usually isn’t the case when using property files for translations, but we are using Java classes for the translation resources. Why a separate class?
  • Often times, I need to do validation inside the Action. That’s OK, but then I have to bypass Struts’ auto-validation. That’s OK, except that it’s one of the main reasons I even use the framework! There may be a way around this. I know that FormBeans have a validate() method, but that may overridden when it’s a ValidatorFormBean. Can I have Validator automatic validation plus custom validation logic in a form bean?

I think there are other quirks in there. My main problem with Struts is it is trying to apply a GUI design principle (MVC) to the Web. I’m not convinced it’s a perfect way to think about things.

I would like the framework to be more REST friendly and treat everything as a set of Resources, not Actions.

REST Tutorial

Wednesday, July 23rd, 2003

REST

REST Tutorial from Roger Costello.

UR[*]

Tuesday, April 8th, 2003

URI.NET

URI and especially URN. An attempt to make URNs dereferenceable. Why not just use a URI?