Information modeling may seem like an arcane aspect of computer networking, but it has huge implications for the level of consistency -- and therefore interoperability -- that product developers, service providers, and open source projects bring to their respective products, services, and architectures. That’s why the Open Networking Foundation (ONF) launched its Common Information Model (CIM) work in 2014.
Our goal is to help foster development of an industry-wide, open CIM that reduces unnecessary variety in how developers represent a given concept or problem. Having a CIM, a process for using the CIM to generate implementation views, and tools that consistently generate the implementations is key to ensuring unambiguous and interoperable products as well as open source software.
This also helps reduce errors and enables code to be more easily produced. For network operators who want to build best-of-breed networks, it enables them to compare apples to apples and take full advantage of the latest abstractions and virtualization technologies.
What is Information modeling?
Information modeling is the process of identifying, defining, consistently labeling, and recording the key concepts like functional and physical things in a domain as well as the interrelationships between and among them.
Put another way, an information model defines and labels the things in a domain -- for example, a telecommunications network -- in terms of: objects such as links, terminations, and controllers; their properties or attributes, such as latency; and their relationships -- for example, a link is bounded by terminations.
The CIM work is part of ONF’s overall services area work, which focuses on technical projects that leverage SDN technologies to enable the creation of applications and network operator services such as inventory management and provisioning.
Having common interfaces is key to interoperability. At the same time, strengthening interoperability should not constrain vendor solution innovation. Consequently, ONF work has focused on the definition of models related to interfaces and the coding of APIs from the model -- as opposed to defining database schema, for example.
The CIM provides an interface-oriented canonical model. While it could be used directly to construct interfaces, the Information Modeling group recognizes that an interface should be oriented toward the user’s needs from the user’s viewpoint. That orientation includes removal of aspects not relevant to the viewpoint and also modifying the representation to suit the viewpoint. Hence a process called “pruning and refactoring” is used to generate information model representations of relevant interface views from the CIM. (I admit this sounds arcane, but to practitioners it brings clarity and simplicity.)
The group released version 1.1 of its core CIM last November. This model provides network technology-agnostic and solution technology-agnostic representations of network topology, forwarding, and termination. It's recorded in unified modeling language (UML) and captured using the Papyrus open source tooling.
By normalizing concepts, objects, and interfaces, an information model reduces complexity. In addition, an information model can be used to produce code, helping accelerate product and service development while reducing coding errors and interoperability issues.
Key goals of ONF’s CIM work include:
- Minimize integration costs within an organization and between organizations. This is especially useful to enterprises, service providers, and other customers that deploy products and solutions from an ecosystem of vendors and open sources. By ensuring that common concepts are represented in a common way, an information model eliminates the costs associated with trying to integrate solution elements that use unnecessarily different ways to represent the same thing.
- Maximize consistency of operations while minimizing human involvement, thereby reducing costs and errors. By enabling sharing of fundamental concepts, the ONF CIM simplifies the integration of management and control environments. Indeed, a model comes to truly represent a class of things, and network operations can be established once for everything in the class, not uniquely for each particular item in the class.
- Maximize the opportunity to share working parts, such as micro-service components.
- Support innovation and evolution through an iterative/recursive process that allows for knowledge to evolve and makes it easy to capture insights into these changes and link insights to applications.
Designed to evolve
An information model isn’t a static thing. It needs to be flexible to reflect new technologies, applications and capabilities, as well as insights gained over time by developers. Consequently, the CIM is designed to evolve as developers gain experience, for example from deployment of the derived interfaces. The model is constructed in such a way to readily facilitate this evolution. The entities in the model are each marked with a maturity statement and the model is divided into parts to enable independent development.
The CIM is network technology-agnostic, so it is important to have a mechanism that enables consistent addition of specific technology details. The CIM provides such a mechanism, one that also is designed to support network technology evolution. Since ONF does not own the definition of any particular network technology, the CIM group has looked to other bodies (e.g., ITU-T) to provide the necessary definition shaped to suit adoption by interfaces developed from the CIM. The mechanism also allows vendor-proprietary additions so that, for example, a pre-standard vendor innovation may be accommodated on an equal footing with the technology standard properties.
The Information Modeling group has strongly promoted the use of the model within ONF and within other industry groups, including BBF, ETSI-NFV, IETF, ITU-T, MEF, OASIS TOSCA, OIF, and TMF. The group is aiming to work jointly with MEF and TMF on the one model.
The group is also tasked with providing recommendations for modeling tools and guidelines. Tooling and guidelines have recently been moved to an ONF-sponsored open source project (Eagle). This work is now shared and co-developed with individuals who are active in ETSI-NFV, ONF, TMF, and ITU-T. Eagle is also the home of tooling that takes an appropriately formed information model in Papyrus UML (such as TAPI) and generates interface definitions (currently in YANG and JSON schema).
Projects are under way to use the ONF-CIM work to construct working interfaces that developers can use in open-source projects as well as commercial developments. While information modeling may not be top-of-mind for most CIOs, they’ll appreciate the benefits of this work as more robust and interoperable open-source platforms and commercial products become available. I promise you, someone on your staff understands and appreciates these benefits.