The Anhinga Project Department of Computer Science Rochester Institute of Technology
Home Page

Many-to-Many Invocation

Many-to-Many Invocation (M2MI) is a new paradigm for building collaborative systems that run in wireless proximal ad hoc networks of fixed and mobile computing devices. M2MI is useful for building a broad range of systems, including multiuser applications (conversations, groupware, multiplayer games); systems involving networked devices (printers, cameras, sensors); and collaborative middleware systems. M2MI provides an object oriented method call abstraction based on broadcasting. An M2MI invocation means “Every object out there that implements this interface, call this method.” An M2MI-based application is built by defining one or more interfaces, creating objects that implement those interfaces in all the participating devices, and broadcasting method invocations to all the objects on all the devices. M2MI is layered on top of a new messaging protocol, the Many-to-Many Protocol (M2MP), which broadcasts messages to all nearby devices using the wireless network's inherent broadcast nature instead of routing messages from device to device. M2MI synthesizes remote method invocation proxies dynamically at run time, eliminating the need to compile and deploy proxies ahead of time. As a result, in an M2MI-based system, central servers are not required; network administration is not required; complicated, resource-consuming ad hoc routing protocols are not required; and system development and deployment are simplified.


Publications

Refereed Papers

Technical Reports


Downloads

Many-to-Many Invocation (M2MI)

Prototype Java class library for building ad hoc distributed collaborative applications using M2MI.

Preinstalled Version

The M2MI Library is installed on the RIT Computer Science Department computer systems. When working in your Computer Science Department account, use the preinstalled version. Add the following directory to your Java classpath:

/home/adjunct/anhinga/public_html/m2miapi20040302/lib

Here is an example of a command for the bash shell to set the Java classpath to the current directory plus the M2MI Library directory:

export CLASSPATH=.:/home/adjunct/anhinga/public_html/m2miapi20040302/lib

Here is an example of a command for the csh shell to set the Java classpath to the current directory plus the M2MI Library directory:

setenv CLASSPATH .:/home/adjunct/anhinga/public_html/m2miapi20040302/lib

Installation

The M2MI Library requires Java Development Kit (JDK) 1.4.2.

To install the M2MI Library, just unpack the JAR file containing the M2MI distribution, "m2miapi20040302.jar". The distribution expands into a subdirectory named "m2miapi20040302".

Documentation is stored under directory "m2miapi20040302/doc"; point your HTML browser to that directory. (You can also view the documentation online.)

Java source files and class files are stored under directory "m2miapi20040302/lib"; add that directory to your classpath when you run the programs.

License

Copyright © 2001-2004 by the Rochester Institute of Technology. All rights reserved. Released under the terms of the GNU General Public License.

Download

For further information, questions, or problems, contact Alan Kaminsky (ark@cs.rit.edu).

The Anhinga Project Department of Computer Science Rochester Institute of Technology
Home Page
Copyright © 2004 Rochester Institute of Technology. All rights reserved. Last updated 02-Mar-2004. Please send comments to anhinga@cs.rit.edu.