mirror of https://github.com/BOINC/boinc.git
113 lines
3.5 KiB
HTML
113 lines
3.5 KiB
HTML
<h2>The BOINC client/server protocol</h2>
|
|
|
|
<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:
|
|
<pre>
|
|
<scheduler_request>
|
|
<platform>intel-linux</platform>
|
|
<version_num>1</version_num>
|
|
... other elements
|
|
</scheduler_request>
|
|
</pre>
|
|
The "platform" and "version_num" 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 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>
|
|
<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>
|
|
<exit_status>0</exit_status>
|
|
<cpu_time>0.020000</cpu_time>
|
|
<output_file>
|
|
<md5_cksum>3f7b90793a0175ad0bda68684e8bd136</md5_cksum>
|
|
<file_name>uc_wu_0_0</file_name>
|
|
</output_file>
|
|
</result>
|
|
</pre>
|
|
|
|
<p>
|
|
Reply elements include
|
|
<pre>
|
|
</pre>
|