王哲民 張平 萬書鵬 易強(qiáng)
摘?要:隨著當(dāng)今網(wǎng)絡(luò)技術(shù)的飛速發(fā)展和電力自動(dòng)化業(yè)務(wù)場(chǎng)景的日益復(fù)雜化,智能電網(wǎng)對(duì)調(diào)度系統(tǒng)提出了更高的要求。服務(wù)配置中心作為服務(wù)化主要技術(shù)之一,負(fù)責(zé)提供統(tǒng)一的服務(wù)配置管理,不僅支持界面統(tǒng)一管理服務(wù)配置信息,而且支持客戶端實(shí)時(shí)獲取最新配置。服務(wù)配置中心同時(shí)配置推送功能,實(shí)現(xiàn)配置變更實(shí)時(shí)生效。通過實(shí)驗(yàn)說明,服務(wù)配置中心能夠滿足新一代調(diào)控系統(tǒng)的服務(wù)參數(shù)配置需要,保障服務(wù)配置的可靠獲取。
關(guān)鍵詞:服務(wù)配置中心;電力自動(dòng)化;配置推送;實(shí)時(shí)生效
文獻(xiàn)標(biāo)識(shí)碼:A
隨著當(dāng)今網(wǎng)絡(luò)技術(shù)的飛速發(fā)展和電力自動(dòng)化調(diào)度業(yè)務(wù)場(chǎng)景的日益復(fù)雜化,智能電網(wǎng)對(duì)調(diào)度系統(tǒng)提出了更高的要求[13]。面向服務(wù)的架構(gòu)(SOA,Service?Oriented?Architecture)已在電網(wǎng)調(diào)度自動(dòng)化系統(tǒng)中廣泛應(yīng)用,通過將功能封裝成服務(wù),實(shí)現(xiàn)業(yè)務(wù)功能的需求。在新一代電網(wǎng)調(diào)控技術(shù)支持系統(tǒng)中[4],各服務(wù)都有自己的配置參數(shù)需要維護(hù),這些配置參數(shù)是服務(wù)的重要組成部分,因此提供服務(wù)配置中心來統(tǒng)一管理各服務(wù)配置參數(shù)顯得很重要。
當(dāng)前各服務(wù)通過配置文件維護(hù)自己的配置參數(shù),配置參數(shù)變更時(shí),需要手動(dòng)修改配置文件,并重啟服務(wù)。每個(gè)服務(wù)可能同時(shí)部署在多個(gè)機(jī)器上,因此修改某個(gè)配置參數(shù)需要手動(dòng)修改多個(gè)機(jī)器上的配置文件,這樣操作煩瑣,并可能造成各機(jī)器上的配置文件不同步。因此需要提供一種服務(wù)配置方法,以更好地適用于新一代電網(wǎng)技術(shù)支持系統(tǒng)的服務(wù)配置查詢與管理。
1?服務(wù)配置中心架構(gòu)
服務(wù)配置中心用于統(tǒng)一管理各服務(wù)配置參數(shù),提供圖形界面和命令行界面統(tǒng)一管理和查詢配置,各服務(wù)通過查詢配置接口獲取該服務(wù)的配置信息,配置變更時(shí)服務(wù)能實(shí)時(shí)感知到配置變化,實(shí)現(xiàn)配置變更信息實(shí)時(shí)生效。
服務(wù)配置中心由服務(wù)配置管理界面、服務(wù)配置管理進(jìn)程、服務(wù)配置展示進(jìn)程、服務(wù)配置變更進(jìn)程、數(shù)據(jù)庫、高速緩存等構(gòu)成。服務(wù)配置管理界面用于維護(hù)服務(wù)配置信息,包括命令行界面和圖形界面兩種。服務(wù)配置展示進(jìn)程部署用于為圖形界面提供后臺(tái)接口,服務(wù)配置管理進(jìn)程部署用于處理服務(wù)配置信息,包括配置新增、修改、刪除等操作,服務(wù)配置變更進(jìn)程部署在各機(jī)器上,用于將服務(wù)配置信息寫入各機(jī)器共享內(nèi)存。數(shù)據(jù)庫用于存儲(chǔ)服務(wù)配置全量信息,高速緩存用于存儲(chǔ)服務(wù)配置變更信息,服務(wù)配置查詢客戶端從各機(jī)器共享內(nèi)存中實(shí)時(shí)查詢服務(wù)配置信息。各服務(wù)通過服務(wù)配置查詢客戶端查詢需要的配置信息。
服務(wù)配置中心提供統(tǒng)一的服務(wù)配置管理頁面。在配置管理界面上,用戶可以查詢和管理服務(wù)信息和服務(wù)配置信息。服務(wù)信息包括服務(wù)ID、服務(wù)名、版本號(hào)、場(chǎng)景、場(chǎng)景實(shí)例、子場(chǎng)景、子場(chǎng)景實(shí)例和廠商等。服務(wù)配置信息包括服務(wù)ID、配置項(xiàng)和配置值等。
服務(wù)配置中心以接口函數(shù)[5]的形式為應(yīng)用提供配置信息查詢、配置變更訂閱等信息交互機(jī)制。配置信息查詢接口包括根據(jù)服務(wù)ID查詢服務(wù)配置信息列表、根據(jù)服務(wù)ID和配置項(xiàng)查詢配置值、根據(jù)配置項(xiàng)和配置值查詢服務(wù)信息列表等。配置信息變更接口為根據(jù)服務(wù)ID和配置項(xiàng)列表訂閱服務(wù)配置變更信息,其中服務(wù)配置變更包括:服務(wù)ID和訂閱配置列表,訂閱配置列表中的每一個(gè)項(xiàng)包括配置項(xiàng)、配置值、標(biāo)識(shí),其中標(biāo)識(shí)包括配置值無變化、配置值有變化、配置值不存在三種。
2?服務(wù)配置中心技術(shù)實(shí)現(xiàn)
服務(wù)配置中心主要技術(shù)模塊包括配置存儲(chǔ)、配置管理、配置變更、配置查詢、網(wǎng)絡(luò)通信、界面展示等。下面就幾個(gè)主要的模塊進(jìn)行介紹。
2.1?配置存儲(chǔ)
服務(wù)配置信息統(tǒng)一保存在實(shí)時(shí)數(shù)據(jù)庫中。實(shí)時(shí)數(shù)據(jù)庫是面向電網(wǎng)實(shí)時(shí)監(jiān)控、電網(wǎng)分析等應(yīng)用的專用數(shù)據(jù)庫,其特點(diǎn)是實(shí)時(shí)性強(qiáng)、吞吐量大和可靠性高;現(xiàn)有的實(shí)時(shí)數(shù)據(jù)庫架構(gòu)多為集中式存儲(chǔ)架構(gòu)并采用雙機(jī)部署的方式,各數(shù)據(jù)節(jié)點(diǎn)都存儲(chǔ)全部的數(shù)據(jù),通過雙機(jī)主備的方式保證數(shù)據(jù)的可靠性;數(shù)據(jù)訪問一般由主機(jī)進(jìn)行處理,備機(jī)只在主機(jī)故障時(shí)對(duì)外提供訪問[67]。
2.2?配置管理
服務(wù)配置管理進(jìn)程接收界面發(fā)來的請(qǐng)求,并根據(jù)請(qǐng)求信息對(duì)實(shí)時(shí)數(shù)據(jù)庫進(jìn)行相應(yīng)的處理。
如果請(qǐng)求新增服務(wù),則先從數(shù)據(jù)庫表中查詢服務(wù)ID是否已存在,若存在則返回失敗,否則向數(shù)據(jù)庫表插入一條服務(wù)信息。如果請(qǐng)求修改服務(wù),則先從數(shù)據(jù)庫表中查詢服務(wù)ID是否已存在,若存在則修改數(shù)據(jù)庫表中的服務(wù)信息,否則返回失敗。如果請(qǐng)求刪除服務(wù),則先從數(shù)據(jù)庫表中查詢服務(wù)ID是否已存在,若存在則刪除數(shù)據(jù)庫表中的服務(wù)信息,否則返回失敗。如果請(qǐng)求新增服務(wù)配置,則先從數(shù)據(jù)庫表中查詢服務(wù)ID和配置項(xiàng)是否已存在,若存在則返回失敗,否則向數(shù)據(jù)庫表插入一條服務(wù)配置信息。如果請(qǐng)求修改服務(wù)配置,則先從數(shù)據(jù)庫表中查詢服務(wù)ID和配置項(xiàng)是否已存在,若存在則修改數(shù)據(jù)庫表中的服務(wù)配置信息,否則返回失敗。如果請(qǐng)求刪除服務(wù)配置,則先從數(shù)據(jù)庫表中查詢服務(wù)ID和配置項(xiàng)是否已存在,若存在則刪除數(shù)據(jù)庫表中的服務(wù)配置信息,否則返回失敗。
2.3?配置變更
為了實(shí)現(xiàn)配置變更實(shí)時(shí)生效,服務(wù)配置中心使用高速緩存對(duì)配置變更信息存儲(chǔ)。在新一代系統(tǒng)中的高速緩存[8]為對(duì)標(biāo)Redis的自研軟件,已在新一代調(diào)控系統(tǒng)中廣泛使用。
對(duì)于服務(wù)信息和服務(wù)配置的新增、修改、刪除請(qǐng)求,服務(wù)配置管理進(jìn)程除了操作數(shù)據(jù)庫外,還向高速緩存中寫入配置信息變更記錄。服務(wù)配置變更進(jìn)程啟動(dòng)時(shí),從數(shù)據(jù)庫表中讀取全量的服務(wù)信息和服務(wù)配置信息,并將信息寫入機(jī)器共享內(nèi)存。服務(wù)配置變更進(jìn)程實(shí)時(shí)讀取高速緩存,判斷服務(wù)信息和服務(wù)配置信息是否有變更,有變更則將讀取數(shù)據(jù)庫表,將最新的服務(wù)配置信息寫入共享內(nèi)存。
2.4?配置查詢
共享內(nèi)存[9]能夠保證訪問效率,并且支持并發(fā)操作,廣泛應(yīng)用于計(jì)算機(jī)和電力系統(tǒng)自動(dòng)化領(lǐng)域。為了提高配置查詢的性能,配置管理頁面和客戶端接口中的配置信息統(tǒng)一從各機(jī)器共享內(nèi)存中獲取。共享內(nèi)存中的信息則由各機(jī)器的服務(wù)配置變更進(jìn)程實(shí)時(shí)寫入。
服務(wù)配置查詢接口從共享內(nèi)存中查詢服務(wù)信息和服務(wù)配置信息,對(duì)外提供多種接口形式,包括:查詢服務(wù)信息列表、根據(jù)服務(wù)ID查詢服務(wù)信息、根據(jù)服務(wù)ID查詢服務(wù)配置列表、根據(jù)服務(wù)ID和配置項(xiàng)查詢配置值、根據(jù)配置項(xiàng)和配置值查詢服務(wù)信息列表等。
2.5?配置訂閱
為了使服務(wù)程序?qū)崟r(shí)獲取配置信息變更,我們提供了配置訂閱接口。服務(wù)配置變更訂閱接口通過實(shí)時(shí)查詢共享內(nèi)存中的服務(wù)配置信息來判斷服務(wù)配置是否變更,需填寫服務(wù)ID和配置項(xiàng)列表,并提供回調(diào)函數(shù)。對(duì)于使用了訂閱接口的服務(wù),該服務(wù)訂閱的配置信息如有變更,則會(huì)調(diào)用服務(wù)指定的回調(diào)函數(shù)。
圖1所示為服務(wù)ID為test_mng_srv_1的服務(wù),使用了配置訂閱接口,訂閱了兩個(gè)配置項(xiàng),分別為test_key和key。當(dāng)前配置項(xiàng)key的配置值發(fā)生了變更,而配置項(xiàng)test_key不存在,服務(wù)接收到配置訂閱信息。其中flag為“1”時(shí)表示配置項(xiàng)有變化,為“2”時(shí)表示配置項(xiàng)不存在,為“0”時(shí)表示配置項(xiàng)無變化。
2.6?網(wǎng)絡(luò)通信
服務(wù)配置中心使用服務(wù)總線[1011]進(jìn)行網(wǎng)絡(luò)通信。服務(wù)總線是整合應(yīng)用和服務(wù)的一個(gè)靈活的基礎(chǔ)架構(gòu),構(gòu)建面向服務(wù)(SOA)的系統(tǒng)結(jié)構(gòu),屏蔽服務(wù)實(shí)現(xiàn)、訪問的細(xì)節(jié)信息,實(shí)現(xiàn)服務(wù)定位和交互,滿足系統(tǒng)對(duì)可擴(kuò)展性、伸縮性的要求,消除不同應(yīng)用之間的技術(shù)差異,讓不同的服務(wù)協(xié)調(diào)運(yùn)作,實(shí)現(xiàn)不同服務(wù)之間的通信和整合。
圖2所示為服務(wù)總線交互流程示意圖。客戶端和服務(wù)端通過服務(wù)總線進(jìn)行信息交互,其流程包括:服務(wù)端發(fā)布服務(wù)信息,客戶端發(fā)送服務(wù)信息,服務(wù)端接收服務(wù)請(qǐng)求,服務(wù)端回送服務(wù)結(jié)果,客戶端接收服務(wù)結(jié)果。
在服務(wù)配置中心中,命令行界面與服務(wù)配置管理進(jìn)程、圖形界面與服務(wù)配置展示進(jìn)程、服務(wù)配置展示進(jìn)程與服務(wù)配置管理進(jìn)程之間均使用服務(wù)總線進(jìn)行通信。
2.7?界面展示
界面展示模塊提供了統(tǒng)一的服務(wù)配置管理界面。主要包括命令行界面和圖形界面兩種。
命令行界面操作簡潔,方便使用,用戶按照命令行提示信息,輸入相應(yīng)的內(nèi)容即可,是基于新一代調(diào)控系統(tǒng)的圖形瀏覽器、圖形編輯器進(jìn)行實(shí)現(xiàn)的。
在新一代調(diào)控系統(tǒng)中,基于Qt5實(shí)現(xiàn)了一種輕量化的人機(jī)交互體系架構(gòu),通過設(shè)計(jì)并實(shí)現(xiàn)人機(jī)服務(wù),將原有在前端實(shí)現(xiàn)的畫面顯示處理移植到后臺(tái)人機(jī)服務(wù),后者將處理過的畫面顯示數(shù)據(jù)發(fā)送給前端,前端的人機(jī)界面收到數(shù)據(jù)后,無需進(jìn)行其他邏輯處理直接進(jìn)行顯示,對(duì)客戶端資源要求低,前端邏輯簡單,并便于在移動(dòng)終端上部署;同時(shí)由于客戶端通常只與人機(jī)服務(wù)交互,流程簡單,對(duì)本地系統(tǒng)環(huán)境依賴程度較低[1213]。
界面左側(cè)表格中展示服務(wù)信息列表,選中其中的某一項(xiàng)服務(wù),右側(cè)會(huì)展示對(duì)應(yīng)的服務(wù)配置信息列表。在服務(wù)信息列表和服務(wù)配置信息列表的上方,可以點(diǎn)擊新增、刪除、修改、刷新按鈕,對(duì)服務(wù)信息或服務(wù)配置信息進(jìn)行相應(yīng)的操作。
3?實(shí)驗(yàn)驗(yàn)證
測(cè)試環(huán)境為2臺(tái)48核Intel(R)Xeon(R)CPU小型機(jī),頻率為2.00GHz,內(nèi)存為64GB。機(jī)器上部署服務(wù)配置中心后臺(tái)服務(wù)、動(dòng)態(tài)庫與圖形界面。
3.1?服務(wù)配置功能測(cè)試
通過服務(wù)配置中心界面測(cè)試服務(wù)配置功能,包括新增、修改、刪除、查詢功能。在圖形界面或命令行界面新增、修改、刪除配置后,界面能夠正確顯示服務(wù)配置信息。
3.2?服務(wù)配置查詢性能測(cè)試
通過測(cè)試程序測(cè)試服務(wù)配置查詢接口的性能。通過服務(wù)配置查詢接口查詢不同量級(jí)的配置信息,測(cè)試結(jié)果如下表所示:
3.3?服務(wù)配置可靠性測(cè)試
通過在服務(wù)配置中心新增、修改或刪除配置,同時(shí)客戶端測(cè)試程序查詢?cè)撆渲眯畔?,判斷配置值是否正確。
測(cè)試表明,在界面新增、修改或刪除配置后,客戶端測(cè)試程序能夠?qū)崟r(shí)查詢最新的服務(wù)配置信息,實(shí)現(xiàn)配置變更熱生效,客戶端感知配置變更的時(shí)間不超過1秒。
結(jié)語
服務(wù)配置中心用于統(tǒng)一管理各服務(wù)配置參數(shù),提供圖形界面和命令行界面統(tǒng)一管理和查詢配置,各服務(wù)通過查詢配置接口獲取該服務(wù)的配置信息,配置變更時(shí)服務(wù)能實(shí)時(shí)感知到配置變化,實(shí)現(xiàn)配置變更信息實(shí)時(shí)生效。
隨著網(wǎng)絡(luò)技術(shù)的發(fā)展,尤其是微服務(wù)架構(gòu)的普及和Service?Mesh概念的興起,我們可以在學(xué)習(xí)和了解其原理的基礎(chǔ)上分析其好處和優(yōu)勢(shì),借鑒其設(shè)計(jì)精華,不斷升華我們的服務(wù)配置中心產(chǎn)品[1415]。
參考文獻(xiàn):
[1]辛耀中,石俊杰,周京陽,等.智能電網(wǎng)調(diào)度控制系統(tǒng)現(xiàn)狀與技術(shù)展望[J].電力系統(tǒng)自動(dòng)化,2015,39(1):28.
[2]許洪強(qiáng),姚建國,南貴林,等.未來電網(wǎng)調(diào)度控制系統(tǒng)應(yīng)用功能的新特征[J].電力系統(tǒng)自動(dòng)化,2018,42(1):17.
[3]張濤,燕靜,徐照淼,等.云計(jì)算環(huán)境下SaaS服務(wù)可伸縮性評(píng)估方法研究[J].西北工業(yè)大學(xué)學(xué)報(bào),2014,32(6):9981000.
[4]國家電網(wǎng)有限公司.新一代調(diào)度控制系統(tǒng)總體設(shè)計(jì)[R].2018.
[5]電力系統(tǒng)簡單服務(wù)接口規(guī)范:GB/T336042017[S].北京:中國標(biāo)準(zhǔn)出版社,2017.
[6]彭暉,陶洪鑄,嚴(yán)亞勤,等.智能電網(wǎng)調(diào)度控制系統(tǒng)數(shù)據(jù)庫管理技術(shù)[J].電力系統(tǒng)與自動(dòng)化,2015,39(1):1925.
[7]翟明玉,王瑾,吳慶曦,等.電網(wǎng)調(diào)度廣域分布式實(shí)時(shí)數(shù)據(jù)庫系統(tǒng)體系架構(gòu)和關(guān)鍵技術(shù)[J].電力系統(tǒng)與自動(dòng)化,2013,37(2):6770.
[8]張鴻,徐攀,莊衛(wèi)金,等.電網(wǎng)調(diào)度控制系統(tǒng)分布式高速數(shù)據(jù)緩存集群關(guān)鍵技術(shù)[J].電力信息與通信技術(shù),2021,19(11):918.
[9]王瑾,彭暉,侯勇,等.基于共享內(nèi)存的能量管理系統(tǒng)實(shí)時(shí)庫非主鍵HASH索引[J].電力系統(tǒng)自動(dòng)化,2011,35(11):7276.
[10]翟明玉,雷寶龍,等.電網(wǎng)調(diào)度自動(dòng)化系統(tǒng)消息中間件的特性和關(guān)鍵技術(shù)[J].電力系統(tǒng)自動(dòng)化,2012,36(14):5659.
[11]梅崢,路軼,李西太,等.電網(wǎng)調(diào)控系統(tǒng)廣域服務(wù)訪問及管理方法[J].電力系統(tǒng)自動(dòng)化,2017,41(19):7481.
[12]黃昆,趙昆,楊立波,等.電網(wǎng)調(diào)控系統(tǒng)輕量化人機(jī)交互體系架構(gòu)及關(guān)鍵技術(shù)[J].電力系統(tǒng)自動(dòng)化,2019,43(7):159165.
[13]程億強(qiáng),吳曉娜,李匯群,等.智能電網(wǎng)調(diào)度控制系統(tǒng)圖形廣域維護(hù)與瀏覽技術(shù)[J].電力系統(tǒng)自動(dòng)化,2017,41(14):171175.
[14]許洪強(qiáng),姚建國,於益軍,等.支撐一體化大電網(wǎng)的調(diào)度控制系統(tǒng)架構(gòu)及關(guān)鍵技術(shù)[J].電力系統(tǒng)自動(dòng)化,2018.42(6):18.
[15]萬書鵬,蘇大威,等.支撐變電站自動(dòng)化系統(tǒng)廣域運(yùn)維的服務(wù)管理中心設(shè)計(jì)與實(shí)現(xiàn)[J].電力系統(tǒng)保護(hù)與控制,2018,46(22):149154.
基金項(xiàng)目:基于開放共享的通信總線關(guān)鍵技術(shù)研究與軟件研發(fā)(524608210222)
作者簡介:王哲民(1991—?),男,碩士研究生,工程師,研究方向?yàn)殡娏ο到y(tǒng)自動(dòng)化。