- !read tabletheme 
- The central piece of a wims server is a cgi program, usually in the name of 
- wims.cgi. It takes all the http calls to the server, then does the following 
- work: 
- <ol> 
- <li>Call the module asked by the user, and process parameters and variables 
- according to what is  defined-  in the module .
- </li><li>Session management. 
- </li><li>Send the result of the process to the user. 
- </- li ><- li >- Write to different  log-  files .
 
- </li></ol> 
-   
- <h4> Modules of wims</h4> 
- <p> 
- A wims server is a modular  system,-  with different applications  as-  modules .
- At  each new-  call to wims ,-  the user has to specify which module he want to 
- access. 
- </p><p> 
- A wims module may be an interactive course or interactive exercise (of any 
- level), a computational tool, a dictionary, a mathematical game, a database, 
- or a mixture of the above. 
- </p><p> 
- Wims modules are independent from  each-  other . Each-  module has its own 
- directory, which serves as its address, and contains all the files of this 
- module. Different modules have different authors and different maintainers, 
- and may follow different copyright policies. 
- </p><p> 
- There is no relation between modules in a same wims site, except hypertext 
- links which allows one module to access another in various ways. 
- </p> 
- <h4>How to access a wims server</h4> 
-   
- Wims is accessed by a request to the main cgi program, for example 
- <pre> 
- http://wims.unice.fr/wims/wims.cgi 
- </pre> 
- <p> 
- which usually should be followed by parameters. A call to the main wims.cgi 
- program without parameter will bring up the wims homepage of the site. 
- </p><p> 
- Parameters of wims.cgi is a usual http $emph name=value$emphend pair, where the 
- $emph name$emphend field may be one of the following: 
- </p> 
- <ul> 
- <li><span class="wims_emph">cmd</span>: the value is the command of the call. 
- Valid commands: 
- $table_header 
- $table_tr<th>Parameter string</th><th>Meaning</th></tr> 
- $table_tr<td>cmd=intro</td><td>get introduction page of the module</td></tr> 
- $table_tr<td>cmd=new</td><td>open new working session</td></tr> 
- $table_tr<td>cmd=renew</td><td>restart working session</td></tr> 
- $table_tr<td>cmd=reply</td><td>send reply to the module</td></tr> 
- $table_tr<- td >- cmd =- next </- td ><- td >- get  next-  exercise  (- in a working session )</- td ></- tr >
 
- $table_tr<td>cmd=config</td><td>set preferences</td></tr> 
- $table_tr<td>cmd=help</td><td>get contextual help</td></tr> 
- $table_tr<td>cmd=hint</td><td>get contextual hint</td></tr> 
- $table_tr<td>cmd=resume</td><td>resume work (e.g. after help)</td></tr> 
- $table_tr<td>cmd=getins</td><td>get dynamic insertions: internal use<br/> 
- by the server. Not to be used by modules.</td></tr> 
- </table> 
- </li><li><span class="wims_emph">module</span>. the value is the name of the module 
- which the user wants to access. <br/> 
- </- li ><- li ><- span  class="wims_emph">- session </- span >:-  the value is the number of the  current
 
- session of the user. <br/> 
- The session number is automatically generated by wims.cgi, and is usually 
- automatically contained in the pages sent by the server. Tampering with this 
- parameter by the user (e.g. in order to spy into others' work) is not 
- allowed and has practically no chance to get through. 
- </li><li><span class="wims_emph">lang</span>: the value defines the prefered language 
- of the user. 
- </li><li><span class="wims_emph">user</span>: the value is the user name (for 
- registered users; reserved for internal use). 
- </li><li><span class="wims_emph">useropts</span>: the value contains user options for the 
- server. The format is coded and may varie from version to version. 
- </li><li><span class="wims_emph">worksheet</span>: reserved for internal use, for 
- determining user works assigned by worksheets. 
- </li><li><span class="wims_emph">special_parm</span>: this parameter is reserved for 
- special requests (help, etc). 
- </li><li>Any variables accepted by the module on which the user is working on (or 
- wants to work on). 
- </li></ul> 
-   
- Example: 
- <pre> 
- http://wims.unice.fr/~wims/wims.cgi?cmd=new&+module=tool/algebra/factor.en 
- </pre> 
- calls the wims server at wims.unice.fr, with `new' as the value of `cmd', 
- `tool/algebra/factor.en' as the module name. 
-   
-   
- <h4>How to use the supervisor-side interface</h4> 
-   
- Supervisors of registered classes can maintain their classes and consult 
- results of students via the same web address (the main cgi program), just 
- by logging in as supervisor. All the options are then available via html 
- links and buttons. 
-