© University of Kent - Contact | Feedback | Legal | FOI | Cookies
occwserv: An occam web-server
Fred Barnes
In J.F. Broenink and G.H. Hilderink, editors, Communicating Process Architectures 2003, volume 61 of Concurrent Systems Engineering Series, pages 182-196, Amsterdam, The Netherlands, September 2003. IOS Press.Abstract
This paper presents `occwserv', the occam web-server. This is a highly concurrent web-server, written in the occam multi-processing language, that supports the majority of the HTTP/1.1 protocol. Dynamic process and channel creation mechanisms are used to create scalable `server-farms', each responsible for a particular web-server function -- for example, reading client requests or running CGI processes. The design of the web-server is presented, along with some early performance benchmark results.
Although performance may appear a limiting factor (when compared to other web-servers such as Apache), much is gained from the simplicity and security of occam. Extending the web-server with new functionality, for example, is intuitive and largely trivial -- with the guarantees that code is free from race-hazard and aliasing errors.
An experimental non-standard addition, the OGI (occam Gateway Interface), is also presented. This provides a mechanism for dynamically loading and attaching pre-compiled occam processes to the running web-server, that can then handle one or multiple client connections. A text-based style adventure game is examined briefly, that allows multiple clients to interact within a `multi-user dungeon' (MUD) style environment.
Download publication 342 kbytes (PostScript)
Bibtex Record
@inproceedings{1720,
author = {Fred Barnes},
title = {occwserv: An occam Web-Server},
month = {September},
year = {2003},
pages = {182-196},
keywords = {determinacy analysis, Craig interpolants},
note = {},
doi = {},
url = {http://www.cs.kent.ac.uk/pubs/2003/1720},
publication_type = {inproceedings},
submission_id = {16280_1064495808},
ISBN = {1-58603-381-6},
booktitle = {Communicating Process Architectures 2003},
editor = {J.F. Broenink and G.H. Hilderink},
volume = {61},
series = {Concurrent Systems Engineering Series},
address = {Amsterdam, The Netherlands},
publisher = {IOS Press},
ISSN = {1383-7575},
refereed = {yes},
}