Visualizing Mobile Agent Executions
Thomas Kunz
Systems and Computer Engineering
Carleton University
http://kunz-pc.sce.carleton.ca/
tkunz@sce.carleton.ca

Outline
Motivation and Related Work
What to Visualize
How to Visualize
Tracing and Visualization
Event Generation
Event Collection
Event Visualization
Conclusions and Future Work

Motivation and Related Work
Applications involving mobile agents are complex:
All the problems of parallel and distributed applications (concurrency, scale, non-determinism, etc.)
Additional problem: where are agents?
Visual tools used widely in parallel and distributed programming environments for program understanding, fault and performance debugging, …
Some popular visualization tools:
Poet
XPVM
Polka
Paragraph
All support visualizing execution dynamics, none explicitly shows mobility of code

What to Visualize
Visualization based on definition of “events”
Events are lowest level of observable behaviour
Sample events: send/receive a message, create a thread/process, complete an encryption task, ….
Target environment: Objectspace Voyager
No distinction between objects and agents (agents are objects that move autonomously)
Our focus: objects/agents and their mobility
Object/agent creation and destruction
Events related to mobility: departure and arrival

How to Visualize

How to Visualize

Event Generation
Events are generated by adding instrumentation
Operating system
Runtime system, Middleware
Application (our approach)
To reduce effort, use:
class inheritance (inherit from a “Visualizable” class)
adaptor pattern for classes that cannot use inheritance (in single-inheritance systems)
Special features of Java/Voyager:
Callbacks for migration-related events provided
Due to dynamic garbage collection, we cannot reliably detect object destruction

Event Collection

Event Visualization

Event Visualization (cont)

Event Visualization (cont)

Conclusions and Future Work
Identified interesting events to visualize dynamics of mobile agents
Developed runtime system support to generate and collect these events
Provide a visualization toolkit (based on XPVM) to display agent movements within a process-time diagram
Future work:
Include other interesting events (method invocations…)
Study probe effect and performance for on-line visualization
Collect user feedback to validate usefulness of tool
Identify and support other interesting views (network, etc.)