The building blocks of a workflow are the agents that provide the actual mediation functionality. The design of the workflow/agent model enables development of small, specialized agents, that when combined with other agents in a workflow provide comprehensive mediation functionality. Benefits of this approach include the ability to rapidly develop additional agents that complement existing agents, with minimal side effects.
Agents can also be identified as interface (collection and forwarding) and processing agents, whereinterface agents are used to integrate Usage Engine with external systems, such as network elements, billing systems, IN platforms, etc. They implement the protocols used for exchange of data and control information. Usage Engine provides a wide range of interface agents, which provides communication capabilities to standardized as well as vendor-specific protocols. For a list of interface agents, see Appendix A – Usage Engine Interfaces
Workflows consist of agents
A collection agent is responsible for gathering data into the workflow from external systems or devices. An example of a simple collection agent could be one that reads a file from disk and sends the file contents into the workflow.
A processing agent expects to be fed data and is expected to deliver data on one or many outgoing routes. A processing agent could be as simple as a counter that counts the throughput. It could also be more complex in that it aggregates, correlates, and consolidates the data and depending on the result delivers it on different routes.
Amongst the processing agents so called transformer agents can be identified. A transformer agent is responsible for translating an incoming byte stream into an UDR object or the opposite. For file distribution the Encoder Agent can be used to create header/trailer records containing meta-data of the file, e.g., record counter, check sum etc. This is commonly referred to as Decoding and Encoding, which the Usage Engine Ultra format system will handle.
A forwarding agent is responsible for distributing the data from the workflow to other systems or devices. An example of a forwarding agent could be one that creates a file from a data stream and transfers it to another system using FTP.