Changes between Initial Version and Version 1 of RpcProtocol


Ignore:
Timestamp:
Apr 25, 2007, 2:16:06 PM (17 years ago)
Author:
Nicolas
Comment:

Converted by an automatic script

Legend:

Unmodified
Added
Removed
Modified
  • RpcProtocol

    v1 v1  
     1= The BOINC scheduling server protocol =
     2
     3
     4=== Protocol nucleus ===
     5 The core client communicates with scheduling servers using HTTP. The following 'nucleus' of the protocol should be considered immutable. This will allow any version of the core client to talk to any version of the scheduling server, and for the server, if needed, to tell the core client that it's out of date. The form of the request is:
     6
     7
     8{{{
     9<scheduler_request>
     10    <platform>intel-linux</platform>
     11    <core_client_major_version>1</core_client_major_version>
     12    <core_client_minor_version>1</core_client_minor_version>
     13    ... other elements
     14</scheduler_request>
     15}}}
     16 The 'platform' and version number elements identify the version of the core client originating the request.  The form of the reply is:
     17
     18
     19{{{
     20<scheduler_reply>
     21    [ <message priority='low'> arbitrary text </message> ... ]
     22    [ <request_delay>3600</request_delay> ]
     23    [ <redirect>URL</redirect> ]
     24    ... other elements
     25</scheduler_reply>
     26}}}
     27  Each '''message''' element is a message to the participant.
     28
     29
     30 * If the priority is 'high', the core client should try to ensure that the participant sees the message; for example, by displaying it in a popup window. It should not, however, wait for user input, as this could starve other projects. This should be reserved for situations where definitive action is required, e.g. the user must download a new version of the core client in order to continue participating in this project.
     31 * If the priority is 'low' (default) the core client should allow the participant to see the message, but should not require it. For example, it could write the message to a log file.
     32
     33A reply message can contain multiple message elements.
     34
     35A '''request_delay''' element instructs the client to not issue another request until the indicated number of seconds has elapsed.
     36
     37A '''redirect''' element gives the URL for a scheduling server for this project. If present, the core client should replace its list of scheduling servers for this project. The reply may contain multiple '''redirect''' elements.
     38
     39
     40=== Extensible protocol ===
     41 The remaining protocol may evolve over time. Request elements include
     42
     43
     44{{{
     45<prefs_mod_time>0</prefs_mod_time>
     46<authenticator>3f7b90793a0175ad0bda68684e8bd136</authenticator>
     47<hostid>1</hostid>
     48<work_req_seconds>1000</work_req_seconds>
     49<host_info>
     50    <timezone>28800</timezone>
     51    <domain_name>localhost.localdomain</domain_name>
     52    <ip_addr>127.0.0.1</ip_addr>
     53    <conn_frac>0.000000</conn_frac>
     54    <on_frac>0.000000</on_frac>
     55    <p_ncpus>1</p_ncpus>
     56    <p_vendor>GenuineIntel</p_vendor>
     57    <p_model>Pentium</p_model>
     58    <p_fpops>0.000000</p_fpops>
     59    <p_iops>0.000000</p_iops>
     60    <p_membw>0.000000</p_membw>
     61    <p_calculated>0.000000</p_calculated>
     62    <os_name>Linux</os_name>
     63    <os_version>2.2.14-5.0</os_version>
     64    <m_nbytes>197427200.000000</m_nbytes>
     65    <m_cache>131072.000000</m_cache>
     66    <m_swap>178012160.000000</m_swap>
     67    <d_total>22108344320.000000</d_total>
     68    <d_free>18332545024.000000</d_free>
     69    <n_bwup>0.000000</n_bwup>
     70    <n_bwdown>0.000000</n_bwdown>
     71</host_info>
     72<result>
     73    <name>uc_wu_0</name>
     74    <client_state>4</client_state>
     75    <final_cpu_time>0.020000</final_cpu_time>
     76    <stderr_out>
     77    The following fields are used to report errors to the server, They
     78    are not present if there is no error while downloading, computing
     79    or uploading files for this result.
     80    [ <message> some text describing the error </message>]   ]
     81    The state of the active_task assigned to compute this result at
     82    the time of the error
     83    [ <active_task_state>0</active_task_state> ]
     84    The exit_status of the application running the computation for the result
     85    [ <exit_status>0</exit_status> ]
     86    The signal raised by the application if any.
     87    [ <signal>0</signal> ]
     88    If the error corresponds to downloading input files for the
     89    work_unit for this result, then:
     90    <download_error>
     91        <file_name>input</file_name>
     92        <error_code>-114</error_code>
     93    </download_error>
     94    If the error corresponds to uploading outfiles for this results
     95    then:
     96    <upload_error>
     97        <file_name>output</file_name>
     98        <error_code>-114</error_code>
     99    </upload_error>
     100    the std_err output of the application, if any, goes here.
     101    </stderr_out>
     102    <file_info>
     103        <file_name>uc_wu_0_0</file_name>
     104        <md5_cksum>3f7b90793a0175ad0bda68684e8bd136</md5_cksum>
     105        <nbytes>54691.0000000</nbytes>
     106        <max_nbytes>1000000.00000</max_nbytes>
     107        <url>http://localhost/hamid_cgi/test/file_upload_handler</url>
     108    </file_info>
     109</result>
     110}}}
     111  Reply elements include
     112
     113
     114{{{
     115<request_delay>10</request_delay>
     116<message priority='low'>no work available</message>
     117<code_sign_key>
     118    1024
     119    ec8b7f60fa494ce65d70afa98f91f2ab08fb5fac3931a27524e0eb954d587846
     120    29e94ce79d61f4d4bc4f9660578a06e941ca271646f11ef4d2be67f4a155e0a9
     121    9908b6c814d08f0f59e9dc85afcc9d65f89a33d329d963e3fd359351ee25ca7f
     122    71c3bd49a88ae609152559984b3fd7cdc4937d416a43c3357a59e7ed6cf3d30d
     123    0000000000000000000000000000000000000000000000000000000000000000
     124    0000000000000000000000000000000000000000000000000000000000000000
     125    0000000000000000000000000000000000000000000000000000000000000000
     126    0000000000000000000000000000000000000000000000000000000000010001
     127    .
     128</code_sign_key>
     129<prefs_mod_time>123123</prefs_mod_time>
     130<preferences>
     131    <low_water_days>1.2</low_water_days>
     132    <high_water_days>2.5</high_water_days>
     133    <disk_max_used_gb>0.4</disk_max_used_gb>
     134    <disk_max_used_pct>50</disk_max_used_pct>
     135    <disk_min_free_gb>0.4</disk_min_free_gb>
     136    <project>
     137        <master_url>http://localhost.localdomain</master_url>
     138        <email_addr>david@localdomain</email_addr>
     139        <authenticator>123892398</authenticator>
     140        <resource_share>10</resource_share>
     141        <project_specific>
     142            <color-scheme>Tahiti Sunset</color-scheme>
     143        </project_specific>
     144    </project>
     145</preferences>
     146<result_ack>
     147    <name>uc_wu_0</name>
     148</result_ack>
     149}}}