| JazzEnsemble -- Group Communicationfor Mobile Ad-Hoc Networks |
IntroductionMobile Ad-hoc Networks (MANETs) are created by a collection of mobile devices equipped with wireless communication capabilities. The current de-facto standard in wireless communication is Wireless Ethernet, also known as WiFi and IEEE 802. 11b. Each mobile device can directly communicate with all other devices within its transmission range. However, if some devices volunteer to forward some of the messages they receive, a complex network is formed involving the transitive closure of the transmission ranges. Such a network is called ad-hoc since it is formed in an ad-hoc manner, without any fixed infrastructure. Wireless technology is becoming ubiquitous; in the very near future all mobile computers (laptops, notebooks, and even PDAs) will come preinstalled with a WiFi network interface card (NIC), and more and more places offer Internet connectivity through wireless access points. These include, e.g., many Internet cafes, Starbucks coffee shops, airports, and Lufthansa airplanes. This means that the hardware and OS support for MANETs will be everywhere. Of course, the question is why bother with MANETs if there are wireless access points. We envision many application domains for MANETs. For example, they can be used to extend the transmission range of wireless access points, or even extend the reach of cellular networks, e.g., deep inside buildings, beyond hills, under bridges, etc. They can also be used to extend the bandwidth of cellular Internet surfing by exploiting multiple devices and performing peer-to-peer caching. MANETs are a perfect vehicle for collaborative highly interactive games that can be a great pass-time while waiting in an airport lounge, train station, or even during a flight/train travel. MANETs can be used for E-commerce in trade-shows and other gathering places. And of course, MANETs are useful in difficult/dangerous terrains where installing a fixed infrastructure is impossible. Group communication toolkits proved themselves as powerful middleware for building reliable networked applications in wired environments. These toolkits relief the programmer from many of the tedious and highly complex issues involved in designing such applications, allowing him/her to focus on the essential aspects of the application being developed, resulting in faster development time and fewer bugs. Group communication toolkits have become standard building blocks in almost all clustering and replication products in both industry and academia. However, existing group communication toolkits would not perform well over a MANET, due to MANETs' highly dynamic nature. The goal of JazzEnsemble is to be an efficient and effective group communication toolkit that is dedicated to running over MANETs. We have started with the Ensemble toolkit, due to its highly modular design and maturity. This allows us to implement our changes in a gradual manner, while having a working toolkit at every point of the project. |