Patent ID: 8407322

Claim:
A method performed by data processing apparatus, the method comprising: storing a plurality of code blocks of a software application on each of a plurality of devices, the software application adapted to perform a particular set of functions; assigning, by operation of data processing apparatus, at runtime of the software application which of the plurality of devices is to execute which of the plurality of code blocks, including: determining a set of capabilities necessary for execution of each of the plurality of code blocks; determining a set of capabilities of each of the plurality of devices; comparing the set of capabilities necessary for each code block to the set of capabilities of each of the plurality of devices; assigning at runtime which of the plurality of devices is to execute which of the plurality of code blocks based on the result of the comparison; executing the plurality of code blocks on the assigned devices; and communicating data between the assigned devices to facilitate executing different code blocks of the plurality of code blocks on different devices of the plurality of devices.