Please wait a minute...
Frontiers of Computer Science

ISSN 2095-2228

ISSN 2095-2236(Online)

CN 10-1014/TP

Postal Subscription Code 80-970

2018 Impact Factor: 1.129

Front Comput Sci    0, Vol. Issue () : 725-740    https://doi.org/10.1007/s11704-012-2220-x
Towards module-based automatic partitioning of Java applications
Ying ZHANG1,2(), Gang HUANG1,2(), Wei ZHANG1,2(), Xuanzhe LIU1,2(), Hong MEI1,2()
1. Key Laboratory of High Confidence Software Technologies (Peking University), Ministry of Education, Beijing 100871, China; 2. School of Electronics Engineering and Computer Science, Peking University, Beijing 100871, China
 Download: PDF(688 KB)   HTML
 Export: BibTeX | EndNote | Reference Manager | ProCite | RefWorks
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.

Keywords application partitioning      distributed computing      DPartner     
Corresponding Author(s): ZHANG Ying,Email:zhangying06@sei.pku.edu.cn; HUANG Gang,Email:hg, meih@pku.edu.cn; ZHANG Wei,Email:zhangwei11@sei.pku.edu.cn; LIU Xuanzhe,Email:liuzh@sei.pku.edu.cn; MEI Hong,Email:hg, meih@pku.edu.cn   
Issue Date: 01 December 2012
 Cite this article:   
Ying ZHANG,Gang HUANG,Wei ZHANG, et al. Towards module-based automatic partitioning of Java applications[J]. Front Comput Sci, 0, (): 725-740.
 URL:  
https://academic.hep.com.cn/fcs/EN/10.1007/s11704-012-2220-x
https://academic.hep.com.cn/fcs/EN/Y0/V/I/725
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
doi: 10.1145/1555392.1555394
4 Philippsen M, Zenger M. Javaparty-transparent remote objects in Java. Concurrency Practice and Experience , 1997, 9(11): 1225-1242
doi: 10.1002/(SICI)1096-9128(199711)9:11<1225::AID-CPE332>3.0.CO;2-F
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
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
doi: 10.1109/TMC.2007.1053
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
doi: 10.1109/TSE.2004.41
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
doi: 10.1073/pnas.122653799
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
doi: 10.1109/MPRV.2004.1321031
26 Hunt G, Scott M. The coign automatic distributed partitioning system. Operating Systems Review , 1998, 33: 187-200
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
doi: 10.1002/(SICI)1096-9128(199711)9:11<1213::AID-CPE333>3.0.CO;2-J
31 Aglets. http://www.research.ibm.com/trl/aglets/
32 Jade. http://en.wikipedia.org/wiki/Java_Agent_Development_Framework
[1] Wenjie LIU, Zhanhuai LI. An efficient parallel algorithm of N-hop neighborhoods on graphs in distributed environment[J]. Front. Comput. Sci., 2019, 13(6): 1309-1325.
[2] Yu ZHOU, Nvqi ZHOU, Tingting HAN, Jiayi GU, Weigang WU. Probabilistic verification of hierarchical leader election protocol in dynamic systems[J]. Front. Comput. Sci., 2018, 12(4): 763-776.
[3] Qinma KANG, Hong HE. Task assignment for minimizing application completion time using honeybee mating optimization[J]. Front Comput Sci, 2013, 7(3): 404-415.
Viewed
Full text


Abstract

Cited

  Shared   
  Discussed