© 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}, }