The openUBMC architecture uses four models to describe BMC services to deal with three major frequent service changes.
Module Description Source (MDS)
Based on the microcomponent management framework and model description, MDS offers lifecycle, interface, dependency, and data management for components, along with flexible expansion and isolation capabilities.
- Lifecycle management: Supports component initialization, data distribution, health monitoring, and fault recovery.
- Interface and data management: Explicitly declares the external interfaces and internal data formats provided by the component, and provides automatic interface registration and invocation, data initialization, hardware data distribution, data persistence, and reliability protection.
- Dependency management: Explicitly declares component dependencies on external interfaces to ensure orderly dependency and tailorability management.
- Scalability and isolation: Resource interfaces can be added for components. The old resource interface can be rewritten in inheritance mode. Preprocessing and postprocessing can be added for old resource interfaces in inheritance mode. Extension points can be inserted, and customization processing can be added to extension points. (Extensions of this type cross the interface management boundary and compatibility cannot be ensured.)
Management Model DataBase Interface (MDB Interface)
The MDB interface defines abstract interfaces of system resources and resource relationships from the system perspective.
It is a resource collaboration standard implemented based on the D-Bus specification and can integrate with the OpenBMC app.
Components and customized functions can be flexibly expanded based on the MDS and MDB Interface.
Interface Adapter
Due to the fast iteration of Redfish specifications, vendors have many customized Redfish interfaces beyond standard interfaces. In addition to Redfish, BMC also provides other protocols, such as SNMP and CLI. The interface adapter can implement the following functions:
- Efficiently adapts to different interfaces.
- Covers other northbound protocol types besides Redfish.
- Isolates customized interfaces of different devices or vendors.
- Separates protocols from data.
Northbound interfaces can be flexibly extended based on the interface adapter.
Device Interface
The openUBMC community takes the lead in developing southbound device specifications and enables the following functions through the device interface:
- Provides a stable standard definition of the hardware model required by the BMC service, so that the BMC service app is not frequently changed due to hardware changes.
- Hardware products from different devices or vendors are separated and can be flexibly combined or reused.
Southbound devices can be flexibly expanded based on the device interface.