Note: the following approach allows one job submission in each request. HTTP Request ------------------------------------------------------------------------------ The client (i.e. the perl program) will POST a multipart message to the web server using some sort of library (maybe HTTP::REQUEST::COMMON ?). The POST message will consist of the following information: a) the name of analysis and tool you want to run; b) the file to run the analysis with; c) optionally, a xml file which specifies the parameters to run the analysis with; (if not provided, the analysis will run with default parameters) d) maybe your email address so we can keep track of users who submit jobs to our portal. Of course, we will provide information on the above (such as list of valid options for a), a guideline of what we consider valid nexus files for b), and a schema for c). Therefore, the POST message will look something like this (the multipart boundary is for illustration purpose only): POST /ws/processreq HTTP 1.1 Content-Type: multiplart/form-data; boundary=---------------------0a12b03f4 Host: [name of our web server] Content-Length: [this depends on your data you are sending] ---------------------0a12b03f4 Content-Disposition: form-data; name="analysis" [name of your analysis] ---------------------0a12b03f4 Content-Disposition: form-data; name="email" [your email address] ---------------------0a12b03f4 Content-Disposition: form-data; name="datafile"; filename="[path to your nexus or philip file]" Content-Type: text/plain [contents of your data file] ---------------------0a12b03f4 Content-Disposition: form-data; name="parameterfile"; filename="[path to your xml parameter file]" Content-Type: text/xml [contents of your parameter file] HTTP Response ------------------------------------------------------------------------------ The web server will send back the following response message which consists of a status and a message field. Currently on the portal when a submission is complete, we send the user by email the URL to retrieve the result files. Is it sufficient to give your the URL in the response message? Some of the scerarios I can thinking of right now are: a) if web server is up, but backend server (i.e. cluster machine) is down: status: SERVICE UNAVAILABLE message: [message telling user to try again later] b) if required information is missing or empty status: INCOMPLETE SUBMISSION message: [state which required field is missing or empty] c) if the submitted data file failed to be validated by our nexus parser: status: INVALID DATA FILE message: [error message why it fails] d) if the requested analysis is invalid: status: INVALID METHOD message: [list of valid methods for the submitted data file] e) if the email address is invalid status: INVALID EMAIL message: [message of email address is invalid] f) if the submitted xml parameter file is invalid status: INVALID PARAMETER FILE message: [mesasge why it fails] g) if job is submitted successfully: status: OK message: [URL to retrieve the list of results files]