java cim客户端_高效使用 SBLIM CIM Client

本文介绍如何高效使用SBLIM CIM Client,一个开源的Java库,为管理GNU/Linux系统的WBEM服务提供支持。通过自定义模板和XSLT或Velocity,根据CIM元素生成代码框架,简化CIM客户端应用的开发。文章详细阐述了生成代码框架的步骤,包括定义模板、检索CIM元素和生成代码,并展示了使用生成框架进行实例操作的例子。
摘要由CSDN通过智能技术生成

高效使用 SBLIM CIM Client

为 CIM Client 开发生成代码框架的技巧

Qi Feng Xu 和 Yi Zhu

2009 年 12 月 03 日发布

简介

Distributed Management Task Force (DMTF) 开发了能够支持互操作 IT 管理的标准。DMTF CIM 是一种概念上的信息模型,用于描述企业和 Internet 环境中的计算和业务实体。它使用面向对象技术提供了一种一致的数据定义和结构。CIM 的通用定义使供应商能够在整个网络中的多个系统之间交换语义丰富的管理信息。

SBLIM - Standards Based Linux® Instrumentation for Manageability(读作 sublime)。一个由 IBM 发起的开源项目,旨在通过支持 Web-Based Enterprise Management (WBEM) 来增强 GNU/Linux 系统的管理能力。

在本文中,了解如何使用 SBLIM CIM Client 库根据预定义的模板生成一个代码框架。同时介绍了有关如何使用创建的类编写代码的技巧。

您可以使用这个代码框架作为一个粘合层,进一步为 CIM 客户端应用程序开发提供便利。这个粘合层可以使您更轻松地实现一个 CIM 客户机应用程序(仅需更少的编程),并在未来维护应用程序。

SBLIM CIM Client 概览

SBLIM CIM Client 是一个 WBEM 服务的 Java 实现,该服务包含了一个与 IETF RFC 2614 兼容的 SLP 客户机,用于 CIM 服务查找。CIM Client for Java 是一个用于生产的成熟库,包含若干个商业产品和开源项目。在所有利用 CIM 技术的领域中,它得到了管理应用程序的广泛使用。用户可以轻松地与 CIM 服务器通信并提取信息。SBLIM CIM Client 帮助您完成繁重的任务,比如解析基于 XML 的 CIM 响应消息,并从 Java 对象生成 CIM 请求。

使用 SBLIM CIM Client 实现配置也非常简单。许多属性都可以在配置文件中设置。您可以设置 HTTP 连接的池大小、跟踪客户机和服务器之间的通信历史,等等。通过使用 CIM,应用程序开发人员可以关注业务逻辑实现,而将所有其他繁重的、易于出错的任务留给 SBLIM CIM Client。

SBLIM CIM Client 库的常见结构如图 1 所示。

图 1. SBLIM CIM Client 库的常见结构

f68a3dc19eefa003392df7e50ffc4e07.gif

f68a3dc19eefa003392df7e50ffc4e07.gif

生成代码框架

下面是生成代码框架的三个步骤。根据需求定义代码模板。

通过使用 SBLIM CIM Client 库直接挖掘 CIM 服务器检索 CIM 元素定义。

导入框架模板和 CIM 元素信息,并为 CIM 客户机开发生成面向对象的代码框架集。

定制代码模板

您需要在刚开始的时候量身定制代码模板,以便确定创建的代码的外观。您可以在这个子过程中使用一些方法,例如 Extensible Stylesheet Language Transformations (XSLT) 和基于 Java 的模板引擎 Velocity。这两者中的任意一个都可以用作一个独立的工具来生成代码框架。在多数情况下,您可以在类模板中为 CIM 操作定义常用方法,比如枚举 CIM 对象路径或实例、获得属性值,以及调用方法。也可以将额外的特定代码段集成到类模板中;这可以非常方便、灵活地满足特殊需求。

通常,可以在模板中为 CIM 操作定义以下基本的方法。getInstances()在目标 CIM 服务器上枚举 CIM 实例,这些实例属于指定的类或其子类,然后返回这些实例的副本。deleteInstance()在目标 CIM 服务器上删除 CIM 实例。getAssociatedPaths()在目标 CIM 服务器上枚举出通过指定 CIM 关联与源类关联的所有 CIM 对象路径。getAssociatedInstances()在目标 CIM 服务器上枚举出通过指定 CIM 关联与源类关联的所有 CIM 实例。getAssociationPaths()在目标 CIM 服务器上枚举出所有与源类关联的所有 CIM 关联路径。这种方法只存在关联类中。getAssociationInstances()在目标 CIM 服务器上枚举出所有与源类关联的所有 CIM 关联实例。这种方法只存在关联类中。Invoke调用由 CIM 实例公开的外部方法调用。

清单 1 展示了 Velocity 的一个经过定制的代码模板。

清单 1. 针对 Velocity 引擎定制的代码模板的样例代码public class ${cls.Name} {

/**

* Itererate all ${cls.Name} instances.

*

* 

能量管理系统应用程序接口(EMS-API) 第301篇:公共信息模型(CIM)基础 目录 IEC前言 5 引言 6 1 范围 7 2 引用标准 7 3 定义和缩写 7 3.1 能量管理系统(EMS) 7 3.2 应用程序接口(API) 7 4 CIM规范 7 4.1 CIM建模表示法 7 4.2 CIM包 8 4.2.1 Core(核心包) 9 4.2.2 Topology(拓扑包) 10 4.2.3 Wires(电线包) 10 4.2.4 Outage(停运包) 10 4.2.5 Protection(保护包) 10 4.2.6 Meas(量测包) 10 4.2.7 LoadModel(负荷模型包) 10 4.2.8 Generation(发电包) 10 4.2.9 Production(生产包) 10 4.2.10 GenerationDynamics(发电动态包) 10 4.2.11 Domain(域包) 10 4.3 CIM类和关系 11 4.3.1 Generalization普遍化 11 4.3.2 简单关联 12 4.3.3 聚集 12 4.3.3.1 合成聚集 12 4.3.3.2 共享聚集 13 4.4 CIM规范 13 4.5 建模工具 16 4.6 建模导则 16 附录 A 控制中心应用程序接口公共信息模型 (标准的附录) 18 A.1 逻辑结构 18 A.1.1 概述 18 A.1.2 前后关系(Context) 18 A.2 包体系结构 20 A.2.1 核心包Core 20 A.2.1.1 基准电压类BaseVoltage 20 A.2.1.2 间隔类Bay 21 A.2.1.3 公司类Company 21 A.2.1.4 导电设备类ConductingEquipment 22 A.2.1.5 控制间设备类ControlHouseEquipment 23 A.2.1.6 曲线计划数据类CurveSchedData 23 A.2.1.7 曲线计划公式类CurveSchedFormula 24 A.2.1.8 曲线计划类CurveSchedule 24 A.2.1.9 馈线类Feeder 24 A.2.1.10 标幺类PerUnits 25 A.2.1.11 电力系统资源类PowerSystemResource 25 A.2.1.12 子控制区类SubControlArea 26 A.2.1.13 变电站类Substation 27 A.2.1.14 端点类Terminal 28 A.2.2 拓扑包Topology 29 A.2.2.1 连接节点类ConnectivityNode 29 A.2.2.2 拓扑岛类TopologicalIsland 30 A.2.2.3 拓扑节点类TopologicalNode 30 A.2.3 电线包Wires 32 A.2.3.1 交流线段类ACLineSegment 33 A.2.3.2 断路器类Breaker 34 A.2.3.3 母线段类BusbarSection 36 A.2.3.4 电容器组类CapacitorBank 37 A.2.3.5 调相机类Condenser 39 A.2.3.6 导线类Conductor 39 A.2.3.7 导线类型类ConductorType 40 A.2.3.8 连接器类Connector 41 A.2.3.9 直流线段类DCLineSegment 42 A.2.3.10 隔离开关类Disconnector 43 A.2.3.11 电能用户类EnergyConsumer 44 A.2.3.12 等值电源类EquivalentSource 46 A.2.3.13 熔断器类Fuse 47 A.2.3.14 接地类Ground 48 A.2.3.15 热交换器类HeatExchanger 49 A.2.3.16 跨接线类Jumper 50 A.2.3.17 接合点类Junction 51 A.2.3.18 线路类Line 52 A.2.3.19 负荷开关类LoadBreakSwitch 53 A.2.3.20 无功容量曲线类MVArCapabilityCurve 54 A.2.3.21 移相器类PhaseShifter 55 A.2.3.22 电力变压器类PowerTransformer 56 A.2.3.23 电抗器组类ReactorBank 57 A.2.3.24 整流逆变器类RectifierInverter 59 A.2.3.25 调节导电设备类RegulatingCondEq 60 A.2.3.26 调节计划类RegulationSchedule 61 A.2.3.27 静止无功补偿器类StaticVarCompensator 62 A.2.3.28 开关类Switch 63 A.2.3.29 同步电机类ynchronousMachine 65 A.2.3.30 分接头切换器类TapChanger 67 A.2.3.31 A.2.3.31变压器绕组类TransformerWinding 68 A.2.3.32 电压控制区类VoltageControlZone 69 A.2.3.33 绕组测试类WindingTest 70 A.2.3.34 电线排列类WireArrangement 71 A.2.3.35 电线类型类WireType 71 A.2.4 停运包Outage 73 A.2.4.1 标示牌类ClearanceTag 73 A.2.4.2 停运计划类OutageSchedule 74 A.2.4.3 开合操作类SwitchingOperation 74 A.2.5 保护包Protection 76 A.2.5.1 电流继电器类CurrentRelay 76 A.2.5.2 保护设备类ProtectionEquipment 77 A.2.5.3 重合序列类RecloseSequence 78 A.2.5.4 同期检查继电器类SynchrocheckRelay 78 A.2.6 量测包Meas 80 A.2.6.1 量测类Measurement 80 A.2.6.2 量测限值类MeasurementLimit 81 A.2.6.3 量测单位类MeasurementUnit 81 A.2.6.4 量测值类MeasurementValue 82 A.2.6.5 量测值质量类MeasurementValueQuality 82 A.2.7 负荷模型包LoadModel 84 A.2.7.1 区域负荷曲线类AreaLoadCurve 84 A.2.7.2 区域损耗曲线类AreaLossCurve 85 A.2.7.3 用户表计类CustomerMeter 85 A.2.7.4 日类型类DayType 87 A.2.7.5 等值负荷类EquivalentLoad 87 A.2.7.6 感应电动机负荷类InductionMotorLoad 89 A.2.7.7 负荷区类LoadArea 90 A.2.7.8 负荷需求模型类LoadDemandModel 91 A.2.7.9 不一致负荷计划类NonConformLoadSchedule 92 A.2.7.10 甩负荷区类PowerCutZone 92 A.2.7.11 季节类Season 93 A.2.7.12 厂用电类StationSupply 94
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值