Cooperative computing for distributed embedded systems
Dynamically connected. Although these systems will penetrate every possible domain of our daily life, the expectation is that they will operate outside our normal cognizance, requiring far less attention from the human users than the desktop computers today. The networked embedded computing era will challenge our ways of thinking and computing far more than the PC revolution did in the past. The current software and network architectures and their associated programming models were not designed
... s were not designed for these scenarios. Traditional parallel and distributed computing models are based on a distribution of tasks across a stable cluster of similar processing units. In networks of embedded systems however, nodes have properties such as location or functionality that make them only partially substitutable in a specific task. Tasks need to execute on specific nodes to achieve prescribed objectives, necessitating the location of target nodes in a manner that allows partial substitution. We propose a computing model and a system architecture for distributed embedded systems where nodes "cooperate" by providing their computing and communication resources to distributed tasks. The system architecture for cooperative computing is based on Smart Messages (SM), which can be viewed as intelligent carriers of data in a network. Smart Messages are collections of code and mobile data that migrate through the network, a single network hop at a time, executing at each step. Smart Messages are responsible for their own routing. To validate the model we have implemented two previously proposed applications, Directed Diffusion and SPIN, for data collection and data dissemination in sensor networks. We have developed a simulator that executes Cooperative Computing applications and allows us to evaluate the performances by measuring both execution and communication time.