|
|
|
|
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 |
|
|
|
|
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 |
|
|
|
|
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 |