Mokan Logo

Mokan : Middleware for cooperative mobile applications

Distributed mobile programming is very different from traditional distributed object technologies. Under mobile conditions, lack of communication may be the usual state compared to traditional platforms where this state is seen as a fault. The Mokan project is investigating what technologies are needed to allow a new class of distributed applications.

Applications for mobile platforms will range from simple client/server to collaborative groups with no central organization. These applications will permit access to remote stores and share the results of local computation with others. In the face of poor connectivity, we must solve two fundamental issues:

The Mokan project was created to explore the role of prefetching and reconciliation in the mobile environment.

Our current research focuses on using compile-time information gathered from program sources to assist in both prefetching and reconciliation. This research has lead to new prefetching methods that capture future objects before a disconnection. Mokan is also exploring optimistic replica management with epidemic updates as a technique to ensure application progress in the disconnected environment. In the future we will also investigate compile time techniques allowing automatic reconciliation and object partitioning.

The Mokan project is focusing on the following areas:


Selected Publications

Kristian Kvilekval, Ambuj Singh Prefetching for mobile computers using shape graphs LCR 2002, Washington DC, March 2002

People


Software

The Mokan system is an expression of some the research ideas encompassed by the project. It used as a test bed for new techniques and as an application platform for collaborative applications.

Download Mokan

The system consists of a compiler for an extended Java dialect and middleware runtime. The Java language has been extended to include nested guarded actions (transactions), Futures, and group primitives. The compiler transforms our extended java to pure java that will operate on the Mokan runtime also written in pure java.

The runtime system manages prefetching, transactions and object replication. The system has been tested on Linux, Sun and Ipaqs.


Related Links

The Kan Distributed ObjectSystem

The original Kan system and the basis of the current project.


Acknowledgments

This material is based upon work supported by the National Science Foundation under Grant Nos. ANI-0123895, EIA-0080134, and IIS-9817432 . Any opinions, findings, and conclusions or recommendations expressed in this material are those of the author(s) and do not necessarily reflect the views of the National Science Foundation.


Kristian Kvilekval, 11 Nov 2003