0 引言
随着电力系统信息化和自动化程度一步步的提高,各地电力公司都建成了多个异构的电力信息系统,主要包括调度自动化系统、负荷控制和用电管理系统、管理信息系统(MIS)和配网地理信息系统等。这些系统关心电力对象的不同方面,对于不同的电力对象采用了不同的建模方法,相互之间很少设计成能够进行自由的数据交换,而且采用的开发工具以及后台的数据库都有可能不一致,使得各个应用系统在信息上成为相对孤立的“自动化岛”。为了满足用户对信息集成的需求,异构电力信息集成与交换系统(以下简称异构集成系统)对属于不同管理部门的多个异构电力信息系统进行整合,沟通信息渠道,建立横向联系,向电力公司各个职能部门提供较全面的服务。
要建成异构集成系统,必须解决一系列兼容性问题,譬如跨平台、跨操作系统、跨语言、跨协议和跨版本等。而CORBA作为分布式对象的主要标准,已成为应用系统集成和即插即用的主要技术。基于CORBA的应用系统集成可以为企业提供支持多厂商、多平台、异构网络、不同操作系统和已有的传统应用系统的集成和即插即用的环境,实现多个异构系统的集成和信息交换。
1 CORBA的相关概念
公共对象请求代理体系结构CORBA(Common Object Request Broker Architecture)是由OMG(Object Management Group)组织制定的一个工业标准。CORBA是OMA(Object Management Architecture)的一个重要组成部分。OMG即对象管理体系结构,由对象模型和引用模型组成,对象模型定义了如何描述分布在异构环境中的对象,而对象引用模型则规定了这些对象如何进行互操作。图1描述了OMA引用模型的各组成部分。
OMA的重点在于对象请求代理(即ORB),这是非常必要的。因为客户端向对象请求执行某一任务,必须通过ORB实现客户端和对象之间的通讯。CORBA则详细规定了ORB的接口和特征,OMG给CORBA的定义是:通过ORB一个客户程序可以透明地激活服务器对象的一个方法。这个服务器对象可以和客户程序在同一台机器上,也可以位于网络上的另一台机器,ORB截获调用请求,然后寻找该服务器对象,向其传递参数,激活相应的方法并返回执行结果,客户程序不必知道服务器对象的位置、它的编程语言、所处的操作系统及其它任何非对象接口方面的系统信息。这样,ORB提供分布式异构环境中不同机器上应用程序的互操作和多对象系统的无缝连接。CORBA定义了创建软件组件的面向对象的方法,你可以在应用程序间重用和共享这些软件组件,每个对象的内部实现细节都被封装起来,只对编程人员展现出一个定义好的接口,从而减少了程序的复杂性。
2 CORBA应用于异构电力信息系统的集成
2.1 系统接口
为了将电力公司的多个异构的电力信息系统集成起来,主要是要设计异构集成系统与这些系统的接口,也就是CORBA的中间件。CORBA中间件借助IDL(接口定义语言)来描述对象接口,一个接口可包含若干相关方法和属性,这就实现了CORBA与语言无关的独立性。CORBA IDL是一种描述接口,可以映射到不同的语言。本文主要利用Delphi提供的Type Library定义接口。其IDL文本文件如下:
VisiBroker会自动根据IDL文件生成相应的CORBA的客户端代理Stub和CORBA服务器端的Skeleton。比如说在管理信息系统(MIS)要获取调度自动化系统的信息,由Stub来处理这种请求后再向对象请求代理(ORB)发送调用请求,然后由ORB负责拦截请求调用,负责找到可以实现请求的对象,即调度自动化系统,在这个系统上有CORBA服务器端的Skeleton,它负责处理完请求后返回请求结果,这样通过这种接口定义即成功实现了系统的集成。
2.2 对象服务
在原有电力公司的某个电力信息系统内,存在着很多需要局内另一个电力信息系统的数据的情况。比如说属于用电管理系统的市场营销部需要调度自动化系统的一些实时数据,即供电局调度日报表和电网运行情况日报表的数据。对供电局调度日报表,主要需要系统、省网、直供三个方面的96个点的有功、无功数据,以报表的形式给出,并具要有一定的图形分析功能。对电网运行情况日报表,要求数据以文本文件的形式给出。
以往这些数据资料都有人工来传送,用电管理系统和调度自动化系统虽然都在一个局域网内,但也不能实现资源和数据的互通。通过异构集成系统就可以通过网络来实现,节省了大量的人力物力,提高了实时性和可靠性。这些功能通过上面定义的接口,主要由CORBA的对象服务来完成。当用电管理系统需要数据时,就可以根据情况,选择相应时间和内容,主动读取数据。
3 利用CORBA实现异种数据库集成
电力公司的多个信息系统大多依赖于不同的数据库管理系统的数据,要实现网络环境下的信息共享,就必须联合各个异构数据库建立合理高效的海量异构数据库。异构数据库系统是指异构的多数据库系统,即组成它的成员数据库具有的硬件、系统软件例如操作系统或通信支持不同,或者成员数据库不同或具有不同的数据语义。
CORBA采用一种中性的接口定义语言(IDL)来规定一个分布式对象的边界以及它与潜在客户的合同接口,写入IDL中的分布式对象应当可以跨语言、工具、操作系统和网络进行访问,从而也就实现了对异构数据库的集成。异构的多数据库系统主要由三大部分组成:全局数据库(GDB:Global Database)、多库系统事务管理器(MOTM:Multidatabase Object Transaction Manager)和局部数据库(LDB:Local Database),如图2所示。其中全局数据库接受全局事务,把它分解为针对每个LDB的子事务后交给MOTM;MOTM负责把全局事务的所有子事务交予相应的LDB站点执行,并负责维护全局事务,同时负责负荷平衡、安全管理等问题;LDB接受MOTM交下来的子事务并执行相应的操作。异构的多数据库系统把应用的表现逻辑、业务逻辑和资源的管理分离开来,在顶层为用户提供了一个统一的视图,用户可以像使用一种数据库一样使用多库系统,底层数据库的分布和异构对顶层用户是透明的。
基于CORBA的异构数据库的集成,可以为最终用户提供一个统一的友好的数据库应用接口,并屏蔽掉各种网络中的异构成分,包括数据库管理系统的异构、网络操作系统的异构,硬件平台的异构以及网络拓扑结构的异构等。这使得使用异构数据库的数据像使用单个的数据库系统的数据一样方便。
4 利用异构数据库开发新功能
CORBA提供了一个很好的模式来封装和构建各种异构数据库的应用,它能提供访问各种异构数据库,尤其是Web数据库时所需要的各种特性:面向对象性、模块性、灵活性和分布性等。基于以上特性,异构集成系统还开发了下面几项新功能:
4.1 综合信息发布模块
面对原有几个系统数据库构成的异构数据库中的海量数据,如何保证数据的一致性和标准性显得很重要。该模块主要是完成电力公司异构信息系统的标准数据的发布工作,主要包括台帐信息、运行数据和事件信息三大类。台帐信息主要包括生产台帐信息和经营台帐信息;运行数据的对象是台帐信息的所有对象,也分为生产运行数据和经营运行数据;根据事故性质不同而产生的新对象,这些构成了事件信息。信息的发布内容除以表格的形式表现,所有内容可以打印出来之外,还配以图形分析实现对数据的生动直观表达和有效分析。用户可以根据需要选择图形的类型有:线图、柱图、饼图、点图、三维线图、三维柱图、三维饼图、三维点图等。
4.2 智能报表模块
电力公司的日常工作中要用到大量的报表,智能报表模块主要是完成利用电力公司原有几个系统的数据制作生产经营所需各种报表工作。其特色在于:
(1) 不同源系统的数据可以根据需要制成在一张报表上;
(2) 表格的格式和数据来源可以随用户需要定制,并可以随时根据需要更改;
(3) 表格所需原始数据的处理模式如统计、合并、计算等可由用户在设计模板阶段定义并保存,无须生成中间报表;
(4) 支持一般电子表格软件所具有的绝大部分功能;
(5) 以模板形式保存所有表格信息,格式数据均可变,对一般用户,只需点击报表生成按钮即可得到报表,对高级用户,可自由开发自己需要的任何报表模板。
4.3 用户电费网上查询模块
该模块主要是电费用户在互联网上根据用电管理系统中的相关电量电费数据查询自己的电量电费情况。其特色在于:用户可以在互联网上查询自已最新的电量电费情况,减轻了用户和供电工作人员的工作。用户在互联网上根据用户名、户标识号、密码、年月进入查询用户电费界面,可以查询的数据包括:总电量、总电费、峰电量、峰电费、平电量、平电费等在内的各项数据,使用户用电用得称心满意。
4.4 用户网上报装申请模块
该模块主要是用户在互联网上申请报装,并输入相关的报装申请资料,电力公司工作人员根据网上的报装申请进行审核,所有接受的网上申请进入正式的业务报装的业务流程。所有流程军在网上进行。每个申请提交成功时,返回申请号,一般在供电工作人员审核后,报装申请用户在互联网上根据业扩变更系统中的相关报装进度数据查询自己的报装进度。
5 结语
异构集成系统对于电力公司提高设备的使用效率,减少不必要的网络信息传输,降低数字传输的费用,提高信息传输的可靠性、实时性和正确性;在给定权限下,实现相应的功能共享,提高系统集成的整体性能和实用性具有重要意义,此外还可以降低成本和提高效率。该系统已在江西吉安供电局投入运行,反映良好。