Agent Plugins (5.0)

Agent Plugins (5.0)

A Usage Engine agent is defined by inserting a class that extends the DRAgentInspectable class into the code server. The server will then instantiate the class and extract the needed information about the agent. Most agent related classes are located in the devkit.wf package.

An agent is either a collector, responsible for feeding data into a workflow, or a processing agent responsible for processing the incoming data. Processing agents that do not forward data to other agents, but forwards data to downstream systems, are referred to as forwarding agents. Agents are designed to operate either in a batch-oriented or a real-time-oriented workflow.

To create a user defined agent, a configuration class for the agent is required. The configuration class is a mechanism by which agents can supply the system with data and meta­data at runtime and compile time. A configuration class is a Java class associated with an agent at compile time. The configuration data is also available at runtime for further processing.

The agent plugins contain four main parts; Config, Executable, GUI, and Inspectable.

Agent structure

The corresponding classes should be named as shown below:

Class

Description

Class

Description

<Agent>Config

This class is the agent's configuration class. The class holds the configuration data for the agent. It should extend the DRAbstractConfigObject class.

<Agent>Insp

This is the agent definition class that contains references to the user interface and executable implementations of the agent, as well as other information. This class must extend DRAgentInspectable.

<Agent>UI

The agent user interface dialog is used to collect and display the template configuration data for the agent. It is defined in a class extending DRAgentUI.

<Agent>Exec

This is the class responsible for the actual execution that implements the agent's runtime logic. The class to extend depends on what type of agent is developed: DRRealtimeCollector, DRBatchCollector, DRRealtimeProcessor or DRBatchProcessor.