WASD Hypertext Services - Technical Overview

[next] [previous] [contents]

2 - HyperText Transport Protocol Daemon - Overview

The most fundamental component of the WASD VMS Hypertext Services environment is the HTTPd, or HyperText Protocol Transport Daemon, or HTTP server. It provides full multi-threaded support. VMS ASTs (Asynchronous System Traps) are used to construct an I/O event-driven server.

It provides a complete implementation of a basic HTTP/1.0 server, including:

It executes permanently on the server host, listening for client connection requests on TCP/IP port 80 (by default). It provides concurrent services for a (technically) unlimitted number of clients (constrained only by the server resources). When a client connects HTTPd performs the following functions:

  1. creates a thread for this request
  2. reads and analyzes the HTTP request sent,
    depending on the nature of the request ...
  3. closes the connection to the client and disposes of the thread data structures

For I/O intensive activities like file transfer and directory listing, the AST-driven code provides an efficient, multi-threaded environment for the concurrent serving of multiple clients.

For scripts, the technique of using multi-threaded, concurrent, spawned subprocesses, attached to standard input/output streams, provides a versatile, extensible, powerful scripting environment. Any DCL procedure or image executing within the subprocess can behave as an HTTP server. This capability is employed to easily extend the basic services provided by the core daemon code. An HTTP script/server for this environment does not need to concern itself with network activities, it merely reads and writes from the standard I/O streams.

2.1 - TCP/IP Packages

The WASD server supports Digital TCP/IP Services (UCX) with a native image.

Using the excellent freeware NETLIB package from MadGoat Software (Matthew Madison), this server can also (potentially) support

NETLIB requires VAX/VMS v5.2 or later, or OpenVMS Alpha v1.5 or later.

NETLIB must be obtained and installed separately. This is not a difficult undertaking for there is an excellent VMSINSTAL-driven installation and configuration.

The WASD NETLIB support was developed using v2.1, which may be obtained from

http://www.madgoat.com/netlib.html

ftp://ftp.madgoat.com/madgoat/

NETLIB support within the WASD server is tested in-house using the Digital TCP/IP Services package. Other TCP/IP packages may or may not perform as tested.


[next] [previous] [contents]