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 |
|