I do not mean to give a full review here, rather, I would like to point out a trend.
The real impact of World Wide Web started with HTML and NCSA's (National Center for Supercomputing Applications) browser Mosaic. Nowadays, many sites such as Flickr, blogs and wikis, YouTube, MySpace, Facebook boast themselves as "web 2.0," some even start to buzz 3.0.
In Web 1.0, we have personal communication services such as email, messenger. We've been overwhelmed by all kinds of portals, corporate and personal websites, web directories, search engines. We also have had online businesses such as shopping, auction, gaming, payment, marketing, etc. The basic technology supporting Web 1.0 is HTML, a text-based, weakly-structured, state-less markup language.
In Web 2.0, we talked about user generated contents, social networks, tagging, virtual reality games. We heard about RSS, subscription, topic extraction and clustering. By introducing "content match" to web search, keyword advertising becomes an successful business model. Contents were, are and will continue to be the vital of the web. In order to serve contents better to the audiences, one need meta information, either generated by algorithms or by human tagging. Web contents will be more and more meta-rich. This is like programming language, at the beginning, it has integer, float and string, but to represent a business concept better, you need structures, you need relations. As a result, many web applications stared to use XML as an interface, internally and externally. HTML certainly can handle meta data in an ad hoc way, but that will soon become a bottleneck.
Till now, most web applications still have data and processing methods separated. In my opinion, content should not only be the data stream it contains, but also the instructions on how to operate the data. This reminds me the object-oriented technology in programming. With OO, data and procedures are stored in one object. When you pass an object, you not only send the data, but also methods or interface to handle them.
The future of the web, at application layer, should be object-oriented. An object has data, meta-data (instructions on how to interpret the data), and methods (on how to handle the data). This is not just a change in the location where the instructions resides, this makes each object a self-contained piece of information.
Why is this so important?
Let me give an example, it seems the movie industry can be badly hurt if everybody starts to download movies and spread them on the web. However, if a movie is not only a piece of data, but also an object that can defines its behavior; when one copies it, it can destroy itself or make it's own quality deteriorated, then, copyright or ownership can be defined in the object and better protected.
An object can define ownership, behaviors, it will also allow different presentations with the same data. This will promote more people and business to open to the internet.
To be continued ...