In the SWARMS research project , we explore the development of applications for huge collections of mobile devices communicating via radio technologies. Our approach is inspired by the analogy of biological swarms and flocks with the following characteristics: • Relatively resource constrained individuals achieve complex joint operation by local, non-centralized interaction. • Individuals move independently from each other. • Individuals might fail at any time due to malfunction or death. We are especially interested in a problem-centric way of application programming: we prefer to describe the problem and let the swarm decide how to solve it. Our approach is to provide services such as communication, coordination or context awareness that help to hide the distribution from the application and support self-organization. They are based on a new communication paradigm we call the distributed virtual shared information space (dvSIS). The dvSIS describes the state of both the swarm as well as the environment and is based on information that the different devices acquire and publish. No device has complete knowledge (that is, no device sees the whole dvSIS), and must therefore rely on partial information. Due to environmental conditions, node failure, and so forth, the views of different devices might be inconsistent. Since we do not only want to prove the feasibility of our ideas by simulations, we have developed a first version of a middleware (which we call "SWARMSware") that realizes the dvSIS and hides the environment's complexity from the application. Communication is similar to the well-known publish/subscribe paradigm except that we neither use central instances nor a fixed division into information sources and consumers. The content-based mechanism XCast  controls the information dissemination in the network. The dvSIS consists of semi-structured self-describing information components that are defined by an XML schema. These components comprise meta-information describing the context of data acquisition (such as position and reliability) or the data itself (such as the level of aggregation or scope) that let the application evaluate information. Based on this meta-information, the application can decide whether or not to integrate received information into its own view of the dvSIS.
|Published - 01.06.2004