What is AOLserver

From AOLserver Wiki
Jump to: navigation, search

From the AOLserver Wiki home page:

AOLserver is a high performance web server with a powerful customization API.

From the FAQ:

AOLserver is America Online's Open Source web server. AOLserver is the backbone of the largest and busiest production environments in the world.
AOLserver is a multithreaded, Tcl-enabled, massively-scalable and extensible web server tuned for large scale, dynamic web sites. AOLserver also includes complete database integration and a dynamic page scripting language.

It has been ported to many Unix-derived platforms, as well as to Windows. A list is in the FAQ under "What platforms does AOLserver support?"

Interestingly, some people (like Panoptic - the hosts of this wiki) classify AOLserver not as a "web server" but as an "application server." YMMV. Maybe it's best to classify it as a programming environment for generating dynamic web content under heavy load conditions?

In any case, AOLserver serves HTTP -- web pages -- containing the usual static files as well as ADP (AOLserver Dynamic Pages) containing TCL intermixed with HTML. The parsing and execution of the TCL code occurs "within" the server, rather than being transferred out through a CGI interface to another programming environment. The Apache web server running the mod_perl interface module for Perl scripting is about the closest comparison. The reduced overhead makes for better performance and allows for a higher maximum transaction volume (number of "hits") with the same hardware system.

Eliyahu adds:

All of those fancy words sound very fine and impressive, but what do they really mean? :-)

customization API: an Application Programming Interface allows different software modules ("applications") to exchange data with each other -- AOLserver can be customized
Open Source: the source code of the program is "open" -- freely available to be studied, installed, or modified -- and specifically licensed (by the AOLserver Public License) to prevent it from being converted into "proprietary" software; the Open Source Institute advocates and tries to standardize this licensing approach
multithreaded: different parts ("threads") of the program can be run simultaneously and/or in different orders without getting "tangled" -- important when there are multiple processors in a server cluster and/or long-running pages that need to be repeatedly served
Tcl-enabled: the "native" programming language for dynamic page content is Tcl [1]
[[[Note that modules for other web programming [Languages]] such as PHP, Java, and Perl are also available, or under development]]
massively-scalable: pages which run / are served on a small computer will act the same way when run / served on "large scale" hardware -- if you need to serve LOTS of pages at one time, or with lots of database action talking to multiple servers in a cluster, then AOLserver is good for you
extensible: a well-defined set of interfaces (API's) lets you add new modules to implement new features, and thereby "extend" the server's operation

Category Tutorial