Platforms, applications, and versions

A platform is a compilation target (Windows/Intel, Linux/Intel, MacOS/PPC, etc.). Platforms are maintained in the platform table in the BOINC DB, and can be created using the add utility program.

An application is a computational task; in concrete terms it consists of an executable program (perhaps in versions for various platforms) and a set of input files to be processed by the program. A project can operate many applications. Applications are maintained in the application table in the BOINC DB, and can be created using the add utility.

An application program may go through a sequence of versions. A particular version, compiled for a particular platform, is called an application version. An application version can consist of multiple files: for example, a controller script, pre- and post-processing programs, and a primary.

Application version are maintained in the app_version table in the BOINC DB, Each entry includes an XML document describing the files that make up the application version:

<file_info> ... </file_info>
[ ... ]
<app_version>
    <app_name>foobar</app_name>
    <version_num>4</version_num>
    <file_ref>
        <file_name>program_1</file_name>
        <main_program/>
    </file_ref>
    <file_ref>
        <file_name>library_12</file_name>
    </file_ref>
</app_version>
The add utility program provides a simplified interface for creating application versions.