
The CHAIN system is based on the ISL system. Like
the various agents that may be dynamically registered
on the ISL system, a CHAIN Repository and Execution
Space are also registered on the ISL system. The Repository
contains Plug-ins, or proxies, to the various agents available
to be dynamically composed into CHAIN Plans - as well
as the Plans themselves. The Execution Space will take
a Plan that is to be executed autonomously and begin communication
with the agents composed in the Plan when appropriate.


Agent Development:External
agents may be developed and uploaded directly into the
CHAIN Repository along with all supporting jar files
if any are required. Alternatively, external agents
may be developed and registered on the ISL system
and have a plug-in proxy uploaded to the CHAIN Repository
that can communicate with that agent. Either way, that
agent is now available to be dynamically composed into
new and existing CHAIN Plans.
Each
agent specifies a set of inputs, zero or more, denoting
what data is required for that agent to complete its
task successfully. Additionally, each agent specifies
a set of outputs, zero or more, denoting what data is
generated by this agent when its task has been completed.
Finally, each agent specifies a set of execution paths,
zero or more, that may be followed in a CHAIN Plan from
this agent. Which path is taken is determined by the
agent itself based on the agent's processing of its
task.
Plan
Creation:
The
user may develop a Plan based on the agents uploaded
into the CHAIN Repository. A Plan's control flow is
based upon how the user chains the various agents in
the Plan together. An agent is chained to another agent
by linking one agent's execution path to another agent.
During Plan execution, after one agent has completed
processing, the Plan will follow the agent's indicated
execution path and begin processing the agent linked
to that execution path. The agents may be chained together
in any way the user sees fit to accomplish the greater
task desired. (see the diagram below)
One
agent's output may be mapped to another agent's input.
In this way, data gathered by a Retrieval agent and
published as an output may be mapped to an input for
an Analysis agent's processing which may in turn
generate additional data as an output of that Analysis
agent.

Plan Scheduling:
The
user may provide advanced scheduling parameters for
a Plan's execution. The user may specify how many times
to run a Plan, how often to run the Plan (i.e. hourly,
daily, etc), when to start running the Plan and when
to stop running the Plan.

|