The Internet today has a phenomenal reach---right into the homes of a vast audience worldwide. Some organisations (and individuals) see this medium as a good opportunity for extending the reach of their computer systems.

The Internet is the carrier of the world wide web (or the web, for short). The web was conceived as a hyper-linked network of information which is embedded in documents using a simple document format that is easily editable and viewable on many different platforms. Since then the web has matured and enjoys overwhelming success, often playing host to many unanticipated uses (and, it could be argued, abuses).

From a purely technological point of view, "the web" is made possible by several software components: browsers, web servers, proxies, caches, etcetera. These software components are implemented on many different platforms and work together well because they are all orchestrated (to varying degrees) by several standards. The most prominent of these are HTTP and HTML (or its newer XML-based descendents).

Part of what makes the web as we know it so successful today, is the fact that all the necessary software components playing a role in this "orchestration" are installed and available on almost any platform imaginable. Novice users do not even have to go through the minor irritation of having to install a piece of software. It's all there and it all works together well, regardless of the platform or vendors involved.

The web can thus be said to have an enormous installed base - something very few other software systems can claim. This enabling infrastructure is an enormous asset.

Web applications represent opportunistic attempts to exploit the large, standardised installed base of the web in our heterogeneous Internet for the purpose of delivering the user interfaces of systems to the wide audience made possible by the Internet.

Developing such a web-based user interface can be quite tedious---a web-based user interface is a concurrent, distributed program which has to run in a hostile environment. Furthermore, the platform on which it is implemented (the web) was not originally intended for such usage, making it a cumbersome medium for the implementation of a user interface (UI).

A web framework is an architectural framework which provides its users with support for developing and executing such web-based user interfaces.

A web framework usually consists of software components that can be used to ease the task of building and executing such web-based UIs. (Note the term "web framework" used here, instead of "web application framework". This is deliberate. We want to keep the focus on the web-related parts of a web application. And those all have to do with presenting a user interface remotely. Other concerns in the design of an application are more generic and outside the scope of the web framework map.)

A web application, as defined here, is not the only way of achieving the goal of extending a computer system's reach to the use of an Internet audience. OtherApproaches exist, with somewhat different benefits and limitations.

WebApplicationBackground (last edited 2006-01-23 08:08:38 by IwanVosloo)