[Top] [Prev] [Next] [Bottom] [Contents]

The Three Generations of Web Application Development

What do we mean when we say "client-side" or "server-side?" The server is your Web Server. The client is the browser that is used to view your page. Server-side applications run on your machine; client-side applications run on the user's machine.

What impact do client-side technologies have on Web application development? Client-side technologies such as Java, JavaScript, ActiveX, and VBScript provide for programmability in the remote Web browser itself. The use of client objects can decrease development time and cost, reduce maintenance cost, increase worker productivity, and increase server performance. As we will show in the section titled "Client-side Solutions, the changes that client-side objects bring to Web application development are evolutionary, revolutionary, and profound. Sapphire/Web, Bluestone's third-generation Web application development tool, provides client-side objects and frameworks for all these new technologies.

The First Generation-Static HTML

The first generation of Web applications were simply static HTML pages. To develop a first-generation Web application, you fired up your favorite editor and began typing. The "developer" was not necessarily a software developer at all, but rather an author who had knowledge to convey.

Of course, the information world was profoundly changed as the Web delivered distributed information to the world. The end user had first a text-based and then a graphical browser to navigate a world of information.

There were limits to this technology. If you needed to produce a page of information for each employee in an organization, you had to create each page "by hand." You also needed to keep the employee information in two places: the employee database and the HTML pages. This was a labor intensive, error prone, and tedious undertaking. Many resources were needed to produce simple "apps," and the user suffered from not being able to get all the information they wanted. In addition, these pages were completely static and provided for no interaction with the user.

The Second Generation-Server-side Applications

Server-side programming made possible the second generation of Web applications. Based on the SERVER APPLICATION specification, it was now possible to generate pages dynamically. "Virtual" HTML pages could be produced by combining an HTML template page with live data from a database. The employee application mentioned above was now easier to produce (one template file) and to maintain (just change the template or the database data).

Users could now get more information and better applications. HTML forms allowed the user a form of interaction and Web applications could respond based on user responses.

There are limitations to server-side programming. These fall into the categories of:

The Third Generation-Client Objects

First, remember that there is still a need for static HTML pages and server-side programming. Third generation tools use both of these technologies and client-side objects as well. Some applications may best be expressed as server-side only programming. Client objects can use server objects to give them some of their functionality. This leads to a true client-server architecture for Web application development. A server object may be designed to retrieve and update data on the server end. Such operations will likely incorporate business logic into the server object. The client objects will communicate with the server object and present the user with a view of the data. In fact multiple views and objects can communicate with the server object. The developer can easily choose how to partition the logic of the distributed application between client and server. The actual communication between the objects will be transparent to the developer.

The limitations that server-side only programming faces stem from the fact that it is architecturally wrong. The issue really boils down as to where the state of the application is maintained. The easiest way to see the problem is through a set of "examples".



[Top] [Prev] [Next] [Bottom] [Contents]

info@bluestone.com
Copyright © 1997, Bluestone. All rights reserved.