This Article 
 Bibliographic References 
 Add to: 
Extracting Interactions in Component-Based Systems
November/December 2008 (vol. 34 no. 6)
pp. 783-799
Trevor Parsons, University College Dublin, Dublin
Adrian Mos, INRIA Rhone Alpes
Mircea Trofin, Microsoft Corp., Redmond
Thomas Gschwind, IBM, Switzerland
John Murphy, University College Dublin, Dublin
Monitoring, analysing and understanding component based enterprise software systems are challenging tasks. These tasks are essential in solving and preventing performance and quality problems. Obtaining component level interactions which show the relationships between different software entities is a necessary prerequisite for such efforts. This paper focuses on component based Java applications, currently widely used by industry. They pose specific challenges while raising interesting opportunities for component level interaction extraction tools. We present a range of representative approaches for dynamically obtaining and using component interactions. For each approach we detail the needs it addresses, and the technical requirements for building an implementation of the approach. We also take a critical look at the different available implementations of the various techniques presented. We give performance and functional considerations and contrast them against each other by outlining their relative advantages and disadvantages. Based on this data, developers and system integrators can better understand the current state-of-the-art and the implications of choosing or implementing different dynamic interaction extraction techniques.

[1] L.C. Briand, Y. Labiche, and J. Leduc, “Toward the Reverse Engineering of UML Sequence Diagrams for Distributed Java Software,” IEEE Trans. Software Eng., vol. 32, no. 9, Sept. 2004.
[2] D.F. Jerding, J.T. Stasko, and T. Ball, “Visualizing Interactions in Program Execution,” Proc. 19th Int'l Conf. Software Eng., 1997.
[3] S.L. Graham, P.B. Kessler, and M.K. McKusick, “GPROF: A Call Graph Execution Profiler,” Proc. SIGPLAN Symp. Compiler Construction, 1982.
[4] M. Chen, E. Kiciman, A. Accardi, A. Fox, and E. Brewer, “Using Runtime Paths for Macro Analysis,” Proc. Ninth Workshop Hot Topics in Operating Systems, 2003.
[5] T. Parsons, “Automatic Detection of Performance Design and Deployment Antipatterns in Component Based Enterprise Systems,” PhD dissertation, Univ. College Dublin, 2007.
[6] G. Ammons, T. Ball, and J.R. Larus, “Exploiting Hardware Performance Counters with Flow and Context Sensitive Profiling,” Proc. ACM SIGPLAN Conf. Programming Language Design and Implementation, 1997.
[7] M. Trofin and J. Murphy, “Static Verification of Component Composition in Contextual Composition Frameworks,” Int'l J. Software Tools for Technology Transfer, Jan. 2008.
[8] Borland Software Corporation, Optimizeit Suite, http://www. borland.comoptimizeit, 2007.
[9] The Netbeans Profiler, http:/, 2008.
[10] P. Tonella and A. Potrich, Reverse Engineering of Object Oriented Code. Springer, 2005.
[11] T. Parsons, A. Mos, and J. Murphy, “Non-Intrusive End to End Run-Time Path Tracing for J2EE Systems,” IEE Proc. Software, Aug. 2006.
[12] T. Gschwind, J. Oberleitner, and M. Pinzger, “Using Run-Time Data for Program Comprehension,” Proc. 11th Int'l Workshop Program Comprehension, May 2003.
[13] M. Chen, E. Kiciman, E. Fratkin, A. Fox, and E. Brewer, “Pinpoint: Problem Determination in Large, Dynamic, Internet Services,” Proc. Int'l Conf. Dependable Systems and Networks (IPDS Track), 2002.
[14] J.O. Kephart and D.M. Chess, “The Vision of Autonomic Computing,” Computer, vol. 36, no. 1, Jan. 2003.
[15] IBM Autonomic Computing,, 2007.
[16] A. Diaconescu, A. Mos, and J. Murphy, “Automatic Performance Management in Component-Based Software Systems,” Proc. Int'l Conf. Autonomic Computing, May 2004.
[17] A. Mos, “A Framework for Adaptive Monitoring and Performance Management of Component-Based Enterprise Applications,” PhD dissertation, Dublin City Univ., Ireland, 2004.
[18] M. Trofin and J. Murphy, “A Self-Optimizing Container Design for Enterprise Java Beans Applications,” Proc. Second Int'l Workshop Dynamic Analysis, 2004.
[19] M. Trofin and J. Murphy, “Removing Redundant Boundary Checks in Contextual Composition Frameworks,” J. Object Technology, 2006_07article2 , July/Aug. 2006.
[20] G. Ammons, J.-D. Choi, M. Gupta, and N. Swamy, “Finding and Removing Performance Bottlenecks in Large Systems,” Proc. 18th European Conf. Object-Oriented Programming, 2004.
[21] M. Kunnumpurath, “JBOSS Administration and Development Third Edition (3.2.x Series),” Oct. 2003.
[22] J.D. Gradecki and N. Lesiecki, Mastering AspectJ: Aspect-Oriented Programming in Java. John Wiley & Sons, 2003.
[23] Aspectj, http://www.eclipse.orgaspectj, 2008.
[24] The Java Virtual Machine Tools Interface, jvmti/, 2008.
[25] K. Govindraj, S. Narayanan, B. Thomas, P. Nair, and S. Peeru, “On Using AOP for Application Performance Management,” Proc. Fifth Int'l Conf. Aspect-Oriented Software Development (Industry Track), Mar. 2006.
[26] M. Dahm, “Bytecode Engineering,” Java-Information-Tage, Sept. 1999.
[27] S. Chiba and M. Nishizawa, “An Easy-to-Use Toolkit for Efficient Java Bytecode Translators,” Proc. Second Int'l Conf. Generative Programming and Component Eng., 2003.
[28] E. Bruneton, R. Lenglet, and T. Coupaye, “ASM: A Code Manipulation Tool to Implement Adaptable Systems,” Proc. Journées Composants 2002: Systèmes à Composants Adaptables et Extensibles (Adaptable and Extensible Component Systems), Nov. 2002.
[29] R. Vallee-Rai, E. Gagnon, L.J. Hendren, P. Lam, P. Pominville, and V. Sundaresan, “Optimizing Java Bytecode Using the Soot Framework: Is It Feasible?” Proc. Ninth Int'l Conf. Compiler Construction, pp. 18-34, 2000.
[30] BEA, Serp, http:/, 2008.
[31] C. Austin, J2SE 5.0 in a Nutshell, releasesj2se15, 2004.
[32] Java Management Extensions (JMX), Sun Microsystems, , 2008.
[33] Java Internet Glossary,, 2008.
[34] A. Mos and J. Murphy, “Performance Management in Component-Oriented Systems Using a Model Driven Architecture Approach,” Proc. Sixth Int'l Enterprise Distributed Object Computing Conf., 2002.
[35] Open System Testing Architecture (OpenSTA), http:/www.opensta. org., 2008.
[36] Apache JMeter, http://jakarta.apache.orgjmeter/, 2008.
[37] JSR 149, Work Area Service,, 2008.
[38] IBM, WebSphere 6 Documentation, wasinfo/v6r0index.jsp, 2008.
[39] E. Wohlstadter, S. Jackson, and P. Devanbu, “DADO: Enhancing Middleware to Support Crosscutting Features in Distributed, Heterogeneous Systems,” Proc. 25th Int'l Conf. Software Eng., 2003.
[40] T. Gschwind, K. Eshghi, P.K. Garg, and K. Wurster, “WebMon: A Performance Profiler for Web Transactions,” Proc. Fourth IEEE Int'l Workshop Advanced Issues of E-Commerce and Web-Based Information Systems, June 2002.
[41] Y.L.L.C. Briand and J. Leduc, “Towards the Reverse Engineering of UML Sequence Diagrams for Distributed, Multithreaded Java Software,” Technical Report SCE-04-04, http://www.sce.carleton. caSquall, Sept. 2004.
[42] R.M.P. Barham, R. Isaacs, and D. Narayanan, “Magpie: Online Modelling and Performance-Aware Systems,” Proc. Ninth Workshop Hot Topics in Operating Systems, May 2003.
[43] R.I.P. Barham, A. Donnelly, and R. Mortier, “Using Magpie for Request Extraction and Workload Modelling,” Proc. Sixth Symp. Operating Systems Design and Implementation, 2004.
[44] M. Dmitriev, “Profiling Java Applications Using Code Hotswapping and Dynamic Call Graph Revelation,” Proc. Fourth Int'l Workshop Software and Performance, 2004.
[45] The Java 2 Platform, Enterprise Edition Technology (J2EE), Sun Microsystems, http://java.sun.comj2ee/, 2008.
[46] Sun Java Studio, http://developers.sun.comjsenterprise/, 2008.
[47] EJ-Tech nologies, JProfiler, jprofileroverview.html, 2008.
[48] Performasure, Quest,, 2008.
[49] Java Pet Store Demo. Sun Microsystems, /, 2003.
[50] T. Parsons and J. Murphy, “Detecting Performance Antipatterns in Component Based Enterprise Systems,” J. Object Technology, /, Mar./Apr. 2008.
[51] T. Parsons, A. Mos, and J. Murphy, “Non-Intrusive End to End Run-Time Path Tracing for J2EE Systems,” IEE Proc. Software, Aug. 2006.
[52] M. Chen et al., “Pinpoint, Problem Determination in Large, Dynamic, Internet Services,” Proc. Int'l Conf. Dependable Systems and Networks (IPDS Track), 2002.
[53] M. Trofin, “Call Graph-Directed Boundary Condition Analysis in Contextual Composition Frameworks,” PhD dissertation, Univ. College Dublin, 2007.
[54] L.B.A. Buble and P. Tuma, “CORBA Benchmarking: A Course with Hidden Obstacles,” Proc. IPDPS Workshop Performance Modeling, Evaluation and Optimization of Parallel and Distributed Systems, 2003.
[55] AdaptiveCells/J, http:/, 2008.
[56] Webcab Components, http:/, 2008.

Index Terms:
Metrics/Measurement, Performance measures, Testing and Debugging, Distributed debugging, Monitors, Tracing, Distribution, Maintenance, and Enhancement, Restructuring, reverse engineering, and reengineering
Trevor Parsons, Adrian Mos, Mircea Trofin, Thomas Gschwind, John Murphy, "Extracting Interactions in Component-Based Systems," IEEE Transactions on Software Engineering, vol. 34, no. 6, pp. 783-799, Nov.-Dec. 2008, doi:10.1109/TSE.2008.67
Usage of this product signifies your acceptance of the Terms of Use.