The DMTF/CIM technology stack has been chosen for the agent infrastructure. This provides several building blocks that accelerate development and reduce cost of implementation:
- A standard object broker, called a CIMOM (CIM Object Monitor), which provides a standard method for interacting with Agents. It includes multiple language bindings, a CLI, a standard communication infrastructure, security, and support for both callable and asynchronous events. The CIMOM supports compatible Agents from any source, including Red Hat and third parties. The agents can be open source or proprietary. The OpenLMI Controller is a standard CIMOM. CIMOMs have been included in RHEL since RHEL 5.
- An agent infrastructure which allows functional agents to be developed and deployed. In DMTF/CIM terminology, OpenLMI Agents are called CIM Providers. The agent infrastructure supports introspection, meaning that each agent provides information on the attributes and methods it supports; there is no need to pre-define or hardcode the agents object model. This also allows agents to be easily extended – new capabilities can be added to an agent, the old agent unregistered with the CIMOM and the new agent registered with the CIMOM, and the new capabilities used. If the existing capabilities were not changed, the new extended agent is a transparent direct replacement for the previous agent.
Agents can either be called by a script or client tool or can respond to events occuring on the underlying system and produce asynchronous notifications. A callable agent, called a CIM Provider, supports attributes, methods, and associations. A CIM Indicator produces asynchronous notifications that are received by a CIM Listener.
- Tooling for building agents. This includes a UML-like tool for defining the attributes and methods of an agent, a compiler for creating an object template or skeleton from this definition, a standard for developing agents and their interfaces, and a test framework. Agents can be built in Python, C, or C++.
- A set of rich and robust (alternatively, large and complex…) object models for enterprise computing systems. Of particular interest are:
- SMI-S (Storage Management Initiative – Specification) is a comprehensive storage specification, developed with the Storage Networking Industry Association. It covers both attached and networked storage, and has been ratified as an ISO standard.
- SMASH – Systems Management Architecture for Server Hardware.
- An existing set of agents. These existing agents are mainly focused on reporting and monitoring.
- Most of the existing agents are contained in the SBLIM package, which has been included in Fedora since at least Fedora Core 5 and RHEL since RHEL 5.