DARPA ULTRALOG Final Report - Industrial and Manufacturing ...
DARPA ULTRALOG Final Report - Industrial and Manufacturing ...
DARPA ULTRALOG Final Report - Industrial and Manufacturing ...
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
In the Cougaar planning model, the basic element is a<br />
task. Each task has a unique identifier (UID) <strong>and</strong> a set of<br />
fields including the task verb (e.g. “Supply”, “Project”,<br />
“Transport”) <strong>and</strong> the direct object (e.g. the UID of the<br />
Asset which the task acts on).<br />
Each task element must be allocated to a plan element<br />
during the distributed planning process. These include:<br />
• Allocation elements. An allocation is a<br />
assignments of tasks to particular assets. The<br />
assets can be locally represented (e.g. an<br />
inventory) or an organizational asset (e.g. a<br />
customer organization allocates a task T to a<br />
Supplier asset. Here, the Supplier asset<br />
represents an actual agent to which T will be<br />
forwarded.)<br />
• Expansions. Decomposition of tasks into<br />
subtasks.<br />
• Aggregations. These collect multiple tasks into<br />
a single task.<br />
Each agent can therefore be modeled as taking inputs as a<br />
set of tasks, generating local blackboard tasks <strong>and</strong> plan<br />
elements, <strong>and</strong> generating outputs as a set of tasks to be<br />
forwarded to the representative agent(s). (In Cougaar,<br />
tasks are forwarded to another agent by the logic provider<br />
if they are allocated to the (local) organization asset<br />
which represents the target agent.) All the blackboards<br />
<strong>and</strong> task elements are assumed to be persistent, unique<br />
objects.<br />
The result of a single planning run is logically a<br />
connected, distributed plan graph that spans multiple<br />
agents <strong>and</strong> multiple nodes. In addition, the plan graph<br />
may evolve <strong>and</strong> change during replanning as tasks are<br />
rescinded, modified <strong>and</strong> replanned.<br />
2. Castellan System Design <strong>and</strong><br />
Implementation<br />
The primary distinguishing aspect of Castellan is that<br />
provides the ability to observe the time evolving state of<br />
the distributed agent blackboards rather than the final<br />
state after planning has been reached.<br />
The Castellan system has two aspects: the client<br />
implementation which monitors planning at agents, <strong>and</strong><br />
the server implementation that collects the logs<br />
accumulated by the client side. Figure 1 shows an<br />
example of the concept of operations. It shows a set of<br />
agents which are being monitored <strong>and</strong> sending events<br />
traces to a server application. In turn, the server<br />
application can log them to a database or feed them<br />
directly to monitoring <strong>and</strong> analysis applications. In the<br />
current implementation of Castellan, the server<br />
application is itself implemented as a plugin which can be<br />
embedded in a Cougaar agent.<br />
Castellan has evolved to support the following modes of<br />
operation on the client implementation:<br />
• Plugin based execution. A monitoring client<br />
plugin loaded in each agent subscribes to all<br />
modifications to the blackboard.<br />
• Logic provider based execution. A Castellan<br />
logic provider is attached to each agent <strong>and</strong><br />
monitors changes to the blackboard through the<br />
logic provider interface.<br />
The primary difference between these two approaches is<br />
that the latter allows monitoring the source of each<br />
change to the blackboard as well as the number of<br />
execute cycles associated with each change. The latter<br />
approach is useful in debugging since it can observe<br />
which plugins execute <strong>and</strong> the number of execute cycles<br />
of each plugin loaded for an agent. These features are<br />
useful for debugging <strong>and</strong> detailed performance analysis of<br />
agents.<br />
Agent 1 Agent 2 Agent 3<br />
Event<br />
Database<br />
Castellan Server<br />
Plan Analysis<br />
Applications<br />
Sensors<br />
Event Protocol<br />
Figure 1. Castellan System Concept<br />
As agent execution proceeds, the client implementation<br />
generates a stream of events for each task <strong>and</strong> plan<br />
element added, changed, or removed to the system<br />
blackboard. The event trace <strong>and</strong> logging protocol extracts<br />
a subset of the data encapsulated by the tasks, assets, <strong>and</strong><br />
plan elements sufficient to reconstitute the entire plan<br />
graph. These include:<br />
• The unique identifier, encoded as a symbol id<br />
rather than a string.<br />
• The timestamps associated with the blackboard<br />
action (both simulation <strong>and</strong> wall clock time.)<br />
• For tasks, the verb for tasks encoded as a<br />
symbol id.