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.