Hi Dion,
Thanks for this article, it is a nice synthesis of the patterns involved when using WOA-style services. I have some remarks concerning the part on REST:
"REST solely uses HTTP to function and is designed to leverage its best qualities."
This is mostly true because though HTTP is the natural father of REST, but REST in itself is not limited to the HTTP protocol. In the
Restlet project, we have implemented REST connectors for the AJP, SMTP, JDBC and FILE (local file system) protocols.
"Unfortunately, that a canonical description of REST does not exist for the layperson is an almost tragic circumstance. In my opinion, this has significantly interferred with WOA's ability to be implemented and adopted effectively in a widespread manner, though I also believe that will soon resolve itself."
There maybe a lack of practical documentation (anyone for a book on REST?) but we are actively working on filling this gap in the Java world and other efforts have started in RoR, Python and PHP too. The
Restlet project is primarly a framework designed to support the development of REST/WOA applications, both client and server side. In addition, it is an alternative to the classic Servlets and the HttpUrlConnection class, but it can also nicely work with them if needed.
To answer your question, I don't think we need a new "model" for building Web clients. The difference betwen clients and servers in the WOA world is becoming less and less obvious because every node can potentially act as a client and as a server. Even Ajax-enabled applications are starting to use techniques like
Comet to act more like Web servers.
Jerome Louvel
http://www.restlet.org