Chapter I

As already said in the introduction, web applications had a large evolution in the past years. Figure 1 presents a schematic view of this evolution. During years, web applications passed from static pages, to dynamic ones. This evolution brings growing functionalities into web applications but also growing complexity for their realization.



 

 

The growing in complexity is the result of the different developing patterns: static pages are simple text, formatted through tags; dynamically generated pages are the output of a server side running program, that handles the HTTP requests and generates the appropriate responses. Dynamic pages are something more, they act as an active part in the delivery of the service, something like a complex client-server application. This approach requires that the design phase takes into account both the client side and the server side, making them the components that must interact to delivery the service. Just to clean any doubt, the key difference between dynamically generated pages and dynamic pages is that the first are a simple text-like interface to call functions on the server-side program, the latter contain itself part of the program logic, modifying its content without interaction with server and making requests to server only to fetch data.

With dynamic pages an entire new field of applications can be prospected. The old development patterns, delegating all the program logic at server side, were strictly linked to work with only one server, that was responsible for the execution of the application logic and for the fetching of the data. Dynamic pages, relying on their “embedded logic”, can use different servers to fetch data and combine them into a new rich application that enhances the user experience. This new approach, called “mash up” seems to be the next evolution of the web development.


 

 Figure 2 shows this new approach in opposite to the old one: a page is built up using data from different servers, that are mashed through the page active logic. Actually it is not so simple to implement a page like this, some technical issues limit the possibilities of what a web page can do. While it is actually possible that the page makes asynchronous multiple requests for data fetching, there is the bigger limitation of the Same Origin Policy, that force a web page to make requests only to the server from which it was loaded [6]. This limitation was introduced for security reasons, in order to avoid unexpected malicious use of web page's active content (We will return on this topic later). How to avoid or modify this browsers' limitation is an open research topic.

Just to give an example of the new possible applications, we can imagine a travel reservation application that build, starting from information from hotels and travel obtained form specific companies web servers, a set of reservation for the travel and for the hotels, according to user needs.

This new technologies seem to give added value to the new ideas about the software deployment. The actual trend is to imagine the software as a service (SaaS). With dynamic pages SaaS becomes a really near reality, because dynamic pages are software that is deployed through the net, with user transparency. With new web applications software becomes a product given on demand, something like what happened in the first decades of the 20th century with electric power for factories.

Instead of having the need to buy and deploy software to get a service, with SaaS users buy a service for whom the software is automatically deployed in a transparent way.

 


Figure 2: Actual web page and future web page

 


Figure 1: Web applications evolution