School of Computing

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.


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

author = {Fred Barnes},
title = {occwserv: An occam Web-Server},
month = {September},
year = {2003},
pages = {182-196},
keywords = {determinacy analysis, Craig interpolants},
note = {},
doi = {},
url = {},
    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},

School of Computing, University of Kent, Canterbury, Kent, CT2 7NF

Enquiries: +44 (0)1227 824180 or contact us.

Last Updated: 21/03/2014