@InProceedings{Barnes03, title = "occwserv: {A}n occam {W}eb-{S}erver", author= "Barnes, Frederick R. M.", editor= "Broenink, Jan F. and Hilderink, Gerald H.", pages = "251--268", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2003", isbn= "1 58603 381 6", year= "2003", month= "sep", abstract= "This paper presents ‘occwserv’, the occam web-server. This is a highlyconcurrent web-server, written in the occam multi-processing language, that supportsthe majority of the HTTP/1.1 protocol. Dynamic process and channel creation mechanismsare used to create scalable ‘server-farms’, each responsible for a particular webserverfunction - for example, reading client requests or running CGI processes. Thedesign of the web-server is presented, along with some early performance benchmarkresults. Although performance may appear a limiting factor (when compared to otherweb-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 andlargely trivial - with the guarantees that code is free from race-hazard and aliasingerrors. An experimental non-standard addition, the OGI (occam Gateway Interface),is also presented. This provides a mechanism for dynamically loading and attachingpre-compiled occam processes to the running web-server, that can then handle oneor multiple client connections. A text-based style adventure game is examined briefly,that allows multiple clients to interact within a \"multi-user dungeon\" (MUD) styleenvironment." }