OverView: Generic Visualization of Dynamic Distributed Systems


1 Project Description

OverView is a toolkit for visualization of distributed systems, and is designed to be generic (that is, able to be applied to many different distributed systems), scalable (that is, to scale up to very large distributed systems), and dynamic (that is, functioning as well online as it does offline).

OverView is written in Java and is designed to work with any arbitrary Java system via a custom unintrusive profiling mechanism and a simple declarative language (called the Entity Specification Language) which describes how to map Java method invocations into a high-level description of visualization events.

Apache's BCEL is used for OverView instrumentation, while Processing is used for rendering graphics.

1.1 Project Team

1.2 Related Papers

2 Downloads

2.1 OverView Software

Please note that OverView requires Java 1.5 to compile and run.

2.2 Related Media

3 Documentation

3.1 Quick Start

The quickest way to start using OverView is to simply download the latest OverView binary, above. It will download a .jar file, which you should place in a convenient location.

Then, all you need do to start using OverView is to ensure that the .jar file is in your Java classpath, either by placing it in your CLASSPATH environment variable (eg. CLASSPATH=.:/path/to/overviewX.X.X.jar), or by including it from the java command line (eg. java -cp .:/path/to/overviewX.X.X.jar).

Now, using OverView is a two-step process. First, you need to write an Entity Specification Language file, which is used to map Java method invocations into OverView events. Once writing it, you should run java overview.ovi.OverViewInstrumenter on that ESL file, from the toplevel directory of your project. OverView will examine the ESL file and instrument your existing Java bytecode to send events over a port. Other than that, your program remains unchanged. The second step consists of running your program and starting java overview.ovp.OverViewPresenter to listen to it. This is easiest to do by starting your java program with the -DovPause command line switch (so that it will wait for OVP before executing).

If you would like to test OverView to ensure that it works, it comes with a couple test programs. Before doing anything, you will need an OverView Daemon running, to relay events. To start one, try:

java overview.ovd.OverViewDaemon

Take note of the port that OVD is running on. Then, you should start a client, so you can visualize events as they happen:

java overview.ovp.OverViewPresenter localhost:6060

replacing, of course, localhost with whatever particular host you're running OverView on. This should open an empty window that will display events. Finally, run your program:

java -DovHost=localhost:6060 overview.examples.fibonacci.Fibonacci 8

You should begin to see a visualization of the sequence of Fibonacci numbers being calculated recursively.

3.2 Software Compilation

Compilation is managed through a simple shell script, called compile, in the topmost directory of the release. The script will compile OverView itself and instrument the included examples. Additionally, if you merely wish to remove all Java binaries, you can execute compile clean to do so.

3.3 Software Invocation

The usage for OVI, OVP, and OVD are simple:

However, when OVI instruments Java programs, those programs are given several extra command-line options. They are given below.

3.4 Entity Specification Files

3.4.1 Examples

3.5 Frequently Asked Questions

4 Related Websites