APP下载

基于ICE的分布式高可用性电力SCADA主站架构

2013-09-20王庆玉张高峰王乐挺李惠民

电气自动化 2013年6期
关键词:高可用性中间件架构

王庆玉,张高峰,王乐挺,李惠民

(1.山东电力科学研究院,山东 济南 250002;2.济南网聪软件科技有限公司,山东 济南 250101)

0 引言

电网是一个非常复杂的系统,需要相应的能量管理系统(EMS)进行安全有效的管理。当前随着电网向兼容越来越多的可再生能源及各类新型服务智能电网的过渡,能量管理系统的作用将越来越明显,成为实现新一代智能电网的关键。

文献[1-2]分析了电力管理系统的发展趋势。这些管理系统多用来在主站层面对主要的数据采集与监视控制(SCADA)功能及一定程度的高级应用进行集成。为确保系统的完整性,需要高可用性机制,从而保证一个或多个系统出现故障后,系统的监控功能不受影响。同时考虑被管理系统的动态变化,对管理软件的可扩展性要求很高。就软件架构而言,为开发并管理这样一个复杂的现代化的主站系统,我们需要一个分布式的,面向对象的软件中间件。这样一个软件中间件,辅以一些外加的软件管理模块,我们可以为主站搭建一个牢固的软件架构,用以支持一些必须的系统功能,如分布部署,高可用性,可扩展性及可管理性。

考虑到电力主站需要处理大量的实时信息,其软件中间件通常的选择是CORBA。但近些年在软件开发实践中,人们逐渐意识到它的缺陷,其使用有逐渐减少的趋势[3]。

本文介绍我们基于新兴的轻量级的面向对象的中间件ICE开发的分布式软件架构的方法。实践表明该架构可有效的解决现代分布式管理系统所面临的共性问题,十分适用于新一代的能量管理系统及其它涉及分布式管理的软件系统。

1 CORBA及其局限性

随着能量管理系统变得越来越复杂,为满足电力网络的发展,业界对系统间集成的要求越来越强。CORBA以其技术上的领先逐步成为最为广泛使用的中间件。文献[4-5]给出了一些典型的基于它的能量管理架构及设计可供参考。其一度被认为是技术领先、具有给分布式计算领域带来革命性突破潜力的中间件。但实践中遇到的种种问题,使其逐渐因失去市场而被边缘化了。

具体就能量管理系统而言,其局限性体现在以下几个方面:

1)复杂性。其接口的定义过于复杂。缺乏良好设计的接口及语言映射。

2)功能不足。缺失两个重要功能:安全及版本控制。就电力系统应用而言,安全性是个至关重要的要求。

3)缺乏高性能的事件分配服务,这对需要大量海量实时信息处理的电力系统管理软件尤其不利。

4)缺乏对多线程应用支持的力度。

5)不支持服务端事件的异步分派。

考虑到上述缺点,我们需要寻找一个更好的面向对象的中间件,以便应对开发新一代EMS的挑战。

2 ICE介绍

2.1 关于 ICE

互联网通讯引擎(ICE)是新出现的面向对象的软件中间件。支持面向对象的远程调用,网格计算,发布/订阅功能[4]。ICE很好地支持目前多种操作系统下各种最流行的编程语言,如C++,Java等。如其名字所表示的,ICE对防火墙有很好的穿透性,可在不使用HTTP规约的前提下,支持互联网应用的开发。

ICE提供一个易懂、易编程的分布式应用解决方案。它的设计受CORBA影响很大。事实上它是由数个有影响力的CORBA专家参与开发的。但与CORBA相比,它要简洁及轻量级得多但又不失灵活性,非常适合用来支持要求很高的如EMS等关键应用。

2.2 ICE 主要组件

图1 ICE组件及其关系

ICE具有一系列和CORBA类似的组件及功能,包括面向对象的远程对象调用,对象复制,网格运算,失效备援,负载均衡,防火墙穿透及发布-订阅服务。为获取这些服务,应用软件需要链接一个桩(Stub)库或桩集。该桩库可由一个独立于编程语言叫做SLICE的语言编译产生。表示ICE由不同组件组成的总体架构如图1所示。ICE应用客户端通过ICE运行库和ICE服务交互。客户端和服务间还可以通过IceStorm的服务,采用发布/订阅的异步通讯模式交换信息。服务的注册及寻址通过IceGrid提供的注册服务完成。IceGrid同时还能借助远程主机上的IceGrid节点对远程服务进程提供控制、管理功能。

在主站架构中,我们分别用到ICE组件来搭建一个具有高可用性的易于管理的软件架构。有关这些组件的详细信息见图1,可参阅文献[6]。

3 基于ICE的高可用性的SCADA软件架构

ICE为分布式应用开发提供了一个灵活、可靠、易用的平台。但其本身并不提供针对分布式应用的诸多组件的高可用性机制。高可用性对现代SCADA系统是最重要的要求之一。在目前国际电工委员会(IEC)及国家工业标准中,电力网络管理系统要求必须高于99.9%的系统可用性。对SCADA系统,根据被管理系统的不同,组件间的热备主备切换时间必须小于5秒或20秒。

我们的方案有效的利用ICE平台,ICE工具箱及IceGrid的注册服务来解决分布式应用高可用性及管理问题。方案由以下五个主要部分组成。

3.1 应用管理服务AMS

AMS是整个系统的核心控制模块。它对被管理的分布式应用模块提供管理服务。系统管理员或授权人员可以通过AMGUI接入该服务从而动态配置、备份、恢复被管理应用的各类参数。AMS也负责应用的启停并监视应用的主备切换。AMS自身的高可用性用同时开启主机和备机的两个AMS实例实现。

3.2 注册服务

注册服务由ICE自带的IceGrid提供。包括AMS在内的所有被管理应用都需要向注册服务注册。IceGrid还同时通过Ice-Grid节点,实现对分布式应用模块的状态检测及启停操作。注册服务自身的高可用性利用注册服务的主备模式实现,并确保注册信息在主备注册服务上的同步。AMS掌握主备注册服务的IP及端口信息,可以指导被管理应用自行向主机注册服务注册。

3.3 以IceStorm为基础的数据交换服务

IceStorm是ICE提供的一个高效的采用异步的订阅/发布方法的数据交换机制。在系统中,所有被管理对象都使用其提供的订阅/发布方法交换信息。为确保系统的健壮,同时启用三套该服务。ICE自身提供多套服务间的管理及协调机制,不需要开发额外的功能。

3.4 应用管理界面AMGUI

AMGUI是整个应用管理架构的唯一接口。用户可通过它实现对各分布式应用模块的人工启停,可以检查模块的实时运行状态,也可以对应用模块更改、下发配置。用户可以监视应用模块的主备状态,需要的时候,可以主动进行主备切换。

3.5 应用管理库AML

AML是一个管理功能的基类库,在当前系统中有C++及Java的实现。该应用管理库提供用于SCADA应用管理的ICE接口,比如对应用实现配置,完成各个应用的注册等。因此,一旦被管理的应用模块继承这些基类,这些应用模块就能无缝的纳入这里介绍的管理框架中去。

3.6 SCADA系统整体架构

图2表示了系统的整体架构。整个系统由服务模块及多个应用模块组成,这些应用模块包括SCADA系统中常见的前置机、应用服务器、数据服务器等。各个模块通过ICE平台有机的结合在一起,形成一个健壮、高可用性的系统。ICE平台的采用使得各个模块的部署非常灵活、方便,可以根据被管理系统的规模及要求,采用一机或多机部署方式,从而很好地解决系统的可扩展性问题。

图2 基于ICE的高可用性分布式管理SCADA架构

系统的健壮性及高可用性可以通过以下描述的机制来保证。

例如,若主机注册服务宕机,备机马上启用,包括AMS在内的所有被管理模块,都自行向备机注册服务重新注册,以保证整个系统的正常运行。

若主机AMS遭遇异常,备机AMS自动变为主机,以保证整个系统管理的延续性。

若其中一个IceStorm服务出错,因部署了多个该服务,数据交换进程将不受任何影响。

对各个被管理的SCADA应用模块,应用管理架构允许非常灵活的主备配置,用户可以根据系统需要,采用1+1,即一主一备配置,还可考虑M+N配置,也就是说可以采用M台主机由N台备机来保护的方法。当主机异常退出时,通过AMS的协调,迅速完成主备切换。

4 系统控制流程

系统高可用性的实现机制,可以通过UML事件顺序图[7]来进一步说明。

图3显示AMS/AMSGUI如何对被管理的应用节点分配主备角色,启动节点及监测它们运行状态的过程。用户对应用配置进行编辑后,对应用进行相应设置并发布应用配置。然后由应用服务器负责主备应用的启动。应用启动时,向应用管理服务咨询自己的角色,并按分配的角色依次启动,然后通过应用服务,将各自的角色及状态显示到用户界面上。

应用的主备切换如图4所示。注册主机首先检测到应用主机宕机事件后通知应用管理服务,应用管理服务找到备用机,将配置参数传递给备机并将备机切换为主机,然后改变应用角色的显示。

图3 主备应用启动过程

图4 应用主机宕机触发的主备切换

应用管理服务及注册服务的主备切换流程与应用主机类似。

作为数据通讯通道的IceStorm服务的高可用性处理是通过ICE自身支持的能开启多个进程的方式进行处理,不需要应用本身的干预。

5 测试结果及结论

基于高可用性的架构,实现了一个新一代的SCADA主站样机。样机分别由前置数据收集单元,数据服务器,应用服务器,应用管理服务器,辅以各类ICE自身服务组成。系统通过四对共八台主机部署,上述的各个应用模块(前置、数据、应用、应用管理)分别以主备的方式,部署到四对主机上。ICE自带的一些服务和应用管理服务器AMS部署在一起。

各个服务通过千兆交换机组成的LAN通讯。

系统采用模拟的数据采集终端,可以模拟70万个数据点。

测试表明,当样机系统面临70万数据点的大数据负载的情况下,所有主备服务均可在3秒钟内完成主备的切换,系统的数据流及应用界面不受影响。系统的高可用性可以得到保证。

结果表明,我们基于轻量级的面向对象的软件中间件ICE而搭建的SCADA主站架构,可以十分方便地实现对分部式应用的管理,有效地解决电力管理系统中普遍面临的高可用性、可扩展性、及海量实时数据交换及处理等问题。具有良好的实用价值及推广前景。

[1] ABB.The evolution of SCADA/EMS/GMS – Managing the world’s power networks[EB/OL].[2012 -06 -05].http://www.abb.com/cawp/db0003db002698/b372f131c1a54e5fc12572ec0005dcb4.aspx.

[2] Barnes K,Johnson B and Nickelson R.Review of Supervisory SCADA Systems[R],Idaho Falls:Idaho NEEL,Jan,2004.

[3] Henning M.The Rise and Fall of Corba[J],ACM QUEUE,2006,4(5):28-34.

[4] Ren R,Liu F,Lv L,Song B and Che Z.A DMS Based on Integrated Design of GIS System and SCADA System[C]//2006 CICED,2006:1-5.

[5]占震滨,陈枫,马国梁.基于 CORBA技术的EMS系统[J].浙江电力,2007,29(3):17-20.

[6] ZeroC.ICE Introduction [EB/OL].[2012].http://zeroc.com/overview.html.

[7] Fakhroutdinov K.UML Sequence Diagrams[EB/OL].[2012].http://www.uml- diagrams.org/sequence -

猜你喜欢

高可用性中间件架构
基于FPGA的RNN硬件加速架构
功能架构在电子电气架构开发中的应用和实践
基于云服务的图书馆IT架构
超长公路隧桥高可用性监控平台方案分析
RFID中间件技术及其应用研究
基于Android 平台的OSGi 架构中间件的研究与应用
WebGIS架构下的地理信息系统构建研究
校园一卡通服务端高可用性改造实施方案
OpenStack云计算平台高可用性的研究
一种虚拟化集群心跳算法