遵循IEC 61970 标准的实时数据库管理系统

  作者:lizzy464
2007/6/22 12:00:15
实时数据库管理系统是调度自动化系统支撑平台乃至整个系统的核心内容, 实时数据库遵循IEC 61970 C IM/C IS 标准, 是新一代系统标准化和组件化的关键。文中从数据库定义、数据库实体和数据库访问等3 个方面讨论了遵循IEC 61970 标准的实时数据库管理系统的设计和实现。为了满足C IM/C IS 的要求并兼容原有应用, 数据库定义以C IM (公用信息模型) 为基础, 能转换成层次型和关系型数据模式; 数据库实体采用磁盘文件映射的内存管理机制, 以改进ORB 方式进行网络分布; 数据库访问采用同一实体提供面向对象、层次和关系等3 类访问接口的三位一体方式。这种数据库管理系统在传统实时数据库的基础上, 克服了为遵循IEC 61970 标准的改造的困难, 可用于新一代调度自动化系统。


0 引言

电网调度自动化系统是实时与非实时、控制与非控制、同构与异构、紧耦合与松耦合交织的集成系统, 在满足实时性和安全性的前提下, 推行标准化、提高开放性以及实现资源共享十分重要。在传统的系统中, 系统软件采用PO S IX, TCP/ IP 和MO T IF等标准带来了一定程度的开放, 然而, 由于应用软件没有接口标准, 应用层不开放, 系统异构和互联非常困难。因此, 进一步提高开放性, 遵循IEC 61970 标准, 使应用软件接口标准化, 实现即插即用, 成为开发新一代电网调度自动化系统的主要任务。

遵循IEC 61970 标准, 要求电网调度自动化系统的支撑平台和应用软件根据公用信息模型(C IM ——common info rm at ion model) 和组件接口规范(C IS——componen t in terface specif icat ion) 进行改造。支撑平台是系统的基础, 包括数据库管理、图形管理、网络管理和系统管理等公用服务工具。其中, 数据库管理又包括实时数据库管理和商用数据库管理两部分。实时数据库管理是支撑平台乃至整个系统的核心内容, 系统的体系结构、数据组织、集成方案以及实时性、开放性、安全性和分布性等性能指标很大程度上取决于实时数据库管理系统。因此,新一代电网调度自动化系统应首先从实时数据库管理系统开始实施IEC 61970 标准系列, 在新的数据库管理系统的基础上, 将其他支持软件和应用软件进行改造(例如网络管理采用CORBA、图形管理按C IM 建模和应用软件组件化等)。

传统的实时数据库管理系统支持层次或关系两种数据模型, 数据模式和访问接口都是私有的, 对第三方不开放。按照IEC 61970 标准系列, 实时数据库管理系统应支持面向对象的数据模型, 以使数据模式符合按面向对象组织的C IM ; 应基于组件技术,以使访问接口符合C IS。

目前对实时数据库管理系统的改造主要存在如下困难:①要支持面向对象的数据模型; ②要兼容原有系统的应用软件; ③要基于组件技术[ 1 ]; ④要适应C IM /C IS 标准版本的变化。

针对上述难点, 本文从数据库管理系统的3 个方面即数据库定义、数据库实体和数据库访问来讨论遵循IEC 61970 标准的实时数据库管理系统的设计和实现。

1 数据库定义

数据库定义是指根据数据库管理系统支持的数据模型定义数据模式。数据模式是描述电力设备的元数据, 这些元数据可以有不同的组织类型, 亦即数据模型可以不同。例如, 对于断路器, 可以用关系型的二维表来描述其名称、通常开合状态等属性, 也可以用面向对象的类来描述这些属性。因此, 对于数据库管理系统, 首先要选择所支持的数据模型。

1. 1 数据模型分析

目前, 实时数据库有关系、层次和面向对象等3 种数据模型。关系模型允许定义一组二维表, 二维表之间通过索引关联, 目前主流的商用数据库如O 2RACL E, SYBA SE 等都是关系模型。关系模型的特点是简单、易维护、用户界面友好, 但关系模型只适合处理不包含拓扑关系的数据, 对电力系统拓扑结构的描述比较困难, 应用软件的接入也比较困难。层次模型允许定义有父子层次关系的二维表, 层间通过层次指针进行关联, 目前许多运行的电力系统应用软件基于层次型实时库。层次模型的特点是符合实际电力系统的分层分级关系, 容易描述电力系统的拓扑结构, 应用软件的接入比较容易, 但用户较难建立和掌握层次模型的概念, 数据库的维护也比较复杂。面向对象模型允许定义对象类, 类之间可定义继承和关联等关系, 继承是隐式的, 而关联是显式的。面向对象模型的特点是按客观事物的本来面目描述设备, 具有封装、重用和多态等特点, 与面向对象的软件工程自然结合, 缺点是面向对象的实时数据库管理系统的实现比较复杂, 目前还没有成熟的产品。

1. 2 数据模型选择

C IM 是IEC 61970 标准的基础, 由相互关联或继承的类组成, 是面向对象的电力系统数据模型, 而传统实时数据库的数据模型是关系模型或层次模型。为了能映射C IM , 数据模型的选择通常有如下两种做法:

a1 保持原系统的数据模型不变, 将原系统的关系模型或层次模型定义的数据模式与对象模型组织的C IM 建立映射关系, 建立C IM 服务器, 与原实时数据库通过导入、导出和更新进行数据同步。这种做法的优点是把C IM 用做外部接口标准, 是一个外模型, 内部系统仍沿用原来的私有模型, 系统改动较少; 缺点是C IM 服务器与实时数据库是两份数据,需要不断同步, 而且系统的内外是相对的, 应用软件要针对内部的私有模型和针对外部的C IM 模型设计两套接口。此法只适于初期改造时的过渡产品。

b1 采用面向对象数据模型, 可直接定义C IM中的类。这种做法的优点是实时数据库可直接映射C IM , 容易表达C IM 中的继承等面向对象特性, 对C IM 版本变化的适应性也较好; 缺点是不能兼容原有系统的应用软件, 完全开发面向对象的数据库管理系统比较复杂。

上述两种做法都存在一定的缺点。因此, 可以选择一种关系、层次和面向对象三位一体的数据模型,其依据是对同一电力设备可分别用上述3 种数据模型描述相同物理含义的属性[ 2 ]。3 种数据模型对应3份数据模式。数据模式自动映射, 通常根据C IM 用面向对象的模型定义基于类的数据模式, 再分别转换成层次型和关系型的数据模式。关系型数据模式用于与用户相关的界面, 简单可靠; 层次型数据模式用于原有系统的应用软件, 使其兼容; 面向对象型数据模式用于基于面向对象组件技术的接口, 能较好地遵循IEC 61970 C IM/C IS 标准和适应其版本的变化。

基于三位一体数据模型实时库的原有系统的应用软件有3 种改造方式:①不做改动, 以层次型数据模式用原来的私有接口接入; ②加封套以面向对象型数据模式由C IS 接口接入; ③彻底改造为基于C IM 结构的面向对象的组件。由于原有系统应用软件很多, 许多经过长期运行证明是可靠和高效的, 不可能全部推翻重来, 上述3 种处理是一个循序渐进的长期过程。另外, 用面向对象或层次关系组织的数据对用户的理解和掌握较难, 而关系型的二维表对用户来说非常简单, 与主流的关系型商用数据库接口方便, 便于把实时库和商用库有机地结合在一起。

值得指出的是, 根据IEC 61970 标准, 实时数据库中面向对象特性是比较简单的, 主要表达C IM 中继承和关联等关系, 可以不考虑类中的方法, 因此, 在实现时可充分利用C+ + 语言的面向对象的特性。

1. 3 数据模式

在传统系统中, 由于采用的电力系统建模方法和计算机实现方法不同, 不同厂家的系统其数据模式是各不相同的, C IM 用面向对象的方法对公用数据规定了标准的数据模式。三位一体实时数据库允许3 套一致的数据模式, 以C IM 为源, 其他数据模式自动映射生成。以描述断路器的名称、通常开合状态、电压等级和遮断电流等4 个属性为例, 在C IM中, 断路器类是B reaker, 其继承关系如下:

N am ing< 2Pow erSystemResou rce< 2Equ ipm en t< 2Conduct ingEqu ipm en t< 2Sw itch< 2B reaker断路器名称从类N am ing 继承nam e 属性, 通常开合状态从类Sw itch 继承no rm alOpen 属性, 遮断电流是B reaker 本身的属性ampRat ing, 电压等级从E2qu ipm en t 类继承一个关联属性, 关联设备容器类E2qu ipm en tCon tainer, Equ ipm en tCon tainer 是电压等级类Vo ltageL evel 的父类。

Vo ltageL evel 的继承关系如下:

N am ing< 2Pow erSystemResou rce< 2Equ ipm en tCon tainer< 2Vo ltageL evel电压等级的名称从类N am ing 继承nam e 属性, 从Equ ipm en tCon tainer 继承与断路器类继承关系中B reaker 的父类Equ ipm en t 的关联属性。

上述断路器属性是面向对象的数据模式, 映射成层次型数据模式如图1 所示, 映射成关系型数据模式如图2 所示。

图1 所示层次模型中的CB 与KV 记录, 以及图2 关系模型中的断路器表和电压等级表与类B reaker 和Vo ltageL evel 是一一对应的。关联用资源描述框架RDF 中的资源引用表示。C IM 中的关联是显式的, 可以是双向或单向, 双向是冗余的, 此处采用单向表示, 与图1 和图2 中的kvref 对应,kvref 在图1 中要自动转换为层间KV 与CB 的数据库指针关系P $CB。各数据模式中属性的类型(如整型、浮点型等) 是一致的。

三位一体的实时数据库通过自动映射的3 份数据模式实现遵循C IM、兼容原有系统的应用软件和提供最终用户简单友好的界面接口。当原有系统的应用软件全部按面向对象的组件化改造完成后, 可屏蔽实时数据库的层次特性; 当用户普遍习惯于按对象组织的电力系统模型表达后, 可屏蔽实时数据库的关系特性。

2 数据库实体

数据库实体是指根据数据库定义的数据模式生成内存或磁盘中的空间来存放数据, 实时数据库实体在内存中。实时数据库实体涉及实现机制、实体分布和三位一体特性等方面。

2. 1 实现机制

实时数据库是内存数据库, 选择一种高效可靠的内存管理机制生成数据库实体十分重要。目前主要有共享内存方式和文件映射方式两种实现机制。

共享内存方式是用IPC 机制中的共享内存段作为数据库实体。共享内存最初的用途是作为一种高效的进程之间的通信机制, 与管道、消息队列和信号灯等构成多种IPC 方式。共享内存是预先申请一定大小的内存空间, 与信号灯配合实现进程通信, 是一种效率较高的进程间通信方式。

通过共享内存方式来生成和管理实时数据库实体存在如下特点:①数据库使用的内存空间不能太大。共享内存是从进程间交换信息的角度考虑的, 适合于使用内存不大的场合, 否则会引起系统资源的不平衡, 例如对纯SCADA 系统, 可以用共享内存实时数据库, 而包括网络分析等应用软件的EM S 由于需要的实时数据库空间较大就不适合。②共享内存的申请、释放、访问、并发和存储等管理需要使用者单独处理, 增加了实时数据库管理的难度。③UN IX系统支持共享内存,W indow s 系统不支持。文件映射方式是将二进制的磁盘文件映射成内存块作为数据库实体。文件映射方式的磁盘文件与内存块的数据是可以自动同步的, 同步由操作系统完成。笔者测试表明, 文件映射方式不因与磁盘文件的同步而影响实时数据库的效率, 与共享内存的访问速度是同一数量级。

通过文件映射方式来生成和管理实时数据库实体存在如下特点:①文件映射方式可通过实时数据库内存同步刷新的磁盘文件, 保证实时数据库中的数据任何时候都不会丢失, 这是操作系统完成的, 共享内存方式做不到。②文件映射方式的内存空间仅受物理内存空间的限制。③内存的申请、释放、访问、并发和存储等大部分由操作系统完成, 降低了实时数据库管理系统实现的难度。④UNIX 系统和Windows系统均支持文件映射方式。

根据以上两种实现机制的特点, 新的实时数据库管理系统宜选用文件映射方式的实现机制来生成和管理数据库实体。

2. 2 实体分布

实体分布是指在物理上和逻辑上如何部署数据库实体, 包括服务器端和客户端数据库实体的安排。

在服务器端, 实时库的实体以应用为单位在网络上进行分布, 例如SCADA 数据库、状态估计数据库和DTS 数据库等, 这些数据库实体在逻辑上是分开的, 相互独立存在, 在物理上可以根据具体硬件系统配置情况进行安排。为了提高数据库的可靠性, 数据库实体往往冗余配置, 采用主备或集群方式, 同一应用的冗余实时数据库在物理上尽量分布在不同的机器上。

在客户端, 实时数据库的实体分布有3 种方式:

a1 选择Clien töServer (CöS) 方式:客户端不生成数据库实体, 实时数据从服务器的数据库实体中获取。这种方式的优点是客户端比较瘦, 易于系统移植、扩展和维护数据一致性, 缺点是网络负载较重,影响速度。

b1 选择P roduceröC u stom er (PöC ) 方式:客户端生成服务器的数据库实体的副本, 实时数据从本地的实体副本获取。这种方式的优点是速度快, 实时性好, 但增加了移植和数据同步的难度。

c1 选择ORB 方式:ORB 方式实质上是一种特殊的C/S 方式, 是符合CORBA 规范的标准化C/S。
这种方式除了具有CöS 的优缺点外, 最大的优点是实时数据库的组件化, 是遵循C IS 标准的基础, 当然这种标准化是以牺牲部分效率为代价的。

根据以上3 种方式的优缺点, 基于IEC 61970标准的实时数据库管理系统宜采用以ORB 为主并结合C/S 和P/C 方式优点的改进ORB 方式, 对常规ORB 方式做如下改进, 以提高实时性:①扩大组件粒度, 在组件内部可采用C/S 方式, 用内部私有的网络进行通信管理, 以提高速度; ②引入本地实时数据库组件, 各本地实时数据库与服务端实时数据库的同步由CORBA 的事件服务完成, 实时数据的访问仅对本地实时数据库进行, 以提高效率。改进ORB 方式可根据系统中各应用实时性要求的不同进行组合和选择。

2. 3 三位一体特性

三位一体特性是指同一数据库实体具有关系、层次和对象等3 种特性。在第1. 3 节中已经介绍了三位一体数据模式的实现, 在此叙述同一数据在关系、层次和对象等3 种数据模型中是如何相互映射。

设备对象的属性在C IM 中包括该设备类本身属性及其父类的属性。设备对象之间的关系通过设备类本身的关联及其父类的关联表示, 对应到关系库中是该设备表中的一条记录, 属性对应域, 关联对应索引, 记录的标识与对象的标识对应; 对应到层次库中是一条记录, 属性对应域, 关联对应指针, 记录的关键字与对象的标识对应。当基于C IM 的图模库系统建模时自动维护对象标识、记录标识和记录关键字的对应关系。

如果用3 份实体表达3 种特性, 比三位一体的实现简单, 但3 份内存实体有难以保证数据一致性、占用系统内存开销大和维护困难等缺点。一种实体例如C IM 库, 同时提供关系型A P I 接口、层次型A P I 接口和对象型A P I 接口在理论上是没有问题的, 但为了提高访问速度, 层次型和对象型往往还需要提供直接面向结构、直接操作数据库内存地址的快速访问接口(笔者测试快速访问接口比A P I 接口的访问速度快2 个数量级) , 因此, 三位一体实时数据库要解决层次结构和类结构的直接映射, 例如同一数据库实体同时用层次结构和类结构去匹配而得到相同物理含义的数据。

3 数据库访问

数据库访问是指如何读写实时数据库实体中的数据, 它与数据库定义和数据库实体密切相关。
用户界面例如数据库浏览、图模库一体化图形制作和访问商用库等通过关系型A P I 访问数据库。关系型A P I 主要是对二维表中记录的读写。当用户普遍熟悉电力设备按C IM 中的对象描述时, 可通过对象型A P I 对C IM 库中的对象进行读写, 对象型A P I 是IEC 61970 标准中的C IS 部分。

遗留软件例如SCADA、网络分析和DTS 等, 这些运行可靠且高效的软件如果完全按面向对象的组件改造, 不仅工作量庞大, 而且浪费资源, 因而可以加封套, 以对象型A P I 访问数据库, 改造为符合IEC标准的组件。另一种做法是保留与数据库层次型或关系型接口, 与实时数据库一起构成组件, 对外提供该应用的C IS 接口, 层次型A P I 不仅包括带缓冲区的接口, 而且包括直接操作数据库内存的快速访问接口。新的软件直接基于C IM 实现, 以C IS 接口访问实时数据库。

目前, 由于IEC 61970 C IS 标准只有部分草案和框架说明, 对象型A P I 可先按一套私有的C IS 实现, 当相应的C IS 标准发布后, 在私有C IS 和标准C IS 之间通过适配器连接, 以适应C IS 标准版本的变化。

随着应用软件按IEC 61970 标准的完全组件化改造和用户对对象概念的掌握, 关系型A P I 和层次型A P I 将逐渐退化并自然淘汰, 数据库将变为基于IEC 61970 的面向对象实时数据库。

4 结语

实时数据库管理系统是调度自动化系统的核心, 实时数据库遵循IEC 61970 标准是新一代调度自动化系统的首要任务。

遵循IEC 61970 标准的实时数据库管理系统宜采用关系、层次和对象三位一体的数据模型, 既遵循C IM /C IS 标准又兼容原有系统的应用软件, 同时考虑对用户的实用性。数据库实体采用文件内存映射机制, 以改进ORB 方式分布, 既基于组件技术又解决了CORBA 效率较低而引起的实时性问题。三位一体数据库提供3 种访问接口, 通过适配器适应C IS 标准版本的变化。

基于改进ORB 方式的三位一体实时数据库管理系统是目前运用新标准和新技术的实时数据库改造的有效方案, 随着组件化改造和新技术的发展, 将逐渐演变为基于ORB 的面向对象实时数据库管理系统。

来源于:《电力系统自动化》

责编:lizzy464
vsharing微信扫一扫实时了解行业动态
portalart微信扫一扫分享本文给好友

著作权声明:畅享网文章著作权分属畅享网、网友和合作伙伴,部分非原创文章作者信息可能有所缺失,如需补充或修改请与我们联系,工作人员会在1个工作日内配合处理。
推荐博客
创新平台技术,助力政企私有云..

创新平台技术,助力政企私有云建设金蝶中间件有限公司 奉继承 博士第16届软博会高峰论坛,2012.05.31……

畅享
首页
返回
顶部
×
    信息化规划
    IT总包
    供应商选型
    IT监理
    开发维护外包
    评估维权
客服电话
400-698-9918