以下は下記原文 2004/06/12(JST)時点 の検証無し翻訳です。 原文は University of California より GFDL で配付されており、
この翻訳も GFDL に従います。
原文: The BOINC scheduling server protocol
 
 
最終更新時刻 2006/03/01 01時11分 JST

BOINC スケジューリング・サーバのプロトコル

boinc.gif
Last modified 7:09 PM UTC, June 09 2004

プロトコルの核心

コア・クライアントはスケジューリング・サーバと HTTP で通信します。 以下に示すのはプロトコルの「核心」部分であり、変化しないものと考えるべきです。 これによって、どんな版のコア・クライアントでも、 どの版のスケジューリング・サーバとでも会話ができるようになります。 さらに、スケジューリング・サーバは、必要に応じて、 そのクライアントがすでに期限切れのものだ、とそのクライアント自身へ 伝えることもできます。 [核心部分の]要求の形は以下の例のとおりです:

<scheduler_request>
    <platform>intel-linux</platform>
    <core_client_major_version>1</core_client_major_version>
    <core_client_minor_version>1</core_client_minor_version>
    ... other elements
</scheduler_request>
この中で、'platform' と version number 訳注1 要素が、この要求を出したコア・クライアントの版を示しています。

応答の形は、以下の例のとおりです:

<scheduler_reply>
    [ <message priority='low'> arbitrary text </message> ... ]
    [ <request_delay>3600</request_delay> ]
    [ <redirect>URL</redirect> ]
    ... other elements
</scheduler_reply>

message 要素のそれぞれは、各参加者へのメッセージです。

応答メッセージは、複数の message 要素を含むことができます。

request_delay 要素は、クライアントに対し、 指定した秒数がたつまでは次の要求を出すな、と指示します。

redirect 要素は、 このプロジェクト用のスケジューリング・サーバ の URL を運びます。 もしこれが含まれていたら、コア・クライアントはこのプロジェクトに関して 保持しているスケジューリング・サーバ一覧を、置き換えるべきです。 応答は、複数の redirect 要素を含むことができます。

拡張可能なプロトコル

残りの部分のプロトコルは、時間がたつにつれて進化するでしょう。 要求メッセージには以下の例にある要素を含みます。

<prefs_mod_time>0</prefs_mod_time>
<authenticator>3f7b90793a0175ad0bda68684e8bd136</authenticator>
<hostid>1</hostid>
<work_req_seconds>1000</work_req_seconds>
<host_info>
    <timezone>28800</timezone>
    <domain_name>localhost.localdomain</domain_name>
    <ip_addr>127.0.0.1</ip_addr>
    <conn_frac>0.000000</conn_frac>
    <on_frac>0.000000</on_frac>
    <p_ncpus>1</p_ncpus>
    <p_vendor>GenuineIntel</p_vendor>
    <p_model>Pentium</p_model>
    <p_fpops>0.000000</p_fpops>
    <p_iops>0.000000</p_iops>
    <p_membw>0.000000</p_membw>
    <p_calculated>0.000000</p_calculated>
    <os_name>Linux</os_name>
    <os_version>2.2.14-5.0</os_version>
    <m_nbytes>197427200.000000</m_nbytes>
    <m_cache>131072.000000</m_cache>
    <m_swap>178012160.000000</m_swap>
    <d_total>22108344320.000000</d_total>
    <d_free>18332545024.000000</d_free>
    <n_bwup>0.000000</n_bwup>
    <n_bwdown>0.000000</n_bwdown>
</host_info>
<result>
    <name>uc_wu_0</name>
    <client_state>4</client_state>
    <final_cpu_time>0.020000</final_cpu_time>
    <stderr_out>
    The following fields are used to report errors to the server, They
    are not present if there is no error while downloading, computing
    or uploading files for this result.
    [ <message> some text describing the error </message>]   ]
    The state of the active_task assigned to compute this result at
    the time of the error
    [ <active_task_state>0</active_task_state> ]
    The exit_status of the application running the computation for the result
    [ <exit_status>0</exit_status> ]
    The signal raised by the application if any.
    [ <signal>0</signal> ]
    If the error corresponds to downloading input files for the
    work_unit for this result, then:
    <download_error>
        <file_name>input</file_name>
	<error_code>-114</error_code>
    </download_error>
    If the error corresponds to uploading outfiles for this results
    then:
    <upload_error>
        <file_name>output</file_name>
	<error_code>-114</error_code>
    </upload_error>
    the std_err output of the application, if any, goes here.
    </stderr_out> 
    <file_info>
        <file_name>uc_wu_0_0</file_name>
        <md5_cksum>3f7b90793a0175ad0bda68684e8bd136</md5_cksum>
	<nbytes>54691.0000000</nbytes>
	<max_nbytes>1000000.00000</max_nbytes>
	<url>http://localhost/hamid_cgi/test/file_upload_handler</url>
    </file_info>
</result>

応答メッセージには以下の例にある要素を含みます。

<request_delay>10</request_delay>
<message priority='low'>no work available</message>
<code_sign_key>
    1024
    ec8b7f60fa494ce65d70afa98f91f2ab08fb5fac3931a27524e0eb954d587846
    29e94ce79d61f4d4bc4f9660578a06e941ca271646f11ef4d2be67f4a155e0a9
    9908b6c814d08f0f59e9dc85afcc9d65f89a33d329d963e3fd359351ee25ca7f
    71c3bd49a88ae609152559984b3fd7cdc4937d416a43c3357a59e7ed6cf3d30d
    0000000000000000000000000000000000000000000000000000000000000000
    0000000000000000000000000000000000000000000000000000000000000000
    0000000000000000000000000000000000000000000000000000000000000000
    0000000000000000000000000000000000000000000000000000000000010001
    .
</code_sign_key>
<prefs_mod_time>123123</prefs_mod_time>
<preferences>
    <low_water_days>1.2</low_water_days>
    <high_water_days>2.5</high_water_days>
    <disk_max_used_gb>0.4</disk_max_used_gb>
    <disk_max_used_pct>50</disk_max_used_pct>
    <disk_min_free_gb>0.4</disk_min_free_gb>
    <project>
        <master_url>http://localhost.localdomain</master_url>
        <email_addr>david@localdomain</email_addr>
        <authenticator>123892398</authenticator>
        <resource_share>10</resource_share>
        <project_specific>
            <color-scheme>Tahiti Sunset</color-scheme>
        </project_specific>
    </project>
</preferences>
<result_ack>
    <name>uc_wu_0</name>
</result_ack>

(訳注1): version number 要素
次の2つの要素のことを指しているのでしょう。 core_client_major_version core_client_minor_version。

BOINCの訳のメインページに戻る | (原文のメインページに戻る)
 
Copyright © 2005 University of California
Translated by JE2BWM.