Intermetrics' OWatch Debugging Technology for Distributed, Component-Based Systems*

Jeff Rees, Intermetrics, Inc.
"By 2001, at least 60 percent of all new applications development will be based on assemblies of componentware, increasing both speed to market and the ability to cope with change." Gartner Group
"Sales in this market [component technologies] amounted to $240 million in 1996 and will grow to $3.3 billion by 2001." Giga Information Group

Improving Reliability and Increasing Productivity of Software Development

Within a few years, most of the software we use will be assembled from components or objects, with heterogeneity a factor in every dimension.  The vision of the component-based software movement is:
In response to this vision, Intermetrics is developing OWatchTM, a practical analysis and debugging tool for distributed, component-based software, with a particular emphasis on systems of components in operation.

Component technology is taking off with a rapidly growing market for tools. Debugging will be necessary, whether the component composition has been manual or automated or whether the composition is being performed by a professional system integrator or a less sophisticated user. Interface incompatibilities between components will occur. OWatch will help detect and correct interface incompatibilities, even when dealing with dynamically evolving systems.

The heart of OWatch is an extensible, event-driven framework that accepts diagnostic input from software probes attached to the operational components.  The probes respond to requests from the debugging framework to gather information and, where appropriate, control the behavior of the components to which they are attached. The framework also acts as the conduit through which information and requests travel between graphical user interface components and the deployed software probes.

Requirements for Debugging Component-based Systems

To meet the needs of this growing market, a debugging tool which adds real value to development tools needs the following characteristics:

Debugging Software Components Today

While there are numerous excellent debugging tools for use in developing individual components (every computer vendor provides at least one), few of these address the problems encountered in developing distributed applications. Hardware and software vendors are focused on promoting their competing component technologies, with surprisingly little debugging support being offered. As we researched this market, discussions with major vendors made it clear that debugging support is not a top priority. These vendors are focused on winning platform wars. Debugging is on the enhancements list of every Integrated Development Environment (IDE) and Application Development Environment vendor. They understand the need for  debugging capabilities, often encountering debugging challenges within their own applications. But with today’s compressed release cycles they are hard-pressed to add competitive features while simultaneously coping with evolving standards such as Java and COM. To devote five to ten person/years to developing and then maintaining a debugger is difficult to justify when their product is battling for position in the current dynamic and crowded marketplace for Internet and component technology tools. The struggle among component technologies - JavaBeans, COM and CORBA - throws the most powerful software vendors into competing camps in which it is rare to acknowledge a competing technology by offering distributed debugging services that address the technologies promoted by their competitors. The resulting state of debugging tools today is predominately that of single process tools that debug a single, polarized vendor environment. Few address distributed applications, and fewer still have managed to keep current with the dynamic component marketplace.

Intermetrics Vision

Future systems will be heterogeneous and constantly evolving. Software environments will remain heterogeneous with multiple network protocols, hardware types, and operating systems. Applications will include increasing amounts of component software that will be added to and often will encapsulate a legacy of working applications. Many applications will involve the use of more than one of the component technologies, as ever more applications are built by assembling existing components and subsystems "as is". We expect that component technologies CORBA, JavaBeans, and COM will all have significant market share in 2000. It is also likely that new technologies will emerge which are at least as important. OWatch will be capable of capturing, recording, displaying, playing back, and modifying the message traffic between the software components in the distributed application. It will understand existing and emerging component technologies being used to build complex, distributed applications. Its readily extensible architecture provides a sound framework to keep pace with the rapid evolution that is characteristic of the distributed application domain.

Intermetrics' Goals for OWatch

Our primary mission is to increase the reliability of the component software that will be used in the distributed enterprise. We want to increase the productivity of application developers who have to deal with real-life applications distributed across the heterogeneous environment. We want them to be focused on component semantics and interactions, not the low-level details characteristic of source-level debugging. We are focusing on the dynamic analysis of systems of components in operation, allowing incompatibilities to be detected and corrected quickly. The component-based software vision anticipates components being dynamically linked at the time of use, necessitating tools that deal with dynamic behaviors. The tool must permit the evolution of components which are used in diverse contexts by thousands - even millions - of users.

Message-based Debugging of Distributed Component Applications

OWatch will be a highly customizable tool for debugging distributed applications built using standard component technologies – COM, CORBA, and JavaBeans. OWatch will allow developers and support personnel to place ‘probes’ at strategic points in the distributed application that will intercept, interpret, display, and play back the message traffic between the application components; its event-driven framework is ideally suited to the requirements of this message-based debugging.

OWatch will record the data collected by the probes in its own event history log. Plug-in viewers will analyze this data, and based on a semantic understanding of the application, will display it in user-meaningful ways. For example, a strip-chart viewer will display the message traffic between application components over time. The strip chart will be scrollable forwards and backwards, with the user being able to drill down into individual message contents.

Autonomous Probes

The probes themselves will be resilient to communication and other logistic problems to which the application itself is subject; the ability to survive a network failure, for example. When the network connection is re-established, the probe will transmit data collected during the failure. Probes will be intelligent; when they are dispatched, they will determine the nature of the target component and dynamically load the appropriate target-specific code.

Ease of Use

Key to the ease-of-use and effectiveness of OWatch will be the user’s ability to select and place probes at strategic points in the application. However, the complexity of the "plumbing" used in integrating the various component technologies requires the user to possess considerable expertise in order to position probes correctly. To meet our objective to increase programmer productivity, OWatch will automatically place probes and automatically configure itself according to semantic models of the distributed applications. It will provide the ability for the user to attach debug-time viewers of choice, either standard GUI widgets or user-supplied  application specific viewers, using a graphical model of the application to specify the attachment point.
OWatch is a trademark of Intermetrics, Inc.
* Initial exploratory development of component-based debuggging was funded in part by the Defense Advanced Research Project Agency under contract F30602-96-0217. Continued research related to OWatch is being funded jointly by Intermetrics and the National Institute of Standards and Technology under a NIST Advanced Technology Program Award