Towards module-based automatic partitioning of Java applications

When reengineering a monolithic application to be a distributed one, programmers always have to decide how many distributed parts the application should be partitioned, and write many codes related to where a partwill be placed on network nodes and how these parts communicate with each other through the network. These codes usually have nothing to do with the business functions of the application, and they are laborious to write. In addition, as the distribution architecture of the application is finalized beforehand, it may not adapt well to the ever-changing execution environment. In this paper, we propose DPartner, an automatic partitioning system, to help programmers create a distributed Java application without explicitly writing the distribution-related codes. Unlike the other partitioning systems, DPartner does not partition an application directly into the coarse-grained client and server. Instead, it first partitions the application into several modules where each module performs a relatively independent business function of the application. Then it makes these modules be distributable through automatic bytecode rewriting. These modules can distribute in different nodes and cooperate to work just as the original monolithic application. Such a module-based partitioning approach enables a relatively easy reshaping of the distribution architecture of an application, which facilitates the application adapt to the environmental changes without manual recoding or repartitioning with regard to distribution. This paper gives the detailed design of DPartner, and evaluates it using real-world applications. The evaluation results demonstrate the effectiveness and efficiency of DPartner.

[1]  Yannis Smaragdakis,et al.  Portable and Efficient Distributed Threads for Java , 2004, Middleware.

[2]  R. Suganya,et al.  Data Mining Concepts and Techniques , 2010 .

[3]  Arkady B. Zaslavsky,et al.  Context-aware application mobility support in pervasive computing environments , 2009, Mobility Conference.

[4]  Alan Messer,et al.  Towards a distributed platform for resource-constrained devices , 2002, Proceedings 22nd International Conference on Distributed Computing Systems.

[5]  Alan L. Cox,et al.  Java/DSM: A Platform for Heterogeneous Computing , 1997, Concurr. Pract. Exp..

[6]  Gustavo Alonso,et al.  R-OSGi: Distributed Applications Through Software Modularization , 2007, Middleware.

[7]  Liviu Iftode,et al.  Context-Aware Migratory Services in Ad Hoc Networks , 2007, IEEE Transactions on Mobile Computing.

[8]  Andrian Marcus,et al.  Supporting program comprehension using semantic and structural information , 2001, Proceedings of the 23rd International Conference on Software Engineering. ICSE 2001.

[9]  M E J Newman,et al.  Community structure in social and biological networks , 2001, Proceedings of the National Academy of Sciences of the United States of America.

[10]  Andreas Åhlund An approach towards User-centric Application Mobility , 2009 .

[11]  Marcelo Lobosco,et al.  A New Distributed JVM for Cluster Computing , 2003, Euro-Par.

[12]  Gang Huang,et al.  Towards a unified formal model for supporting mechanisms of dynamic component update , 2005, ESEC/FSE-13.

[13]  Lei Wang,et al.  Automatic Partitioning of Object-Oriented Programs for Resource-Constrained Mobile Devices with Multiple Distribution Objectives , 2008, 2008 14th IEEE International Conference on Parallel and Distributed Systems.

[14]  Alan Messer,et al.  Adaptive offloading for pervasive computing , 2004, IEEE Pervasive Computing.

[15]  Alec Wolman,et al.  MAUI: making smartphones last longer with code offload , 2010, MobiSys '10.

[16]  Yannis Smaragdakis,et al.  J-Orchestra: Enhancing Java programs with distribution capabilities , 2009, TSEM.

[17]  Lionel C. Briand,et al.  Dynamic coupling measurement for object-oriented software , 2004, IEEE Transactions on Software Engineering.

[18]  Michael Philippsen,et al.  JavaParty – transparent remote objects in Java , 1997 .

[19]  Galen C. Hunt,et al.  The Coign automatic distributed partitioning system , 1999, OSDI '99.