The core client communicates with scheduling servers using HTTP. The form of the request is:
<scheduler_request> <platform>intel-linux</platform> <version_num>1</version_num> ... other elements </scheduler_request>The "platform" and "version_num" elements identify the version of the core client originating the request.
The form of the reply is:
<scheduler_reply> [ <message priority="low"> arbitrary text </message> ... ] [ <request_delay>3600</request_delay> ] ... other elements </scheduler_reply>
The "message" element provides message for the core client. If the priority is "high", the core client should do what it can to ensure the the participant sees the message (e.g., display it in a modal dialog). 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. If the priority is "low" (default) the core client should allow the participant to see the message, but not require it; e.g., by writing the message to a log file.
A reply message can contain multiple message elements.
The optional "request_delay" tag instructs the client to not issue another request until the indicated number of seconds has elapsed.
The above portion 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 hopelessly out of date. The remaining protocol may evolve over time.
Request elements include
<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>
Reply elements include