企业简介

作为中国自动化领域的权威旗舰网络媒体,控制网创立于1999年7月,是中国举行的第十四届IFAC (International Federation of Automatic Control)大会的中国官方组织机构的唯一指定网站。控制网是中国自动化学会专家咨询工作 委员会(ECC)的秘书处常设之地。是北京自控在线文化传播有限公司开设的网站。

  • 公司类型:其他

联系方式
  • 控制网
  • 地址:北京市海淀区上地十街辉煌国际2号楼1504室
  • 邮编:100085
  • 电话:010-57116291 / 59813326
  • 传真:010-59813329
  • 网址:http://www.kongzhi.net
  • Email:mahongliang@kongzhi.net
  • 联系人:市场部
案例详细
标题用中间件技术开发电力调度自动化系统
技术领域仪器仪表
行业
简介基于中间件技术,设计开发了一套电力调度自动化系统。数据处理集中在服务器端完成。通过共享中间件实现各应用软件间数据交换,这种结构能简化功能模块的开发和维护,并为集成进一步的信息系统提供解决方案。
内容



    随着电网调度自动化水平的提高及计算机技术的发展,发展信息管理系统已成为趋势[1]。但是要在原有的电力监控系统上增加扩充功能以及实现信息系统的集成,通常建立功能相对独立的子系统,子系统之间通过网络进行数据交换[2][3],实现数据共享。这种系统的数据共享能力十分有限,系统维护工作重,软、硬件重复投资,资源浪费。
    本文设计了电力监控系统数据共享中间件,该中间件完成数据的网络传输、刷新及保持数据的一致性,为应用软件提供统一的数据访问接口,应用软件通过该接口访问中间件数据库的数据,这使得系统的应用开发变得简单。整个系统分为数据服务器,数据共享中间件和应用软件三大部分。三部分协同完成系统的功能。这种软件结构可以明显地提高系统的可靠性,降低软件的开发和维护成本,使今后的软件升级、增加功能等变得容易,并为以后进一步集成信息管理打下良好基础。

1  系统总体结构

    中间件是指一种软件[4],用于放在系统软件和应用软件之间,有了这层处于中间的软件,就能使处于远距离相隔离的应用软件协同工作(互操作),这样应用层就可以实现分布式处理。本文利用中间件技术,设计了一个网络分布式监控系统,以实现各应用成分之间可以跨网络协同工作。实现各应用所涉及的“系统结构,操作系统,数据库等”各不相同。
   
该系统以Windows 2000作为操作系统,历史记录数据库可以选用SQL Server 2000或Sybase等商用数据库系统,所有的构件和应用软件在Microsoft VC6.0平台上开发。这里主要针对系统的数据共享中间件、软件结构及技术方案进行探讨。系统的网络及功能集参考文献[5][6]。
    系统按完成的功能可以分成三大部分:数据共享中间件、数据服务器和应用软件,如图1所示。数据服务器主要对应用软件改写的数据进行集中处理,得到各应用软件可以使用的数据保存在数据中心,数据中心再刷新各共享中间件的数据供应用软件使用。应用软件对数据的读写操作实际上是通过共享中间件实现的。应用软件无需关心数据服务器和其它应用软件的物理位置。



图1  软件系统结构

    这种结构充分利用了中间件技术的特点,对应用软件屏蔽了系统的网络通信问题及各应用软件间数据通信问题,数据共享能力强,软件系统的运行基于数据驱动。分布在网络上不同节点的应用软件协同工作,完成复杂的功能。也可以将数据共享中间件提供给第三方,作为数据共享接口,进行信息系统集成。下面介绍各部分的结构及技术处理。

2  模块结构

2.1  数据中心和数据共享中间件
    数据中心和数据共享中间件是系统的关键模块,二者建立了网络监控系统中各节点应用软件联络的桥梁,数据中心位于服务器节点,中心数据库保存了整个系统运行的实时数据和最近一段时间的历史数据,并对数据进行分组。其它应用节点配置数据共享中间件,它的数据库根据该节点的需要配置若干组数据,这些数据是数据中心的拷贝。结构如图2所示。

(1)  数据中心和数据共享中间件结构
    数据中心和数据共享中间件的结构和功能是一样的,只是配置不同,所起的作用不一样。它们分为5层。



图2  数据中心和数据共享中间件的结构


?  网络中间件  用组播技术[7]开发的网络通信中间件,用于发送组播数据和接收组播数据。
?  写数据库接口和组播数据接口  写数据库接口用于取出要改写的数据进行合法性检查,数据合法即写入中心数据库。组播数据接口用于当数据中心的数据变化后,调用网络中间件组播变化的数据记录,供其他节点的中间件刷新数据。
?  数据库  为一内存库,用于存放系统的实时数据,以多个表的形式存放,表中每一记录用组号、厂站号、变量号作为识别,其余的列为该变量定义的属性和数据。
?  数据交换管理  用于服务器读取数据时将所需要的数据从中心数据库拷贝到共享内存区,服务器写入数据后,负责检查数据的合法性和该条记录的改写标记,若允许改写,再写入数据库,否则丢弃数据。
?  共享内存区  一片共享内存区域,用于与服务器或应用软件交换数据的区域,分为两个小区,读区域用于读取数据库的数据,写区域用于写入数据。
    数据中心和数据共享中间件不同体现在2、3层的配置不同,共享中间件组只针对数据中心组播数据,所有的共享中间件使用同样的组号组播,且只有数据中心接收该组数据。而数据中心按分组组播数据记录。中心数据库配置系统的所有数据,而共享中间件的数据库配置该节点所需要的数据。
    数据共享中间件与数据中心的通信是通过组播技术实现的,在调度系统中,数据的实时性非常重要,组播技术可以实现一发多收,从而减少时延和节省带宽和提高系统实时性[7],数据中心把数据分成组,如节点的应用软件需要该组的数据,配置数据共享中间件时加入该组,即可接收到该组的数据,一个数据共享中间件可以根据需要加入多个组。为提高组播的可靠性,在组播数据接口内建有一缓冲区,暂存组播完的数据,用于对第一次组播没有接收到的节点进行单独组播。
    数据中心或数据共享中间件是独立运行的程序,与服务器和应用软件处于不同的地址空间。服务器和应用软件使用读写共享内存接口完成与数据中心和共享中间件中的数据交换,该接口用动态链接库实现,供服务器或应用软件加载调用。

(2)  数据处理流程
应用软件对数据库的写操作会引起一系列的数据处理和更新操作。一个典型的数据处理过程一般有8个步骤:
?  应用软件改写共享中间件中的数据;
?  共享中间件组播该数据;
?  数据中心接收该数据;
?  数据中心将该数据送到共享内存区;
?  服务器处理数据,并将结果写回数据中心;
?  数据中心组播该数据记录;
?  各共享中间件刷新该数据记录;
?  各应用软件取得新的数据做处理(显示等)。

(3)  系统数据安全和可靠性方案
    为保证系统的数据安全,对中间件数据库表中的每一条数据记录有一写控制字节,配置为0时,表示该节点禁止改写该记录,共享中间件将丢弃应用软件对该条数据的写操作,配置为1时,应用软件可以对该条数据进行写操作。在重要的场合,为保证系统的可靠性及无间断运行,服务器可配备双机热备用(两套独立)。必要时配备第三数据服务器(可以与其他模块共用硬件)。
    除以上的基本功能外。数据中心和共享中间件还需完成以下功能:

    ① 共享中间启动后数据初始化,用于该中间件启动完成后,向数据中心请求一份完整的数据拷贝;
    ② 网络监视及切换,当监控网络为双以太网时,判断各节点与服务器的网络链接状态,应用节点启用一个网络主用,另外一个网络备用,主用网络故障时,自动切换到备用网络,并将网络状态写入数据中心;
    ③ 数据中心之间的数据拷贝功能。数据中心启动后,如果已有数据中心在线运行,应从在线的数据中心取得一份完整的数据拷贝;
    ④ 数据中心的主备切换,数据中心一套在线运行,一套热备用。发生故障时自动切换,也可以人工切换。

2.2  数据服务器和应用软件的结构
数据服务器和应用软件只是功能不同,它们具有统一的软件结构,现以服务器为例介绍其结构。



图3  数据服务器

    数据服务器用于数据的计算和处理,同时完成历史数据的保存。服务器由3部分组成:数据中心、运行管理器和功能构件。服务器的的功能构件是数据处理构件、历史数据保存构件及历史数据库,其中的历史数据库采用商用数据库,如图3所示。一个数据处理构件一般负责完成1~2类数据的处理功能,用动态链接库或类实现,挂接在软件数据总线上,每一构件有一数据缓冲区用于接收软件数据总线的数据。系统运行控制器是服务器的枢纽,该控制器通过接口检测数据中心的数据变化,将变化的数据通过软件数据总线分发到各数据处理构件的缓冲区,系统运行控制器也有一数据缓冲区,用于接收各个数据处理构件的产生的数据写入数据中心,服务器的主备运行也在该控制器内实现。服务器中各功能构件和控制器以线程方式实现。
    中心数据库中保持了所有的运行数据,包括原始数据、分析处理得到的数据和统计数据,这些数据以表的形式放在内存中。目前,该软件主要针对电力监控系统,中心数据库的数据表可以归纳到以下几类。

?  主站系统运行表  保存主站运行的数据信息;
?  被控站数据表  保存被控厂站的实时运行数据;
?  设备参数表  保存主站和被控厂站系统网络和设备列表,这部分数据为静态数据;
?  控制表  保存优化计算,控制策略,控制方案等。
应用软件的节点配备数据共享中间件,各应用软件的结构与服务器一致,只是软件数据总线上挂接的功能构件不一样,所完成的功能不同。

3  系统升级、功能扩充及应用

    系统的升级可以在构件级和模块级进行,只要保持接口不变,新开发的构件可以与早期开发的构件集成在一个模块中,数据服务器目前的功能在将来可能不够用,通过增加新的功能构件解决。各个时期开发的模块可以集成在一个系统中。对于已经在现场运行的系统,可以进行在线升级和在线扩容,以保持系统的连续运行。
    系统已用于2002年投入的粤海铁路贯通配电调度自动化系统,2003~2004年系统进行了两次扩容及功能扩充,经过两年的运行,证明该系统实时性好、运行可靠、功能扩充方便,达到了设计的目标。

4  结语

    本文利用组播技术设计开发了数据共享中间件以完成实时数据的共享。功能模块直接利用已处理好的数据,用于完成特定的功能。这种软件结构的具有以下的特点:

    (1) 基于公共的实时数据服务器,具有较强的数据处理能力,使得功能模块不再作数据处理而致力于功能实现。
    (2) 实时数据和历史数据方便与信息系统进行数据共享,实现与信息系统的无缝集成。
    (3) 数据中心可以增加数据表,增加数据处理构件达到加强服务器的功能。而外围的功能模块,可以通过不断开发功能构件和功能模块的方法增加软件系统的功能。
    (4) 使用中间件技术,使得数据服务器移植到UNIX操作系统也变得容易些。移植完成后,该系统可以在多操作系统下运行。