Proceedings of the twenty-fourth annual ACM SIGACT-SIGOPS symposium on Principles of distributed computing - PODC '05
The task of designing algorithms for constantly changing networks is difficult. We focus on mobile ad-hoc networks, where mobile processors attempt to coordinate despite minimal infrastructure support. We develop new techniques to cope with this dynamic, heterogeneous, and chaotic environment. We mask the unpredictable behavior of mobile networks by defining and emulating a virtual infrastructure, consisting of timing-aware and location-aware machines at fixed locations, that mobile nodes can
... mobile nodes can interact with. The static virtual infrastructure allows appplication developers to use simpler algorithms -including many previously developed for fixed networks. Virtual Stationary Automata programming layer. Our programming abstraction consists of a static infrastructure of fixed, timed virtual machines with an explicit notion of real time, called Virtual Stationary Automata (VSAs), distributed at known locations over the plane, and emulated by the real mobile nodes in the system. Each VSA represents a predetermined geographic area and has broadcast capabilities similar to those of the mobile nodes, allowing nearby VSAs and mobile nodes to communicate with one another. This programming layer provides mobile nodes with a virtual infrastructure with which to coordinate their actions. Many practical algorithms depend significantly on timing, and it is reasonable to assume that many mobile nodes have access to reasonably synchronized clocks. In the VSA programming layer, the virtual automata also have access to virtual clocks, guaranteed to not drift too far from real time. Our virtual infrastructure differs in key ways from others that have previously been proposed for mobile ad-hoc networks. The GeoQuorums algorithm  was the first to use virtual nodes; the virtual nodes in that work are atomic objects at fixed geographical locations. More general virtual mobile automata were suggested in ; our automata are more powerful than those in  in that ours include timing capabilities, which are important for many applications. Also, our automata are stationary, and are arranged in a connected pattern that is similar to a traditional wired ne-Copyright is held by the author/owner. PODC'05, July 17-20, 2005, Las Vegas, Nevada, USA. ACM 1-59593-994-2/05/0007. tork. Finally, our implementation of virtual nodes incurs less communication cost than those in [1, 2] . Note that the virtual nodes described in [1,2] could all be implemented using the infrastructure we describe here. Emulating the virtual infrastructure. Our clock-enabled VSA layer is emulated by real mobile nodes in the network. Each mobile node is assumed to have access to a GPS service informing it of the region it is currently in. A VSA for a particular geographic region is then emulated by a subset of the mobile nodes currently populating its region: the VSA state is maintained in the memory of the real nodes emulating it, and the real nodes perform VSA actions on behalf of the VSA. The emulation is shared by the nodes while one node designated as leader is responsible for performing the outputs of the VSA and keeping the other nodes consistent in their VSA state. If no mobile nodes are in the region, the VSA fails; if mobile nodes later arrive, the VSA restarts. An important property of our implementation is that it is self-stabilizing. Self-stabilization is the ability to recover from an arbitrarily corrupt state. This property is important in long-lived, chaotic systems where certain events can result in unpredictable faults. For example, transient interference may disrupt the wireless communication, violating our assumptions about the broadcast medium. This might result in inconsistency and corruption in the emulation of the VSA. Our self-stabilizing implementation, however, can recover after corruptions to correctly emulate a VSA. Applications. We have considered applications that are significantly simplified by the VSA infrastructure. These include low-level services, such as routing and location management, as well as more sophisticated applications, such as motion coordination and tracking. The key idea in all cases is to locate data and computation at timed virtual automata throughout the network, thus relying on fixed, predictable infrastructure to simplify coordination in ad-hoc networks. It is interesting to note that this infrastructure can be used to implement services such as routing that are oftentimes thought of as the lowest-level services in a network.