李新華 周艷妮 葉珂嘉

摘要??? 本文設計了一種跨安全分區數據交換的實現模式方案,綜合采用了總線內外消息交互機制,總線服務名稱注冊、同步、解析機制、總線服務穿透代理機制,成功地集成了跨區的兩條數據交互總線,實現了一條虛擬的一體化數據交換總線。本方案可廣泛應用于國、網、省、地市、縣各級電力軟件應用系統集成領域。
【關鍵詞】數據交換總線 信息交互 跨安全分區
電力系統中各軟件應用系統為克服各自系統信息孤島問題,方便信息的高效便利的互連互通,采用信息總線技術,滿足各獨立系統間信息交互的需求。但按電力系統安全規范要求,信息總線必須分別部署在生產區、管理區兩個安全分區中,之間用物理裝置隔離,就形成了兩條跨區的信息交互總線,各軟件應用系統之間不但存在同安全分區數據交換需求,也存在跨不同安全分區各系統數據交換需求。
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).