boinc/doc/backend.html

100 lines
3.0 KiB
HTML

<title>The components of a project back end</title>
<h2>The components of a project back end</h2>
<p>
The <b>back end</b> of a BOINC project consists
of a number of components that together are responsible
for generating work and handling results.
Some of these components are supplied by BOINC;
other parts are project- or application-specific:
<br>
<img vspace=10 src=backend.png>
<br>
<p>
<table border=1 cellpadding=8>
<tr>
<th>Component</th>
<th>BOINC-supplied part</th>
<th>project-supplied part</th>
</tr>
<tr>
<td valign=top>
<b>Work generator</b>: generates work units, work sequences, results,
and the corresponding input files.
</td>
<td valign=top>
Functions and programs that handle the details of
creating workunit, work sequence, and result database records.
</td>
<td valign=top>
Programs or scripts that generate input files,
install them on data servers,
and call the BOINC functions.
</td></tr>
<tr>
<td valign=top><b>Result retry generator</b>:
generates additional results if some of those initially sent are lost
not completed, or completed erroneously.</td>
<td valign=top>A program, <b>result_retry</b>, that does the job.</td>
<td valign=top>Some parameters used by result_retry.</td>
</tr>
<tr>
<td valign=top><b>Result validation and accounting</b>:
compare redundant results; select a <b>canonical result</b>
representing the correct output,
and a <b>canonical credit</b> granted to users and hosts
that return the correct output.</td>
<td valign=top>A program, <b>validate</b>, that contains the
basic logic for validation.</td>
<td valign=top>An application-specific function, linked with <b>validate</b>,
that compares sets of redundant results.</td>
</tr>
<tr>
<td valign=top><b>Assimilator</b>: parse output files of
completed results, and take appropriate action
(record results in a database, and/or generate more work)</td>
<td valign=top>
A main program that enumerates unassimilated workunits
and updates the database.
</td>
<td valign=top>
A function that assimilates a workunit,
either by processing its canonical result
or handling an error return.
</td>
</tr>
<tr>
<td valign=top><b>File deleter</b>: delete input and output files
when they are no longer needed.</td>
<td valign=top>A program, <b>file_deleter</b>, that does the job.</td>
<td valign=top>None.</td>
</tr>
</table>
<p>
Project that use work sequences will need two additional processes:
<p>
<table border=1 cellpadding=8>
<tr>
<th>Component</th>
<th>BOINC-supplied part</th>
<th>project-supplied part</th>
</tr>
<tr>
<td valign=top><b>Work sequence relocater</b>:
detects work sequences whose hosts have failed,
and relocates them to other hosts.</td>
<td valign=top>A program <b>seq_relocate</b></td>
<td valign=top>Some parameters used by seq_relocate</td>
</tr>
<tr>
<td valign=top><b>Work sequence validation and accounting</b>:
Similar to result validation, but for work sequences.
</td>
<td valign=top>A program <b>seq_validate</b></td>
<td valign=top>An application-specific function,
linked with <b>seq_validate</b>, that compares sets of redundant results.</td>
</tr>
</table>