Skip to content

WEB 2.0

August 12, 2009

Here is an interesting piece of article for those who want to explore the mysteries of Web2.0.The article aims at providing an overall insight into the varied aspects of Web2.0 ranging from the origination of the term to the broad spectrum of services it offers to the society. It also strives to evolve a good understanding of the underlying technical aspects of Web2.0 and makes a comparative study with the previous version or traditional Web1.0 application. Apart from discussing the shortcomings of Web1.0 design architecture, advantages and disadvantages of using Web2.0 have also remained the main areas of focus. Please go through the article and i shall be glad to hear from you the areas where i need to concentrate and improve further for producing a more valuable piece.

Is Web2.0 just a buzzword?
Buzzwords are usually terms which are not clearly defined. In that aspect, Web2.0 may also be considered a buzzword, as there are conflicting views regarding the usage of the term due to which a confusion has prevailed resulting in two schools of opinions among experts.
(a)The first group represented by Tim Berners Lee and Russell Raw claim that Web2.0 is nothing more than a piece of jargon and there are no fundamental differences between Web1.0 and Web2.0 .According to them, the term Web2.0 cannot be used in a meaningful way as it￯﾿ᄁ￯ᄒタ￯ᄒルs technology components have existed since the early days of the web.
(b)The second group represented by Tim O￯﾿ᄁ￯ᄒタ￯ᄒルReilly, Paul Graham and Dion HinchCliffe claim that there are certain principles specific to Web2.0 applications which make them fundamentally different from Web1.0 applications. Some of these principles are Architecture of Participation,the Network Effect (social network),Harnessing the collective intelligence, to name a few. They observed that Web2.0 is less about new technology and more about the way people use it.
Despite this confusion, the term Web2.0 has got a very wide acceptance and is
(i) Perceived as the second generation of the World Wide Web that has unfolded the possibility of open communication over the web through web-based communities like social-networking sites, wikis, blogs and Folksonomies.
(ii)In the Web1.0 era, the internet was confined to HTML experts who alone published information and users were restricted to just viewing them. Hence the flow of information was unidirectional from the seller to the buyer. But Web2.0 promotes a greater level of interactivity among users by laying emphasis on user participation. So the web is no more confined to techies skilled in HTML or so but it can be effectively used by people from all walks of life.
What is Web2.0 in the opinion of experts?
Now let us take a look at some of the definitions offered by experts:
Tim O’Reilly says
Web 2.0 is the network as platform, spanning all connected devices; Web 2.0 applications are those that make the most of the intrinsic advantages of that platform: delivering software as a continually updated service that gets better the more people use it, consuming and remixing data from multiple sources, including individual users, while providing their own data and services in a form that allows remixing by others, creating network effects through an “architecture of participation,” and going beyond the page metaphor of Web 1.0 to deliver rich user experiences.
“Web 2.0 is the business revolution in the computer industry caused by the move to the Internet as platform, and an attempt to understand the rules for success on that new platform.”
According to an IBM social-networking analyst, Dario de Judicibus
“Web 2.0 is a knowledge-oriented environment where human interactions generate content that is published, managed and used through network applications in a service-oriented architecture.”
Origin of the term Web2.0
Web 2.0 is a concept which evolved at a conference brainstorming session between O’Reilly and MediaLive International. It was realized that new applications and sites kept popping up almost every now and then and there has been an explosive growth in the number of internet users. Hence based on the following differences in terms of usage, a series of principles were formulated and termed Web2.0.
Web1.0                                          Web2.0
DoubleClick                            –> Google AdSense
Britannica Online                    –> Wikipedia
Personal websites                   –> Blogging
Publishing                              –> Participation
Content management systems –> Wikis
Directories (taxonomy)            –> tagging (“folksonomy”)

Web2.0 application principles

August 12, 2009
1) Network as platform:
The internet is growing at an incredible rate with number of users increasing day by day. This growing user base has enabled companies to leverage the internet￯﾿ᄁ￯ᄒタ￯ᄒルs network effects in order to derive the positive benefits of network.
It is necessary to prevent hackers from resorting to illegal means for disrupting user activities. Advanced algorithms are also being used to figure out real blogs from unreal ones designed to exploit users. Hence it is essential to ensure a feeling of security among users by enabling meaningful connections, filtering signal from noise, providing trusted filters and so on.
Sites like the Youtube which have exploited this network effect have become very successful. But as number of users goes on increasing, it may lead to congestion and bandwidth problems. By devising mechanisms to eliminate network issues, the network can be made to serve as an effective platform for establishing connectivity among users.
2) Architecture of Participation:
Architecture of participation means a community of users build a system.
Some sites like youtube that primarily rely on the contributions of the users have an architecture of participation in order to enable users contribute content and add value to the application.
For ex. Email a friend is one of the architectures of participation found on some sites and is referred to as the Social push process.
3) Harnessing the collective intelligence:
The main power of the web lies in it￯﾿ᄁ￯ᄒタ￯ᄒルs ability to harness collective intelligence which is nothing but the contributions made by millions of users around the globe. Here we are going to discuss the varied ways by which companies are trying to maximize user activity to harness collective intelligence. It is essential to remember that a Link or hyperlink is the very basis of connectivity over a web by means of which the web keeps growing to unimaginable proportions.
a) Sites like Yahoo harness collective intelligence by serving as a portal to the contributions of it￯﾿ᄁ￯ᄒタ￯ᄒルs users while also involved in creating their own content.
b) Google is the indisputable leader in the search market because they mainly use the link structure of the web in enabling users find the content.
c)Users are given a more bigger role to play in websites like as they have more user-reviews which are utilized by the company for producing better search-results.
d) Wikipedia, an online encyclopedia facilitates both adding and editing of any content by any web user.
4) Rich user interface:
The sites employing Web2.0 offer rich, user-friendly interfaces by implementing tools like AJAX, GWT, etc.
5) Software above the level of a single device:
The PC is not the only platform for accessing internet applications.
For ex.iTunes is not a web application but one of the first media player software applications designed to span multiple devices.
Many sites have implemented some or all of these principles.

Technology of Web1.0 and Web2.0

August 12, 2009

The following figures illustrate the technology stacks of Web1.0 and Web2.0.

Technology stack of Web1.0
Technology stack of Web2.0
Application Client Container(ACC)
Unreliable HTTP
Internet Messaging Bus(IMB)
Application server
Mashup server

Examining the stack components:
Browser and Application Client Container(ACC):
ACC does not replace the browser whereas it is built on top of the browser.
1) ACC is stateful and browser is stateless. So in Web2.0 applications, a stateful application is built on top of the stateless browser.ACC is stateful because it supports asynchronous communication between the browser and server.
2) While standard browsing experiences are delivered by Web1.0 applications, a rich online user-experience is afforded by ACC.
From unreliable HTTP to Internet Messaging Bus (IMB):
As the internet was initially designed to share and view hyperlinked documents called webpages, the communication layer based on the HTTP REQUEST/RESPONSE model was sufficient for browsing. But in the Web2.0 stack we find a new component, the Internet Messaging Bus the main purpose of which is to provide enhanced web communication functions that go beyond the typical HTTP REQUEST/RESPONSE processing.IMB enables server push and message reliability, while still leveraging the standard HTTP protocol.IMB ensures that messages be reliably delivered just once and in the same order in which they are sent.
Let me now substantiate on the role played by IMB in Web2.0 applications.
Without IMB, if a user requests a page, it is quite unpredictable as to whether his request will arrive at the server or not due to frequent network problems. Of course it does not pose any problem as the user always has the advantage of clicking the URL twice or thrice even if the first URL request is lost. But in business transactions, such unreliability is often risky.
IMB also delivers messages in the order in which they are sent. Without IMB,if a user submits two requests in a row, there is no assurance as to which request will arrive first at the server. Again it is not a problem for browsing but for business transactions improper order of delivery of messages will lead to erratic behavior of the application.
Without IMB, a user request may arrive on the server more than once if owing to network problems the message was cached and delivered at the server. This will prove to be critical to business applications.
Hence IMB eliminates the above problems in Web2.0 applications by supporting server-initiated communications called Server Push while HTTP supports only Client Pull.
Server Push is a process in which the server maintains an open connection with the browser after the initial request for a page. Through this open connection the server continues to provide updated pages and content even though the visitor has made no further direct requests for such information. The server forces new versions of the document on the client at regular intervals while in client pull, the client initiates communication with the server. Forex. enterprise applications like stock trading require the server to push the latest stock prices to the end user.
From Application server to Mashup server:
Application Server is the middleware component in a web 1.0 stack.
A mashup combines data from more than one source into a single integrated tool. The Enterprise Mashup Server does not replace the application server, but instead, serves as an additional component to simplify the development and maintenance of composite applications.
An enterprise mashup server enables three tasks:
1. Data integration
2. Service/business process integration (logic integration)
3. UI integration

The fundamental flaws of Web1.0 design

August 12, 2009
The Fundamental Flaws of Web 1.0
1. The click, wait and page refresh interactionmodel:
This model is meant for browsing and not interacting with the application. Interactive applications are those that are based on asynchronous communication between the client and server.
2. Lack of support for two-way communications:
The web 1.0 communication based on HTTP is a client-pull model that can be initiated by the client only. Server can not initiate communications with clients. Though this may suffice for browsing, certain enterprise applications like stock trading require the server to push stock prices to the end user, thereby relying on Server-Push.
3. Lack of support for messaging reliability:
With only a HTTP REQUEST/RESPONSE model based on Only Client Pull, it may be quite unpredictable as to whether messages are delivered properly at the server side. Furthermore this model does not ensure if the request is delivered just once, that too in the same order in which it originated at the client-side especially when more than one request is raised in a row and, so on which are some of the most critical requirements for enterprise applications. Moreover the highly distributed and heterogeneous nature of the internet does not guarantee any such delivery, also taking into account the frequent network disruptions encountered.
4. Lack of support for mobile devices:
During Web1.0 era, mobile web was an afterthought but now the industry is attempting to make the web content available and useable on mobile devices. For ex. apples itunes is platform-independent.
5. Lack of support for rich user experience:
A greater interactivity is required on the part of users for business applications which cannot be achieved with ordinary browsers.
6 Lack of support for offline computing
Web1.0 applications are online and do not have this feature.

Application architectures of Web1.0 and Web2.0

August 12, 2009
The application architectures of Web1.0 and Web2.0 and the differences between them with regard to factors like response time and user interactivity can be well illustrated with the help of a simple example.
Take for instance a Login page comprising of two fields, username and password and a submit button. If a user wants to check the availability of a particular username, he is expected to enter the username, password and then click the submit button. The first level of validation happens on the client side by means of JavaScript. If the entry is invalid, an alert box appears prompting the user to re-enter the field. If the entry is valid, the page is submitted to the server which then checks the database and then refreshes and reloads the same Login page with a user-friendly message indicating the availability or non-availability of the username. So the full application interface is sent back to the browser with a new data. This is a typical example of a Web1.0 application which is based on the click, wait and page refresh interaction model. Thus in a Web1.0 application we can say that
(i)Page is the basic unit of the application.
(ii)Every event triggered by the client such as a button-click in the above example, is represented by a page, ie, either a new page is loaded or else the same page is refreshed and reloaded in which case the entire browser window needs to be refreshed (as in the above example) including the fixed interface elements that do not change from page to page.
(iii)As the server keeps refreshing and reloading the same page each time an event is triggered by the client, the response time will increase.
(iv)The user needs to wait and cannot carry out any further process until the server responds and updates the browser. The process will take even longer in case of a failure message like username not available.
The following diagram shows browser and server contact in Web 1.0 applications.

Let￯﾿ᄁ￯ᄒタ￯ᄒルs take the same example with a Web2.0 application.
The above diagram shows the Web 2.0 approach.
The same Login page and form fields are considered here. Assume that the username is entered. Once the cursor loses focus of the username field, an event is triggered that initiates the validation process for the username field.If the entry is invalid, an error message is displayed in a small <div> element after the javascript client-side validation. If the entry is valid, JavaScript will request information from the server regarding the username.
In this case the entire page is not submitted to the server and so the user can continue entering the password while the server processes the username thereby promoting asynchronous communication between the client and the server. While the user is entering the password, the response is delivered back to the page. It is also possible for another script to request data from the server while the server is already processing the request initiated by the first script. This kind of interaction between the client and the server is called asynchronous communication as the user does not have to wait until the server responds. The server-process thus takes place in the background without the knowledge of the user enabling a very rich online user-experience. Then depending on the availability of the username, either a success or failure message can be displayed in a small <div> element.
Moreover, the button in the above example can also be disabled to prevent the user from accidentally clicking the button before entering valid data. Hence Web2.0 applications facilitate enabling and disabling of interface elements.
Thus we understand that in a Web2.0 application:
(i)A page is broken down into smaller components or sections. Events are triggered within these components by the client.Ex.leaving a form field.
(ii)Asynchronous communication between client and server.
(iii)Enables updates to smaller portions of the interface. ex<div> element
(iv)Enabling and disabling of interface elements.
We may deduce the following differences with regard to the application architecture of Web1.0 and Web2.0:
Page is the basic unit in a Web1.0 application. Every event in a Web1.0 application is represented by a page.
The entire page is broken down into smaller components or sections. Events are triggered within these components.
The application interface and data are tied together. They are delivered to the browser by the web server at the same time, ie, each time data is changed, the interface must be reloaded.
Interface is independent of data. The entire interface need not be refreshed and delivered each time an event is triggered.Web2.0 applications permit updating small portions of the interface in response to events triggered within the components that make up the page. Hence there is no need to refresh and reload the entire application interface for a data change.

Web2.0 services,Adv and Disadv,Developers’ note and caution

August 12, 2009

Services offered by Web2.0:
1. Rich Internet Application:
AJAX is one of the tools for designing a rich user interface. It is a combination of several web-development techniques like XHTML, XMLHttpRequest and XML.AJAX enables quicker response by exchanging small amounts of data with the server. It permits updating a small portion of the interface instead of refreshing the entire page and reloading it to the browser thereby rendering possible, asynchronous communication between the client and the server.
Similarly, Google Web Toolkit enables rich user interface by offering many widgets like Pushbutton, Togglebutton, Menubar, PopupPanel, TabBar, StackPanel, HorizontalPanel, etc.

2. Folksonomies:
The word Folksonomy is a combination of folk and taxonomy. It refers to the collaborative but unsophisticated way in which information is being categorized on the web. Instead of using a centralized form of classification, users can assign freely chosen keywords, called tags to pieces of information or data and this process is known as tagging. For ex. A video displaying a cat can be tagged cat, cute and so on.

3. Mashup:
It is nothing but a hybrid web application which combines data from more than one source into a single integrated tool. For ex. Cartographic data from Google Maps can be used to add location information to real-estate data from Craigslist, thereby creating a new and distinct web service that was not originally provided by either source.

4. Blogs:
Blog is a webpage in which anybody can post an entry on any topic and readers can view and provide feedbacks on the topics. One need not be skilled in any technology for using a blog. A blog can contain not only text but video, audio, podcast, links to other web pages and so on.
Certain business organizations use blogs as intranets while some others use it as an effective marketing tool to remain in touch with customers and hear their concerns that can ultimately serve as an early warning system of potential problems.

5. Wiki:
A Wiki is an effective collaboration tool for interconnecting users.Wikis are of great significance in corporates which constitute people with knowledge in different domains.Wiki is a means by which this scattered knowledge can be unified and stored in one common repository facilitating sharing of information. It is a knowledge base for any organization.
For ex. Wikipedia. Users can contribute and modify content and link to different webpages for viewing a topic of their choice.

6. Forum:
An internet forum is a collaborating tool where members of the forum post their content and have discussions on varied topics spanning different areas like technology, for instance. Registered members of the forum also have previledge to initiate a discussion on any topic, edit their previous posts and change profile settings and so on. A forum is also termed Discussion Board or Bulletin Board.
7) Social Networking sites:
A community of people building a system is called social network. For ex.Youtube,Slideshare

8) Content Management Systems:
They are software meant for managing the content of websites.

9) News promotion system:
There are certain sites like digg where users can post news. There is no editorial board to review the content.After polling, the news that has received the maximum number of votes will be published on the front page to be viewed by millions of users.

A collection of digital media files made available by syndication feeds(which refers to a portion of the website content) and distributed over the internet.It can be downloaded and played.One can subscrie to podcasts by RSS.

Best Web2.0 sites of 2006

August 12, 2009
1)Social Networking sites:

2)Start pages:
The StartPage phenomenon which originated in the year 2005 is based on the fact that web information required by the user such as News,Weather report,Email,etc can be accomadated in a single webpage enabling a rich user experience.

3)Social Bookmarking
This site enables harnessing the collective intelligence of other users in order to search and is different from sites like Google in which search is based on keywords.

4)Peer production News:

5)Social Media sharing:
This is the site that has videos uploaded almost everyday.

6)Online storage:

Key Components of Web2.0

August 12, 2009

3) REST(Representation State Transfer):

The term REST coined by Dr.Roy T.Fielding in his Ph.D. dissertation is defined as a software architecture intended to evoke an image of how a well designed web application behaves; A web application is a network of web pages through which the user progresses by traversing the hyperlinks changing the application client state from one to another. It can be explained s follows:
1)A client accesses any web resource by an URL.
2) The server responds by sending an HTML document which is the representation of the resource requested by the client.This represents one state of the client application.
3) When the client selects any link, it means the client is accessing another web resource.
This web resource again represents another state of the client application.
4) Thus the state of the client application goes on changing with the representation of each resource.
5) In order to implement web services in REST, first a resource should be created for that web service. That resource is accessed by an URL.
6) The web services should be designed in an interconnected manner.
Suppose for ex. want to get details of products from products-depot incorporate.

First in order to obtain Products List, the client accesses the URL,
Next client selects Products
In order to obtain information about any one product, the client selects that product and navigates to another web resource,…which is represented by URL 2 in the above diagram.The number mentioned is something like the id of the product.
7) From the preceding example, we find that REST is stateless as all information needs to be provided every time a web resource is accessed.
4) SOAP:
SOAP is a light weight protocol used for the exchange of XML-messages in a decentralized, distributed environment.

Web3.0-Semantic web

August 12, 2009
Web3.0=Web2.0+Semantic web
Web3.0 is based on the concept of Semantic mark up. Semantic mark up is nothing but the communication gap that exists between the human users and software applications. It is actually based on artificial intelligence which is the process of making computers behave as human beings.
In web3.0, the web content is represented in natural language that can be understood not only by humans but by machines as well. It is really a hard concept for developers to understand. The syntax rules that need to be framed for building the natural language is something very challenging in a semantic web or commonly called Web3.0-the READ-WRITE-EXECUTE web.

Attempts are being made to access databases as webpages in Web3.0. Still it may take a long way to go for web3.0 to become fully developed.

Note to developers,advantages and disadvantages of web2.0 and caution

August 12, 2009
There are certain factors that developers need to consider while designing Web2.0 applications. Some of them are:
1) The developer must be well aware of the application interface because of asynchronous communication between the client and server in Web2.0 applications as opposed to page-refresh in Web1.0 applications. So they should consider new ways to notify the users about the ongoing internal processing at the server side for which page-refresh was meant in the case of Web1.0 applications. This can be done by displaying a simple message in a <div> element rather than using alert boxes. By doing so, the user need not stop processing in order to respond.
2) After data is provided to the interface, users should be able to identify what is new. For this purpose some distinct color can be used to highlight the data.
3) Developers must take care that the form is not submitted to the server even if the user clicks the button inadvertently before entering valid data. For this purpose, the button should be enabled only after valid data entry. Hence interface elements should be enabled and disabled appropriately by the developer.
Advantages of Web2.0 architecture:
1) Asynchronous communication: Each time an event is triggered, the user does not have to wait for a response from the server.
2) There has been an increase in the number of tools used for creating Web2.0 applications.
3) A rich online user-experience is afforded by techniques like AJAX.
Disadvantages of Web2.0 architecture:
A higher degree of programming skill is required on the part of developers.
For ex. AJAX approach may place the onus of writing javascripts that cope with the vagaries of the modern browsers.
Caution in using Web2.0:
The upcoming of Web2.0 technology does not mean traditional or Web1.0 applications have become obsolete. It is also not necessary that web applications henceforth be developed only by using the features of the new technology. For instance, shopping cart applications which are usually employed by online e-commerce businesses may be developed using Web1.0 approach as they provide just the catalogue of products to the buyer and do not need to promote any interactivity.
With the emergence of new tools for developing Web2.0 applications, developers should not rework all the interface elements with the aim of providing a rich user interface because users may find it hard to work with applications composed of unfamiliar widgets. Hence it is better to retain the traditional interface elements with which they are familiar.