Home    •    About    •    Publications    •    Download    •    Contact
About the MAAM

The following page will hopefully contain most questions (and answers) you might have regarding the MAAM. If this is not the case, please consider contacting the authors.

What is the MAAM?
MAAM stands for Modular Architecture for Application-layer Multicast. Using this architecture, one can easily create wireless applications relying on so-called overlay-multicast algorithms. Protocol (and application) development becomes as easy as plugin different C++ classes together, in order to form a fully functional communication protocol. While we focus on MANET applications, the MAAM could also be used for creating Internet software.

Sounds weird? Read on for learning more...

Uh, sorry, I didn't get it... WHAT is the MAAM?!
Ever wondered why two notebooks, although being equipped with modern WLAN cards, will usually only communicate via some access point being attached to a nearby wall? That's because WLAN cards often run in a so-called infrastructure mode. This mode requires the communication's coordination, which is done by the access point. However, WLAN cards can also be configured to communicate in ad-hoc mode, which does not require any kind of fixed infrastructure, such as access points. When running in this mode, wireless devices coordinate themselves and may send data directly to any other device within transmission range. As devices will, because of their location, be able to reach different devices, a wireless communication network arises. In current scientific researches, these networks are called Mobile Ad-hoc NETworks (MANETs). MANETs can get pretty cool, as they may be set up anywhere, at any time: just switch on your WLAN capable device!

As they overcome the need of wired infrastructure, MANETs can (compared to infrastructure-based WLANs) become bigger wireless networks: Indeed, if two devices are not within direct reach (because they are too far away from each other), they may still be able to communicate indirectly. To do so, data will be sent to some intermediate device that is within reach and that lies closer to the communication partner. If the latter still can not be reached from this first intermediate device, further devices can be included in the route that eventually connects the communication partners. So-called routing protocols (such as the one provided on http://www.olsr.org) keep track of devices that are within reach and tell whether they may be used for reaching distant devices.

Relying on these routing protocols, the MAAM tries to provide some higher level interfaces, that facilitate the development of MANET protocols and applications. Although the architecture also supports point to point communication, it focusses on point to multi-point (multicast) communication, which e.g. is required for supporting multiplayer games. Multicast communication is provided by means of overlay-multicast algorithms, which rely on the same ideas as the popular P2P software does, that currently revolutionizes the Internet. Contrary to the modern Internet however, MANETs are pretty ungrateful regarding communication, as the wireless medium has to be shared by many devices. Therefore, communication protocols must be specialized in order to reasonably support applications in their communication. That is where the MAAM steps in, by decomposing an application-layer multicast service into different interchangeable components. These integrate protocol algorithms that are specialized to meet one application's demands and may easily be combined into a functional communication protocol.

So what IS the MAAM?!
The MAAM is a set of C++ classes that define interfaces between single protocol components. These e.g. include overlay-multicast routing algorithms and the handling of reliability aspects. As components are implemented as interchangeable modules, it becomes very easy to adapt a protocol to an application's demands, by exchanging the respective modules. Because, additionally, modules might be arbitrarily re-used and assembled, protocol and application development are drastically simplified. As a special goody, the MAAM abstracts from a specific network access and operating system. For this reason, MAAM protocols are not only portable to different operating systems: Indeed, for scientific evaluation and testing purposes, they may also easily be integrated into so-called simulation environments that allow the modelling of huge MANETs.

What is part of the MAAM package?
We currently have released the complete MAAM interface definition as well as
  • Modules implementing different overlay-multicast algorithms, such as NARADA, NICE, PAST-DM and TrAM which all are extensible via the generic local broadcast clusters mechanism
  • Modules implementing different reliability strategies for resolving packet losses
  • Modules implementing different algorithms for packet management
  • Different (compile) target declarations for real-world systems (Linux, MS Windows/CygWin, Qt4) and the network simulation environment GloMoSim.
  • Some applications, including a slideshow, a VoIP and a chat application as well as a multi-player space shooter game.
Check out the download section for more information and available packages.

Who's involved in this?
As the MAAM is developed within a research project funded by the German Research Foundation (DFG), different people currently contribute to the MAAM's source code or have done so in the past.

Main developers: Peter Baumung, Tobias Schlager, Denis Martin

Additional code: Björn Krämer, Christian Hübsch

© 2005-2008 by Peter Baumung et al    —    Contact: baumung@tm.uka.de