= Web services for remote job submission = This document describes remote interfaces for remotely submitting jobs and batches of jobs to a BOINC server. The APIs are accessed by sending a POST request, using HTTPS, to PROJECT_URL/job_control.php The inputs and outputs of each API are XML documents. If an operation fails, the output is of the form {{{ X }}} where X is an error message. All operations include the authenticator of the user making the request. This user must be marked as a "job submitter" in the BOINC database. == Describing a batch == A job is described by {{{ [C] [URL or path] ... other input files }}} Each input file is specified by either a URL accessible to the server, or by a path on the server. A batch of jobs is described by: {{{ appname [x] [x] ... ... more jobs }}} The names of the input and output template files may be specified; otherwise the defaults '''appname_in''' and '''appname_out''' are used. == Batch runtime estimation == Estimates the completion time of a batch. Input: {{{ X ... [N] }}} '''Priority''', if specified, is relative to other batches submitted by this user. Output: {{{ X }}} == Submitting a batch == Input: {{{ X ... [N] }}} Output: {{{ N }}} == Querying jobs == The jobs in a batch are numbered starting from 0. The name of a job is '''batch_ID_N''' where ID is the batch ID and N is the number of the job. Input: {{{ X X }}} Output: {{{ or or N M X X ... other instances }}} == Querying batches == Input: {{{ X N }}} Output: {{{ X N X }}} == Aborting jobs == Input: {{{ X N }}} Output: {{{ }}} == Example usage == PHP: {{{ $ch = curl_init("http://project.edu/job_control.php"); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURL_POSTFIELDS, " myappname --t ALPHA "); $reply = curl_exec($ch); $r = new SimpleXMLElement($reply); curl_close($ch); if ($r->estimate) { echo "Estimate: $r->estimate->seconds seconds\n"; } else { echo "Error: $r->error->message\n"; } == Implementation notes ==