Posted on February 21, 2007
Today is AJAX’s second birthday, as this article remembers us.
I remember when I started blogging on this topic. And, in all honesty, I have to admit that I got in love with AJAX when it happened. I liked very much the idea of building web applications that “last longer”, that provide a fluid experience to the user and that do not require additional plugins. At that time, in my previous team, we were trying to understand how things like Flex, OpenLaszlo and other technologies would impact the way in which our customers think to Web applications.
Today, after two years and some posts… I changed my mind. I start thinking that AJAX has been artifically keeping the browser alive:
- regardless of the merits of some of the AJAX technologies that were developed so far
- beyond the excellents things we see around (more or less everywhere on the web, today! even if one of my favorites is still Zimbra)
- despite the fact that the emergence of the Web2.0 phenomenon is certainly due to the availability of the AJAX technology (which made people caring of Web2.0 because they could immediately see the advantages)
well, today I am more prone to think that AJAX represents the swan song of the “browser as a mean to execute applications delivered over the web“. The arguments that make me thinking that way have been often posted in this blog.
In the previously mentioned article on AJAX Birthday, I think I agree with what Richard Monson-Haefel wrote:
- While AJAX has set the world on fire and caused a renaissance in user experience, it’s not the best Rich Internet Application (RIA) technology available today.The technology, or “approach” as some like to say, suffers from serious problems….
- ….The fact that AJAX has ignited a renewed interest in making the Web a much better user experience is to be applauded, but don’t confuse the hype around the technology with the basic facts about the strengths and weakness of AJAX compared to its counterparts…
- ….Another area where AJAX really needs to advance is in terms of tooling…
- …the number of code-level AJAX frameworks and APIs available today is ridiculous. At my last count (August 2006) there were something like 160 AJAX frameworks….
- …Here is another problem with AJAX, it’s not very deep
Now, I would like to take this opportunity, AJAX’s birthday, to comment on an excellent article, Web 2.0 Re-examined, from Coach Wei, the founder of NexaWeb.
One of the interesting concepts introduced by Coach Wei is the one of “Architecture of Partition“.
The truth of the matter is that neither server centric nor client centric architecture is always appropriate. Unfortunately developers never had the flexibility to deciding the right architectural partition for their applications. Web 2.0 brings architectural partition flexibility to developers for the first time in history. With web 2.0, developers can partition the application in a way that is best appropriate for the application, rather than trying to fit into a pre-determined architecture. Some applications are best served by leaving only user interface and some UI logic on the client side. Some applications require all UI logic on the client side to deliver optimal result. For even more sophisticated applications, there is requirement to have a certain business logic and data on the client side as well. Web 2.0 technologies enable developers to decide how much computation stays on the client side and how much stays on the server side, delivering optimal results.
Somehow, if “Architecture of Participation” represents an Usage Paradigm Shift, the “Architecture of Partition” represents a Technology Paradigm Shift.
This Architecture of Partition is, actually, realized by means of the 3 components drawn by Coach Wei in the picture on the left.
The way in which Coach Wei describes the Application Client Container (ACC) has many of the points that I try to push since few months:
- ACC is stateful. A web browser is designed to be stateless … …but Applications are inherently stateful.
- ACC supports asynchronous interactions by default while browsers require careful developer coding to do so
- ACC can support offline computing while web 1.0 applications are online only
- ACC supports mobile computing as a first class citizen
- ACC supports accessibility
- ACC supports rich user experience.
We start seeing instances of ACC appearing. Not necessarily, hopefully, in standard browsers!
As to the third component described by coach Wei, I personally think that the “Enterprise Mashup Server” is a component that is realized partly by a Portal (on the Server) and, partly, by some clver use of the ACC. See my post Composite Applications, Mashups and Portals: “relay race” or “team spirit” ? for more details.
In any case, Coach Wei’s paper is the first one I read in which some architectural foundation for the new generation of Web-based applications is depicted.
Today, AJAX’s second birthday, these concepts make a lot of sense to me. Perhaps, the future of AJAX may be in some ACC !