|webwork uses/san diego discuss topic||topic started 12/20/2001; 1:31:03 PM
last post 1/4/2002; 4:05:27 PM
|Michael Gage - Re: webwork uses/san diego discuss topic
1/4/2002; 4:05:27 PM (reads: 1221, responses: 0)
I agree that separating the components of WeBWorK is an important next step in its development. Here is what I have done for separating out the component that renders the problem (and also grades it). I have set this component up as a stand alone server which responds to an XML-RPC request. The request sends the essential data for the problem and the response is an XML form, the majority of which is the HTML text for presenting the problem, plus information on the correctness of the answers submitted (if any), the grade on the problem, and the current problem_state.
Using XML, over HTTP protocol is not the fastest way to communicate between subprograms, but it is very flexible, and demonstrates that the programs really are operating independently. If speed becomes important the communication protocol could be modified to speed things up.
Actually I have a couple of versions of the server -- some work through apache, some are stand alone, some cache certain kinds of data, etc. They are all in alpha stages and the communication protocol is not fixed in stone. There is also still alot of work to do in testing which of the server designs is most useful in terms of flexibility and speed.
I have also built several client front ends for this server. One of them is illustrated by the library problem page: http://webhost.math.rochester.edu/webworkdocs/ww/listLib?command=setsOnly which also uses a few other routines provided by the server.
This is an HTML client for the server. To include access to one of the library problems in the webpage you could write:
If the browser supports includes, you could even include the problem in the webpage itself.
I've also designed a plug-in tool for Radio Userland which runs on PC's and MAC's and has the most flexible interface so far for dealing with the server. It is also alpha software, but let me know if you want a copy. (You'll need to download Radio Userland, which is currently free.) I haven't yet had time to build clients for other platforms and languages, but once one of these clients is properly designed, the rest should not be too hard.
I'll post more details of the current version of the XML interface in a separate posting to the discussion bulletin board.
See you in San Diego.