SpatialViews is a Java extension for mobile ad-hoc network applications. It serves as a prototype language for evaluation of various tradeoffs in designing programming models and tools for mobile ad-hoc network applications.
SpatialViews allows virtual networks to be specified using spaces and services. Such a virtual network is called a spatial view, which consists of nodes located in the given space and providing the required service. These nodes are dynamically discovered and used, through a spatial view iterator. The code specified in an iterator migrates to a discovered interesting node. Discovery and migration are transparently handled by the compiler and the runtime system and hidden from the application programmers.
Iteration can be implemented either in serial or parallel. However, the order in which particular nodes are discovered and visited can not be controlled by the programmer due to the dynamic nature of the network. Parallelization or replication can improve performance, quality of results, or failure resilience. Limitation to accessibility of nonlocal variables through typing guarantees that either of these implementations produces the same result. A nonlocal variable can either be a reduction variable or a read-only variable. A read-only variable can only be read and not written in an iterator. A reduction variable can only be written in a specified reduction operation and not read in an iterator.
An prototype implementation of SpatialViews is available for downloading.
This project is partially supported by NSF-ITR/SI award ANI-0121416.