RCO


About RCO

RCO is a service to observe the distributed run of a Java/CORBA program. It is based on the OpenJava metaobject protocol. OpenJava is a compile time reflective extension for the Java language written by Michiaki Tatsubori.

RCO records the following distributed events in a CORBA computation:

  • synchronous and asynchronous (oneway) method calls, returns, arrivals, beginnings and ends,
  • thread starts, runs, ends and joins,
  • reads and writes of shared variables.
It displays a time diagram along with the causal dependencies between these distributed events. This is similar to the approach taken by Lamport's Happened before causality relation. Nevertheless, Lamport's relation only considers dependencies created by the local order of events within a process, and the ones created by point-to-point message passing primitives. We felt the need to record the many other sources of order that occur in a distributed computation. Thus, RCO also records dependencies created by synchronous communications, synchronized methods, and transactional reads and writes of shared variables.

The code needed to record the above mentioned events is automatically added by some OpenJava metaclasses. The program can then be ran with a CORBA compliant ORB such as JacORB. The causal dependencies graph is displayed with an extension of the VGJ viewer. The graph is updated as new events are generated and new dependencies are detected. At any time, a graph description can be saved in the GML markup language (this is a built-in feature of VGJ). A control panel is provided to pause, resume, move forward and backward the display.

Availability

RCO 0.3.3 is available.

News

New in version 0.3.3
  • bug fixes
New in version 0.3.2
  • an IDL preprocessor replaces the ad-hoc stub generator
New in version 0.3.1
  • Online display (no longer post-mortem)
  • Control panel
  • CORBA IOR of called object displayed in the graph

Requirements

RCO has been tested on Linux and Solaris and should run reasonably well on any other Java compliant platform.

RCO requires the following tools or some equivalent: Any report of success or failure to use RCO are welcomed.

Lionel Seinturier, Laurence Duchien.
Last modified March 27, 2000.
Please send any message to Lionel Seinturier@lifl.fr.