基于CIM-DAF电力系统模型数据交互研究
华中科技大学
硕士学位
论文
政研论文下载论文大学下载论文大学下载关于长拳的论文浙大论文封面下载
基于CIM-DAF的电力系统模型数据交互的研究
姓名樊荣
申请学位级别硕士
专业系统分析与集成
指导教师王乘杨峰
20070303
华 中 科 技 大 学 硕 士 学 位 论 文
摘 要
随着电力系统自动化水平的不断提高与信息化的不断深入
标准
excel标准偏差excel标准偏差函数exl标准差函数国标检验抽样标准表免费下载红头文件格式标准下载
化成为能量管
理系统Energy Management SystemEMS 发展的必然之路IEC-61970 标准的公
共信息模型--CIM Common information model 提供了用于不同能量管理系统EMS
间交互数据的一个实用化的数据模型IEC-61970
标准的组件接口
规范
编程规范下载gsp规范下载钢格栅规范下载警徽规范下载建设厅规范下载
--CIS Component Interface Specification 是在CIM 基础上定义的规定组件 或应用
程序 为了能够以一种标准方式和其它的组件 或应用程序 交换信息而应该实现的各
种接口数据访问设施Data Access Facility DAF 是 OMG
发布的国际标准
IEC-61970 引入了DAF 技术作为其CIS 的基本接口
在基于CIMCIS 的EMS 系统间交互信息是以CIMXML 为载体而CIMXML
数据本质上是CIM 语义的RDF 数据本文在开发基于CIM 模型的EMS 数据支撑系
统中通过引入专于 RDF 的JENA 技术来处理 CIMXML 着重讨论了 JENA 对
RDF 数据的表达解析查询技术在CIMCIS 中的应用JENA 不仅能自动地生成
CIMXML 数据而且可以高效地对CIMXML 进行查询从而可以进一步实现CIS 的
DAF 接口JENA 技术为IEC-61970 标准的进一步的实用提供了一条新的有效途径
第一章介绍了本论文的课题背景及研究意义
第二章研究了IEC-61970 标准体系结构以及CIM 模型与CIS 接口
第三章阐述了搭建基于 CIM 模型的 EMS 数据支撑系统中使用的相关技术包
括资源描述框架 Resource Description FrameworkRDF JENA 技术公共对象请求
代理结构CommonObject Request Broker ArchitectureCORBA
第四章引入 JENA 技术研究了如何把数据从既有电力系统的关系数据库导出
到CIMXML 文件的过程完成了基于JENA 技术的CIM 对象数据库构建
第五章在深入研究数据访问设施DAF 以及公共对象请求代理结构CORBA
分布式组件技术的基础上通过JENA 的SparQL 语言查询RDF 数据实现了 CIS 中
主要的接口服务--DAF
关键词电力系统 IEC-61970 公共信息模型 组件接口规
范
资源描述框架 数据访问设施
II
华 中 科 技 大 学 硕 士 学 位 论 文
Abstract
The continuous improvement of the automation of Electric power system in
information age renders Standardization as an inexorable trend for Energy Management
Sysetm EMS Common information model CIM of IEC-61970 provided a common
model for exchanging in different EMS Based on CIM Component Interface
Specification CIS of IEC-61970 afford a standard interface for data accessing and
employed the International standard Data Access Facility DAF released by the OMG as
its basic interface
CIMXMLas a carrier of exchange information on EMS systems is essentially based
on RDF technology In the development of EMS JENA technology that focused on RDF
has been introduced to process CIMXML JENA can automatically produce CIMXML
data and highly effective query helping to Implementation of CIS JENA technology
provides a new and effective way to practical for IEC 61970 standard
In the chapter 1 the purpose and background of this paper are introduced
In the chapter 2 the IEC-61970 Specification as well as the CIM and CIS interface is
presented
In the chapter 3 the key technology used in the EMS system on the basis of CIM
which includes RDF JENA and CORBA is illustrated
In the chapter 4 JENA technology is used for CIM data processing the procedure of
export data from EMS database to CIMXML file is discussed in details and a new object
database of CIM was created based on JENA technology
In chapter 5 DAF and distributed component technology based Common Object
Request Broker Architecture CORBA is further discussed in the first place and then the
main interface service RDF of CIS was implemented with the use of SparQL inquiry
language on the basis of JENA
Key words Power System IEC-61970 CIM CIS RDF DAF
III
华 中 科 技 大 学 硕 士 学 位 论 文
独创性声明
本人声明所呈交的学位论文是我个人在导师指导下进行的研究工作及
取得的研
究成果尽我所知除文中已经标明引用的内容外本论文不包含任何其他个人或
集体已经发表或撰写过的研究成果对本文的研究做出贡献的个人和集体均已在
文中以明确方式标明本人完全意识到本声明的法律结果由本人承担
学位论文作者签名
日期 年 月 日
学位论文版权使用授权书
本学位论文作者完全了解学校有关保留使用学位论文的规定即学校有权
保留并向国家有关部门或机构送交论文的复印件和电子版允许论文被查阅和借阅
本人授权华中科技大学可以将本学位论文的全部或部分内容编入有关数据
库进行检
索可以采用影印缩印或扫描等复制手段保存和汇编本学位论文
保密? 在_____年解密后适用本授权书
本论文属于
不保密?
请在以上方框内打?
学位论文作者签名 指导教师签名
日期 年 月 日 日期 年 月 日
I
华 中 科 技 大 学 硕 士 学 位 论 文
1 绪论
11 引言
近年来随着电力系统自动化水平的不断提高以及电力系统信息化的深入EMS
无论从应用广度还是应用深度都有很大发展新一代的EMS 更加重视标准化和开放
性在原有系统的基础上用户可以不断开发扩充新的功能增加新的模块以满
足较长时间内充分发挥 EMS 作用的要求目前的开放式EMS 只是平台的开放还
没有达到应用程序级的开放面临着异种系统集成和二次开发的困难无法实现大
规模互联电力系统中各控制中心EMS 之间的数据交换和信息共享迫切需要应用程
序接口方面有良好的国际标准可循我国电力企业信息化的完善目前也逐步建设
了大批综合性的分布式应用的系统[1]这些系统的运用极大地提高了电力企业运行
效率但随着运用的深入一些问题也逐步的暴露1 当用户对老的系统更新换代时
由于运行平台不兼容用户原来一些运行稳定可靠的软件不能再正常运行用户长
期积累的数据资料和二次开发的工作不能再保留2 当用户对系统中某一部分的功能
进行扩展时如果用第三方软件由于接口专用要重复建设一些软件浪费了用
户的资金和时间3 当用户进行后期功能招标时由于第三方软件的接口问题往往
使用户选择原来系统的厂家不能选择最好的应用软件为了解决新一代EMS 的这
些问题IEC 国际电工委员会推行了IEC 61970 系列标准来提供统一的
数据模型
和标准的访问接口主要包括公用信息模型Common Interface ModelCIM 和组
件接口规范 Component Interface SpecificationCIS 系列标准
12 IEC-61970 标准体系
IEC-61970 标准由国际电工协会 IEC 第 57 技术委员会第 13 工作组提出它是
为能量管理系统的应用程序定义接口此标准的提出是基于美国EPRI 的控制中心应
用接口 CCAPI 研究项目的大量工作美国EPRI CCAPI 项目的主要目的就是
1 减少新的EMS 应用系统的开发成本与时间
2 保护已有的正常运行的EMS 应用系统的投资
3 提供电力自动化系统之间的数据通讯
1
华 中 科 技 大 学 硕 士 学 位 论 文
技术上实现的办法就是为现有的应用或系统提供一个集成构架这一构架基于
通用的结构和信息模型及接口与并且底层的实现技术无关IEC-61970 系列标准的工
作就是形成一套导则和标准用以?集成在控制中心环境中不同开发商的应用?
与控制中心外的系统交换数据因此标准的范围也涉及其它电力传输系统配电系
统以及在控制中心以外需要实时交换数据的发电系统IEC 61970 还要实现对遗留的
系统和新开发的系统依据标准进行集成IEC-61970 标准的技术特点是基于
公共信
息模型独立与底层的组件技术
CIM 是整个IEC-61970 系列标准的重要基础规定了IEC-61970 系列标准的语
义部分CIM 是一个抽象模型采用可视化的面向对象的建模语言 UML Unified
Modeling Language 来设计CIM 对主要的电网设备和相关对象进行了建模包含
这些对象的公共类和属性以及它们之间的关系IEC TC57 的第14 工作组WG14
在系列标准IEC-61968 中扩展了CIM面向配网应用增加了一些信息模型主要包
括资产管理工作管理建设管理配网管理地理信息系统 GIS 停运管理等
从而使CIM 模型进一步的完善几乎涵盖了电力企业中的所有对象
CIS 规定组件或应用程序为了能够以一种标准方式和其它的组件或应
用程
序交换信息而应该实现的各种接口当前CIS 标准规定了DAF
数据访问设施
GDA 通用数据访问接口HSDA 高速数据访问接口TSDA 时序数据访问接
口中的所有接口服务包括近100 个
方法
快递客服问题件处理详细方法山木方法pdf计算方法pdf华与华方法下载八字理论方法下载
其中DAF 定义了数据读取访问的简
单接口GDA 扩展了写接口和条件查询HSDA 支持从EMS 到EMS 或EMS 之外
的客户端实时高效地传递大量数据TSDA 支持对于时间序列数据的处理这些
CIS 服务与CIM 数据库结合构成了不同组件间相互通讯协调与控制的软总线
13 国内外研究现状与进展
近年来关于新一代 EMS 系统的发展方向有很多讨论其中支持 IEC-61970
CIMCIS 标准是新系统支持平台的重要特征国内外各大 EMS
厂商和研究院校都
对此进行了有益的尝试主要包括CIM 数据的建立与导出导入CIS
的部分接口
[2][3]
的实现如DAF GDAHSDA 等 这些实现无论是CIM 数据库与CIS 接口都依
赖于后台的关系数据库或者类似的内存数据库而 CIM 模型是基于对象模型的导
致CIM 数据库构建复杂后续维护代价较高一方面效率不高一方面也不利于扩
[4][5]
展本文借鉴前人的成功经验 引入JENA 技术直接在CIMCML 文件上构建
2
华 中 科 技 大 学 硕 士 学 位 论 文
了CIM 数据库并实现CIS 的基本接口DAF 整个实现过程简单方便易于扩展
基于IEC 61970 标准的互操作实验推动和促进了EMS 发展和应用截止2005 年
初国外针对 EMSAPI 做过六次互操作实验其中前四次实验都是基于静态的可扩
展置标语言Extensible Markup Language XML 文档的第五次互操作实验于 2003
年 11 月18 到11 月20 日在美国俄亥俄州进行这是第一次基于通用接口定义
Generic Interface DefinitionGID 的互操作实验[6]第六次互操作实验于 2004 年6
月进行主要测试CIS 的GDA 与HSDA 互操作的兼容性[7]
为了与国际电力行业接轨我国成立对应于IEC TC57 的第13 工作组的EMS-API
工作组2002 年1 月23 日到1 月24 日在北京进行了国内第一次EMS-API 互操作
试验国内最近一次互操作实验于2006 年10 月26 到10 月27 日在国网调度中心进
[8]
行这是国内进行的第六次互操作实验主要测试CIS 的HSDA 部分的兼容性
14 本文的主要工作
大力发展和推广 EMS 系统最为关键的是如何构建统一的数据支撑平台在
充分考虑到 EMS 系统需求的情况下通过引入 JENA
技术初步搭建一个符合
IEC-61970 标准的基于CIMDAF 的数据支撑平台这就是本论文的目标
在研究公共信息模型CIM 与组件接口规范CIS 的基础上本文完成了一
个基于CIMDAF 的EMS 数据支撑平台在这当中涉及到基于RDF 的JENA 技术
CIM 数据库的建立CIM 的数据的查询以及基于JENA 的DAF 接口的实现本文在
实现基于CIMDAF 的EMS 数据支撑平台过程中引入了专于RDF 的JENA 技术
摒弃了传统的关系数据库直接使用 JENA 的查询技术来实现类似关系数据库的查
询接口有了JENA 技术构建CIM 数据库就是从EMS 数据库将其数据导出为符
合CIM 规范的CIMXML 文件然后通过JENA 载入CIMXML 文件并使用JENA
的SparQL 查询语言来实现CIM 数据库的查询接口其实现过程具有很强的
实用性
和可操作性
3
华 中 科 技 大 学 硕 士 学 位 论 文
2 IEC-61970 标准技术综述
IEC-61970 标准由国际电工协会 IEC 第 57 技术委员会第 13 工作组提出它是
为能量管理系统的应用程序定义接口此标准的提出是基于美国EPRI 的控制中心应
用接口 CCAPI 研究项目的大量工作IEC-61970 系列标准草案采用公共信息模型
CIM 描述电力系统资源的公用信息并以组件接口规范CIS 访问 CIM
21 IEC-61970 慨述
IEC-61970 标准为现有的应用或系统提供一个集成构架这一构架具有如下的特
性?基于通用的结构和信息模型及接口?与底层的技术无关如图2-1 IEC 61970
系列标准包括公共信息模型CIM 和组件接口规范CIS 两方面内容CIM 提供
了通用的数据模型依据CIM 不同的EMS 有可能以一个统一数据模型来表达数据
而CIS 在CIM 基础上提供了标准的数据访问接口其目的和意义在于1便于来
自不同厂家的 EMS 系统内部各应用的集成2 便于 EMS
系统与调度中心内部
其它系统的互联3 便于不同调度中心 EMS 系统之间的模型交换
电
老 新 力
的 的 系
E E 统
M M 其
S S 他
应 系 应
IEC-61970
构件接口规范CIS
公共信息模型CIIM
图2-1 IEC-61970 系列标准的总体框架结构
IEC-61970 标准的技术特点是基于组件的公共信息模型独立与底层的组件技
术如图 2-2 IEC-61970 标准由以下五部分组成
Part 1 指导方针与需求
Part 2 术语表
Part 3xx 公共信息模型 CIM
Part 4xx 组件接口规范 CIS
4
华 中 科 技 大 学 硕 士 学 位 论 文
Part 5xx CIS 技术映射CIS 技术在不同的组件技术如CORBAEJB DCOM
等下实现的细节描述
导则 术语 IEC 61970标准 CIS
第二部分
IEC 61970-1 IEC 61970-2 IEC 61970-3 IEC 61970-4 IEC
61970-5
Part 401 Part 402 Part 403
CIM规范 CIS第一部分
图 2-2 IEC-61970 系列标准的总体框架结构
22 公共信息模型 CIM
公共信息模型CIM 是整个IEC-61970 系列标准的框架的基础部分通过提供一
个表示电力系统资源的类属性及其关系的标准CIM 使得不同厂商独立开发的EMS
应用程序的集成整个EMS 内部的集成和EMS 与其它相关电力系统运行软件 例如
发电或变网管理系统 间的集成变得容易这个目标的实现要通过定义一种
基于CIM
的通用模型来使得这些运用程序或系统能够获取公共数据和独立地交换信息
CIM 提供了一个元数据模型定义了应用之间数据交换的内容和格式为应用
间集成和数据共享提供了一个一致的基础各类应用在这个统一的元数据的定义范
围内交换数据进行互联操作CIM 包含在EMS 信息模型中的电力企业的所有主要
对象通过提供一种用对象类和属性及他们之间的关系来表示电力系统资源的标准
方法具体的说CIM 给电力系统中所有的实体对象 ENTITY OBJECTS 提出了一个
标准化的定义把所有这些实体对象抽象成类来进行描述进而又把这些类分
别归入了不同的包可见CIM 给从事电力系统能量管理系统集成方面的人员
提供了一种通用的电力系统模型所有人员按照CIM 的规定就可以得到对电力系
统资源的统一描述进而在接口层上实现数据交换和数据共享
CIM 提供了关于电力系统的抽象模型从而对于共同遵循CIM
的系统而言就有
了交换信息的基础CIM 采用 UML UnifiedModeling
Language 对电力系统进行
建模经过建模后电力系统中的实体对象被抽象成类而且各个类被分别放在若
干个逻辑包中CIM 由一组逻辑包组成逻辑包是一般意义上将相关模型组件分组
的方法没有具体的语义意义逻辑包的选择是为了使模型更易于设计理解与查
5
华 中 科 技 大 学 硕 士 学 位 论 文
看公共信息模型是由一整套逻辑包所组成的实体可以具有越过许多逻辑包
边界
的关联每一应用将使用一个或多个逻辑包所表示的信息
整个 CIM 模型包括下面几个逻辑包Core核心包Topology拓扑包
Wires电线 网 包Outage停运包Protection保护包Meas量测包
LoadModel 负荷模型包Generation 发电包Production 生产包
GenerationDynamics发电动态包Domain-域包EnergyScheduling能量计划
[9]
包Reservation预订包Financial财务包Asset资产包
图2-3 CIM 的包结构
图2-3 表示在CIM IEC 61970-301 篇中定义的各包及它们之间的依赖关系虚线
表示依赖关系箭头从依赖的包指向它所依赖的包
1Core 核心包
核心包包含核心PowerSystemResource 和ConductingEquipment 实体这些实体
被所有的应用程序及这些实体的公共集合所共享并不是所有的应用程序需要所有
的Core 实体这个包不依赖于任何其它的包但是其它包中的大部分都具有依赖于
本包
6
华 中 科 技 大 学 硕 士 学 位 论 文
2 Topology 拓扑包
拓扑包是Core 包的扩展它与Terminal 类一起来建立连接模型而连接模型是
设备怎样连接在一起的物理定义另外它还建立了拓扑模型这是设备怎样通过
闭合开关连接在一起的逻辑定义Topology 的定义与其它电气特征无关
3 Wires 电线包
电线包是Cor 和Topology 包的扩展它建立了输电和配电网络的电气特征的信
息模型这个包用于网络应用例如状态估计潮流及最优潮流
4 Outage 停运包
这个包是Core 和Wires 包的扩展它建立了当前及计划网络结构的信
息模型
这些实体在典型的网络应用中是可选的
5 Protection 保护包
保护包是Core 和Wires 包的扩展它建立了保护设备例如继电器的信息模型
这些实体用于培训模拟和配电网故障定位应用
6 Meas 量测包
量测包包含对各应用之间交换的动态测量数据进行描述的实体
7 LoadModel 负荷模型包
负荷模型包以曲线及相关的曲线数据的形式为能量用户及系统负荷提供模型
这里还包括影响负荷的特殊情况例如季节与日期类型这个包主要用于负荷预测
和负荷管理使用
8 Generation 发电包
发电包分成两个子包Production 包和GenerationDynamics 包
9 Production 生产包
生产包提供了各种类型发电机的模型它还建立了生产成本信息模型用于发电
机间进行经济需求分配及计算备用量大小这个包主要用于机组组合水火发电机
组的经济调度负荷预测及自动发电控制应用
10GenerationDynamics 发电动态包
发电动态包提供原动机的模型例如汽轮机和锅炉的模型这些模型在模拟和培
训应用中需要用到这个包主要用于动态培训模拟应用的机组建模
11Domain 域包
域包是量与单位的数据字典定义了可能被其它任何包中任何类使用的属性的数
7
华 中 科 技 大 学 硕 士 学 位 论 文
据类型此包包含原始数据类型的定义包括测量单位和允许值每一种数据类型
包含值属性及可选的测量单位它被规定为一个静态变量并作为测量单位的文字
描述初始化允许的枚举值在属性文档中用大括号内的UML 约束句法列出字符串
长度在文档中列出并被指定了长度属性
12Financial 财务包
财务包用于结算和报价这些类代表参与正式或非正式协议的合法电力企业
13EnergySchedule 能量计划包
能量计划包的功能是计划计算不同电力公司之间的电能交换它包括发出功率
消耗功率损耗功率通过功率卖出功率买入功率等这些类用来计算能量
发电容量传输能量和辅助服务
14Reservation 负荷预测包
负荷预测包用于能量发电容量传输辅助服务的交易计划预测
15SCADA 数据采集与监控包
数据采集与监控包包含数据采集与监控所需的数据模型监控是让调度员控制设
备如开合开关数据采集用来采集各种来源的数据遥测实体的子类型与IEC61850
一致这个包同样支持报警但是不可被其它应用使用
国际电工委员会第57 技术委员会正在深化对CIM 的研究不断扩大CIM 的应
用范围欲将其推广至配电管理系统DMS 变电站自动化控制SAS 等 EMS
相关应用以及公共事业的其他应用中
23 组件接口规范CIS
组件接口规范 Component Interface Specification 简称CIS 是在CIM 基础上定
义的规定组件 或应用程序 为了能够以一种标准方式和其它的组件 或应用程序 交
换信息而应该实现的各种接口这些组件接口描述可以被应用程序用于这一
目的的
特定的事件方法和属性所以CIS 的意图是规定一些接口应用程序或系统要用
[10]
这些接口来促进和其它独立开发的应用系统进行集成
IEC-61970 标准的 4XX 和 5XX 系列标准共同构成了组件接口规范 CIS 定
义了使用标准方式交换数据的途径所交换的内容以及用来在组件间交换数据的
接口的功能要求4XX 系列定义了 CIS 规范的语法与底层的实现技术无关是
CIS 的第一层其中第一组的 401,449 号标准详细说明了 CIS 所要提供的所有
8
华 中 科 技 大 学 硕 士 学 位 论 文
通用服务其定义和功能采用叙述性的文字UML IDL 共同描述第二组的 450,
499 号标准的重点在于在 61970 总则所定义的典型应用之间交换数据所应遵循的
信息内容信息格式的基本要求这些数据可以是事件event 的形式也可以作
为消息message 发布还可以转换成 XML 文档传输目前还未见相关草案发表
5XX 系列定义了 4XX 系列如何映射到具体的底层技术是 CIS 的第二层CIS 的
标准化的工作还在进行中图2-4 描述了目前已经有草案的CIS 第4XX 部分的标准
Part
405 Generic
Part 402 Base Part 403 Generic Part 404 Hi Speed Eventing and
Part 407 Time
Services Data Access Data Access Subscription
Series Data Access
[GID Common GDA HSDA GES
TSDA
Services] [DAF GID CDA] [DAIS DA] [DAIS SE GID
PS]
DAF DAF DAIS DA
DAIS AE HDAIS
OPC DA
OPC AE OPC HDA
图2-4 目前CIS 第4 部分定义的接
口
[11]
第 402 部分公共服务Common ServicesCS 给出了数据访问的一
般标
准与服务主要包括 ResourceID 资源描述Description 和名称空间
Namespace
的概念以及可选组件服务 CSIdentifiers 包和
CSServer 包
[12]
第403 部分通用数据访问Generic Data AccessGDA 对标准的第 402
部分进行了一定的扩展主要内容来源于 OMG
组织颁布的 UMS DataAccess
Facility Specification 简称数据访问设施 Data Access Facility DAF 增加了过滤
查询接口GDAFiltered QueryInterface 更新接口GDA
Update Interface 资 源
更新服务接口ResourceUpdateService Interface 和事件接口GDAEvents
Interface
9
华 中 科 技 大 学 硕 士 学 位 论 文
[13]
第 404 部分高速数据访问High Speed Data Access HSDA 描述了基于
OMG DAIS 的在线实时数据访问接口
本文的主要内容就是引入 JENA 技术来实现 CIS 的基础接口――DAF 实现对
EMS 数据的查询访问数据访问设施Data Access Facility DAF 是OMG 发布的
国际标准目前版本是 com[14]它构成了 IEC-61970 第 403 部分的主要内容其
目标是提高 EMS 应用与其它系统应用的协同工作能力该规范用于访问 CIM 公
共数据为不同的供应商提供了一种使用公共应用程序接口API 和公共服务的机
制DAF 和其他数据库API 的最大的区别在于统一简单实用便于快速解决
一定范围内的应用整合问题DAF 的基本结构如图 2-5
所示包括四个重要的接口
模块DAFIdentifiers 模块DAFDescriptions 模块DAFQuery 模块与 DAFEvents
模块分别用于资源的定位数据描述资源的查询与数据变化的事件消息而其中
的 CosNaming 和 CosEventChannelAdmin 则是CORBA 中定义的标准包
资源定位
资源描述
资源查询
图2-5 DAF 模块关系
DAF 的设计理念在于为现在或者将来的应用提供一个简单易用的数据访问API
其接口的设计具有以下特点
简单快速
DAF Data Access Facility 不同于一些数据库API 它的接口很精简开发人员可
以在一个简单小型的系统上快速构建 DAF 以提供解决系统集成问题的数据访问方
10
华 中 科 技 大 学 硕 士 学 位 论 文
案
高性能
DAF 本身并不要求其后台为某种特定的存储实体也力求避免带来性能上的瓶
颈这就为实现各种实时应用提供了可能DAF 后台数据即可以是关系数据库也
可以是内存数据库甚至可以是普通的数据文件DAF 也在一定程度上支持用户自
定义的优化查询
应用程序可以通过DAF 接口向服务端访问数据例如潮流程序要获得系统中的
所有变压器绕组的正序串联电阻 resist 和绕组的正序串联电抗 react 就可使用
get_extent_values 方法只要将用于标识类的TransformerWinding
以及属性正序串
联电阻 resist 和正序串联电抗 react 的具体信息的统一资
源标识符 URI 提供给
get_extent_values 方法数据支撑平台据此查到正序串联电阻 resist
和正序串联电
抗 react 并按 DAFDescriptions 包的定义的格式将数据组织起来返回给潮流程序使
用
24 本章小结
本章对 IEC-61970 标准进行了总体介绍分别阐述了公共信息模型CIM 的
内容特点和结构以及组件接口规范CIS 的构成与框架着重介绍了CIS 的基
本接口数据访问设施DAF DAF 的设计理念在于为现在或者将来的应用提供一个简
单易用的数据访问API DAF 和其他数据库 API 的最大的区别在于统一简单
实用
11
华 中 科 技 大 学 硕 士 学 位 论 文
3 关键技术
本章对文中应用到的相关技术做一统一的描述和解释主要包括用于 CIM 数据
构建的RDF 与JENA 技术和用于CIS 接口实现的Corba 中间件技术本章只针对重
要的概念思想方法和部分实际应用技术详细的内容参见相关的技术文档
31 资源描述框架
CIM 在形式上是通过资源描述框架语言来描述各种电力系统中的对象与对象间
的关系资源描述框架 Resource Description Framework简称 RDF 是一个用于表达
资源的信息的语言是以通用的方式来描述数据的保存分布产生使用等情况
的XML 应用RDF 以数据为中心为交换机器可读信息的应用程序提供一种交互
性资源描述框架RDF 分为模型和语法 RDF Model and Syntax 以及RDF 模式 RDF
Schema
RDF 用于信息需要被应用程序处理而不是仅仅显示给人观看的场合RDF 提供
了一种用于表达这一信息并使其能在应用程序间交换而不丧失语义的通用框架
既然是通用框架应用程序设计者可以利用现成的通用RDF 解析器RDF parser
以及通用的处理工具例如JENA 能够在不同的应用程序间交换信息意味着
对于
那些并非信息的最初创建者的应用程序也可以理解与处理这些信息
com RDF 模型
主体 谓词 客体
Anything named A characteristic A simple value
by a URI eg applicable to or another
a substation the resource in resource
any vocabulary
资源 属 值
图3-1 一个RDF 语句
12
华 中 科 技 大 学 硕 士 学 位 论 文
RDF 建立在一个称为三元组的数学模型上它可以把一些非常简单的元数
据说明组合在一起每一个三元组由主体 Subject 谓词 Predicate 和客体 Object
这三个元素构成如图3-1 三者组成一个语句 Statement 多个语句的集合称为描
述 Description [15][16] 如在电力系统中这样描述变电站一个变电站的名字叫做
NY 这就是一个只有一个语句的描述可以使用RDF 进行表示如图 3-2
其中了一个变电站是主体名字是谓词而NY 是客体主语代表资源
resource ――所有可由RDF 表达的对象包括web 站点单个网页电力系统中的
开关线路等它们一般总是由一个相关的统一资源标识符 URI Uniform Resource
Identifier 独一无二地表示这个资源谓词指的是资源的属性 property 包括资源的
外观特点性质与其它资源之间的关系等一个资源可以有多个属性客体就
是属性的值 value 每个属性值可以是简单的值如数字字符串等也可以更复杂
甚至属性值又可以是资源
一个变电站的名字叫做NY
主体 谓词 客体
变电站 名字 NY
cimSubstation cimNamingaliasName NY
cimSubstation rdfID "_1" cimNamingaliasName "NY"
图3-2 一个以RDF 表达的简单描述
RDF 的三元组可以通过类似于XML 的RDF 代码来表达下面的RDF 代码
描述
13
华 中 科 技 大 学 硕 士 学 位 论 文
了一个变电站它属于NY 电力公司该变电站有一个常开的断路器有Genenal
Eletric 公司制造断路器的描述包含在变电站元素中电力公司的描述是一
个单独
的元素通过ID 被变电站引用文档中的所以标记具有cim 的命名空间前
缀
表示这些标记在CIM RDF Schema 中定义
cimSubstation rdfID "_1" cimPowerSystemResouceName "NY"
cimContain
cimBreaker rdfID "_2"
cimPowerSystemResourceName "11023"
cimManufacturer "General Electric"
cimNormalOpen "trur"
cimContain
cimSubstation
RDF 模型可以方便地描述对象或者资源以及它们之间关系RDF 的数
据模
型实质上是一种三元关系的表达由于任何复杂的关系都可以分解为多个简
单的三
[17]
元关系因此RDF 的数据模型可以作为其他任何复杂关系模型的基础模型
com RDF Schema
RDF 使用命名特性和值来表达与资源有关的简单声明但是在某些情况下
由于特定的应用需要自定义一些词汇然后用这些词汇来描述资源这些词汇表
明正在描述某种特定资源并且会采用某些特定的特性来描述
RDF 允许任何人定义元数据来描述特定的资源由于资源的属性不止一种因
此实际上一般是定义一个元数据集这在RDF 中被称作词汇集Vocabulary 例如
com 节所举例子中cimSubstationcimContain 就是基于CIM 的RDF 词汇词汇
集也是一种资源可以用URI 来唯一标识这样在用RDF 描述资源的时候可以
使用各种词汇集只要用URI 指明它们即可当然各种词汇集的受欢迎程度可能
不同有的也许只是被定义它的人使用有的却由于其定义的科学性为许多人所接
受如以类似图书馆卡片目录的方式来定义资源的词汇集Dublin Core 定义教育内
容IMS 元数据定义个人信息的V-Card 元数据等CIM 就是一种由IEC 定义的用
于描述电力系统的RDF 词汇集RDF 本身并不能针对特定应用需求来定义一些类和
特性它们需要通过RDF 词汇描述语言RDF Schema
RDF 的一种扩展语言 来
定义[18]既然词汇集是资源当然可以用RDF 来描述它的属性以及和其他词汇集间
的关系W3C 为此特地提出RDF Schema 来定义怎样用RDF 来描述词汇集也就是
说RDF Schema 是定义RDF 词汇集的词汇集所以CIM 可以认为是一种由RDF
14
华 中 科 技 大 学 硕 士 学 位 论 文
Schema 定义的用于描述电力系统的RDF 词汇
RDF Schema 规范制定的目的就是要提供一套XML 的字汇来做RDF 模型更进
一步的说它所做的事情可以分为两大项
1描述类别 classes 和它的子类别之间的关系也就是定义出某个特
定领域
分类的方法
2 定义类别所拥有的属性
com CIM 与RDF 的关系
在CIM 模型中明确了电力系统的资源属性以及关系等的通用语义为了能
够进一步增强信息化地交换CIM 模型的能力电力业已经开发了一种IEC-61970 规
定了用XML 表达CIM 模型的方法即CIMXML CIMXML 是一种RDF 的应用使
用RDF 和RDF Schema 来组织CIM 模型的XML 文档结构
Power System
Resource Member of Company
Is a Company
Conducting Substation
Equipment
Switch
Breaker
图3-3 CIM 模型片断
CIM 模型被明确表示为一系列使用统一建模语言 httpcom Unified
Modeling Language UML 描述的类图CIM 模型的基类是
PowerSystemResource 类
15
华 中 科 技 大 学 硕 士 学 位 论 文
同时CIM 模型还包括了Substation SwitchBreaker 等一些特殊化的子类如图3-3
CIMXML 将CIM 表示为RDF 模式的一个词汇表并将RDFXML 用作为交换特定系
统模型间的语言[19]CIM 从某种意义上说就是一种由IEC 定义用于描述电力系统
对象的RDF 词汇集CIM 模型实际上也是可以转换为RDF 的词汇集参见41 节
本质上说CIMXML 数据是基于CIM 语义的RDF 数据
32 JENA 技术
既然CIMXML 本质上是基于RDF 技术的就可以直接使用基于RDF 工具来对
CIMXML 进行解析与处理JENA 就是一个由HP 实验室开发的表示和处理半结构
化数据的Java 开源工具[20]目前是JENA2 版本JENA 做到了支持RDF 的数据表
达解析查询和简单的推理Java 程序员可以方便地使用JENA 创建和填充RDF
模型从而构建CIM 数据并且能使用 JENA 的SparQL 查询语言查询CIM 数据从而
进一步实现CIS 接口
com 创建简单的 RDF 模型
JENA 提供了 ModelFactory 类来创建不同类型的 RDF 模型对于空的内存模
型所要调用的方法是ModelFactorycreateDefaultModel 这种方法返回 Model 实例
可以使用它进一步创建资源创建了资源后就可以编写关于这些资源的语句并添
加到模型中在JENA 中语句的主题永远是Resource 谓词由Property 表示
对象
是另一个Resource 或常量值常量在JENA 中通过 Literal 类型表示所有这些类型
共享公共接口 RDFNode 这些实例使用 ModelcreateProperty 创建将语句添加到模
型中的最简单方法是通过调用 ResourceaddProperty 此方法
以 Resource 作为主题在
模型中创建语句该方法使用两个参数表示语句谓词的 Property
和语句的对象
addProperty 方法被过载一个过载使用 RDFNode 作为对象
所以可以使用Resource
[21]
或Literal
通过使用三元组的主体谓词和对象调用 ModelcreateStatement 可以
直接在模
型上创建语句注意以此种方式创建 Statement 不将其添
加到模型中如果想将其添
加到模型中可以使用创建的 Statement 调用 Modeladd
通常JENA 创建一个RDF 模型主要有如下三个步骤
1创建空模型ModelFactory 类中有许多创建模型的方法下面代码创
16
华 中 科 技 大 学 硕 士 学 位 论 文
建一个默认的空模型实现语句是
Model modelOfLp ModelFactorycreateDefaultModel
2 给模型赋值即将所需要描述的资源赋给已经创好的空模型实现语句
是
Resource ResourceTmp modelOfLpcreateResource URI
3 描述资源即给资源增加属性及属性值实现语句是
ResourceTmpaddProperty VCARDEMAIL cinicom
上面的代码给 modelResource 资源添加了 EMAIL 属性属性值为
cinicom
com 查询数据
RDF 数据查询语言
SparQL Simple Protocol and RDF Query Language 是为RDF 开发的
一种查询语
言它是为W3C 所开发的RDF 数据模型所定义但是可以用于查询任何可以用
RDF
来表示的信息资源SparQL 查询语言目前是 W3C 委员会的工作草案或推荐标准
还在讨论当中SparQL 构建在以前的 RDF 查询语言例如 rdfDB RDQL 和
SeRQL之上拥有一些有价值的新特性而且SparQL 将Web20 和Semantic web
两种新的web 技术联系起来了很有可能成为将来的主流网络数据库的查询语言和
数据获取标准[22]
SparQL 通过简明的方式表达复杂的查询查询引擎执行访问数据模型的繁重工
作SparQL 的语法表面上类似 SQL 的语法它的一些概念对已经使用过关系数据
库查询的人来说将比较熟悉[23]SparQL 可以在给定的约束条件下在数据库找出给
定变量的所有可能值SparQL 中的约束表达式可以看成是RDF 的声明语句的列表
这里每个声明的某些部分有缺省值由指示它取代了 URIs 或者字符串
下面的代码描述了一段SparQL 语句该语句可以从RDF 数据模型中查询相关数据
关于SparQL 的具体信息请参考其SparQL 标准[22]
17
华 中 科 技 大 学 硕 士 学 位 论 文
SELECT person name age
WHERE
person a foafPerson
foafname name
OPTIONAL person userage age
FILTER REGEX name clickstone
ORDER BY ASC name
LIMIT 20
1SELECT查询关键字和 SQL 中的一个意思
2 person name age要查询的变量使用 标识变量也可
以使用
变量间使用空白分隔正式标准中使用空白还是逗号分隔尚未最终确定
3 WHERE 过滤条件集合和SQL 中的WHERE 相似
4 person a foafPerson具体的过滤条件
5 OPTIONAL可选过滤条件比如有些 person 可能没有填写 age 属性
如果不使用 OPTIONAL 那么查询结果将不包含这些 person 使用了 OPTIONAL
关键字没有填写 age 属性的 person 同样可以被查询到
6 FILTER REGEX name clickstone 明确化的过滤条件类似于 SQL
中的 LIKE 等的左右上面代码中的FILTER 表明返回的 name
变量中
必须包含clickstone
7 ORDER BY排序可以指定多个排序比如例子可以改为ORDER BY
ASC name DESC age 默认排序是ASC
8 LIMIT 20 将返回结果限定在20 条与 SQL 中的SELECT TOP 20 类似
9 OFFSET 20掠过前边的 20 条从第21 条开始返回这个功能比SQL
方便SQL 需要额外的代码实现翻页
在JENA 中使用SparQL
JENA 目前完全支持SparQLJENA comjenaquery 包含盖了在 Java 代
码中使用 SparQL 所需的所有类和接口要创建 SparQL 查询首先将 SparQL 语句
字符串放入 String 中然后并将其传送给Query 的构造函数除非在 SparQL 中使
用 FROM 子句指定了其他的源通常直接设置模型用作查询的源一旦创建了
Query可以从它创建 QueryEngine 然后由QueryEngine 通知JENA 执行查询并返
回结果具体代码所示
18
华 中 科 技 大 学 硕 士 学 位 论 文
Create a new query passing a String containing the rdql to
execute
Query query new Query queryString
Set the model to run the query against
querysetSource model
Use the query to create a query engine
QueryEngine qe new QueryEngine query
Use the query engine to execute the query
QueryResults results qeexec
JENA 也提供了jenardfquery 工具在命令行上对 RDF
模型执行 SparQL 查询
[24]
RDFQuery 从文本文件中获取 SparQL 查询然后对指定的RDF 模型运行该查询
33 Corba 技术
IEC-61970 标准的CIS 接口实现往往依靠于一个分布式组件框架当前关于分布
式组件技术主要有对象管理组Object Manage GroupOMG 的CORBASun 公司
的企业级Java Bean EJB Enterprise Java Bean 和 Microsoft 公司的分布构件对象模
型DCOM Distributed Component Object Model 这三种技术的核心思想都
有一定的
共通之处彼此具有相当的兼容性其中CORBA 技术具有语言无关和平台开放的
优点而且功能完整发展比较成熟而EJB 和DCOM 由于语言和平台的限制只
能用于特定平台或小规模的系统集成本文采用 CORBA 技术作为实现CIS 的组件
平台可获得系统的较大的开放性与较好的可移植性
用对象请求代理体系结构Common Object Request Broker
Architecture 缩写为
CORBA是对象管理组织对当今快速增长的软硬件的协同工作能力的要求而提出的
方案
气瓶 现场处置方案 .pdf气瓶 现场处置方案 .doc见习基地管理方案.doc关于群访事件的化解方案建筑工地扬尘治理专项方案下载
简而言之CORBA 允许应用程序和其他的应用程序通讯而不论他们在什么
地方或者由谁来设计CORBA 11 由对象管理组织在 1991
年发布它定义了接口
定义语言IDL 和应用编程接口API 从而通过实现对象请求代理ObjectRequest
Broker ORB 来激活客户服务器的交互[25]CORBA 20 于 1994 年的 12 月发布
它定义了如何跨越不同的ORB 提供者而进行通讯ORB 是一个中间件它在对象间
建立客户,服务器的关系通过ORB一个客户可以很简单地使用服务器对象的方
法而不论服务器是在同一机器上还是通过一个网络访问ORB 体系结构如图3-3 所
示箭头说明ORB 的调用关系为了提出一个请求客户端可以使用动态调用接口
Dynamic Invocation 或者客户端的Stub 程序客户端也可以直接和ORB 交互
ORB 截获调用然后负责找到一个对象实现这个请求传递参数和方法最后返回结
19
华 中 科 技 大 学 硕 士 学 位 论 文
果ORB 能够使在分布环境中的对象透明地生成请求以及接收响应客户不用知道
[26]
对象在哪里是什么语言实现的它的操作系统以及其它和对象接口无关的东西
图 3-4 ORB 体系结构
在传统的客户服务器程序中开发者使用他们自己设计的或者公认的标准定义
设备之间的协议协议的定义依赖于实现的语言网络的传输和其他许许多多因素
ORB 将这个过程简单化使用ORB协议定义是通过应用接口而该接口是接口定
义语言IDL 的一个实现它和使用的编程语言无关的并且ORB 提供了很大的
灵活性它让程序员选择最适当的操作系统运行环境和设计语言来建设系统中每
个组件更重要的是它允许集成已经存在的组件
采用公共对象请求代理体系结构 CORBA 作为实现 CIS
的中间件已经成为共
识目前基于CORBA 的中间件产品主要有Borland 公司的VisiBroker IONA 公
司的Orbix开源的TAOmico ORBit 等在本文开发过程中经过细致的比较研究
最终选择了Borland 公司的CORBA 中间件产品VisiBroker 来作为CIS 接口实现框架
VisiBroker 是一款完全遵循CORBA 26 系列规范的CORBA
中间件VisiBroker 是需
要高性能响应的面向复杂数据大量交易处理关键任务环境的理想之选[27]通
过其久经考验的线程和连接管理其智能代理Smart Agent架构以及IIOP 协议
的高效实现VisiBroker 可以轻松满足大量客户机和服务器的需求VisiBroker 提供
CORBA 应用程序与其他领先的技术包括Web Services NET 和J2EE 之间无缝
的互操作所需要的所有功能使其顺应SOA 面向服务架构的应用潮流最新的
VisiBroker 70 版本全面遵循CORBA 26 的系列规范
34 本章小结
RDF 为资源描述提供了一种通用框架它以一种机器可理解的方式被表示出来
可以很方便地进行数据交换IEC-61970 标准引入RDF 作为CIM 数据描述的载体
CIM 从某种意义上说就是一种由IEC 定义用于描述电力系统对象的RDF 词汇集
20
华 中 科 技 大 学 硕 士 学 位 论 文
CIM 模型实际上也是可以转换为RDF 的词汇集所以CIM 数据实际上是基于 CIM
语义的RDF 数据JENA 技术是一个专于RDF 数据表达解析查询和推理的强大
工具本文最重要的特色就是引入了JENA 技术来处理CIM 数据CORBA 作为当
前流行的中间件平台可以被用于实现CIS 接口的系统框架
21
华 中 科 技 大 学 硕 士 学 位 论 文
4 CIM 数据库的构建
在基于CIM 的EMS 数据支撑平台的开放中首要的是搭建一个CIM 数据库
CIM 数据库是以 CIM 为规范来组织数据并能提供查询的数据资源在传统的基于
[28]
CIM 的EMS 数据平台构建中通常是将CIM 数据存储在普通的关系数据库中
[29]
通过关系数据库的SQL 查询语言来实现查询CIM 数据 但是由于CIM 本质上是
基于面向对象的思想描述数据关系数据库无法完整而有效地存储表达查询CIM
数据在关系数据库的CIM 系统中往往需要建立相关的数据字典并在关系数据
库中添加额外的表用于记录CIM 数据的继承关系与关联关系在基于关系数据库的
CIM 系统中查询CIM 数据时也需要额外的转换过程
由于CIM 数据本身是通过RDF 进行表达本文在实现 CIM
数据库过程中引
入了专于 RDF 的JENA 技术摒弃了传统的关系数据库直接使用 JENA 的RDF
查询技术来查询CIM 数据有了JENA 技术构建CIM 数据库就是从EMS 数据
库
将其数据导出为符合CIM 规范的CIMXML 文件然后就通过JENA 载入CIMXML
文件并使用JENA 的SparQL 查询语言来实现CIM 数据库的查询接口如图
4-1
CIS接口 CIS接口
DAF DAF
SparQL
SQL
CIM数据库 CIM数据库
CIM数据字
典记录
JENA
CIM继承关系与关联关系的表
导出的CIMXML文件 关系数据库
EMS 数据库 EMS
数据库
基于JENA的CIM数据库 传统的基于关系数据库的CIM数据库
图4-1 基于关系数据库的CIM 数据库与传统的基于关系数据库的CIM 数据库
图4-2 描述了如何利用从EMS 数据库导出符合CIM 标准的CIMXML 文档的过
程注意是通过UML 描述的CIM 模型IEC-61970-30x 部分描述与RDF 标准W3C
22
华 中 科 技 大 学 硕 士 学 位 论 文
给出的标准来得到CIM RDF SCHEMA[30] 由CIM RDF SCHEMA 来
规范EMS
导出的RDF 文件的格式使其能以CIM 标准来正确表示EMS 数据库的数据
CIM in UML
EMS 数据库
61970_-30x
CIM RDF
validates
Schema Exporter
61970-501
Provides
namespace for
Power System Data
RDF 标准 represented as CIMRDF
WC Standard 61970-503
图4-2 EMS 数据库导出符合CIM 标准的CIMXML 文档的过
程
通过JENA 生成RDF 文件就是创建与填充RDF 模型而使用JENA 来实现
EMS
数据库导出CIMXML 文件就是创建和填充基于CIM 的RDF 模型这个过程主
要分
为三个过程
1从CIM UML 模型生成CIM RDF SCHEMA
2 从CIM RDF SCHEMA 生成CIM JENA 词汇
3 读取EMS 数据库并将数据通过CIM JENA 词汇来创建与填充基于CIM
的模型从而生成相应的CIMXML 文件
41 从CIM UML 模型生成CIM RDF SCHEMA
CIM 使用统一建模语言 UML 定义了与电力系统相关的各种类以及它们之间的
相互关系通过它就可以用RDF 来 例如C Java 等 描述电力系统中的各种对
象[31]但现在为了实现应用系统之间的数据交换将采用XML 来实现电力系统中
各种对象的描述这就需要一个描述的模式 Schema 也就是所说的 CIM
RDF
Schema同时这个模式要与CIM 的UML 定义相匹配这就需要一个从UML 模
型
生成一个Schema 的规则这个规则在IEC 61970 第501 部分定义[32]具体
如下
1对于域包Domain 外的其他包
23
华 中 科 技 大 学 硕 士 学 位 论 文
对于包中的每个类生成的Schema 如下
rdfsClass rdfID "ClassName"
rdfslabel xmllang "en" ClassName rdfslabel
rdfssubClassOfrdfresource "MySuperClassesName"
rdfscomment "ClassDocumentation" rdfscomment
cimsstereotype "ClassStereotype" cimsstereotype
rdfsClass
对于每个属性类生成的Schema 如下
rdfProperty rdfID "CcomibuteName"
rdfslabel xmllang "en" AttributeName rdfslabel
rdfsdomain rdfresource "ClassName"
rdfsrange rdfresource "AttributeType"
rdfscomment "AttributeDocumentation" rdfscomment
rdfProperty
对于包中的每个角色生成的Schema 如下
rdfProperty rdfID "CcomName"
rdfslabel xmllang "en" RoleName rdfslabel
rdfsdomain rdfresource "ClassName"
rdfsrange rdfresource "com"
cimsinverseRoleName
rdfresource "comcom"
cimsmultiplicity
rdfresource "httpcomschemautility99-10-0
3MRoleCardinalityFrom"
cimsisAggregate rdfLiteral "RoleIsAggregate"
rdfscomment "RoleDocumentation" rdfscomment
rdfProperty
2 对于域包
对于域包里的每个类生成的Schema 如下
rdfsClass rdfID "ClassName"
rdfssubClassOf rdfresource "MySuperClassesName"
rdfscomment "ClassDocumentation" rdfscomment
cimsstereotype "ClassStereotype" cimsstereotype
rdfsClass
对于域包中类的每个属性 生成的Schema 如下
24
华 中 科 技 大 学 硕 士 学 位 论 文
rdfProperty rdfID "CcomibuteName"
rdfsdomain rdfresource "ClassName"
rdfsrange rdfresource "AttributeType"
rdfscomment "AttributeDocumentation" rdfscomment
rdfProperty
对于域包中至少拥有一个属性的枚举类型生成的Schema 如下
ClassName rdfID "AttributeName"
通过以上的规则就可以从CIM 的UML 模型转换为CIM RDF Schema实际
上就
是从CIM 的UML 文件转换成RDF Schema 文件这一过程可以通过被称为
Xpetal
的工具自动完成其命令如下
Java -jar Xpetaljar -rdf cimmdl cimrdfs
其中选型-rdf 表示将mdl 文件转换为RDF Schema 文件
42 从CIM RDF SCHEMA 生成CIM JENA 词汇
有了给定的CIM RDF Schema一个电力系统EMS 就能转换成一个导出的RDF
文档这个文档就被称为CIMXML 文档在CIMXML 文档中所使用的所有标记
由CIM RDF Schema 定义这个文档能够被解析其中的信息能够被导入到别的系
统中
CIM 对电力系统中主要的电网设备和相关实体进行了建模将其分为不同的对
象与属性CIM 标准就包含这些对象的公共类和属性以及它们之间的关系CIM
标准是通过UML 语言来描述的一个mdl 文件只有符合CIM 标准定义的RDF 文
件才可以称为 CIMXML 文件CIM 标准描述的开关 Switch
包括如下的属性
normalOpen switchOnCountswitchOnDate 等这些属性一般都可以从EMS 数据
库中得到并且体现在导出的CIMXML 文件中[33][34] 如果有些CIM 标准中定义
的属性EMS 数据库中不存在则导出的RDF 文件可以没有该属性但需要注意的是
导出的RDF 文件的属性名称必须严格与CIM 标准保持一致以此来确保CIM 的兼
容性
由于导出的CIMXML 文件必须满足CIM 标准JENA 需要得到描述CIM 标
准的词汇通过该词汇导出的RDF 必然满足CIM 标准JENA 提供了 Schemagen
25
华 中 科 技 大 学 硕 士 学 位 论 文
工具来从RDF SCHEMA 来生成JENA 词汇而CIM 的RDF SCHEMA 又可以通过
Xpetal 工具从mdl 模型文件来得到图4-3 描述了从CIM 标准生成JAVA CIM 词汇
的过程下面的代码显示了schemagen 的具体用法
j ava jenaschemagen -i [-a ] [-o ]
[-c ] [-e ]
CIM标准 CIMmdl
comau
提供从mdl文件生成RDF
Xpetal Schema文件的工具
CIMrdfs
schemagen JENA提供从RDF Schema
文件生成JENA 词汇文
件的工具
JENA CIM 词汇 CIMjava
图4-3 从CIM 标准生成JEAN CIM 词汇
下面是JENA CIM 词汇关于Switch 属性的部分JENA CIM 词汇完整
地表现了
CIM 标准在CIMmdl 的对象的各个属性以及对象间的相互关系
Public static final Property Switch_normalOpen m_modelcreateProperty
"httpiecchTC572001CIM-schema-cim10SwitchnormalOpen"
public static final Property Switch_switchOnCount m_modelcreateProperty
"httpiecchTC572001CIM-schema-cim10SwitchswitchOnCount"
public static final Property Switch_switchOnDate m_modelcreateProperty
"httpiecchTC572001CIM-schema-cim10SwitchswitchOnDate"
43 通过JENA 创建和填充RDF 模型
通过JENA CIM 词汇就可以创建和填充RDF 模型来生成符合CIM 标准的RDF
文件JENA 的 ModelFactory 类是创建不同类型模型的首选方式通过调用
ModelFactory 的方法ModelFactorycreateDefaultModel 来得到一个空的模型这种方
26
华 中 科 技 大 学 硕 士 学 位 论 文
法返回 Model 实例使用它可以调用modelcreateResource 创建表示CIM 中每个对
象的 Resource 创建了资源后就可以将这些成员的属性添加到模型中将属性添
加到模型中的最简单方法是通过调用 ResourceaddProperty
此方法以 Resource
作为主题在模型中创建语句该方法使用两个参数表示语句谓词的
Property 和语
句的对象
create an empty model
Model model ModelFactorycreateDefaultModel
sql "select from Station"
rs stmtexecuteQuery sql 执行查询
IDType "station"
while rsnext
ID rsgetString "STANO"
modelcreateResource IDPrefix IDType ID CIMSubstation
addProperty CIMNaming_aliasNamersgetString "STATIONNAME"
addProperty CIMNaming_descriptionrsgetString "STATIONDESC"
以上代码以导出EMS 数据库中的站点信息为例展示了完整的创建与
填充RDF
模型的过程主要分为 4 步?查询 EMS 数据库得
到相关信息?通过
ModelFactorycreateDefaultModel 创建一个空的模型?通过
modelcreateResource
创建资源该过程往往用于将 EMS 数据库的表表示为
CIM 中的对象?通过
ResourceaddProperty 创建属性该过程往往用于将 EMS 数据库的表中的
字段表示
为CIM 中的资源的属性需要注意的是创建资源与创建属性步骤需要应用
JENA
CIM 词汇故在编写这部分程序时需要包括JENA CIM 词汇文件
表4-1 是EMS 的ORACLE 数据库记录系统中变电站的名称与ID 信息的
表的前
三条记录
表4-1 ORACLE 中电站信息表片段
STA_ID STATIO_NNAME STATION_DESC
1 QT 青台