Sun SPOTs Patch release "represents a significant step towards full epidemic deployment." "Epidemic code deployment is a more efficient mechanism," said Vipul Gupta in his weblog, "that lets code propagate from SPOT to SPOT."
Gupta described the current method of deployment of the same code to multiple SPOTs is one-at-a-time where the user connects each SPOT to a host computer containing the application which begins the deployment.
However, Gupta imagined a more efficient method of deployment. "With epidemic code deployment," said Gupta, "one could upgrade the software on a single SPOT (potentially, in a more peaceful, safer locale), air-drop it, and, after some time, 'automagically' have the new code propagated to other SPOTs."
Gupta explained that a similar functionality exists in TinyOS, however the, "aspects of the SPOT software rule out a straight port of that code. Unlike more constrained devices, Sun SPOTs support multiple application slots and use digital signatures (based on elliptic curve public-key cryptography) to guarantee code authenticity," he said. "We'd like to retain these advantages while adding support for epidemic deployment."
Gupta provided details about Sun's existing suite deployment process where the host computer first queries the SPOT for an empty application slot and, based on the response, remaps all pointers in the suite.
"This remapping (also called suite relocation) is slot-specific -- a relocated suite cannot be sent from SPOT-to-SPOT unless the destination SPOT plans to put it in the same slot as the sender," said Gupta. "So the first step towards supporting epidemic code deployment is moving the suite relocation process from the host to the SPOT."
He continued to explain Sun's use of standard digital signatures that preclude pipelined forwarding of code from SPOT-to-SPOT and the use of "signed hash chains" to solve verification procedures.
"Replacing standard signatures with signed hash chains is, therefore, the second critical step towards supporting epidemic deployment," said Gupta.
Work for this Path release can be contributed to Robert Taylor, a Ph.D. student at the Univ of Manchester and intern with Sun. Their work is not finished on this project.
"For example, this patch only takes care of verifying chunks as they come in but still waits until the entire suite is received before performing relocation. The unrelocated suite must be held in memory -- a problem for large suites like the library. … Lastly, this version of the patch still deploys code from a host computer to a SPOT (one-SPOT-at-a-time). Instead, what's needed is a protocol for propagating the code stream from SPOT-to-SPOT in a pipelined fashion (e.g. via a cascading broadcast)."
More Information
Epidemic Code Deployment on Sun SPOTs: Take One
Sun SPOT- Sun Small Programmable Object Technology
[...read more...]