Introduction to Web 2.0
The definition of Web 2.0 seems to be a matter of hype and marketing speak. In this first in a series of articles I will attempt to demystify and disambiguate the concepts of Web 2.0. In future articles I will expand on real world examples of Web 2.0 technology and what differentiates them from Web 1.0.
I was recently at the JavaOne conference in San Francisco. I saw a salesman advertising a product as a “Web 2.0 Mashup Solution”. I thought I knew what Web 2.0 was, but once he finished his pitch, I was confused. After I played a game of “say the product with marshmallows in your mouth”, and received my free tee shirt, I walked around to the back of the booth. The technical folks tried to convince me that their product employed two popular buzzwords: Web 2.0 and Thin-Client. It turned out it did little of either.
The term Web 2.0 has been around since the late nineties (meaning pretty much anything that was new on the Internet). The current concept of Web 2.0 was adopted at an O’Reilly / MediaLive conference. Dale Dougherty proposed the name to represent the things that typified post dot-com web companies as compared to companies that did not survive the bursting of the dot-com bubble.
Web 1.0 technologies were platform-based whereas Web 2.0 offers the web as a platform. That is to say, old web companies offered products you could run on your Windows, Mac, or Linux computer; the new generation of web companies offers services which are delivered on the web itself.
In his defining treatise on the subject , Tim O’Reilly compares Netscape to Google. He points out that Netscape offered a web browser as a product. There the platform was a physical device (your PC) and the product was a piece of software.
In contrast, Google offers a set of services: search, ads, maps, images, etc… Here the platform is the web itself – the web browser is assumed. And the product offered is a set of services.
Along with this set of services comes the concept of the Web Service – an application that serves up data, rather than HTML. A Web Service acts very much like a typical web site: it receives a request for data and it posts back a response. But instead of an HTML web page, Web Services post back an XML document with the requested data.
The third Web 2.0 differentiator is data management. The new players in the web community allow users to manage their own data. Examples of this are Wikis, Forums and Weblogs (blogs). Here, users can easily add their own data to the web.
Wikis are essentially flat set web pages that anyone in the community can modify. This is demonstrated most effectively at http://wikipedia.com. Wikipedia is an encyclopedia where anyone on the Internet can add or update entries. This has created a social phenomenon where the online community controls the quality of the information.
Forums (like phpBB and Invision Power Board) allow users to post their questions and opinions about topics of interest to their community. This creates a local repository of expert information.
Weblogs (or blogs) allow individuals to post their thoughts and opinions for anyone on the Internet to read. Other users can post their comments in response and even link back to their own blog. This creates a semantic network of thoughts and opinions. Current favorites are Myspace.com and Blogger.com.
Finally, Web 2.0 is typified by lightweight user interfaces (or Rich Client Interfaces). Popular favorites are AJAX and Macromedia (Adobe) Flex.
A “Thin Client” is considered to be a web application that utilizes the user’s browser without any additional software. So, most existing web applications are Thin Clients.
A “Fat Client” is a web application that requires downloading and installing a third party application. Many VB applications are considered “Fat Client.”
A “Rich Client” in contrast utilizes the features of the web browser plus a rather small amount of software to extend the functionality of the browser. This allows some additional logic to be performed in the browser itself.
Putting logic in the browser makes validation and special display features easier to implement. There is also a performance improvement which improves the user experience.
A popular Rich Client technology is Ajax (Asynchronous Java And XML). Ajax uses JavaScript to send requests for data from the browser directly to the remote server. The server responds with data in the form of XML. Since the JavaScript is running asynchronously, the user doesn’t have to wait for the response to make another request (as is true of “Thin Client” applications). Good examples of this technology are Google Maps and Google Mail.
In future articles I will expand upon Web 2.0 and Ajax programming concepts. Web 2.0 offers more than just marketing hype. but leaner and faster programming paradigms for web applications.
Author: Greg Smith