Skip to main content navigation
parent site logoSite logo

Projects archive / EMHTTPD

Author:Ashley Ward
Type:model, software
Funding:PhD - PhD thesis
Short description:Definitive web server
EM Technologies:tkeden, %eden
Keywords:tool, editor
empublic references:projecttimetableBeynon1996
EMpress references:
Web site references:
Previous locations:~ashley/PhD/Tkeden/Expts/EMHTTPD, ~ashley/PhD/Tkeden/Expts/EMHTTPDTT, ~ashley/Open/EMHTTPD, ~ashley/Open/EMHTTPDTT

This project was the result of some thought into alternative interfaces to the project oral
timetabling model, which was proving problematic to implement in tkeden due to the need for
many similar Scout boxes. HTML can render tables and an entire basic interface can be described
in an HTML file, so the idea was to try and provide a web interface to the timetable. Soha Maad
made an early version, but in that version, copy and paste work was required by a human at the
server in order to get Eden to give output to a web browser.
tkeden includes a tcl interpreter and various tk widgets for its user interface. Tcl includes various
socket functions which can be used to implement a web server at the basic HTTP level. I looked
and found mini1.1.tcl, which is a basic HTTP server written in Tcl, and figured out how to integrate
that with some Eden code.
The basic project is quite functional. I ran into some worries about state update: when a form is
submitted to the server, only the values are provided, some of which are new, some are old.
Semantically there is no way to tell which values the web browser user wanted set (perhaps to the
old value), which changed, and which left alone. This problem can be helped slightly by sending
the original form values in the form as hidden data.
There is a version of the server (previously named EMHTTPTT) in the Timetable sub directory which
was some initial experimentation into applying this idea to the timetabling model.
One (of many) idea for a possible extension would be to use the HTTP facility to leave the
connection open to the web client and send another page down when the state has changed,
meaning the state shown in the web browser is always up to date. Unfortunately when this new
state is sent, any changes the user is currently making are lost. Another idea would be to extend
ttyeden with some socket functions and reimplement the web server in Eden, so tcl is not required
(and the result can be run on a headless server).

emhttpdWard1999 is available locally within DCS at /dcs/emp/empublic/projects/emhttpdWard1999
Download emhttpdWard1999.tar.gz
Uncompressed, emhttpdWard1999 is 425.8 Kbytes (in 29 files).
Your download will be smaller as it will be compressed.
Help on extracting the files from the download.
README 2856 01:46 PM Oct 27 2003 12:19 PM Jul 27 2017
README.xml 2868 08:54 PM Nov 03 2003 12:19 PM Jul 27 2017
README.xml~ 2750 02:15 PM Oct 27 2003 12:19 PM Jul 27 2017
Run.e 60 01:59 PM Sep 08 1999 12:19 PM Jul 27 2017
brainstorm 4800 01:48 AM Sep 27 1999 12:19 PM Jul 27 2017
how 7983 04:58 PM Sep 15 1999 12:19 PM Jul 27 2017
httpdsupport.e 1498 08:42 PM Sep 13 1999 12:19 PM Jul 27 2017
mini1.1.tcl 13192 09:34 PM Sep 13 1999 12:19 PM Jul 27 2017
screenshot.gif 36348 01:49 PM Oct 27 2003 12:19 PM Jul 27 2017
tclhttpd2.2.1.tar.gz 306413 05:20 PM Sep 06 1999 12:19 PM Jul 27 2017
Timetable/ 4096 01:41 PM Oct 27 2003 12:19 PM Jul 27 2017
public_html/ 4096 08:12 PM Nov 23 1999 12:19 PM Jul 27 2017

empublic system initially created by Ashley Ward with assistance from Chris Roe and Meurig Beynon.