Galen Hunt and Michael L. Scott
Object systems, such as COM, promise to greatly simplify applicaation development through the reuse of "black-box" components. Unfortunately, opaque components create new challenges to understanding application performance, behavior and structure. We propose a conceptual framework, inter-component communication analysis (ICCA), for understanding and exploring the structure of component applications. ICCA models an application as a graph with vertices representing components and edges representing communication links and instantiation relationships between components. Communication edges are labeled with the amount of communication that would cross the interface if the connected components were located in separate address spaces. We describe the Coign runtime system for gethering the data necessary to create the ICCA graph. Coign is distinctive in that it creates the entire ICCA graph using only application binaries. It can in fact be used on components lacking source code. Quantifying inter-component communication is vital to understanding and exploiting the architecture of component applications. We demonstrate the use of ICCA and Coign to determine an optimal distribution of a component application across a network. ICCA helps programmers by providing important information about the application at exactly the level needed: the level of component composition.