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:
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.
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.
The Kan Distributed ObjectSystem
The original Kan system and the basis of the current project.
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.