Open Management Infrastructure

Open Management Infrastructure

  • Comments 43
  • Likes

Many years ago, Microsoft joined with other companies to define the Hardware Abstraction Layer (HAL), a set of standards to abstract the devices on a PC (and later, a server) for the OS.  The HAL is the unsung hero of the computing industry, allowing an amazing level of choice and interoperability in the x86 ecosystem.  It is one of the critical hidden technologies behind why all this stuff “just works.” 
With Windows Server 2012, Windows has shifted its focus to become a Cloud OS, so a new abstraction layer is required – a Datacenter Abstraction Layer or DAL.  Microsoft is, once again, joining with other companies to define the DAL.  Instead of starting from scratch or advancing proprietary standards, we are embracing standards-based management to accelerate the process so we can get the ecosystem and our customers to the cloud as quickly as possible. 

As we looked at the task of getting the industry to adopt standards-based management, we saw a couple of challenges. 

The first challenge was to convince the industry that standards-based management was credible and able to do complete management.  We proved that with our big investments in standards-based management in Windows Server 2012.  In this release, we are fully committed to standards-based management as the primary management path; DCOM is provided only for backwards compatibility. 

The next big challenge was to help the industry implement standards-based management.  The existing open source implementations have a number of problems that stopped the ecosystem from embracing this approach.
 
In today’s blog, Otto Helweg and Wassim Fayed, Program Managers in the Windows Management team, describe what we did to address that concern.  It is truly an exciting time to be working in the computer industry – as a community, we are all about to take this to the next level and our customers are going to reap huge rewards.  What could be better than that?

Cheers!  Jeffrey


Microsoft and The Open Group are going big on standards-based management with a new, free, open source technology called Open Management Infrastructure or OMI (formerly known as NanoWBEM).   We are working with Arista and Cisco to port OMI to their network switches for our Windows Azure and cloud data centers.  Jeffrey Snover did a technology demonstration at TechEd Europe in which he used a common set of standards-based tools to manage a base-motherboard controller on a server, a Windows operating system, and an Arista switch running OMI.

The public availability of OMI means that you can now easily compile and implement a standards-based management service into any device or platform from a free open-source package. Our goals are 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 spur a rich ecosystem of standards-based management products.

Today, datacenters  comprise a slew of heterogeneous devices supplied by different hardware and platform vendors and requiring different tools and management processes. Companies are forced to write their own abstraction layer or to be locked into a single vendor, which limits their choice and agility. This problem can be solved only by moving the industry to adopt the right standard for datacenter devices and platform abstractions.

In addition, 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 that are required and 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 a challenge.  Open Management Infrastructure (OMI) addresses this problem.


Easy and Diverse Device Support
Let’s start with a little history. Windows has long been a leader in implementing CIM, beginning with WMI (Windows Management Infrastructure). The Distributed Management Task Force (DMTF) Common Information Model (CIM) is an open standard that defines how managed elements are represented as a common set of objects and defines the relationships between them using associations. 

When WMI was first introduced as an out-of-box install for Windows NT 4.0, it implemented early versions of the standards and schemas. WMI used DCOM for remote management, because no standard protocol was defined at that time. In Windows Server 2012, we invested heavily in standards and remote management, synching WMI with the latest DMTF standards and protocols. 

The CIM standard is sophisticated and flexible enough to use as a management model for all devices – particularly datacenter devices. Although these DMTF standards have been around for years, they have been a challenge to implement, and existing implementations have been too large for mobile and embedded devices.  To address these challenges, Microsoft has built a highly portable, small footprint, high performance CIM Object Manager called OMI that is designed specifically to implement the DMTF standards. We then worked with The Open Group to make the source code for OMI available to everyone under an Apache 2 license.  OMI is written to be easy to implement in Linux and UNIX systems.

Partners that adopt OMI will get the following:

  • DMTF Standards Support: OMI implements its CIMOM server according to the DMTF standard.
  • Small System Support: OMI is designed to also be implemented in small systems (including embedded and mobile systems).
  • Easy Implementation: Greatly shortened path to implementing WS-Management and CIM in your devices/platforms.
  • Remote Manageability: Instant remote manageability from Windows and non-Windows clients and servers as well as other WS-Management-enabled platforms.
  • API compatibility with WMI:  Providers and management applications can be written on Linux and Windows by using the same APIs.
  • Support for CIM IDE: Tools for generating and developing CIM providers using tools, such as Visual Studio’s CIM IDE.
  • Optional PowerShell Support: If OMI providers use a set of documented conventions, Windows PowerShell will discover them and auto-generate cmdlets from them (This is how many of the 2300+ cmdlets in Windows Server 2012 are implemented).


OMI Details
For developers, OMI’s small footprint (250KB base size with a working set memory usage of 1MB) and high quality code will help reduce the complexity of developing a high performance, stable standards-based management stack. For IT pros, OMI greatly amplifies your effectiveness and productivity by increasing the number and types of devices you can manage and by unifying the management experience with standard-based management and automation tools, such as Windows PowerShell and System Center, and other management solutions.

OMI includes the following components and tools in its implementation of a CIM server.
 


Extensibility

OMI uses a provider model to enable developers to extend OMI to their specific device or platform. Historically, providers have been very hard to write, which made them costly and unstable. OMI leverages a greatly simplified provider model that is also being used by WMI in Windows Server 2012 and Windows 8. In short, OMI simplifies implementation for the developer by providing the following:

  • Next Generation Provider Interface
  • Compatible with the new WMI provider interface in Windows Server 2012 and Windows 8
  • Generation of provider skeletons (omigen)
  • Generation of concrete CIM class data structures and code
  • Provider registration tool (omireg)


The development model begins by specifying what needs to be managed.  From the specification, the omigen tools generates a set of C data structures and code that implements management model.  The developer adds their code to the skeleton  and registers the provider.


OMI is for Embedded and Mobile Systems
Embedded and mobile device management might be one of the most demanding tasks for a management technology, because they have the most significant processor and memory constraints. We figured that if we could build a management technology that meets their needs, OMI should be well suited to address the management needs of any device. Therefore, to keep OMI small and ideal for embedded systems, the following design characteristics were implemented:

  • Server object size less than 250 kilobytes
  • Server implemented entirely in C
  • Provider interface is C
  • Repository-less server
  • Concrete provider classes yield less code
  • Iterative size optimization
  • Diskless operation

Security
Security matters.  Ever since Bill Gates’s famous Trustworthy Computing memo, we committed ourselves to the Secure Development Lifecycle Model. Security is a primary factor in all aspects of our development and coding process. Despite OMI’s small size, OMI implements the following security capabilities:

  • HTTPS (SSL)
  • HTTP Basic Authentication
  • Local Authentication
  • Pluggable Authentication Module (PAM) support
  • Out-of-process providers
    • Run as requestor
    • Run as server
    • Run as designated user

Great! How Do I Get OMI?
Microsoft has partnered with The Open Group to create a hardware, software, and developer community to leverage, support, and enhance OMI. You can download OMI and/or get more details from The Open Group’s project site: http://omi.opengroup.org. In the near future, you will see this site and community grow and support more detailed documentation, contribution facilities, as well as OMI focused developer conferences.

For specific questions, please reach out to ottoh@microsoft.com

Your comment has been posted.   Close
Thank you, your comment requires moderation so it may take a while to appear.   Close
Leave a Comment
  • Hi, could you please elaborate on what you mean by "high quality code"? (OMI details). Is it written in C directly, or have you been utilizing some kind of functional programming technique first and then just optimized the code further, made it better by hand?

    This would really be interesting, as C isn't the most modern language anymore, right?

    I got into university (computer science and electrical engineering double major) this year, so please don't judge my comment to hard :-D

  • Great!

  • This is awesome.. are there any code samples available for writing OMI providers. Also how does OMI memory an d performance compare with other common servers like OpenPegasus and SFCB?

  • I can vouch for Jeffrey's claim that OMI is easy to port to Linux-based switches.  Getting Microsoft's OMI up and running on Arista switches was a breeze.  It's an easy build and comes complete with command-line test utilities and a GNU-style autoconf build script.  A very nice piece of work.

    Kenneth Duda

    CTO, Arista Networks

  • RT @ Brian Kupcik

    Brian,

    Yes, there are sample providers in the OMI download available from http://omi.opengroup.org.

    This getting started guide will also help you collaboration.opengroup.org/.../documents.phpaction=show&dcat=&gdid=26350

  • RT @ Kenneth Duda

    Thanks Ken, there is no better compliment than from partners and customers.

    Osama Sajid, Program Manager

    Windows Server - Standards Based Management.