通用信息模型 CIM 开发介绍

通用信息模型(CIM)是一种由 DMTF 制定的行业标准,用于计算机和网络管理。本文介绍了CIM的基本概念、相关技术,如WBEM、MOF,以及CIM Profile的重要性。通过一个完整的CIM Profile开发案例,阐述了从理解模型、扩展模型到实现CIM Provider的步骤。读者将了解到如何使用CIM开发管理软件,并通过一个IBM Lotus Notes应用的建模和CIM Provider实现来实践CIM开发流程。
摘要由CSDN通过智能技术生成

通用信息模型 CIM 开发介绍

 简介: 通用信息模型 CIM 相关的开发技术,正在被越来越多的开发者所应用来搭建基于标准的信息世界模型。本文中,作者首先介绍相关的概念和技术背景,之后通过一个完整的案例,讲解从模型设计到最后的实现和测试过程,希望能让读者快速地掌握最基本的 CIM 开发流程。

概述

通用信息模型 (CIM) 提供了一种对被管理信息的通用定义,包括系统、网络、应用和服务,并且能供被扩展。 CIM 使得信息管理者可以在网络中以一种通用的标准交互,而 CIM Profile 定义了某一个特定领域的 CIM 模型和联系。当前,CIM 已经被世界上很多公司所采纳,作为他们构建上层信息管理软件的基础模型,比如 IBM, HP 和 EMC 等。随着趋势的发展,对这种技术进行一次全面和基础的介绍,将对刚进入这个领域的开发者具有非常重要的意义。本文的目标读者包括希望进入 CIM 开发领域的工程人员和对 CIM 技术有着浓厚兴趣的开发者。


背景知识介绍

CIM

CIM ( 通用信息模型 ) 是由 DMTF 制定的用于管理计算机系统和网络的工业规范,它提供了一个共同的概念框架,将所有系统进行分类,并确定了部分网络环境,而且描绘了这些部分的互动。 CIM 的概念适用于所有领域的管理,而且所有的领域可以独立的进行技术实施,由公共信息模型开发出的管理软件可以统一异构环境下的产品管理。 CIM 由以下几部分组成 :

  • CIM 规范- 定义了整合管理模型的语言和方法论。
  • CIM 标准模型- 定义了对计算机系统,应用程序,网络和设备描述信息模型。 CIM 标准模型由以下及部分组成:
    • 核心模型 - 提供了基本的受管对象的假设信息,内容包括一系列描述和分析受管系统的类和他们之间的关联信息。
    • 公共模型 - 实现了管理领域的公共概念。这些概念独立于各个特殊的技术和实现。可以说这个模型提供了一个管理软件发展的基础。
    • 拓展模型 - 他们是在公共基础上拓展一些与平台相关的模型,比如操作系统的模型等。一些大公司如 IBM 公司都有根据自己的产品所拓展出一系列的为自己产品服务的模型。

DMTF

DMTF ( 分布式管理任务组织 ) 是工业界计算机和电信行业的企业间合作组织。它领导着个人电脑,企业级服务器和网络管理标准的制定和发展,并致力于建立整合跨平台和协议的计算机和网络管理方法,以求能使得不同产品的整合管理成本消耗达到最小,CIM 就是由 DMTF 制定发布的。

WBEM

WBEM ( 基于 Web 的企业管理 ) 是一系列网络管理规范 . 它标准化了企业网络中受管资源的描述和使用。遵循 WBEM 所开发的网络管理工具都可以实现低成本的管理。有关 WBEM 的更多信息,请读者参考资料

MOF

CIM 以受管对象格式 (MOF) 来描述对受管资源建立的模型。它与 IDL 语言(对象管理组的接口定义语言)很相似,是用文本的格式描述面向对象的类和实例的定义。 MOF 规范的主要内容有元素类,属性,方法等的描述,还包括注释,编译暗示,和一些 CIM 规范的特别语义。

CIM Profile

CIM profile 是 DMTF 组织或其它相关组织织定的,定义了在特定环境下的 CIM 模型的实现。它内容包括 CIM 类,关联信息,方法和属性。它为 CIM 模型在具体化条件下的应用提供了统一和便利。每一个 profile 都清晰的指出每一个类,属性,方法在具体条件的应用下都应该被实例化。

CIM Server

CIM Server 是 CIM 技术中一个核心组件,用来管理和操作信息模型对象,现在已经有很多不同版本的 CIM Server:

  • SMALL-FOOTPRINT CIM BROKER (SFCB) - SFCB 是一个轻量级 CIM 后台程序 (CIMOM) 用来处理 CIM 客户端的请求,随后根据请求内容进行系统管理的操作。 SFCB 支持标准的 http/https 和 CIM-XML http 编码之上的操作。它实现高度模块化,可以很容易补充,删除或自定义不同的管理应用软件。 SFCB 由于它的轻量级大小,十分适用于嵌入式环境。
  • Open Pegasus - Pegasus 是一个 DMTF CIM 和 WBEM 标准的开源项目。它由 C++ 编写,所以可以很方便的将面向对象的 CIM 管理对象转变成程序模块。因此他被各个操作系统平台所支持,包括 UNIX, Linux, OpenVMS, and Microsoft Windows 。
  • OpenWBEM - OpenWBEM 是一个企业级 wbem 实现的开源项目。它由 C++ 编写,可用于任何商业和非商业的用途。它提供了一个基础管理的开发框架,克服跨平台的障碍,并赋予真正的互操作性。开发人员可以使用 openwbem,以提供配置和变更管理,系统健康监测,和企业范围的管理功能。
  • WBEM Services - WBEM Services 项目是用 Java 编写的,适用于任何商业和非商业用途的,基于 wbem 的实现。它的内容包括应用编程接口,服务器端和客户端的应用程序和工具。

通用信息模型技术总揽


图 1. 通用信息模型技术框架图
通用信息模型技术框架图
 

如上图所示,DMTF组织的底层技术基础是通用信息模型 (CIM)。 CIM 模型定义了一套规范并提供了如何与其他管理模型进行整合的细节。上一层是 CIM 规范,它为受管元素提供了更多丰富的语义和面向对象的描述。该 CIM 的规范有利于管理元素精简,整合和成本的降低,使得管理信息的交换处于一个独立平台和技术中立的方式。再上层便是基于 Web 的企业管理 (WBEM),它提供了一系列网络管理标准来实现分布式系统的统一管理 , 不仅如此 , 它还提供一套基于标准的管理工具,促进不同平台下数据的交流。这两层技术总揽提供了特定管理环境下,一种统一的标准的方式来描述和管理受管资源,以达到分布式管理的简化。最上层是 DMTF 或基于 DMTF 技术的其他组织的一些具体项目。它们提供了提供了垂直方向的具体应用和功能 , 包括比如公共诊断模型 (CDM), 桌面与移动系统硬件架构 (DASH) ,服务器硬件系统管理结构 (SMASH), 和存储网络工业协会 (SNIA's) 发布的存储管理规范 (SMI-S). 这些标准和技术提供了一个潜在的方案 , 它可以解决当今复杂的异构的管理环境,更多信息请读者参阅资料中的相关链接。


一个完整的开发案例

基于前面章节的 CIM 技术介绍和基本概念,我们将通过一个完整的 CIM Profile 开发案例,把最基本的 CIM 开发过程介绍给大家。简要说来,开发 CIM 主要是指运用 CIM 技术,开发出符合通用管理接口的,同时满足自己需求的信息模型,主要包括下面四个步骤:理解 CIM profile,扩展 CIM profile,实现 CIM provider 和最后的测试与验证过程。


清单 1. 需求案例
IBM 计算机系统中安装了一个新的软件 -IBM Lotus Notes,我们如何对它进行对象模型化,并开发符合 CIM 标准的管理程序,
 使得 CIM 客户端程序可以访问到这个 Lotus Notes 对象?


理解 CIM Profile

思考上面的需求,第一步就是如何建模。首先,我们还要回顾一下前面介绍的一个概念:CIM Profile,CIM Profile 里面定义了某一个特定领域对象的 CIM 模型,到目前为止,已经发布的 CIM Profile 基本上已经涵盖了在工业生产生活中所常见的对象模型。我们列举出一小部分已经发布的 CIM Profile,如下所示:


表 1. 已经发布的一些 CIM Profile 举例
编号 名称 介绍
DSP1027 Power State Management Profile 计算机电源状态管理模型
DSP1028 Alarm Device Profile 警报设备模型
DSP1029 OS Status Profile 操作系统状态模型
DSP1030 Battery Profile 电源模型

由于 CIM Profile 太多,我们在此就不一一列举,有兴趣的读者可以到从本文后面的参考资料中查找相关资源。

那么 CIM Profile 和我们的建模有什么关系呢?简言之,就是我们的 CIM 开发,就是要扩展这些标准的 CIM Profile,创建符合 CIM 标准的具体模型,这样的好处有几点:

  • 已经存在的 CIM Profile 已经为我们搭建起了一个标准的现实世界模型框架,我们可以通过类继承实现模型重用。
  • 标准的 CIM Profile 具有通用性,接口标准和统一化,这样便于将来的跨系统跨平台操作。

针对案例需求,我们选择了 "DSP1023 Software Inventory Profile" 。 DSP1023 描述了可以安装在系统中的软件对象模型,比如 BIOS,固件,应用程序以及软件和管理设备的关系等。对于这份文档中的更多信息,在此就不详细说明了,我们需要重点关注的是如何模型化 Lotus Notes 这样一个应用软件。在 DSP1023 中,有这样一个用例图可以作为参考,如下图所示:


图 2. Software Inventory Profile 用例类图
用例类图

注:上图中类名都省略了前缀 "CIM_"

在上图中,CIM_ComputerSystem 代表了计算机系统,CIM_SoftwareIdentity 代表了安装在系统中的软件,这两者是通过 CIM_InstalledSoftwareIdentity 关联起来的。 IBM Lotus Notes 就是一种 CIM_SoftwareIdentity,因此我们可以利用这个框架来扩展。

在 CIM 中,对于类和对象,是由MOF来描述定义的,MOF 通过文本形式,规范了类,对象,属性,方法等。我们以 CIM_SoftwareIdentity 为例来看一下它如何定义的:


清单 2. CIM_SoftwareIdentity 的 MOF 文件
// C
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值