Online documentation - Websydian v6.0

Users Guide | Patterns Reference | WebsydianExpress | Search

 

Web Applications in General

This section of the Overview of Internet Technology discusses the following subjects:

A Definition of Web Applications

Briefly stated,

A Web Application is any application that users access using a Web Browser.  

However, since modern Web Browsers these days include provisions for executing Java programs, the above definition may be a bit broad:  If the application merely uses the Web Browser to load a Java program that operates independently of the Web Browser, then it - in our definition - does not qualify as a "proper" Web Application.  To be a "proper" Web Application in our view, an application should use the standard facilities provided by the Web Browser, and permit the application's users to take advantage of the skills they have acquired in their normal use of their Web Browser. 

An important implication of this is that "proper" Web Applications use HTML to interact with the user.  The dialogue with the user consists of sending him or her HTML documents to which the user can respond, e.g. by following links, filling out forms, etc.  Each user action results in a new HTML document prompting the user for another action.  This goes on until the user decides to stop using the application.

Some Web Applications were born as such, in other cases they come into existence by adding a Web Browser-based user interface to an existing application.  This distinction, however, does not affect the application's status as a "proper" Web Application.

Web Application Advantages

Web Applications are associated with many important advantages:

Web Application Disadvantages

Unfortunately, Web Applications are also associated with a number of disadvantages:

How Web Applications Work

Web Applications are inherently client-server applications - there is always a web client and a web server operating, otherwise we would not call them Web Applications (cf. our definition above).  Web applications, however, are different from traditional client-server applications in a few crucial ways. 

Comparing: Classic Client-Server Architecture

To better understand the nature of Web Applications, it is useful to compare them to the "classic" client-server architecture, as illustrated by the figure below.

Classic client/server architecture

The figure above illustrates how client server applications are usually organized - each user has his own client which maintains a permanent connection to the server which maintains the state of each session by allocating a thread for each client.   The thread embodies the state of the session.  Applications developed using AllFusion Plex look like this - when a client function calls a server function the call itself is transferred using the permanent connection between the client and server, creating - for the duration of the server function call - a client thread in the server.  You might call this approach a client-server paradigm based on function calls.  This is how applications developed using AllFusion Plex work.

Another characteristic of classic client-server applications is that the Application Client is specific to the application, i.e. it was written to operate in that application only.

Comparing: Web Application Architecture

The architecture of Web Applications is somewhat different from that of classic client-server applications.  Fundamentally, they all work by receiving requests made by users accessing the application using a Web Browser, and producing Web files (most often HTML Pages) which represent the answer to the requests received.

The basic architecture is shown below.

Web client/server architecture

The figure illustrates a number of important points about Web Applications:

In a nutshell, Websydian is designed to shield the software developer from the (vast majority of) differences between classic client-server applications and Web Applications.   Unfortunately, it is not possible to completely shield the developer from these differences, but Websydian attempts to do as much as possible.

Web Application Architecture

It is worthwhile to examine the architecture of Web Applications in more detail.

As mentioned in the section about Web Technology, Web Server Software is free to interpret a Web Request any way it wants.  Web Applications are created by developing software that makes such interpretations, and provide appropriate responses.

Web Server Software is inherently generic, so it cannot provide application specific interpretations or responses.  To make Web Applications possible, Web Server Software can be configured to recognize certain Web Requests as pertaining to specific Web Applications, and route the requests to the Web Application in question. 

Interfacing Web Server Software to Web Applications

The routing of Web Requests from the Web Server Software to Web Applications (and the Web Response in the opposite direction) implies the existence of an interface between the two.  The most popular interface is called CGI - Common Gateway Interface.  It is a very simple interface, in which the Web Server Software is required to load and execute a program and encode the Web Request as string values in the execution environment of the process resulting from starting the program.  The Web Response is simply written to the standard output file of the newly created process. The web server software transmits the generated output to the web browser software as HTTP packets, and the process is terminated.

There are other ways to interface to Web Applications, but CGI is the only interface supported by practically every kind of Web Server Software in existence.  Most of the alternative interfaces were created to improve the performance of Web Applications, since the process creation overhead of CGI is quite substantial. 

Alternative interfaces include ISAPI (for interfacing Microsoft's Internet Information Server to Web Applications), and NSAPI (for interfacing Netscape's Web Server Software offerings to Web Applications), and a number of other, less widely used interface technologies.  Most of the alternatives rely on some variant of using Dynamically Loadable Libraries (DLLs) as the underlying interface technology, instead of CGI's high-overhead interface which relies on process creation.

In its initial version Websydian only supports CGI.  But, in time, Websydian will support a wider range of Web Server Software to Web Application interfaces.   However, when support for alternative interface is added, Websydian is designed to incorporate it into existing Websydian applications simply by adding a couple of triples, regenerating and recompiling the entire application.

Web Application Architecture in General

The architecture of various Web applications is quite diverse, so not much can be said in general about the common denominator of their architecture. The hard requirement is that a Web Application is able to retrieve a Web Request and produce a corresponding Web Response using the Web Server Software.

In the early days of the Web, most Web Applications were quite simple, consisting mostly of small programs written in scripting languages.  Not much architecture there.  Today, Web Application developers are much more ambitious, integrating live data from corporate databases into the Web Responses produced by their systems.

Most Web Applications developed today probably belong to the 'fat client' tradition of client-server applications, in which data sources are accessed using an SQL-based interface, which means that most of the processing required to produce a Web Response occurs on the Web Server Host.

Websydian Application Architecture

Applications developed using Websydian are fundamentally like other applications developed using AllFusion Plex, except that the traditional GUI-oriented client is replaced by a GUI-less client which is invoked using CGI.  Instead of opening windows on a computer screen and waiting for the user to produce events, Websydian-generated clients merely retrieve the parameters of the Web Request and call client or server functions depending on certain, Websydian-generated 'dispatcher' values which are always included in the Web Request  - Websydian takes care of that too. The function which handles the request generate a HTML page, which is forwarded to the web user via the web server software.

The architecture of Websydian-based applications is only bound by two things:

  1. The desired functionality must be invokable using a Web Server Software to Web Application interface (limited to CGI at this point in time)
  2. It must be supported by AllFusion Plex.

This leaves a virtually unlimited set of options of functionality.


Web Application Security Proceed with next section Web Application Security.