OVATION Overview
CORBA and its pervasiveness in a wide variety of products, ensures that teams can now design, develop and implement distributed object systems over elaborate networks connecting diverse environments. However, the continued evolution of such systems is currently hindered due to the dearth of available tools that permit the debugging, diagnosing, and analyses of such complicated environments. In order to support the stringent and diverse requirements of the distributed object environment, more sophisticated, powerful tools are clearly necessary.
Debugging distributed applications can be time-consuming and error-prone. Distributed applications involve several processes communicating with each other, frequently across a network. They involve complex interactions between distributed objects, and are often affected by timing issues.
Existing debugging tools typically address a single-process environment. The common source-code debugger enables a developer to step through code line-by-line, examining (or even modifying) data along the way. Debuggers are very useful tools once the problem has been narrowed to a single process, however many problems are not easily isolated to a single process.
OVATION is a tool intended to fill this gap. OVATION collects message and event data that occur between distributed objects and processes independent of whether the objects reside in the same process, in different processes on the same host, or distributed across several processes on several hosts. OVATION can collect data for both IDL method invocations and Event Channel events. Collected data can be examined through a GUI Visualizer, or the data can be exported to a text file and examined by user-created tools.
OVATION provides a set of tools that provide:
- Instrumentation that can be switched on and off to mitigate tool intrusion into system behavior.
- Filtering to cope with the large amounts of information.
- A storage strategy for later playback and analysis.
- A visualization capability which when combined with annotation and settings enable the interpretation of object interaction.
The development of OVATION was undertaken with the following architectural constraints in mind:
- Modularity
- Collector is separate from visualization to support user-defined visualizers
- Allows for additional probes to be installed without changing existing probes.
- Portability
- Ensure that a diverse set of development environments are able to use the tool.
- Minimal intrusiveness
- Minimize impact of data collection on system behavior.
OVATION was developed with the ACE ORB (TAO) but is designed to be portable between ORB products. This portability is achieved by using the OMG Portable Interceptor specification. Portable interceptors in CORBA are objects that the ORB invokes at predefined points in the request/reply paths of an operation invocation.
The visualization capabilities of OVATION are supported through a Java application which graphically depicts the processes, threads, objects, and messages between them. This application allows you to load previously collected inter-process communication data for display from multiple perspectives. More information can be found on the visualizer in the OVATION Visualizer Users Guide