View Source

h2. Interface Overview for "{metadata:Interface Name}Resource Agent (Framework){metadata}"

_See the_ _[System Interfaces overview page|syseng:CIAD OV System Interfaces]_ _for a list of all internal and external system interfaces._

{metadata-list}
|| Subsystem | COI ||
|| Giver | Resource Agent ||
|| Receiver | Processes using agents \\ ||
|| Release Introduced | R2 ||
|| Status | current ||
|| Document Number | None ||
|| Interface Description | How to access any resource agent in the system ||
|| Dependencies | ||
|| Technical Notes | ||
|| Source Code | [xxx] ||
{metadata-list}

Resource Agents are an central class of [agents|CIAD SV Integration Strategy] with the purpose of representing and managing (taskable) resources in the ION system. Taskable resources are resources with internal state and potential behavior.

In Release 2, the following types of Resource Agent exist:
* Instrument Agent
* Instrument Agent Proxy
* Platform Agent
* Operational Unit Agent (represents one Virtual Machine Instance)
* Service Agent
* Dataset Agent

The figure below shows the specialization of the agent hierarchy in Release 2 and the respective responsibilities.

!https://docs.google.com/drawings/pub?id=1dZ-WoX0nHvRkOcrQ1bY1Zie0wGcSnBa-YqxCfSy_gsY&w=740&h=700!

_Figure 1. Agent Specialization (OV-1)_

h2. Resource Agent Interface

The following operations have been defined and/or implemented in this interface.

{html-include:url=http://architecture.oceanobservatories.org/ion/r2services/interface/services/iresource_agent.html}


h2. Resource Agent Model

Figure 2 depicts a domain model describing resource agents for managed resources. The COI subsystem is responsible for defining and implementing a framework for resource agents and mechanisms to interact with these agents and to manage their associated resources. A Managed Resource may control and represent one physical resource. Alternatively, it could also be a virtual resource, such as a proxy for a Managed Resource, a Function Block (service), or an executable process. A Resource Agent represents the Managed Resource. The agent monitors and controls the resource, by maintaining a FSM representation of the resource's internal state. The agent also keeps track of the resource's relations to the environment, such as to an owner entity, an operating community, to users and external communities. Contracts and commitments are defined by the COI Governance Framework. The agent also advertises the resource's capabilities to the environment.

!Resource_Agent_model.png!

_Figure 2. Resource Agent Model for Managed Resources (OV-7)_

Figure 3 shows an illustration of Resource Agents representing resources. The figure shows a physical resource (such as a sensor) as well as a service resource. Resource agents themselves can be represented by proxy domains into another domain of authority.

!OV1_ResourceAgent.png!

_Figure 3. Resource Agents (OV-1)_

h2. Service Dependencies

Figure 4 depicts the decomposition and model for resource agents.

!http://architecture.oceanobservatories.org/ion/r2/guidpng/B751DF6C-65B8-490a-BE4A-40C0F2395C94.png!

_Figure 4. Resource Agent services and model (OV-2)_

*See also*
* [Resource Agent Interactions|CIAD COI OV Resource Agent Interactions]
* [Taskable Resource Management|CIAD COI OV Resource Management]