Monday, November 26, 2007

The impact of AJAX on the network

In the beginning there was HTML, and it was good. Users filled out a form and hit the “submit” button, then waited for the server to respond. As applications increasingly became webified, this form-based submission model served us well and the request-reply model remained the de facto standard for building web-based applications.

But users complained about application responsiveness, or the lack thereof, and desired more interactive applications with less wait time between form submissions. Web acceleration became a key component of architecting an application infrastructure capable of scaling and performing to meet user expectations.

But you know users; they still weren’t satisfied. They missed the interactive responsiveness of their fat clients…and while they liked web-based applications, they just weren’t robust enough to keep users happy for long. Enter Web 2.0 and, specifically, Asynchronous JavaScript and XML (AJAX).

AJAX allows developers to build applications with rich interfaces that act more like their fat-client ancestors than their web-based cousins. Applications built on AJAX are often also referred to as Rich Internet Applications (RIA), those built upon Adobe’s Flash platform are referred to as AFLAX (Asynchronous Flash and XML) or just FLAX (Flash and XML). What they all have in common is their ability to communicate with the server asynchronously and a set of fat-client client “widgets” (components, gadgets) that spice up the user-interface and make users happy. Not only are these interfaces sexier, but they’re also capable of functioning like a fat-client—they can communicate with the server at will, with or without a specific user action initiating the exchange, and they can update objects on the page without requiring the entire page to be refreshed from the server.

Basically, AJAX moves web-based applications from a page model to a true application model, based on events and user actions rather than pages.In the quest to deliver fat-client functionality on a thin-client platform (i.e., the browser), many developers have turned to using toolkits. These toolkits (Dojo, Zimbra, Laszlo, Google) are JavaScript libraries that present an API and/or a set of markup tags that make it easy to develop rich interfaces and communicate with the server over HTTP. Unfortunately AJAX and similar technologies introduce significant delivery challenges that are not addressed by these toolkits or by the technology itself. Also not addressed, as is typical, are issues surrounding basic security and access rights to resources used by AJAX applications.

No comments: