陳然
(云南電力調(diào)度控制中心,昆明 650011)
大規(guī)模電網(wǎng)運(yùn)行數(shù)據(jù)實(shí)時(shí)同步技術(shù)研究
陳然
(云南電力調(diào)度控制中心,昆明 650011)
為提高大規(guī)模電網(wǎng)運(yùn)行數(shù)據(jù)從電網(wǎng)運(yùn)行監(jiān)控系統(tǒng)向電網(wǎng)運(yùn)行管理系統(tǒng)同步的實(shí)時(shí)性和穩(wěn)定性,本文基于XML、E文件接口、WebService及FtpFS等技術(shù),提出并實(shí)現(xiàn)了一種新的大規(guī)模數(shù)據(jù)跨安全區(qū)、跨系統(tǒng)的實(shí)時(shí)同步方法。在取代傳統(tǒng)方法應(yīng)用后,同步的實(shí)時(shí)性和穩(wěn)定性得到大幅提升。
電網(wǎng)運(yùn)行監(jiān)控系統(tǒng);電網(wǎng)運(yùn)行管理系統(tǒng);實(shí)時(shí)同步
電網(wǎng)運(yùn)行管理系統(tǒng)需要大量電網(wǎng)實(shí)時(shí)運(yùn)行數(shù)據(jù)作為支撐,需要將電網(wǎng)運(yùn)行監(jiān)控系統(tǒng) (OCS)的實(shí)時(shí)采集、計(jì)算數(shù)據(jù)以較短的周期跨安全區(qū)、跨系統(tǒng)同步到電網(wǎng)運(yùn)行管理系統(tǒng)。隨著電網(wǎng)規(guī)模的不斷擴(kuò)大,電網(wǎng)實(shí)時(shí)運(yùn)行數(shù)據(jù)規(guī)模也呈現(xiàn)出爆炸式增長(zhǎng),目前已達(dá)到十萬(wàn)至二十萬(wàn)點(diǎn)規(guī)模。從傳統(tǒng)同步接口運(yùn)行情況看,經(jīng)常出現(xiàn)實(shí)時(shí)性低、不穩(wěn)定、數(shù)據(jù)丟失等問(wèn)題,嚴(yán)重影響了電網(wǎng)運(yùn)行管理系統(tǒng)的功能應(yīng)用。本文通過(guò)探索研究,基于XML[1]、E文件[2]接口、WebService[3]及FtpFS文件系統(tǒng)技術(shù),提出并實(shí)現(xiàn)了一種新的大規(guī)模數(shù)據(jù)跨安全區(qū)、跨系統(tǒng)實(shí)時(shí)同步方法,解決了電網(wǎng)運(yùn)行數(shù)據(jù)同步的實(shí)時(shí)性和穩(wěn)定性難題。
OMS的各功能模塊及子系統(tǒng)對(duì)OCS存在大量實(shí)時(shí)數(shù)據(jù)的同步需求。如圖1所示。按照當(dāng)前電網(wǎng)規(guī)模,電網(wǎng)運(yùn)行實(shí)時(shí)監(jiān)控?cái)?shù)據(jù)單次同步需求量約在10萬(wàn)數(shù)據(jù)點(diǎn)左右,未來(lái)五年內(nèi)可能達(dá)到15萬(wàn)甚至20萬(wàn)數(shù)據(jù)點(diǎn),同步周期需求為1 min以內(nèi)。傳統(tǒng)的同步接口所能承受的同步量約為5千至1萬(wàn)點(diǎn),同步周期15 min,遠(yuǎn)遠(yuǎn)無(wú)法滿足當(dāng)前需求。
OCS位于生產(chǎn)控制大區(qū) (安全Ⅰ區(qū)),OMS位于生產(chǎn)管理大區(qū) (安全Ⅲ區(qū)),兩系統(tǒng)由不同廠家開(kāi)發(fā)。數(shù)據(jù)同步不僅需要跨域安全Ⅰ區(qū)與Ⅲ區(qū)之間的橫向隔離裝置,還需要建立跨系統(tǒng)的通用接口。
圖1 數(shù)據(jù)實(shí)時(shí)同步需求
2.1 OCS內(nèi)部Ⅰ/Ⅲ區(qū)跨安全區(qū)同步法
安全Ⅰ區(qū)與安全Ⅲ區(qū)之間部署的橫向隔離裝置為正向隔離裝置,即僅允許Ⅰ區(qū)向Ⅲ區(qū)發(fā)送數(shù)據(jù),而且數(shù)據(jù)傳輸被切分為了獨(dú)立的兩段,首先允許Ⅰ區(qū)程序與隔離裝置之間建立前段TCP連接,先將數(shù)據(jù)包發(fā)送至隔離裝置,經(jīng)隔離裝置內(nèi)部安全策略過(guò)濾之后,再由隔離裝置與Ⅲ區(qū)程序建立后段 TCP連接,將處理過(guò)的數(shù)據(jù)發(fā)送至Ⅲ區(qū)。
為解決跨區(qū)問(wèn)題,在OCS內(nèi)部實(shí)現(xiàn)Ⅰ/Ⅲ區(qū)的同步:
1)OCS的前置程序在Ⅰ區(qū)采集廠站數(shù)據(jù),經(jīng)過(guò)處理、計(jì)算后,映射在內(nèi)存實(shí)時(shí)庫(kù)中,做為實(shí)時(shí)數(shù)據(jù)的源。
2)開(kāi)發(fā)OCS內(nèi)部同步程序 (SYN),在Ⅰ區(qū)服務(wù)器上部署,該程序從Ⅰ區(qū)內(nèi)存實(shí)時(shí)庫(kù)中獲取實(shí)時(shí)數(shù)據(jù),與正向隔離裝置建立前段TCP連接,將實(shí)時(shí)數(shù)據(jù)發(fā)送至正向隔離裝置。
3)擴(kuò)展OCS,在安全Ⅲ區(qū)部署同步服務(wù)器,建立與安全Ⅰ區(qū)同樣的內(nèi)存實(shí)時(shí)庫(kù)。同樣部署同步程序 (SYN),與正向隔離裝置建立后段TCP連接,接收經(jīng)過(guò)正向隔離裝置安全策略過(guò)濾之后的實(shí)時(shí)數(shù)據(jù),存入Ⅲ區(qū)內(nèi)存實(shí)時(shí)庫(kù)中,最終實(shí)現(xiàn)OCS內(nèi)部Ⅰ、Ⅲ區(qū)實(shí)時(shí)庫(kù)的同步,如下圖所示。
圖2 OCS安全Ⅰ區(qū)向安全Ⅲ區(qū)同步數(shù)據(jù)
2.2 OCSⅢ區(qū)向OMS同步數(shù)據(jù)方法
因?yàn)镺MS模塊、子系統(tǒng)眾多,且開(kāi)發(fā)廠商也不一致,OCSⅢ區(qū)實(shí)時(shí)庫(kù)如果分別向OMS各模塊和子系統(tǒng)同步數(shù)據(jù),不僅需要開(kāi)發(fā)大量點(diǎn)對(duì)點(diǎn)接口,而且將出現(xiàn)大量數(shù)據(jù)重復(fù)同步的情況,降低了網(wǎng)絡(luò)有效利用率。本方案通過(guò)在OMS數(shù)據(jù)庫(kù)平臺(tái)統(tǒng)一建模存儲(chǔ),由OCS向OMS數(shù)據(jù)庫(kù)平臺(tái)一次性完成同步數(shù)據(jù):
1)在OMS的數(shù)據(jù)庫(kù)中建模,用于統(tǒng)一存儲(chǔ)從OCS同步來(lái)的電網(wǎng)運(yùn)行實(shí)時(shí)數(shù)據(jù)。
2)OCSⅢ區(qū)實(shí)時(shí)庫(kù)一次性向OMS數(shù)據(jù)庫(kù)平臺(tái)同步實(shí)時(shí)數(shù)據(jù),存入OMS數(shù)據(jù)庫(kù)中。
此為跨系統(tǒng)同步最關(guān)鍵的一個(gè)步驟,如果組織不同廠家開(kāi)發(fā)數(shù)據(jù)庫(kù)傳輸專用接口將耗費(fèi)大額開(kāi)發(fā)費(fèi)用,并且不具備通用性。本文基于XML和標(biāo)準(zhǔn)E文件接口原理,結(jié)合通用的FTP傳輸機(jī)制解決了該項(xiàng)難題,成功實(shí)現(xiàn)了十萬(wàn)數(shù)據(jù)點(diǎn)規(guī)模,以30 s為周期的自動(dòng)同步方法,同步流程如下圖所示:
圖3 OCSⅢ區(qū)實(shí)時(shí)庫(kù)向OMS數(shù)據(jù)庫(kù)平臺(tái)同步數(shù)據(jù)原理圖
首先在OCSⅢ區(qū)同步服務(wù)器上開(kāi)發(fā)實(shí)時(shí)數(shù)據(jù)“分類導(dǎo)出程序” (EFileExportDaemon),將內(nèi)存實(shí)時(shí)庫(kù)中的大量數(shù)據(jù)點(diǎn)歸類,并定期 (30 s)按固定格式 (由雙方約定的XML規(guī)范)從實(shí)時(shí)庫(kù)中導(dǎo)出生成14個(gè)E格式的文本文件,然后將所有分類生成的E文件打包,通過(guò)FTP傳輸?shù)絆MS的FTP服務(wù)器。
最后在OMS開(kāi)發(fā)E文件解析程序和入庫(kù)程序,按照雙方約定的XML規(guī)范解析接收到的E文件,從文件讀取實(shí)時(shí)數(shù)據(jù)寫入數(shù)據(jù)庫(kù),完成兩大系統(tǒng)之間的數(shù)據(jù)實(shí)時(shí)同步。
2.3 OMS內(nèi)部按需獲取數(shù)據(jù)方法
當(dāng)實(shí)時(shí)數(shù)據(jù)從OCS同步到OMS數(shù)據(jù)庫(kù)平臺(tái)后,需要解決的是OMS內(nèi)部各子模塊、子系統(tǒng)如何按需獲取數(shù)據(jù)的問(wèn)題。由于各模塊和子系統(tǒng)各自所需數(shù)據(jù)量相對(duì)要小得多,實(shí)時(shí)性要求也不盡相同。因此,按照OMS內(nèi)部模塊、子系統(tǒng)與電網(wǎng)運(yùn)行管理系統(tǒng)平臺(tái)耦合程度及實(shí)時(shí)性要求高低不同,設(shè)計(jì)了兩種數(shù)據(jù)獲取方式。
第一種,針對(duì)程序與運(yùn)行管理系統(tǒng)平臺(tái)本身深度耦合,實(shí)時(shí)性要求高的模塊,直接開(kāi)放數(shù)據(jù)庫(kù)訪問(wèn)接口,由模塊自行調(diào)用獲取所需數(shù)據(jù)。
第二種,對(duì)于程序與運(yùn)行管理系統(tǒng)平臺(tái)耦合程度較低,實(shí)時(shí)性要求不高的子系統(tǒng),直接開(kāi)放數(shù)據(jù)庫(kù)訪問(wèn)接口存在一定風(fēng)險(xiǎn),同時(shí)由于它們實(shí)時(shí)性要求不高,所需數(shù)據(jù)量不大,因此完全可以通過(guò)WebService接口方式獲取數(shù)據(jù)。
由于OCS安全Ⅲ區(qū)的 “分類導(dǎo)出程序”生成實(shí)時(shí)數(shù)據(jù)E文件周期為30 s,即生成下一個(gè)時(shí)刻的E文件之前,僅有30 s的時(shí)間調(diào)用FTP客戶端將本次生成的E文件包傳輸?shù)絆MS FTP服務(wù)端。一旦網(wǎng)絡(luò)出現(xiàn)擁塞或者FTP服務(wù)端出現(xiàn)響應(yīng)延時(shí),F(xiàn)TP客戶端程序的返回時(shí)間超過(guò)30 s,將導(dǎo)致 “分類導(dǎo)出程序”錯(cuò)過(guò)下一個(gè)30 s生成E文件的時(shí)間點(diǎn),最終致使網(wǎng)絡(luò)異常時(shí)間內(nèi)的所有同步數(shù)據(jù)將丟失,如圖4所示。
圖4 E文件傳統(tǒng)同步流程圖及時(shí)間要求
該問(wèn)題在本文同步方法應(yīng)用初期多次出現(xiàn),根本原因是 “分類導(dǎo)出程序”在調(diào)用Linux FTP客戶端程序執(zhí)行傳送任務(wù)時(shí),F(xiàn)TP客戶端程序的執(zhí)行時(shí)間不可控。
為使 “分類導(dǎo)出程序”按時(shí)從內(nèi)存實(shí)時(shí)庫(kù)導(dǎo)出數(shù)據(jù),首先應(yīng)該考慮的就是把FTP客戶端程序(Linux系統(tǒng)自帶程序,無(wú)法干涉其內(nèi)部運(yùn)行)這個(gè)不可控因素分離出去。 “分類導(dǎo)出程序”不再考慮E文件傳送的問(wèn)題,僅負(fù)責(zé)按30 s時(shí)間周期生成E文件并完成打包。
E文件包的傳輸,使用Shell腳本以及FtpFS文件系統(tǒng)技術(shù)解決。FtpFS是一種支持將遠(yuǎn)端FTP服務(wù)器映射為本地文件系統(tǒng)目錄的技術(shù)。最關(guān)鍵的是,映射之后可在本地通過(guò)標(biāo)準(zhǔn)文件系統(tǒng)API操控遠(yuǎn)端FTP服務(wù)端,這使得使用Linux Shell腳本控制E文件傳輸成為可能。
首先在OCSⅢ區(qū)同步服務(wù)器上基于CurlFtpFS (FtpFS技術(shù)的Linux實(shí)現(xiàn))將OMS FTP服務(wù)端映射到本地文件系統(tǒng)目錄,例如 “Trans”目錄,對(duì)該目錄的所有文件操作等同于對(duì)OMS FTP服務(wù)端的所有文件操作。然后通過(guò)Linux Shell腳本程序,一方面負(fù)責(zé)監(jiān)控并維護(hù)CurlFtpFS保持在正常運(yùn)行狀態(tài),一方面負(fù)責(zé)掃描 “分類導(dǎo)出程序”的輸出路徑,將其生成的E文件包加上時(shí)間戳并移動(dòng)到“Trans”目錄中,CurlFtpFS在底層自動(dòng)把 Trans目錄中的文件傳輸至FTP服務(wù)端,如圖5所示。
網(wǎng)絡(luò)故障僅會(huì)導(dǎo)致Trans目錄不可訪問(wèn),“分類導(dǎo)出程序”照常生成E文件保存在本地。網(wǎng)絡(luò)恢復(fù)后,Shell程序會(huì)將未成功傳輸文件重新移動(dòng)到Trans目錄中完成傳輸。至此,將E文件的生成和FTP傳輸徹底獨(dú)立,解決了因網(wǎng)絡(luò)原因?qū)е翭TP延時(shí)影響E文件生成的問(wèn)題。
圖5 基于FtpFS與Shell腳本的FTP同步方案
本文提出的大規(guī)模電網(wǎng)運(yùn)行數(shù)據(jù)實(shí)時(shí)同步技術(shù),實(shí)現(xiàn)了以30 s為周期,單次10萬(wàn)點(diǎn)數(shù)據(jù)規(guī)模的跨安全區(qū)、跨系統(tǒng)同步。相比傳統(tǒng)接口,周期縮短了30倍,數(shù)據(jù)量提升了20倍。同時(shí),解決了因網(wǎng)絡(luò)擁塞導(dǎo)致的數(shù)據(jù)丟失問(wèn)題。由于該數(shù)據(jù)實(shí)時(shí)同步方法是一種通用方法,其原理和技術(shù)均可以移植到不同的同步場(chǎng)景中,可在公司各部門、供電局全面推廣。
[1] 馮進(jìn),丁博,史殿習(xí),等.XML解析技術(shù)研究 [J].計(jì)算機(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].計(jì)算機(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)度自動(dòng)化相關(guān)工作 (e-mail)crandy@foxmail.com。