張華兵, 周英耀, 徐 磊, 石宏宇
(1. 北京大學(xué) 信息科學(xué)技術(shù)學(xué)院, 北京 100000; 2. 南方電網(wǎng) 數(shù)字電網(wǎng)研究院有限公司, 廣州 511365)
通常情況下,電力信息系統(tǒng)的架構(gòu)包括顯示層、應(yīng)用層以及數(shù)據(jù)庫3個層次,這些層次之間相對獨立,此種架構(gòu)主要依附于單獨部署單元,結(jié)構(gòu)并不復(fù)雜.但隨著大數(shù)據(jù)時代到來,此種架構(gòu)逐漸體現(xiàn)出數(shù)據(jù)采集不全面等弊端,導(dǎo)致無法對電力系統(tǒng)鏈路進行有效監(jiān)控,為廣大電力工作者帶來了嚴峻挑戰(zhàn).對電力信息系統(tǒng)進行監(jiān)控必須實時掌握電網(wǎng)運行狀態(tài),結(jié)合監(jiān)控信息判斷出可能發(fā)生的問題,進而實現(xiàn)對潛在問題的優(yōu)化.為實現(xiàn)全過程、多維度監(jiān)控,相關(guān)學(xué)者對該問題進行了相關(guān)研究.
郝成亮等[1]提出利用非線性特征分解算法對信息系統(tǒng)數(shù)據(jù)進行重組,通過自適應(yīng)頻譜檢測對數(shù)據(jù)做頻譜分析,再使用匹配濾波器對異常數(shù)據(jù)進行檢測,進而實現(xiàn)對電力信息系統(tǒng)的監(jiān)控.陳月卿等[2]基于多機多網(wǎng)并行校核原理,設(shè)計了自動閉環(huán)監(jiān)控方法,并引入頻譜校正技術(shù)對電力系統(tǒng)數(shù)據(jù)進行實時監(jiān)控.上述方法雖然具有一定的監(jiān)測性能,但對電力信息系統(tǒng)的全鏈路監(jiān)控實時性及準確性仍有待提高.
微服務(wù)架構(gòu)能夠?qū)I(yè)務(wù)功能作為邊界,對大型單體應(yīng)用進行拆分,將其變?yōu)楦髯元毩⒌囊唤M應(yīng)用.其最大優(yōu)勢就是小且獨立,所有微服務(wù)的邏輯結(jié)構(gòu)較為簡單,可做單獨調(diào)整與部署[3].本文正是利用微服務(wù)的此種優(yōu)勢,利用基于壓縮感知的電力數(shù)據(jù)采集方法,使監(jiān)測數(shù)據(jù)更加全面;再通過對微服務(wù)的部署與路由設(shè)置,實現(xiàn)電力信息系統(tǒng)的全鏈路監(jiān)控,更好地解決電力信息系統(tǒng)監(jiān)控不全面的問題.
對電力信息系統(tǒng)所有鏈路的信息進行全面采集,以提升監(jiān)控效果,為此,本文通過壓縮感知的方法采集數(shù)據(jù)[4].針對長度為N的一維信號,若其存在K個關(guān)鍵值,其余N-K個值不進行考慮,則認為此信號是稀疏的.傳統(tǒng)采樣方式不管信號是否具備稀疏特性,全部利用均勻采樣的方式,當(dāng)初始信號長度大、信息量少時,均勻采集會導(dǎo)致采樣數(shù)據(jù)量過大,浪費內(nèi)存空間,且在壓縮過程中有可能損失關(guān)鍵數(shù)據(jù),影響監(jiān)控精度.
壓縮感知采集方式能夠很好地解決上述問題,其主要是對信號的非自適應(yīng)線性投影進行采樣,不需要通過多個樣本完成,直接得到信號的壓縮表示,很好地解決了數(shù)據(jù)采集效率低等問題.針對某線性測量過程,構(gòu)建一個和稀疏表示基沒有任何關(guān)聯(lián)的觀測矩陣Φ∈CM×N,獲得信號x的壓縮表示,壓縮矢量表示為
y=Φx=ΦΨs=Θs
(1)
式中:s為系數(shù)矢量;Θ為高斯矩陣;Ψ為恢復(fù)矩陣.測量與恢復(fù)矩陣之間的乘積屬于一個M×N維矩陣,由此能夠看出式(1)是一個不依賴采樣模型的測量程序.
測量值y的維數(shù)特征為M=O(Klog2N),其中,O為運算復(fù)雜度[5].通過觀測值y對初始信號x重構(gòu)的表達式為
(2)
基于壓縮感知的數(shù)據(jù)采集過程首先需構(gòu)建測量矩陣[6],確保信號從x∈RN變換到y(tǒng)∈RM的降維過程中,關(guān)鍵信息不會破損;其次對信號x進行重構(gòu).
1.1.1 測量與感知矩陣構(gòu)建
測量矩陣的作用是從長度為M的測量矢量中完成長度為N的初始信號x的重構(gòu).由于M (3) 當(dāng)矢量v屬于某稀疏矩陣時,針對任意K稀疏的初始信號均存在一個矩陣Θ符合式(3). 建立一個Θ矩陣,使Θ=ΦΨ受到等距性制約,將Θ當(dāng)作測量矩陣,Ψ作為恢復(fù)矩陣[7].但等距性與不相關(guān)性均能通過一個隨機矩陣表現(xiàn).假設(shè)矩陣包含的元素φj,i具有獨立分布特征,滿足高斯概率函數(shù),且隨機變量等于零,方差表示為1/N.將測量矢量y看作M個信號x內(nèi)的元素組合,此時,測量矩陣會表現(xiàn)出如下兩個屬性: 屬性1矩陣Θ和變換基ψ=I之間不存在任何關(guān)系.M×N的高斯矩陣Θ=ΦI=Φ可體現(xiàn)出等距性約束,若c屬于較小常量,則M≥cKlog2(N/K),N維的K稀疏初始信號能在M次測量中完成重構(gòu). 屬性2矩陣Θ可以普遍適用,且Θ=ΦΨ是獨立分布的高斯矩陣. 結(jié)合上述屬性,Φ和Ψ之間不相關(guān)系數(shù)表達式為 (4) 1.1.2 信號重構(gòu) 將上述問題當(dāng)作逆問題思考,通過最小l2范數(shù)法確定轉(zhuǎn)換空間矢量,求解表達式為 (5) (6) 式(6)能快速恢復(fù)K稀疏信號,但會出現(xiàn)數(shù)值不穩(wěn)定問題,必須綜合分析隨機組合的所有可能. 綜合上述分析,0和2范數(shù)對于信號恢復(fù)均存在一定問題,因此綜合兩種方法,將利用l1范數(shù)實現(xiàn)信號重構(gòu),定義表達式為 (7) 利用式(7)能準確高效恢復(fù)K稀疏初始信號,同時僅通過M(M≥cKlog2(N/K))次測量即可完全恢復(fù)信號.其屬于一種凸優(yōu)化問題,又叫做凸松弛算法. 通過上述方法采集到的初始信號一定程度上避免了數(shù)據(jù)冗余,降低了數(shù)據(jù)維度,但信息系統(tǒng)自身導(dǎo)致的噪聲還需進一步處理.本文通過連續(xù)小波變換的方式對監(jiān)控信號進一步降噪[8]. 設(shè)η′(t)為基本采集函數(shù),η′a,b(t)為經(jīng)過小波變換后得到的函數(shù),此函數(shù)具有持續(xù)變化特征,因此信號f(t)的持續(xù)小波轉(zhuǎn)化可表示為 (8) 式中,a、b為Wf(a,b)中的持續(xù)變量.結(jié)合已知基礎(chǔ)小波η′(t),使用伸縮a與平移b生成函數(shù)η′a,b(t),可將其當(dāng)作連續(xù)小波基.將小波函數(shù)當(dāng)作是信號濾波器,所以小波變換也是信號與濾波器之間的卷積運算[9].連續(xù)小波和傅里葉變換較為相似,唯一不同的是小波變換存在兩個參數(shù),所以小波變化的實質(zhì)就是時間與尺度的變換[10]. 本文所搭建的微服務(wù)架構(gòu)如圖1所示,包括多種組件,各組件具體作用如下: 圖1 微服務(wù)架構(gòu)Fig.1 Micro-service architecture 1) 服務(wù)網(wǎng)關(guān).為相關(guān)應(yīng)用提供訪問入口. 2) 注冊中心.為相關(guān)監(jiān)控信息提供儲存平臺,利用服務(wù)注冊與發(fā)現(xiàn)兩個技術(shù),構(gòu)建微服務(wù)調(diào)用通道. 3) 服務(wù)監(jiān)控.主要負責(zé)微服務(wù)架構(gòu)的運行狀態(tài)監(jiān)控,確保微服務(wù)健康運轉(zhuǎn)[11]. 4) 配置中心.方便信息在多個環(huán)境下儲存,有助于將多鏈路信息同步更新在微服務(wù)中. 根據(jù)監(jiān)控目標,可將監(jiān)控類型分為交易監(jiān)控、安全監(jiān)控、狀態(tài)監(jiān)控等重點內(nèi)容.在微服務(wù)架構(gòu)下要想實現(xiàn)全鏈路監(jiān)控還需要交換設(shè)備、網(wǎng)絡(luò)與路由等設(shè)備的支持,并通過下述過程實現(xiàn)全鏈路監(jiān)控[12]. 1) 監(jiān)控部署.全鏈路監(jiān)控過程中,需部署的系統(tǒng)數(shù)量會增加,如果使用人工方式完成部署工作,容易出現(xiàn)遺漏.本文將Docker作為基礎(chǔ),通過微服務(wù)實現(xiàn)監(jiān)控自動部署[13].利用圖形化方式完成部署建模,描繪部署拓撲圖,并在該圖上配置內(nèi)存等基礎(chǔ)資源需求與軟件需求;通過相關(guān)工具對部署模型分析,將其變換成與其對應(yīng)的編排模式,使用Docker編排腳本建立Docker鏡像;建立Docker實例,組成實例集群,實現(xiàn)應(yīng)用啟動[14]. 2) 路由設(shè)置.微服務(wù)下的應(yīng)用架構(gòu)被劃分為微應(yīng)用、微服務(wù)以及數(shù)據(jù)庫3個模塊,任意一個模塊都會有復(fù)雜問題待解決.其中微應(yīng)用會生成許多訪問接口,需通過應(yīng)用路由解決該問題,在接收到用戶的請求信息后,再下發(fā)到對應(yīng)的微應(yīng)用[15].服務(wù)層的各類服務(wù)之間具有復(fù)雜的關(guān)系,如果不對其進行有效管理,會造成負載不均衡.為解決上述問題,在微服務(wù)架構(gòu)中設(shè)置如下3種路由: 1) 應(yīng)用路由.提供固定請求接口,確保多個監(jiān)控實例負載均衡. 2) 服務(wù)路由.通過分布式架構(gòu),完成微服務(wù)注冊與發(fā)現(xiàn),促進調(diào)用關(guān)系具有透明性質(zhì),減少服務(wù)節(jié)點. 3) 數(shù)據(jù)路由.為多個數(shù)據(jù)庫設(shè)定統(tǒng)一訪問方式,并提供數(shù)據(jù)分析等管理功能. 從橫向與縱向兩個維度實現(xiàn)全鏈路監(jiān)控,監(jiān)控示意圖如圖2所示.其中橫向是將用戶請求作為目標,縱向則是將整個鏈路在云環(huán)境中運行狀態(tài)作為目標. 圖2 全鏈路監(jiān)控示意圖Fig.2 Schematic diagram of full-link monitoring 為驗證本文提出的全鏈路監(jiān)控技術(shù)的有效性,設(shè)計了對比實驗.首先將本文技術(shù)應(yīng)用在電力信息系統(tǒng)的交易子系統(tǒng)中,由于交易子系統(tǒng)的業(yè)務(wù)數(shù)量飛速增加,監(jiān)控系統(tǒng)不能滿足實時性需求,因此利用微服務(wù)架構(gòu)下的監(jiān)控方法對其改進.改進前和改進后的監(jiān)控系統(tǒng)分別如圖3、4所示. 圖3 改進前的監(jiān)控系統(tǒng)Fig.3 Monitoring system before improvement 圖4 改進后的監(jiān)控系統(tǒng)Fig.4 Improved monitoring system 實驗在MATLAB仿真環(huán)境下進行,為證明改進前與改進后兩種監(jiān)控方式的性能,使用8臺服務(wù)器構(gòu)建實驗環(huán)境,其中3臺屬于微服務(wù)架構(gòu)獨立運行的設(shè)備.設(shè)置120條線程,對電力信息系統(tǒng)進行1 000次仿真攻擊,設(shè)置1~12個人工注入的異常數(shù)據(jù)包,測試電力信息系統(tǒng)全鏈路監(jiān)控的性能.算法參數(shù)設(shè)置如表1所示. 表1 算法參數(shù)設(shè)置Tab.1 Algorithm parameter settings 測試改進前與改進后兩種監(jiān)控方式的響應(yīng)對比結(jié)果如表2所示. 由表2可知,當(dāng)線程數(shù)量為30時,改進后的監(jiān)控算法并沒有顯現(xiàn)出優(yōu)勢;隨著線程數(shù)量的增加,改進后的監(jiān)控技術(shù)數(shù)據(jù)處理量逐漸高于改進前,且監(jiān)控響應(yīng)時間也得到改善,這是因為本文在微架構(gòu)下使用了壓縮感知數(shù)據(jù)采集方法,減少了信息系統(tǒng)中的冗余數(shù)據(jù),為全鏈路監(jiān)控創(chuàng)造有利條件.此外,在微架構(gòu)作用下監(jiān)測系統(tǒng)的CPU負載率得到有效控制,能夠看出微服務(wù)架構(gòu)可以更好地適應(yīng)數(shù)據(jù)量較大的監(jiān)控場景. 表2 不同監(jiān)控方法響應(yīng)結(jié)果對比Tab.2 Comparison of response results for different monitoring methods 分別利用本文方法、非線性特征分解以及自動閉環(huán)監(jiān)控方法對24 h內(nèi)電力信息系統(tǒng)的鏈路異常情況進行捕獲,通過人工方式隨機向鏈路中散布異常信息,3種方法的測試對比結(jié)果分別如圖5~7所示. 圖5 所提方法實驗結(jié)果Fig.5 Experimental results of as-proposed method 圖6 非線性特征分解方法實驗結(jié)果Fig.6 Experimental results of nonlinear eigendecomposition method 圖7 自動閉環(huán)監(jiān)控方法測試結(jié)果Fig.7 Test results of automatic closed-loop monitoring method 從3種方法的對比結(jié)果可以看出,本文監(jiān)控到的結(jié)果和人工注入的異常數(shù)據(jù)包數(shù)量完全一致,而其他兩種方法會出現(xiàn)誤檢現(xiàn)象.這表明微服務(wù)秉承著數(shù)據(jù)共享原則,電力信息系統(tǒng)的全鏈路信息會實現(xiàn)共享,從橫向與縱向不同方面進行全方位監(jiān)控. 分別利用本文方法、非線性特征分解以及自動閉環(huán)監(jiān)控方法對24 h內(nèi)電力信息系統(tǒng)中各線路電壓及電流數(shù)值進行監(jiān)控.其中,電壓額定值為380 V,電流額定值為100 A.對比線路額定的輸出電壓及電流,得到3種方法的電壓及電流數(shù)值監(jiān)控誤差如圖8所示. 圖8 電壓及電流數(shù)值監(jiān)控誤差Fig.8 Voltage and current value monitoring errors 分析圖8可知,采用非線性特征分解法監(jiān)控時,電力信息系統(tǒng)線路電壓值的誤差在10 V左右,電流誤差在15 A左右;采用自動閉環(huán)監(jiān)控方法監(jiān)控時,電力信息系統(tǒng)線路電壓值的誤差在15 V左右,電流誤差在20 A左右;而采用本文方法監(jiān)控時,電力信息系統(tǒng)線路電壓值的誤差在3 V左右,電流誤差在2 A左右.上述實驗結(jié)果表明,本文提出的基于微服務(wù)架構(gòu)的信息系統(tǒng)全鏈路監(jiān)控技術(shù)的監(jiān)控誤差最小,能夠準確監(jiān)控電力信息系統(tǒng)線路中的電流及電壓數(shù)據(jù). 結(jié)合電力企業(yè)信息系統(tǒng)鏈路監(jiān)控現(xiàn)狀,針對監(jiān)控不實時、不全面等問題,提出基于微服務(wù)架構(gòu)的信息系統(tǒng)全鏈路監(jiān)控技術(shù).通過對鏈路數(shù)據(jù)的全方位采集與處理,為有效監(jiān)控提供信息基礎(chǔ),再通過微服務(wù)架構(gòu)的合理布置,實現(xiàn)全鏈路監(jiān)控.實驗證明,該監(jiān)控方法具有強大的數(shù)據(jù)處理能力,能夠準確監(jiān)控電力信息系統(tǒng)線路中的電流及電壓數(shù)據(jù).同時能夠準確檢測出鏈路中的所有異常情況,為電網(wǎng)安全提供有力保障,使電力信息系統(tǒng)的監(jiān)控更加準確.但該技術(shù)不能實現(xiàn)日志監(jiān)控,在今后研究中應(yīng)對數(shù)據(jù)庫、應(yīng)用程序等進行日志集中顯示.1.2 基于小波變換的監(jiān)控信號預(yù)處理
2 電力信息系統(tǒng)全鏈路監(jiān)控實現(xiàn)
2.1 微服務(wù)架構(gòu)建立
2.2 微服務(wù)下全鏈路監(jiān)控實現(xiàn)
3 實驗分析
4 結(jié) 論