posted 24 Nov 2006 in Volume 10 Issue 3
The foundations of Web 2.0
Web 2.0 is the term widely used to describe the new wave of interactive web applications – and Ajax is the key technology behind Web 2.0.
By Graeme Burton
Put the simple term ‘Ajax’ into Google and the first item displayed is not Ajax Amsterdam, one of the biggest names in European football, nor a brand of bathroom cleaner, nor any of a multitude of products worldwide that sport the name: it is the Wikipedia definition of a group of web technologies that provide the foundations of Web 2.0.
Its number one position in the Google rankings reflects the importance that has been placed on Ajax by developers, analysts and venture capitalists alike. Web 2.0 – and Ajax – will enable a whole new world of interactive information, tools and services to be delivered direct over the internet. And the revolution has barely even begun. “If you look at our website, it’s not very interactive. It’s like opening a book. The new ‘Ajax-fied’ websites are much more engaging,” says Kirit Saelensminde, chief technology officer of software developer Felspar.
In the mid-1990s, there was much talk and hype about how the internet and the ‘network computer’ would usurp traditional client applications, especially Microsoft Office. That never came to pass because the browser and web technologies at the time were too immature. They simply couldn’t provide the complex interactivity, reliability and instant response of traditional PC applications. Ajax changes all that.
The term was reputedly first coined by Jesse James Garrett, an information systems architect and the founder of consultancy Adaptive Path, in February 2005. Garrett claims to have thought it up while in the shower, trying to work out a way to explain to clients some of the exciting technologies with which a slew of start-ups were developing new web applications.
As the definition implies, it is not a single technology. Rather, it is an umbrella term covering a combination of core technologies that have been around for some time, but which Garrett recognised were being applied together to produce powerful web-based applications. Ajax, says Garrett, includes:
- Standards-based presentation using XHTML and cascading style-sheets;
- Dynamic display and interaction using the document object model;
- Data interchange and manipulation using XML and extensible style sheets (XSLT);
- Asynchronous data retrieval using XMLHttpRequest;
The classic model of web-based applications involve the submission of data to a backend server, which processes the requests and then returns whole HTML pages to the user. But while this is a perfectly adequate model for reading news and magazine articles, it is too slow for the kind of interactive applications that have made PCs popular. The key to Ajax is that it slashes the need to reload web pages after each individual operation is performed.
Instead, Ajax enables a browser to update smaller changes as and when they are made by the user, reducing both the volume of data and the complex processing traditionally required. Ajax therefore enables more sophisticated applications to be run on a web browser, such as office suites, that were simply not usable before in that format.
So the user is never staring at a blank browser window.” When the user takes action, the Ajax engine is referenced first and any response that does not require communication with the server, such as simple data validation, is handled instantly by the Ajax engine. “If the engine needs something from the server in order to respond, the engine makes those requests asynchronously, usually using XML, without stalling a user’s interaction with the application,” says Garrett.
The key to the importance of Ajax and its popularity is that it is not a software product or package, but an approach to the design of web applications that encompasses a common set of standard applications that everyone has built into their web browser – regardless of the web browser they are running or their preferred operating system. No one needs to pay a licence fee to develop or run an Ajax-based application, which means the playing field is level and the potential user base huge.
Software as a service
At the moment, Ajax technologies have been used largely for consumer-facing applications and services, such as Flickr and Google Maps. However, many analysts are starting to look forward to the contribution that Ajax could make to the delivery of ‘software as a service’ in conjunction with service-oriented architectures (SOA).
The SOA concept involves using ‘web services’ technologies – such as SOAP, the simple object access protocol – to provide software components as individual services, breaking down traditional monolithic applications into their constituent parts.
In theory, Ajax can provide the front end to heavyweight corporate applications built upon the SOA concept. With Ajax, different SOA components can be strung together and presented to the end-user as a single, coherent, corporate application with a consistent user interface – one that can just as easily be reconfigured should corporate needs or business processes change.
For many organisations, that will help to create applications that can be adapted much more quickly and cheaply than ever before – a factor that will help support change management programmes which can themselves often be slowed by the lack of adaptability of the traditional applications underpinning many major organisations.
Nevertheless, there is still a long way to go before Ajax-based technologies can form the foundation of a new corporate application paradigm. Like the explosion in popularity of the internet some ten years ago, it will be consumers, not businesses, that drive initial development and adoption. But within five years, that could lead to true web-based applications and the demise of the traditional application.
Cascading style sheets (CSS)
A standard for controlling the presentation of web pages;
Document object model (DOM)
Specifies how objects within a web page are handled;
Extensible style sheet transformations
The language for transforming XML documents into other XML documents;
A scripting language that works within the browser to provide interactivity to websites;