The components of a project back end

The back end of a BOINC project consists of a number of components that together are responsible for generating work and absorbing the results. Some of these components are supplied by BOINC; other parts are project- or application-specific:

Component BOINC-supplied part project-supplied part
Work generator: generates work units and their input files, and generates one or more results per work unit. Functions and programs that handle the details of creating workunit and result database records. Programs or scripts that generate input files, install them on data servers, and call the BOINC functions.
Result retry generator: generates additional results if some of those initially sent are lost. A program, result_retry, that does the job. Some parameters used by result_retry.
Result validation and accounting: compare redundant results; select a canonical result representing the correct output, and a canonical credit granted to users and hosts that return the correct output. A program, validate, that contains the basic logic for validation. An application-specific function, linked with validate, that compares sets of redundant results.
Result processing: parse output files of completed results, and take appropriate action (record results in a database, and/or generate more work) Function for enumerating unprocessed results. The rest.
Garbage collector: delete input and output files when they are no longer needed. A program, garbage_collect, that does the job. None.