17.04.2015 Views

DARPA ULTRALOG Final Report - Industrial and Manufacturing ...

DARPA ULTRALOG Final Report - Industrial and Manufacturing ...

DARPA ULTRALOG Final Report - Industrial and Manufacturing ...

SHOW MORE
SHOW LESS

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.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!