Open Management Infrastructure (OMI)
Open Management Infrastructure (OMI), formerly known as NanoWBEM, is an open source project supporting the development of a production quality implementation of the DMTF CIM Web-Based Enterprise Management (WBEM) standards. The OMI CIM Object Manager (CIMOM) is coded in C to help with portability and modularity. OMI builds and deploys on both UNIX and Linux systems. In addition to OMI’s small footprint, it also demonstrates very high performance.
About ten years ago, in 2012, Microsoft and The Open Group announced the release of Open Management Infrastructure (OMI). OMI was contributed to The Open Group by Microsoft in June of that year with the goal “to remove all obstacles that stand in the way of implementing standards-based management so that every device in the world can be managed in a clear, consistent, coherent way and to nurture [and] spur a rich ecosystem of standards-based management products.”
At that time, the Windows Management team posted the first of many blogs covering the details and goals of the OMI project. The following is a high-level overview of OMI’s implementation of a CIM server:
Just as the Hardware Abstraction Layer (HAL) helped open up the x86 hardware ecosystem and enable rapid innovation across the industry, CIM-based tools such as OMI form a Datacenter Abstraction Layer (DAL) that provides a framework for interoperability between management tools across diverse platforms and devices.
“… the growth of cloud-based computing is, by definition, driving demand for more automation, which, in turn, will require the existence of a solid foundation built upon management standards. For standards-based management to satisfy today’s cloud management demands, it must be sophisticated enough to support the diverse set of devices required. Furthermore, it must be easy to implement by hardware and platform vendors alike. The DMTF CIM and WSMAN standards are up to the task, but implementing them effectively has been challenging. Open Management Infrastructure (OMI) addresses this problem.”
OMI runs on managed nodes so that it can provide the management infrastructure to build distributed systems management applications based on DMTF standards. The DMTF standards include:
- CIM Infrastructure Specifications
- CIM Schema
- WS-Management Protocol
- Generic Operations Specification
OMI standards define a metamodel with rules for forming properties, methods, classes, and instances. They also define a schema for specific classes in various management domains – this is done using the Managed Object Format. The OMI standards also define the protocols enabling clients and servers to communicate and the operations that CIM clients can perform on the CIM servers. The CIM server, CIMOM, is the software service that implements these standards.
Web-Based Enterprise Management (WBEM) is a set of industry standards to manage information technology in the distributed computing environment of the Internet. A key component of WBEM is the Common Information Model (CIM). CIM, developed and maintained by the CIM Forum, defines management information for networks, applications, systems, and services. CIM also provides vendor extensions. WBEM standards share a Web-based methodology for exchanging CIM data across multiple platforms and technology sets. CIM data is used Extensible Markup Language (XML) and is generally transmitted as HTTP between WBEM servers and clients.
CIM servers enable client applications to utilize managed resources such as disks, networks, processes, and CPUs. Operations often used might include enumerating resource instances, subscribing to events on a resource, or invoking a method on a resource. In addition, CIM servers provide developers with a framework for building modules called Providers. Providers are modules that can interact directly with resources.
OMI supports clients that are using these CIM/WBEM operations on Providers. These are:
- GetInstance – gets a single instance from the server.
- EnumerateInstances – enumerates instances of a given CIM class.
- CreateInstance – creates an instance of a CIM class.
- DeleteInstance – deletes an instance.
- ModifyInstance – modifies the properties of a specific instance.
- Associators – finds those instances associated with a specific instance.
- References – finds references to a specific instance.
- Invoke – invokes a method on a specific instance or class.
- Subscribe – subscribes to an Indication class or group of classes.
CIM Server-supported Linux operating systems include:
- CentOS 6 and 7 (x86 and x64)
- CentOS 8 x64 (omi>=1.6.5-0)
- Debian 8 (x86 and x64) and Debian 9 x64
- Debian 10 x64 (omi>=1.6.8-0)
- Oracle Linux 5, 6, and 7 (x86 and x64)
- Oracle Linux 8 x64 (omi>=1.6.8-0)
- Red Hat Enterprise Linux Server 5 and 6, and 7 (x86 and x64)
- Note: Red Hat 7.1 or later also runs on the PPC platform
- Red Hat Enterprise Linux Server 8 x64 (omi>=1.6.4-0)
- SUSE Linux Enterprise Server 11, 12 (x86 and x64), 12 PPC, and 15.
- Ubuntu 14.04 LTS, 16.04 LTS and 18.04 LTS (x86 and x64)
- Ubuntu 20.04 LTS x64 (omi>=1.6.8-0)
CIM Server supported Unix Operating Systems include:
- AIX 7.1 and 7.2
- HPUX 11.31 (ia64 only)
- Solaris 10 and 11 (Sparc and x86)
Want to learn more? Check out our FREE Bugcrowd University to sharpen your hacking skills.
Organizations the world over need your help! Join our researcher community to connect with hundreds of organization programs focused on finding their security vulnerabilities. Our vast directory includes programs for all skill levels, across many industries and from around the world.
Get started with Bugcrowd
Hackers aren’t waiting, so why should you? See how Bugcrowd can quickly improve your security posture.