Skip to main content
Log in

Towards module-based automatic partitioning of Java applications

  • Research Article
  • Published:
Frontiers of Computer Science Aims and scope Submit manuscript

Abstract

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.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Similar content being viewed by others

References

  1. RMI. http://www.oracle.com/technetwork/Java/Javase/tech

  2. JEE. http://www.oracle.com/Javaee

  3. Tilevich E, Smaragdakis Y. J-Orchestra: enhancing Java programs with distribution capabilities. ACM Transactions on Software Engineering and Methodology (TOSEM), 2009, 19(1): 1

    Article  Google Scholar 

  4. Philippsen M, Zenger M. Javaparty-transparent remote objects in Java. Concurrency Practice and Experience, 1997, 9(11): 1225–1242

    Article  Google Scholar 

  5. Wang L, Franz M. Automatic partitioning of object-oriented programs for resource-constrained mobile devices with multiple distribution objectives. In: Proceedings of the 14th IEEE International Conference on Parallel and Distributed Systems, ICPADS’08. 2008, 369–376

  6. Messer A, Greenberg I, Bernadat P, Milojicic D, Chen D, Giuli T, Gu X. Towards a distributed platform for resource-constrained devices. In: Proceedings of the 22nd International Conference on Distributed Computing Systems, 2002. ICPADS’02. 2002, 43–51

  7. Cuervo E, Balasubramanian A, Cho D, Wolman A, Saroiu S, Chandra R, Bahl P. Maui: making smartphones last longer with code offload. In: Proceedings of the 8th International Conference on Mobile Systems, Applications, and Services. 2010, 49–62

  8. Åhlund A. An approach towards user-centric application mobility. Master Thesis, Umea University, Sweden, 2009

    Google Scholar 

  9. Riva O, Nadeem T, Borcea C, Iftode L. Context-aware migratory services in ad hoc networks. IEEE Transactions on Mobile Computing, 2007, 6(12): 1313–1328

    Article  Google Scholar 

  10. Åhlund A, Mitra K, Johansson D, Åhlund C, Zaslavsky A. Contextaware application mobility support in pervasive computing environments. In: Proceedings of the 6th International Conference on Mobile Technology, Application & Systems. 2009, 21

  11. OSGi. http://www.osgi.org

  12. Java. http://www.oracle.com/technetwork/Java/index.html

  13. Eclipse and Equinox. http://www.eclipse.org

  14. Felix. http://felix.apache.org

  15. Arisholm E, Briand L, Foyen A. Dynamic coupling measurement for object-oriented software. IEEE Transactions on Software Engineering, 2004, 30(8): 491–506

    Article  Google Scholar 

  16. Call Graph. http://en.wikipedia.org/wiki/Call_graph

  17. Maletic J, Marcus A. Supporting program comprehension using semantic and structural information. In: Proceedings of the 23rd International Conference on Software Engineering. 2001, 103–112

  18. Girvan M, Newman M. Community structure in social and biological networks. Proceedings of the National Academy of Sciences of the United States of America, 2002, 99(12): 7821–7826

    Article  MathSciNet  MATH  Google Scholar 

  19. Han J, Kamber M. Data Mining: Concepts and Techniques. Morgan Kaufmann, 2006

  20. Tilevich E, Smaragdakis Y. Portable and efficient distributed threads for Java. Middleware 2004, 2004, 478–492

  21. JBoss. http://www.jboss.org

  22. JOnAS. http://jonas.ow2.org

  23. 7±2. http://wikipedia.org/wiki/The_NumberSevenTwo

  24. Shen J, Sun X, Huang G, Jiao W, Sun Y, Mei H. Towards a unified formal model for supporting mechanisms of dynamic component update. In: Proceedings of ACM SIGSOFT Software Engineering Notes. 2005, 80–89

  25. Gu X, Nahrstedt K, Messer A, Greenberg I, Milojicic D. Adaptive offloading for pervasive computing. IEEE Pervasive Computing, 2004, 3(3): 66–73

    Article  Google Scholar 

  26. Hunt G, Scott M. The coign automatic distributed partitioning system. Operating Systems Review, 1998, 33: 187–200

    Google Scholar 

  27. COM and DCOM. http://www.microsoft.com/com

  28. Rellermeyer J, Alonso G, Roscoe T. R-OSGi: distributed applications through software modularization. In: Proceedings of the ACM/IFIP/USENIX 2007 International Conference on Middleware. 2007, 1–20

  29. Lobosco M, Silva A F, Loques O, Amorim C L. A new distributed jvm for cluster computing. Euro-Par 2003 Parallel Processing, 2003, 1207–1215

  30. Yu W, Cox A. Java/dsm: a platform for heterogeneous computing. Concurrency: Practice and Experience, 1997, 9(11): 1213–1224

    Article  Google Scholar 

  31. Aglets. http://www.research.ibm.com/trl/aglets/

  32. Jade. http://en.wikipedia.org/wiki/Java_Agent_Development_Framework

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Gang Huang.

Additional information

Ying ZHANG received his PhD in 2012 from the School of Electronics Engineering and Computer Science of Peking University. He is now a research staff of Peking University. Zhang’s research interests include system software and software architecture.

Gang HUANG received his PhD in 2003 from the School of Electronics Engineering and Computer Science of Peking University. He is a professor of Peking University. Huang’s research interests include system software and software architecture.

Wei ZHANG is a master candidate at School of Electronics Engineering and Computer Science, Peking University. Zhang’s research interests include system software, software engineering, software architecture and mobile computing.

Xuanzhe LIU received his PhD in 2009 from the School of Electronics Engineering and Computer Science of Peking University. He is now an associate professor of Peking University. Liu’s research interests include system software and services.

Hong MEI is an Academician of Chinese Academy of Science. He is also a professor of Peking University, and the dean of the School of Electronics Engineering and Computer Science of Peking University. Mei’s research interests include system software and software architecture.

Rights and permissions

Reprints and permissions

About this article

Cite this article

Zhang, Y., Huang, G., Zhang, W. et al. Towards module-based automatic partitioning of Java applications. Front. Comput. Sci. 6, 725–740 (2012). https://doi.org/10.1007/s11704-012-2220-x

Download citation

  • Received:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s11704-012-2220-x

Keywords

Navigation