BOINCクライアント-サーバ技術
バリデーターは、少なくとも一部の結果が有効であると判断した場合、ワークユニットと有効な結果にマークを付け、正当な結果を返したユーザーにはクレジットが付与され、「正規の結果」が選択される。バリデーターがどの結果が有効なのか判断できない場合や、すべての結果を無効であると宣言した場合は、新しい結果を生成して、バリデーターがどの結果が有効なのか判断できるようになるまで、このサイクルを繰り返すことができる。
次に、アシミレーター(assimilator)デーモンが、プロジェクト固有のコードを使用して、正規の結果を処理する。たとえば、ファイルを解析してデータベースに情報を保存するプロジェクトもあれば、ファイルを別の場所にコピーするだけのプロジェクトもある。また、アシミレーターは、返されたデータに基づいて、より多くのワークユニットを生成することもできる。
ファイル_デリーター(file_deleter)デーモンは、アシミレーターが処理した後の出力ファイルを削除したり、不要になった入力ファイルを削除する。
トランジショナー(transitioner)デーモンは、ワークユニットと結果の状態遷移を処理する。また、ワークユニットが最初に作成されたときや、さらに必要なときに(たとえば、結果が無効であることが判明した場合)、ワークユニットから結果を生成する。
クライアント上のBOINCは、いくつかの独立したアプリケーションで構造化されている。これらはBOINCリモート・プロシージャ・コール(RPC)メカニズムを使用して相互に通信する。
これらのコンポーネントアプリケーションは次のとおり。
プログラム boinc (または boinc.exe )はコア・クライアントである。
コア・クライアントは、次のようなプロセスである。 クライアントとサーバ間の通信を行う。 コア・クライアントは、科学アプリケーションのダウンロード、統一されたロギング・メカニズムの提供、科学アプリケーションのバイナリが最新であることの確認、科学アプリケーション間でCPUリソースをスケジューリングする(複数インストールされている場合)。 コア・クライアントは新しい科学アプリケーションをダウンロードすることができるが、それ自体はアップデートしない。BOINCの開発者は、自動更新は許容できないセキュリティ上のリスクが生じるだけでなく、コンピュータにおける自動更新手順が持つあらゆるリスクが発生すると考えた。 Unixでは、コア・クライアントは通常はデーモンとして実行される(場合によってはcronジョブとして)。 Windowsでは、BOINCは当初、Windowsサービスではなく、普通のアプリケーションであった。BOINC Client for Windowsバージョン5.2.13以降では、インストール時に「サービスのインストール」というオプションが追加される。
BOINCクライアントソフトウェアのインストール方法に応じて、デーモンのようにバックグラウンドで動作することも、個々のユーザーがログインしたときに開始することもできる(ユーザーがログアウトすると停止する)。コア・クライアントが提供するソフトウェアのバージョン管理やワークユニット処理により、科学アプリケーションのコーディングが大幅に簡素化される。
1つまたは複数の科学アプリケーション。科学アプリケーションは、科学的な計算の中核を担う。BOINCフレームワークを利用した分散計算プロジェクトごとに特定の科学アプリケーションがある。科学アプリケーションは、BOINCデーモンを使用して、ワークユニットをアップロードやダウンロードし、サーバと統計情報を交換する。
boincmgr (または boincmgr.exe )は、リモート・プロシージャ・コールを使用してコア・アプリケーションと通信するGUIである。デフォルトでは、コア・クライアントは同じコンピュータからの接続しか許可しないが、他のコンピュータからの接続を許可するように構成することができる(オプションでパスワード認証を使用できる)。このメカニズムにより、一人のユーザーが単一のワークステーションからBOINCインストールのファームを管理できる。RPCメカニズムを使用することの欠点は、ハッカーが標的のコンピューターに侵入するための経路となる可能性があるため、しばしばセキュリティリスクがあると感じられることである(同じコンピューターからの接続に構成されている場合でも)。