28.06.2013 Views

Papers in PDF format

Papers in PDF format

Papers in PDF format

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

The server is responsible for receiv<strong>in</strong>g the html form conta<strong>in</strong><strong>in</strong>g the document, pars<strong>in</strong>g it, pass<strong>in</strong>g the<br />

document to ASTER and then return<strong>in</strong>g ASTER's output back to the client. The server we are us<strong>in</strong>g is an httpd<br />

server <strong>in</strong>stalled on the Rensselaer computer science network. It is runn<strong>in</strong>g on ``Juicer'', one of the more<br />

powerful mach<strong>in</strong>es at RPI (a Sparc 20 with 256 MBytes of ma<strong>in</strong> memory and 503 MBytes of virtual memory).<br />

This httpd server provides ready access to clients connected to the World Wide Web through browser<br />

applications that use the http protocol, e.g., Netscape and W3. This server allows the system adm<strong>in</strong>istrator to<br />

set different permissions for different users and to set restrictions such as bandwidth limitations. Most<br />

importantly, this server has the capability to execute scripts on the local mach<strong>in</strong>e.<br />

The httpd server is configured to handle scripts written <strong>in</strong> BASH as well as some executables written <strong>in</strong> Lisp, C<br />

and Perl. BASH is used because it has better program control transfer capabilities and because some system<br />

variables can be def<strong>in</strong>ed <strong>in</strong>ternally <strong>in</strong> BASH, whereas they must be def<strong>in</strong>ed externally <strong>in</strong> some other shells.<br />

For security, the server can only execute scripts kept <strong>in</strong> a special directory. Any paths and l<strong>in</strong>ks used by these<br />

scripts must be given relative to this directory. This is important because several programs have to be called <strong>in</strong><br />

order to execute ASTER.<br />

The first script takes the <strong>in</strong>com<strong>in</strong>g html form and passes it to a parser written <strong>in</strong> Perl. The purpose of this<br />

parser is to strip out of the form just the relevant document. The parser reads the contents of the form, checks<br />

for any errors, and if all goes well, writes the TeX document to a file called ``/tmp/temp-msk''.<br />

The next stage <strong>in</strong> the script sequence is to execute ASTER. ASTER is run directly from a memory image<br />

without the emacs <strong>in</strong>terface. Usually the emacs <strong>in</strong>terface is used to pass the document to ASTER. However, we<br />

used a function of ASTER which retrieves the document directly from a file so that it can be run without<br />

emacs. The <strong>in</strong>put file is ``/tmp/temp-msk'' which was created by the previous pars<strong>in</strong>g step. ASTER takes this<br />

<strong>in</strong>put TeX file and returns a set of DECtalk commands that can be sent to the voice synthesizer to produce<br />

speech output. Normally DECtalk commands are mixtures of the words to be spoken along with commands to<br />

change pitch, speak<strong>in</strong>g rate and other voice parameters. These commands are saved <strong>in</strong> another file.<br />

The third stage <strong>in</strong> the script sequence is to return the output DECtalk commands to the client. To do this, we<br />

def<strong>in</strong>e a new MIME type for ASTER. This MIME type allows the client to accept the DECtalk commands and<br />

redirect them via the serial port to the hardware voice synthesizer.<br />

S<strong>in</strong>ce the Lisp processes take some time to complete execution, depend<strong>in</strong>g on the document length and<br />

complexity and the server load, it is necessary to advise the client that his/her request is be<strong>in</strong>g processed. For<br />

the sighted user under X-W<strong>in</strong>dows, we created a special widget which ``pops-up'' whenever the client sends a<br />

request to be processed and advises the user that his request is be<strong>in</strong>g processed.<br />

A special ``lock'' mechanism has also been <strong>in</strong>corporated <strong>in</strong>to the server. This allows the system adm<strong>in</strong>istrator<br />

to ``lock-up'' the server when it is <strong>in</strong> use so that many people will not be us<strong>in</strong>g it at the same time. This is<br />

needed because the data <strong>in</strong>put and output files that are created would get overwritten if another user <strong>in</strong>put his<br />

file. The server can easily be modified to allow several users to access ASTER at once. In this case, the <strong>in</strong>put<br />

data files would simply be given a unique filename based, for example, on the pid of the <strong>in</strong>dividual process<br />

handl<strong>in</strong>g a specific user. However, this has not been done <strong>in</strong> the current setup, s<strong>in</strong>ce our server is not runn<strong>in</strong>g<br />

on a dedicated computer and this would take up too much memory and CPU process<strong>in</strong>g time. Runn<strong>in</strong>g<br />

multiple Lisp sessions will only be suitable when a mach<strong>in</strong>e is dedicated entirely as an ASTER server. The<br />

other possibility is to have a s<strong>in</strong>gle ASTER runn<strong>in</strong>g that takes the <strong>in</strong>put from multiple users simultaneously.<br />

We are currently work<strong>in</strong>g on this design.<br />

Also it would be useful to ma<strong>in</strong>ta<strong>in</strong> on the server a persistent data-base of ``books'' that the client could read.<br />

The user would then select from a list of books to read or browse. These books, which would have already been<br />

processed by ASTER, could be quickly returned to the client, enabl<strong>in</strong>g faster response times for the client and<br />

lower overhead for the server.<br />

The Web based server has been tested by users from DEC Cambridge Research Laboratory, Record<strong>in</strong>gs for the<br />

Bl<strong>in</strong>d, Rensselaer Polytechnic Institute and Oregon State University. The ma<strong>in</strong> drawback is the long response<br />

time, which is partly due to the load on the network and partly due to the load on the server.<br />

Telnet Interface

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!