[kepler-dev] Kepler Monitoring Icons sources and demos
carueda at ucdavis.edu
Fri Oct 5 22:42:05 PDT 2007
I have checked in the sources and a couple of demos of the new Kepler
Monitoring Icons utility. Below is the contents of the readme file
with a brief overview.
Kepler Monitor Icons
$Id: README.txt,v 1.1 2007/10/06 04:59:40 rueda Exp $
Overview of this preliminary version
- For users
- For developers
- Design and implementation
- Some TODOs
To associate monitoring icons to the entities in a workflow, just insert
an instance of the org.kepler.monitor.MonitorManager attribute. You can do
this by using the "Instantiate attribute" option in the "Tools" menu.
By default, the MonitorManager will associate monitoring icons for both
actors and opaque composite entities in the workflow. This is done at
execution time. The icons will be destroyed when the execution is
completed. A monitor icon is placed close to the monitored element, and
its location is automatically updated whenever the monitored element is
relocated; this follows a simple scheme for now.
Currently, the possible icon styles are:
- traffic light (various styles)
- progress bar (indeterminate and determinate a la JProgressBar)
A parameter in the MonitorManager allows to specify which style to be used,
but this style is currently applied on all actors. The style for each actor
can be changed during execution by opening the corresponding parameter
window for the associated monitor icon; the changes will apply only for the
Running a demo:
ant -Dworkflow=workflows/test/monitor/monitor-0.xml run-dev
Package org.kepler.monitor.test contains some demo actors that explicitly
use some of the monitor icons. To run a test:
ant -Dworkflow=workflows/test/monitor/monitor-1.xml run-dev
Design and implementation
Main package: org.kepler.monitor
The MonitorManager automatically associates monitoring icons to the entities
in a workflow. Both actors and (opaque) composite entities are handled.
The manager inserts a MonitorAttribute for each monitored element.
A MonitorAttribute contains a MonitorIcon, which itself contains a
These changes are made non-persistent. The actual appearance of the indicators
is done by MonitorFigure and various styles (subclasses) are included.
The MonitorManager registers a PortEventListener to each port of the monitored
entities to update the status of the figures. Also, MonitorManager registers an
Initializable object so the icons are created at runtime and destroyed when the
execution finishes. It also registers a GraphViewListener so the location of
the icons are updated when their monitored objects move on the canvas.
MonitorFigure has two subclasses: StateMonitorFigure for figures that have
an associated current state, and ProgressBarFigure for figures that resemble
- improve configurability for the user
- allow icons for individual ports; start perhaps with just token counters
- decide how to handle transparent entities
- fix bug: concurrent modification exceptions are thrown sometimes
- for you: test and provide feedback :)
More information about the Kepler-dev