Middlewares for Fine-grained Replications of
Distributed Java Applications
Last update: Jan 2007
This page presents the research products of three year-long doctoral study of Mr. Thepparit BANDITWATTANAWONG, a Ph.D. candidate at The Graduate University for Advanced Studies (http://www.soken.ac.jp), department of Informatics (http://www.nii.ac.jp), under the supervision of Professor Katsumi Maruyama. The products consist of an object-oriented middleware called SOOM and a mobile object-code computing middleware called C2 (pronounced C-square). Both middlewares are similarly characterized by fine-grained replication capability. By fine-grained replication, application is replicated at the unit of cluster (i.e., application portion). The difference between both middlewares is that SOOM aims at runtime object cluster replication, while C2 aims at class cluster replication.
Scalable Object-Oriented
Middleware (SOOM)
1.
Introduction
SOOM is an object-oriented middleware running atop Java platform J2SE 5.0. It aims to facilitate the development of pervasively cooperative client-server applications.

2.
Core features
1) Fine-grained replication (FGR): In a cooperative client-server application, FGR scheme enables each participating client to replicate a remote servant application in a partial and on-demand incremental manner so that only the application portions (representing the subsystems) rather than the entire application can be replicated into the address spaces of responsible participants. Furthermore, in pervasive computing, FGR enables memory-limited mobile computing devices to perform replications of large-sized applications.
2) Efficient and QoS manageable concurrent access control: Three consistency protocols (Entry, Exclusive-write, and Eventual) have been provided to realize different consistency semantics at the unit of cluster. SOOM concurrent access control mechanism minimizes network communications and enables QoS manageability through an easy-to-use client-side API.
3) Efficient update synchronization: Update occurring on a client side must be written back to the server. SOOM allows single-step update synchronization in that the final effect of a series of modifications performed on a cluster is committed to the server.
4) Coexistence of FGR and Java Remote Method Invocation (RMI): RMI is fundamental to Java-based distributed systems. SOOM allows not only FGR-based clients but also RMI-based clients to share the same servant application simultaneously according to the applied consistency protocols.
3.
Release
1) SOOM distribution (version 1.0) includes both the middleware platform package and demonstration programs (with descriptive comments). The demonstration programs, implementing the same cooperative software modeling application, consist of two versions:
1) Non-GUI version demonstrates a clean SOOM-based programming logic.
2) GUI version is a user-friendly server and client programs. Both FGR- and RMI-based client programs have very similar graphical interface.
2) SOOM compiler automates the bytecode-level transformation of Java RMI-based servant program into FGR-based one. (download)
4.
Quick development guide
Programmers initially develop the servant applications as Java RMI-based ones. The applications must then be converted to FGR-based ones manually (by following the demonstration programs) or automatically (by using the SOOM compiler). For client applications, programmers can develop RMI- and FGR-based client programs in very similar way by following the coding patterns in the demonstration programs.
5.
Refereed publications
The underlying ideas of SOOM have been formulated incrementally through the following literatures.
1)
T. Banditwattanawong,
K. Maruyama, S. Hidaka, and H. Washizaki, Proxy-and-hook:
A Java-based Distributed Object Caching Framework, proc. of IEEE Int. Conf.
on Industrial Informatics, Aug. 2005,
2) T.Banditwattanawong, S.Hidaka, H.Washizaki, and K.Maruyama, Fine-grained Replication for Private-workspace and Memory-constrained Computings, proc. of IFIP Int. Conf. on Network and Parallel Computing (NPC 2006), pp.84-92, Oct. 2006, Tokyo, Japan.
3) T. Banditwattanawong, S. Hidaka, H. Washizaki, K. Maruyama, Cluster Replication for Distributed-Java-Object Caching, IEICE Transactions on Information and Systems, vol.E89-D, no.11, Nov. 2006.
4) T. Banditwattanawong, S. Hidaka, H. Washizaki, K. Maruyama, SOOM: Scalable Object-Oriented Middleware for Cooperative and Pervasive Computings, IEICE Transactions on Communications: special issue on networks software, vol.E90-B, no.4, Apr. 2007. (to appear)
6.
Feedback
We appreciate any comment, which can reach us at thepparitb@grad.nii.ac.jp.
----------------------------------------------------------------------
Cluster Caching (C2)
1.
Introduction
C2 (C-Square) is a mobile object-code computing middleware running atop Java platform J2SE 5.0. It aims to facilitate the deployment of large-sized Java application programs over the Internet.

2.
Core features
1) Fine-grained replication: Partial and on-demand incremental downloading of application program from remote HTTP server reduces program launching delays. This downloading scheme also economizes on client memory space and network bandwidth consumptions by not downloading unwanted program portions.
2) Lazy cache coherence detection and enforcement: Updatings of cached program portions are performed in a transparent on-demand incremental manner. This feature helps boost program launching performance and prevent network bandwidth wastes.
3) Ease of use: Programmers neither need to learn nor maintain application descriptors. Yet, application data resource files (e.g., local image files) can be accessed in a traditional way without requiring any special API. C2 itself is very lightweight (3 KB in Jar format), thus it can be easily deployed together with the applications without the need of explicit installation.
3.
Release
C2 distribution (version 1.0) includes both the middleware platform package and demonstration program (with descriptive comments). The demonstration program is a simple interactive scientific application.
4.
Quick development guide
C2 provides a minimal
set of powerful API, which consists of only two operations: CRB.init(String serverURL,
String jarName) for middleware initialization
and CRB.hook(String jarName)
for partial and on-demand incremental caching. All the features aforementioned
are automatically performed behind this API.
5.
Refereed publications
C2 relies on a framework included in the first item of the following list of papers. The complete design and implementation details of C2 can be found in the other paper.
1) T. Banditwattanawong, S. Hidaka, H. Washizaki, K. Maruyama, Cluster Replication for Distributed-Java-Object Caching, IEICE Transactions on Information and Systems, vol.E89-D, no.11, Nov. 2006.
2) T. Banditwattanawong, H. Washizaki, S. Hidaka, and K. Maruyama, Partial and On-demand Incremental Deployment of Java Application Program over the Internet, ISCIT 2006: proc. of IEEE Int. Symposium on Communications and Information Technologies, Oct. 2006, Bangkok, Thailand.
6.
Feedback
We appreciate any comment, which can reach us at thepparitb@grad.nii.ac.jp.