mirror of https://github.com/BOINC/boinc.git
180 lines
6.9 KiB
PHP
180 lines
6.9 KiB
PHP
<?
|
|
require_once("docutil.php");
|
|
page_head("The BOINC scheduling server protocol");
|
|
echo "
|
|
|
|
<h3>Protocol nucleus</h3>
|
|
<p>
|
|
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:</p>
|
|
<pre>
|
|
<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>
|
|
</pre>
|
|
The 'platform' and version number elements identify the
|
|
version of the core client originating the request.
|
|
|
|
<p>
|
|
The form of the reply is:
|
|
<pre>
|
|
<scheduler_reply>
|
|
[ <message priority='low'> arbitrary text </message> ... ]
|
|
[ <request_delay>3600</request_delay> ]
|
|
[ <redirect>URL</redirect> ]
|
|
... other elements
|
|
</scheduler_reply>
|
|
</pre>
|
|
|
|
<p>
|
|
Each <b>message</b> element is a message to the participant.
|
|
<ul>
|
|
<li>
|
|
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.
|
|
<li>
|
|
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.
|
|
</ul>
|
|
<p>
|
|
A reply message can contain multiple message elements.
|
|
<p>
|
|
A <b>request_delay</b> element instructs the client
|
|
to not issue another request until the indicated number
|
|
of seconds has elapsed.
|
|
<p>
|
|
A <b>redirect</b> 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 <b>redirect</b> elements.
|
|
|
|
<h3>Extensible protocol</h3>
|
|
<p>
|
|
The remaining protocol may evolve over time.
|
|
Request elements include
|
|
<pre>
|
|
<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>
|
|
</pre>
|
|
|
|
<p>
|
|
Reply elements include
|
|
<pre>
|
|
<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>
|
|
</pre>
|
|
";
|
|
page_tail();
|
|
?>
|