陳然
(云南電力調(diào)度控制中心,昆明 650011)
大規(guī)模電網(wǎng)運行數(shù)據(jù)實時同步技術(shù)研究
陳然
(云南電力調(diào)度控制中心,昆明 650011)
為提高大規(guī)模電網(wǎng)運行數(shù)據(jù)從電網(wǎng)運行監(jiān)控系統(tǒng)向電網(wǎng)運行管理系統(tǒng)同步的實時性和穩(wěn)定性,本文基于XML、E文件接口、WebService及FtpFS等技術(shù),提出并實現(xiàn)了一種新的大規(guī)模數(shù)據(jù)跨安全區(qū)、跨系統(tǒng)的實時同步方法。在取代傳統(tǒng)方法應(yīng)用后,同步的實時性和穩(wěn)定性得到大幅提升。
電網(wǎng)運行監(jiān)控系統(tǒng);電網(wǎng)運行管理系統(tǒng);實時同步
電網(wǎng)運行管理系統(tǒng)需要大量電網(wǎng)實時運行數(shù)據(jù)作為支撐,需要將電網(wǎng)運行監(jiān)控系統(tǒng) (OCS)的實時采集、計算數(shù)據(jù)以較短的周期跨安全區(qū)、跨系統(tǒng)同步到電網(wǎng)運行管理系統(tǒng)。隨著電網(wǎng)規(guī)模的不斷擴大,電網(wǎng)實時運行數(shù)據(jù)規(guī)模也呈現(xiàn)出爆炸式增長,目前已達到十萬至二十萬點規(guī)模。從傳統(tǒng)同步接口運行情況看,經(jīng)常出現(xiàn)實時性低、不穩(wěn)定、數(shù)據(jù)丟失等問題,嚴重影響了電網(wǎng)運行管理系統(tǒng)的功能應(yīng)用。本文通過探索研究,基于XML[1]、E文件[2]接口、WebService[3]及FtpFS文件系統(tǒng)技術(shù),提出并實現(xiàn)了一種新的大規(guī)模數(shù)據(jù)跨安全區(qū)、跨系統(tǒng)實時同步方法,解決了電網(wǎng)運行數(shù)據(jù)同步的實時性和穩(wěn)定性難題。
OMS的各功能模塊及子系統(tǒng)對OCS存在大量實時數(shù)據(jù)的同步需求。如圖1所示。按照當前電網(wǎng)規(guī)模,電網(wǎng)運行實時監(jiān)控數(shù)據(jù)單次同步需求量約在10萬數(shù)據(jù)點左右,未來五年內(nèi)可能達到15萬甚至20萬數(shù)據(jù)點,同步周期需求為1 min以內(nèi)。傳統(tǒng)的同步接口所能承受的同步量約為5千至1萬點,同步周期15 min,遠遠無法滿足當前需求。
OCS位于生產(chǎn)控制大區(qū) (安全Ⅰ區(qū)),OMS位于生產(chǎn)管理大區(qū) (安全Ⅲ區(qū)),兩系統(tǒng)由不同廠家開發(fā)。數(shù)據(jù)同步不僅需要跨域安全Ⅰ區(qū)與Ⅲ區(qū)之間的橫向隔離裝置,還需要建立跨系統(tǒng)的通用接口。
圖1 數(shù)據(jù)實時同步需求
2.1 OCS內(nèi)部Ⅰ/Ⅲ區(qū)跨安全區(qū)同步法
安全Ⅰ區(qū)與安全Ⅲ區(qū)之間部署的橫向隔離裝置為正向隔離裝置,即僅允許Ⅰ區(qū)向Ⅲ區(qū)發(fā)送數(shù)據(jù),而且數(shù)據(jù)傳輸被切分為了獨立的兩段,首先允許Ⅰ區(qū)程序與隔離裝置之間建立前段TCP連接,先將數(shù)據(jù)包發(fā)送至隔離裝置,經(jīng)隔離裝置內(nèi)部安全策略過濾之后,再由隔離裝置與Ⅲ區(qū)程序建立后段 TCP連接,將處理過的數(shù)據(jù)發(fā)送至Ⅲ區(qū)。
為解決跨區(qū)問題,在OCS內(nèi)部實現(xiàn)Ⅰ/Ⅲ區(qū)的同步:
1)OCS的前置程序在Ⅰ區(qū)采集廠站數(shù)據(jù),經(jīng)過處理、計算后,映射在內(nèi)存實時庫中,做為實時數(shù)據(jù)的源。
2)開發(fā)OCS內(nèi)部同步程序 (SYN),在Ⅰ區(qū)服務(wù)器上部署,該程序從Ⅰ區(qū)內(nèi)存實時庫中獲取實時數(shù)據(jù),與正向隔離裝置建立前段TCP連接,將實時數(shù)據(jù)發(fā)送至正向隔離裝置。
3)擴展OCS,在安全Ⅲ區(qū)部署同步服務(wù)器,建立與安全Ⅰ區(qū)同樣的內(nèi)存實時庫。同樣部署同步程序 (SYN),與正向隔離裝置建立后段TCP連接,接收經(jīng)過正向隔離裝置安全策略過濾之后的實時數(shù)據(jù),存入Ⅲ區(qū)內(nèi)存實時庫中,最終實現(xiàn)OCS內(nèi)部Ⅰ、Ⅲ區(qū)實時庫的同步,如下圖所示。
圖2 OCS安全Ⅰ區(qū)向安全Ⅲ區(qū)同步數(shù)據(jù)
2.2 OCSⅢ區(qū)向OMS同步數(shù)據(jù)方法
因為OMS模塊、子系統(tǒng)眾多,且開發(fā)廠商也不一致,OCSⅢ區(qū)實時庫如果分別向OMS各模塊和子系統(tǒng)同步數(shù)據(jù),不僅需要開發(fā)大量點對點接口,而且將出現(xiàn)大量數(shù)據(jù)重復(fù)同步的情況,降低了網(wǎng)絡(luò)有效利用率。本方案通過在OMS數(shù)據(jù)庫平臺統(tǒng)一建模存儲,由OCS向OMS數(shù)據(jù)庫平臺一次性完成同步數(shù)據(jù):
1)在OMS的數(shù)據(jù)庫中建模,用于統(tǒng)一存儲從OCS同步來的電網(wǎng)運行實時數(shù)據(jù)。
2)OCSⅢ區(qū)實時庫一次性向OMS數(shù)據(jù)庫平臺同步實時數(shù)據(jù),存入OMS數(shù)據(jù)庫中。
此為跨系統(tǒng)同步最關(guān)鍵的一個步驟,如果組織不同廠家開發(fā)數(shù)據(jù)庫傳輸專用接口將耗費大額開發(fā)費用,并且不具備通用性。本文基于XML和標準E文件接口原理,結(jié)合通用的FTP傳輸機制解決了該項難題,成功實現(xiàn)了十萬數(shù)據(jù)點規(guī)模,以30 s為周期的自動同步方法,同步流程如下圖所示:
圖3 OCSⅢ區(qū)實時庫向OMS數(shù)據(jù)庫平臺同步數(shù)據(jù)原理圖
首先在OCSⅢ區(qū)同步服務(wù)器上開發(fā)實時數(shù)據(jù)“分類導(dǎo)出程序” (EFileExportDaemon),將內(nèi)存實時庫中的大量數(shù)據(jù)點歸類,并定期 (30 s)按固定格式 (由雙方約定的XML規(guī)范)從實時庫中導(dǎo)出生成14個E格式的文本文件,然后將所有分類生成的E文件打包,通過FTP傳輸?shù)絆MS的FTP服務(wù)器。
最后在OMS開發(fā)E文件解析程序和入庫程序,按照雙方約定的XML規(guī)范解析接收到的E文件,從文件讀取實時數(shù)據(jù)寫入數(shù)據(jù)庫,完成兩大系統(tǒng)之間的數(shù)據(jù)實時同步。
2.3 OMS內(nèi)部按需獲取數(shù)據(jù)方法
當實時數(shù)據(jù)從OCS同步到OMS數(shù)據(jù)庫平臺后,需要解決的是OMS內(nèi)部各子模塊、子系統(tǒng)如何按需獲取數(shù)據(jù)的問題。由于各模塊和子系統(tǒng)各自所需數(shù)據(jù)量相對要小得多,實時性要求也不盡相同。因此,按照OMS內(nèi)部模塊、子系統(tǒng)與電網(wǎng)運行管理系統(tǒng)平臺耦合程度及實時性要求高低不同,設(shè)計了兩種數(shù)據(jù)獲取方式。
第一種,針對程序與運行管理系統(tǒng)平臺本身深度耦合,實時性要求高的模塊,直接開放數(shù)據(jù)庫訪問接口,由模塊自行調(diào)用獲取所需數(shù)據(jù)。
第二種,對于程序與運行管理系統(tǒng)平臺耦合程度較低,實時性要求不高的子系統(tǒng),直接開放數(shù)據(jù)庫訪問接口存在一定風(fēng)險,同時由于它們實時性要求不高,所需數(shù)據(jù)量不大,因此完全可以通過WebService接口方式獲取數(shù)據(jù)。
由于OCS安全Ⅲ區(qū)的 “分類導(dǎo)出程序”生成實時數(shù)據(jù)E文件周期為30 s,即生成下一個時刻的E文件之前,僅有30 s的時間調(diào)用FTP客戶端將本次生成的E文件包傳輸?shù)絆MS FTP服務(wù)端。一旦網(wǎng)絡(luò)出現(xiàn)擁塞或者FTP服務(wù)端出現(xiàn)響應(yīng)延時,F(xiàn)TP客戶端程序的返回時間超過30 s,將導(dǎo)致 “分類導(dǎo)出程序”錯過下一個30 s生成E文件的時間點,最終致使網(wǎng)絡(luò)異常時間內(nèi)的所有同步數(shù)據(jù)將丟失,如圖4所示。
圖4 E文件傳統(tǒng)同步流程圖及時間要求
該問題在本文同步方法應(yīng)用初期多次出現(xiàn),根本原因是 “分類導(dǎo)出程序”在調(diào)用Linux FTP客戶端程序執(zhí)行傳送任務(wù)時,F(xiàn)TP客戶端程序的執(zhí)行時間不可控。
為使 “分類導(dǎo)出程序”按時從內(nèi)存實時庫導(dǎo)出數(shù)據(jù),首先應(yīng)該考慮的就是把FTP客戶端程序(Linux系統(tǒng)自帶程序,無法干涉其內(nèi)部運行)這個不可控因素分離出去。 “分類導(dǎo)出程序”不再考慮E文件傳送的問題,僅負責(zé)按30 s時間周期生成E文件并完成打包。
E文件包的傳輸,使用Shell腳本以及FtpFS文件系統(tǒng)技術(shù)解決。FtpFS是一種支持將遠端FTP服務(wù)器映射為本地文件系統(tǒng)目錄的技術(shù)。最關(guān)鍵的是,映射之后可在本地通過標準文件系統(tǒng)API操控遠端FTP服務(wù)端,這使得使用Linux Shell腳本控制E文件傳輸成為可能。
首先在OCSⅢ區(qū)同步服務(wù)器上基于CurlFtpFS (FtpFS技術(shù)的Linux實現(xiàn))將OMS FTP服務(wù)端映射到本地文件系統(tǒng)目錄,例如 “Trans”目錄,對該目錄的所有文件操作等同于對OMS FTP服務(wù)端的所有文件操作。然后通過Linux Shell腳本程序,一方面負責(zé)監(jiān)控并維護CurlFtpFS保持在正常運行狀態(tài),一方面負責(zé)掃描 “分類導(dǎo)出程序”的輸出路徑,將其生成的E文件包加上時間戳并移動到“Trans”目錄中,CurlFtpFS在底層自動把 Trans目錄中的文件傳輸至FTP服務(wù)端,如圖5所示。
網(wǎng)絡(luò)故障僅會導(dǎo)致Trans目錄不可訪問,“分類導(dǎo)出程序”照常生成E文件保存在本地。網(wǎng)絡(luò)恢復(fù)后,Shell程序會將未成功傳輸文件重新移動到Trans目錄中完成傳輸。至此,將E文件的生成和FTP傳輸徹底獨立,解決了因網(wǎng)絡(luò)原因?qū)е翭TP延時影響E文件生成的問題。
圖5 基于FtpFS與Shell腳本的FTP同步方案
本文提出的大規(guī)模電網(wǎng)運行數(shù)據(jù)實時同步技術(shù),實現(xiàn)了以30 s為周期,單次10萬點數(shù)據(jù)規(guī)模的跨安全區(qū)、跨系統(tǒng)同步。相比傳統(tǒng)接口,周期縮短了30倍,數(shù)據(jù)量提升了20倍。同時,解決了因網(wǎng)絡(luò)擁塞導(dǎo)致的數(shù)據(jù)丟失問題。由于該數(shù)據(jù)實時同步方法是一種通用方法,其原理和技術(shù)均可以移植到不同的同步場景中,可在公司各部門、供電局全面推廣。
[1] 馮進,丁博,史殿習(xí),等.XML解析技術(shù)研究 [J].計算機工程與科學(xué),2009,31(2):120-124.
[2] 鄧大為,李可,陸俊.基于CIM/E文件的電網(wǎng)全景建模技術(shù)研究 [J].廣東電力,2013,26(11):49-53.
[3] 呂曦,王化文.Web Service的架構(gòu)與協(xié)議 [J].計算機應(yīng)用,2002,22(12):62-65.
Research on Real-time Synchronization Techniques of Large-scale Power Grid Operation Data
CHEN Ran
(Yunnan Electric Power Dispatch and Control Center,Kunming 650011,China)
In order to improve the instantaneity and stability of large-scale data transmission from Operation Control System to Operation Management System,in this paper,we put forward and realized a new large-scale data real-time synchronization method across different security areas and systems based on XML,E-File interface,WebService and FtpFS technologies.After we replaced the traditional method with the new one,instantaneity and stability of synchronization has been greatly improved.
operation control system;operation management system;real-time synchronization
TM76
B
1006-7345(2015)05-0024-03
2015-04-10
陳然 (1983),男,碩士,工程師,云南電力調(diào)度控制中心,從事調(diào)度自動化相關(guān)工作 (e-mail)crandy@foxmail.com。