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.

replace with your keywords replace with your keywords replace with your keywords replace with your keywords replace with your keywords replace with your keywords replace with your keywords replace with your keywords