= 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 single job is described by
{{{
[C]
[URL or path]
... other input files
}}}
C and F are macro-substituted for sweep variables: see below.
Each input file is specified by either a URL accessible to the server,
or by a path on the server.
A parameter sweep is described by
{{{
[...] or [...]
}}}
In the body of the sweep,
the string "foo" is macro-substituted with values from x to y with increment z.
Sweeps may be nested.
A batch of jobs is described by:
{{{
appname
[x]
[x]
[...] or [...]
}}}
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:
{{{
}}}
== Implementation notes ==