Wednesday, June 11, 2008

Buzzwords 2.0: What is Web 2.0? What is RIA? What is Ajax?

The much-hyped but poorly defined terms Web 2.0, Rich Internet Application (RIA) and Ajax are best understood when they are defined together.

Buzzwords represent job security for entrepreneurs like me who would be practically unemployable were it not for our secret knowledge of the true meaning of words like Web 2.0. However, even I must admit that these Buzzwords 2.0 get in the way of clear communication.

In addition, while there are many standalone definitions of terms like Web 2.0, it is much easier to understand these buzzwords mean by considering them together. With that in mind, here are my definitions of Web 2.0, Rich Internet Application and Ajax, complete with helpful graphics:
  • Web 2.0 represents a market shift in consumer attention from expert-generated content (Yahoo) to user-generated content (Google)
  • Rich Internet Applications represents a requirements shift for more interactive, PC-like web sites to simplify consumer creation of content (Blogger, MySpace)
  • Ajax is an architectural shift to support RIA requirements

Definition of Web 2.0 - Shift In Consumer Attention

Consumer eyeballs still rule the web. The huge power shift over the last 5 years has been from expert-driven content (which could be created using expert tools like Adobe Dreamweaver) to user-driven content (which requires web based tools that are easy to use). The shift in consumer attention is also driving a shift in business focus as corporations look at ways to engage more effectively with their customers and employees.

Definition of Rich Internet Application - Shift in Web Requirements

In order for more people to participate in creating content for the Internet, the content creation tools have to be both simpler and more interactive. Rich Internet Applications seek to erase the difference in user experience between browser-based applications (Gmail) and traditional client/server applications (Outlook). A quick comparison of Gmail versus Outlook shows that RIAs have a big usability gap, but the Internet brings the offsetting benefit of dramatically simpler application distribution.

Definition of Ajax - Shift in Web Architecture

Ajax is an architecture which makes the browser smarter and more interactive by running Javascript programs on the client. Don't tell anyone, but the old name for putting logic on the client was fat client programming. Everything old is new again and it turns out the only way to make an interactive client is to do more processing in the browser.

The following diagram shows the fundamental changes between the Web 1.0 architecture (circa 2000) and the Ajax architecture.

Where is all of this leading?

Web 2.0 is driving new application requirements and in turn creating a demand for new development tools that can meet those application requirements. Building increasingly visual and interactive web applications requires a WYSIWYG Ajax tool - something like a Microsoft Access for the Web. Flex and Silverlight, Adobe and Microsoft are providing proprietary tools for building RIA applications.

For an example of an open-source tool for building RIA applications based on Spring, Hibernate and Dojo, check out WaveMaker . Download Wavemaker to see what a visual Ajax tool looks like! Wikipedia also lists a number of other Ajax frameworks for building RIA applications.

References
A number of others have gone before me in defining these terms individually. Jonathan Schwartz recently pointed out that Java has always had RIA capabilities (but he also admits they didn't work very well until recently). Here are my personal favorites definitions:

6 comments:

Richard Monson-Haefel said...

Good article but I found an error.

You need to change

"Adobe Flex and Micosoft Silverlight are providing proprietary tools for building Ajax applications."

To:

"Adobe Flex and Micosoft Silverlight are providing proprietary tools for building RIA applications."

Flex and Silverlight (and Curl for that matter) are RIA solutions; not Ajax solutions.

Richard Monson-Haefel
VP of Developer Relations
Curl, Inc.

Christopher Keene said...

Richard raises an interesting point here. Just as there are few good definitions of Ajax, there are even fewer attempts to define what products out there are Ajax-compliant.

Part of the reason for this is that Adobe and Microsoft are spending a lot of money to make it seem like they are part of the whole Ajax wave. They also have an army of trolls who gleefully stomp on any blog postings that do not robotically echo their corporate spew.

Interesting that a developer relations person from a non-Ajax company wants me to "out" his fellow competitors as being non-Ajax too ;-)

José GD said...

To make things clearer, I would say "With Flex and Silverlight, Adobe and Microsoft are providing proprietary tools for building RIA applications".
By the way, looking at the second graphic, aren't the arrows inverted? HTTP Request from server to browser? HTML file from browser to server? Uh?

Christopher Keene said...

@ Jose -

You made 2 very good suggestions and I edited the article to reflect them. I have always had trouble with getting my arrows to go in the right direction!

Anonymous said...

Ajax is not a buzzword.

Surge said...

this is a good post however controversial it seems. I do agree that Ajax is an RIA in and of itself. I may be way off base though.