MoCha is a framework for distributed communication and collaboration using mobile channels as its medium. Channels allow directed, anonymous, and peer-to-peer communication among entities, while mobility ensures that the structure of their connections can change over time in arbitrary ways. MoCha provides communication mechanisms without requiring central servers or fixed network infrastructures, and it allows exogenous coordination among processes.
In this talk we present, for the first time, the implementation of the framework: the MoCha middleware prototype. The MoCha middleware (hereforth, just MoCha) offers real distributed mobile channels to its users. Furthermore, because MoCha is implemented in the Java language using the Remote Method Invocation package (library) it is also heterogeneous; meaning, that it does not matter on which platform the different nodes of the system run.
Regarding the fields of application, MoCha can be used in any system where there is a need for peer-to-peer, anonymous, and/or mobile communication. On the Internet there are many applications with such requirements, for example, mobile Internet agents. Smaller networks can also benefit from MoCha, for example In-home networks, where different devices communicate with each other in a rather small environment. MoCha is especially suitable for Component Based Software. The anonymous aspect of the channels makes it possible to dynamically plug in and remove component instances from the system. Also, in component based systems there is a need for a clear separation of concerns between the computational and the coordination part of a system. MoCha offers this clear separation by providing exogenous coordination. Therefore, the component instances can be coordinated from outside. This makes it possible to obtain different system behavior using the same components but with other channel coordination schemes/topology.
Currently MoCha, as well as some other packages built on top of it are working. We are now finishing the user manual, and soon we shall release a version meant for the coordination community.