Wednesday, March 12, 2008

Web 2.0 is SOA plus AJAX

Many companies don't understand SOA (Services Oriented Architecture), how it could help them, or how to implement it. This short article is an attempt to give a very high-level explanation of one part of SOA, and relating it to Web 2.0 and AJAX (two hot topics).

In its simplest form, a "Service" in terms of Services Oriented Architecture is a web page. To make it more interesting in this context, the web page should contain dynamic information. For example, the UPS package tracking site, which is updated as your package gets to different stops during delivery.

Every company has some number of web pages (aka web applications) that provide some type of information. The goal of SOA is to relate each of these applications to a "service" (as can be defined in a Service Catalog). These individual services can then be made available to other teams, who can leverage the service provided.

Going back to the UPS Package Tracking example, this is a service that can be used by any company that ships via UPS. Specifically, the retailer can access the UPS site on behalf of the customer and provide the customer with the UPS information directly within their own web site. It may not seem like it, but this is an implementation of SOA. The web site I dealt with today that prompted me to write this article is Expedition Imports (http://expeditionimports.zoovy.com).

Now what does this have to do with Web 2.0 and AJAX? And what do these two terms mean?

Web 2.0 is an information specification for the newer/smarter/better web sites that are available today. A good list of the most popular ones can be found at http://www.web2list.com. Gmail and Google Maps are two examples that I like a lot. They both use AJAX, which is the cornerstone of Web 2.0, extensively.

AJAX stands for Asynchronous JAvaScript with XML, and what it provides is the ability of a web page/application to make a secondary call to another web page/service "asynchronously". This means that a user's browser is not "thinking" or blocking during this request - it is being made in the background. And as soon as information is returned by the request, that response is processed and the appropriate information is displayed to the user. As an example of this behavior, go to http://maps.google.com. When the page first loads, you can see your browser's "busy" icon moving. However, as you navigate around, that "busy" icon doesn't move any more. This is because the page itself (the JavaScript on the page, actually) is making asynchronous calls as you click on different areas of the map. And as the requests are processed, the JavaScript makes that information available to the user (you).

One thing that all this means is that ANY web page can play the part of a portal (in Web 2.0-speak, this is often referred to as a "mashup" - taking information from multiple sources/services and mashing it together).

As with any technologies, there are DEFINITELY more intricate pieces and parts to SOA, Web 2.0 and AJAX, but I thought that a very brief introduction might help.

No comments: