李新华 周艳妮 叶珂嘉
摘要 本文设计了一种跨安全分区数据交换的实现模式方案,综合采用了总线内外消息交互机制,总线服务名称注册、同步、解析机制、总线服务穿透代理机制,成功地集成了跨区的两条数据交互总线,实现了一条虚拟的一体化数据交换总线。本方案可广泛应用于国、网、省、地市、县各级电力软件应用系统集成领域。
【关键词】数据交换总线 信息交互 跨安全分区
电力系统中各软件应用系统为克服各自系统信息孤岛问题,方便信息的高效便利的互连互通,采用信息总线技术,满足各独立系统间信息交互的需求。但按电力系统安全规范要求,信息总线必须分别部署在生产区、管理区两个安全分区中,之间用物理装置隔离,就形成了两条跨区的信息交互总线,各软件应用系统之间不但存在同安全分区数据交换需求,也存在跨不同安全分区各系统数据交换需求。
1 方案概述
一种跨安全分区数据交换的实现模式,是以IEC61970和IEC61968的公共信息模型及接口规范为基础,建立开放的、具有良好可扩充性的数据访问平台,将电网资源数据进行一体化设计和统一建模,实现数据的统一表达和信息共享的信息交换总线,从而实现配电自动化系统、地理信息系统、调度自动化系统、生产管理系统、营销管理系统、用电信息采集系统等相互之间进行信息交换和集成。其特征在于:综合采用总线内外消息交互机制,总线服务名称注册、同步、解析机制、总线服务穿透代理机制等多种技术,集成了跨区的两条数据交互总线,实现了一条虚拟的一体化数据交换总线;总线提供两种数据交换方式:请求/应答、发布/订阅。总线和接入的服务必须提供统一的服务接口,具体定义如下:总线的统一服务接口int Message,接入服务的订阅接口int Publish Message,请求方服务的回复接口int Response Message,应答方服务的请求接口int Request Message。
对总线数据交换采用面向消息的设计,运用总线消息交互机制,不采用面向直接的连接,双方向都应用单向消息交换信息,从而形成虚拟的逻辑连接。
总线服务名称注册、同步、解析机制,使系统间交互信息时,不直接点对点交互,屏蔽了地址及位置信息,系统间交互信息都是直接面向虚拟的一体化总线,由总线自身的名称注册、同步、解析机制完成最终要访问的地址的确定。
设计穿透服务机制,使总线系统传递的信息通过物理隔离时,都由穿透服务机制负责屏蔽正向、反向隔离的不同传递要求,并将两个安全分区的总线虚拟为一条数据交换总线:总线服务上的消息在穿透隔离装置时,需要经过如下四种方式的代理:I区服务出口,I区服务入口,III区服务出口,III区服务入口,I区服务出口和III区的服务入口需要明确Socket端口,I区服务入口和III区服务出口需要明确文件存放路径,服务出口对总线提供统一封装的接口,当总线需要把消息路由到对侧安全区时,则调用服务出口的接口函数,由服务出口程序来根据所在安全区的情况,选择Socke(tI区)或文件(III区)的方式把消息提交给穿透程序,由服务入口程序根据所在安全区的情况,选择Socket(III区)或文件(I区)的方式来负责监听是否有消息过来,如果有,则把消息发送到同机的总线上,服务出口程序表现为一个动态库,由总线服务来调用;服务入口程序则表现为一个独立守护进程或者线程,来监视某一个端口或者某一目录。
2 具体实施方式
一种跨安全分区数据交换的实现模式同时要跨越两个安全区I和安全区III,彻底解决各隔离区的透明访问问题,使得所有的应用系统可以直接访问跨区的服务,使其他应用系统能够方便规范的使用集成在总线上的数据,综合采用了总线内外消息交互机制,总线服务名称注册、同步、解析机制、总线服务穿透代理机制,成功地集成了跨区的两条数据交互总线,实现了一条虚拟的一体化数据交换总线,实现各个系统之间的配合。各系统之间不能直接连接,需要连接到信息交换总线上与其它系统进行信息交换,保证信息交互的灵活性、可靠性、安全性。
2.1 总线内外消息交互机制
参见图1,信息交互总线上进行传输是针对接入到总线的Web Service服务来进行规范消息的,总线提供两种數据交换方式:请求/应答、发布/订阅,总线和接入的服务必须提供了统一的服务接口。
服务接口的应用方式如下:
2.1.1 请求/应答服务
(1)请求方构建一个请求消息。
(2)请求方把请求消息发送给的Message服务接口。
(3)解析消息体,通过合适的流程把请求消息request message送到对应服务端的应答服务Request Message。
(4)服务端接收到相应的消息。(5)应答方检查消息体,判断是否能够
处理相应的请求,如果完全不能处理,则返回一个错误的应答消息,并停止处理该请求消息。如果处理结果有部分错误,需要把错误内容包含在应答消息中。
(6)应答方完成响应的处理,产生应答消息的消息体。
(7)应答方把应答消息发送给统一的Messagee服务接口。
(8)解析消息体,通过合适的流程把应答消息response message送到请求方的接受服务Response Message。
(9)请求方处理应答消息,根据需要解析消息体。
(10)处理过程结束。
2.1.2 发布/订阅服务
(1)发布方构建一个事件消息。
(2)服务端把消息发送给的Message服务接口。
(3)解析消息体,分发事件消息event message给订阅端的接受服务PublishMessage。
(4)订阅方接收该消息,然后进行业务处理。
(5)支持定时或即时订阅。
2.1.3 消息规范
消息规范是总线系统的核心,它规范了消息的结构,以及消息各部分的具体元素,主要包括:
头(Header):消息头是消息结构的核心,主要就是根据消息头中的信息进行路由,因此,接入服务必须要按照规范正确生成消息头,否则消息可能不会被正确处理。所有的消息都需要的结构,所有的服务接口都要采用一个共同的结构。
请求(Request):可选项,用来定义请求消息。
应答(Reply):只对应答消息有效,表明服务端的处理结果是成功还是失败、并说明错误的细节。消息体(Payload):有时需要对消息头附加明确的表述,说明具体的内容。
2.2 总线服务名称注册、同步、解析机制
2.2.1 服务名称注册
任何系统向其他系统提供数据信息时,做为一个数据源,向总线申请注册一个唯一的名称,同时将自身的端口、地址等信息告之总线,总线设计了统一的注册接口,供各系统注册名称,提供各种数据信息服务。
2.2.2 服务名称同步
某安全分区的总线注册管理模块在收到各数据系统注册信息后,立即通过跨隔离代理机制向另一分区的总线注册管理模块同步注冊信息,形成一致的名称管理库。
2.2.3服务名称解析
任何系统要请求数据时,都通过公开的名称,向总线请求数据,由总线解析服务名称,决定同区或跨区路由、代理访问,转交最终的结果。
总线服务器提供Web管理界面。在Web管理界面中可以注册新的服务,总线注册管理模块负责管理名称的同步。代理、路由模块负责名称的解析。
2.3 穿透服务代理
总线服务上的消息在穿透隔离装置,需要经过如下四种方式的代理:
I区服务出口,I区服务入口,III区服务出口,III区服务入口。I区服务出口和III区的服务入口需要明确Socket端口。
I区服务入口和III区服务出口需要明确文件存放路径。
服务出口对总线提供统一封装的接口,当总线需要把消息路由到对侧安全区时,则调用服务出口的接口函数,由服务出口程序来根据所在安全区的情况,选择Socket(I区)或文件(III区)的方式把消息提交给穿透程序。
由服务入口程序根据所在安全区的情况,选择Socket(III区)或文件(I区)的方式来负责监听是否有消息过来,如果有,则把消息发送到同机的总线上。
因此,服务出口程序表现为一个动态库,由总线服务来调用。服务入口程序则表现为一个独立守护进程(或者线程),来监视某一个端口或者某一目录。
3 结论
本方案综合采用了总线内外消息交互机制,总线服务名称注册、同步、解析机制、总线服务穿透代理机制,成功地集成了跨区的两条数据交互总线,实现了一条虚拟的一体化数据交换总线。采用这种跨隔离一体化的软件机制,使部署于不同安全分区的电力系统各软件应用系统,能屏蔽物理装置的隔离,在虚拟的一体化总线上高效、便利地交换信息数据,同时又符合电力系统关于跨区安全规范要求。
本方案可广泛应用于国、网、省、地市、县各级电力软件应用系统集成领域。也可应用于电力系统外同样有隔离要求和数据交换需求的软件集成领域。
参考文献
[1]陆汇文.数字化配电网信息交互体系的研究[D].中国电力科学研究院,2008(05).
[2]吕广宪,赵江河,刘海涛.基于IEC61968标准的信息交换总线主动与协同控制技术[J].电力系统自动化,2013,37(13).