Jump to content United States-English
HP.com Home Products and Services Support and Drivers Solutions How to Buy
» Contact HP

HP.com home

Monitoring and Testing of Distributed and Component-Based Systems


HP Labs

» Research
» News and events
» Technical reports
» About HP Labs
» Careers @ HP Labs
» People
» Worldwide sites
» Downloads
Content starts here
Large complex and distributed applications, from enterprise service-centric applications to embedded device applications, have been developed increasingly with middleware component technologies like CORBA, RMI/J2EE, and COM/.NET. Each middleware framework offers a distributed and multithreaded computing platform, and controls component interactions through component interfaces. These interfaces encapsulate detailed component implementation, including the programming language (e.g., C/C++, Java) and the underlying operating system (e.g., Unix, Windows, VxWorks). The IDL compiler is often used to automate code generation from component interfaces to simplify application development.

During the development and evolution of such a large-scale component-based distributed application, common questions are:

  • What caused the system to crash? 

  • Where was time spent? 

  • How to package different components onto processors? Does the second processor really provide significant performance enhancement? 

  • Have all the specified component interactions and paths been exercised in the integration testing? 

  •  If a component is changed, what are the units and subsystems that are required to perform regression testing? 

Our research effort here at the Imaging Systems Lab is to develop new techniques and tools to help answer the above questions, with the focus on the applications that are running in embedded devices, and have complex interactions with enterprise services. 

Monitoring of Distributed and Component-Based Systems

We have developed a monitoring toolset called coSpy for distributed and component-based systems. So far, the toolset has been applied to the applications that are built upon the ORBlite (CORBA-based runtime developed by HPL), or a particular COM-like infrastructure (developed by HP). The uniqueness of our approach is to facilitate system-wide causality propagation in the monitored application, with no modification to application components. One of the most important causality information is the caller/callee relationship due to component-level method (call) invocations. These coarse-grained invocations are the ones that have their user-defined IDL interface definitions, and potentially happen across different threads, processes, and even processors.

The coSpy toolset consists of three parts: the augmented IDL compiler to automatically deploy instrumentation probes onto the stubs and skeletons of application components, the monitoring-related library to collect per-thread runtime execution information across the entire distributed application, and the postmortem analysis framework to analyze the collected monitoring data, determine inter-component interactions, and annotate timing latency and CPU consumption information onto each component-level method invocation. In particular, we are able to construct a system-wide dynamic call graph that structures all component-level method invocations ever happened in the monitored application run, following their caller/callee relationships. 

An example of our dynamic system call graph from a large-scale application, configured with 4 processes and 32 threads, is shown below. Over 100,000 component-level method invocations are contained in this particular graph. Each invocation is represented by a graph node. The hyperbolic tree SDK from Inxight is employed to visualize the call graph.

hyperbolic tree to visualize call graph


Testing of Distributed and Component-Based Systems

The cost and complexity of developing and maintaining test suites to achieve defect-free applications often exceeds that of developing and maintaining these applications. It becomes much more significant for large-scale distributed applications that keep evolving within their life span. Our research effort is to build a test automation infrastructure and its tool support to reduce the cost and complexity of developing and maintaining such complex test suites by automating: test cases generation, test effectiveness evaluation, regression testing, and impact change determination. 

In particular to distributed and component-based applications, we adopt the two-folded approach: first, to exploit the distributed systems monitoring techniques that we have developed to perform test execution runtime monitoring, and to collect and store test execution information; and secondly, to augment the IDL for test design specifications and automate the generation of test cases and the test harness. Overall, our approach is to explore the linkages among three parties altogether: the application under test, its behavior model, and the underlying middleware runtime infrastructure. 


  • Jun Li, “Monitoring and Characterization of Component-Based Systems with Global Causality Capture,” Proceedings of the 23rd International Conference on Distributed Computing Systems, pp.422-31, May 2003. Also published as HPL Technical Report HPL-2003-54. (file in pdf
  • Jun Li, “Monitoring of Component-Based Systems,” HP Labs Technical Report HPL-2002-25 (R.1). (file in pdf)
  • Jun Li, “Characterization and Impact Estimation of CPU Consumption in Multi-Threaded Distributed Applications,” HP Labs Technical Report HPL-2002-50 (R.1). (file in pdf
  • Jun Li, Keith Moore, “Exploiting Global Causality in Testing of Distributed and Component-Based Applications,” will appear as a short paper at the Proceedings of the 20th International Conference on Software Maintenance, Chicago Illinois, September 2004.

For more information about the technology, please contact Jun Li (jun.li@hp.com) at Imaging Systems Lab, HP Labs.


Printing and Imaging Research Center
  » PIRC web site
» Imaging Systems Laboratory
  » Projects




Printable version
Privacy statement Using this site means you accept its terms Feedback to HP Labs
© 2009 Hewlett-Packard Development Company, L.P.