苗 璐,楊 誠,龍 霏,蔡文婷
(1.廣東電網有限責任公司電力調度控制中心,廣州 510600;2.南方電網數(shù)字電網研究院有限公司,廣州 510600)
云平臺的服務架構能夠對系統(tǒng)進行良好的服務,并幫助各類系統(tǒng)正常、穩(wěn)定運行,提升服務質量。隨著網絡信息的快速變化,服務架構由傳統(tǒng)的單體式架構發(fā)展成面向服務架構,但兩者均體量大、業(yè)務模糊,開發(fā)和日常維護具有一定的難度,不能滿足云平臺外服務的多樣性和復雜性需求,微服務架構能夠很好的解決以上出現(xiàn)的問題,微服務架構把系統(tǒng)的每個服務方式進行分解,使每個服務方法互相獨立并組成同一個模塊,分別進行開發(fā)、部署和檢測,每一個微服務均可解決系統(tǒng)的一種業(yè)務功能問題,并且與傳統(tǒng)服務架構的體量、業(yè)務相比,微服務架構的體量更小,業(yè)務更明確,日常維護和開發(fā)更簡單,縮短了系統(tǒng)的開發(fā)部署流程,統(tǒng)一提供服務的各種配置[1]。
目前,利用微服務對服務架構進行調整的方法很多,有的利用微服務架構的理念對服務架構進行改造,有的從服務架構構成方式、服務開發(fā)、服務數(shù)據存儲等方面對微服務架構進行修改。但利用微服務架構對自動化工程進行研究的方案沒有被提出,也沒有相關的工程研究,基于以上問題,本文基于自動化工程BIM+GIS云平臺對微服務架構進行研究,設計自動化工程BIM+GIS云平臺的微服務架構結構,分析其相關特性,并詳細介紹微服務架構流程,通過實驗驗證微服務架構服務的效果。
在自動化工程BIM+GIS云平臺的微服務架構中,每種微服務可向系統(tǒng)提供一個服務端,添加微服務節(jié)點為系統(tǒng)的架構節(jié)點,微服務節(jié)點是架構結構中所有微服務進入平臺的入口,能夠很好的發(fā)揮負載均衡和服務數(shù)據緩存功能,微服務節(jié)點可以通過水平擴容滿足平臺終端用戶提出的服務需求,為了擁有更多的流量,微服務節(jié)點可以在架構結構中部署大量的節(jié)點[2]。
除此之外,微服務節(jié)點利用系統(tǒng)中的插件,擴展終端用戶授權和身份認證監(jiān)控功能,微服務節(jié)點還可向自動化工程中提供服務管理接口,能夠采集與管理微服務架構中的原始數(shù)據信息,原始數(shù)據信息包括微服務種類、節(jié)點集群、微服務接口、用戶注冊信息等。
通過微服務節(jié)點,可以實現(xiàn)微服務的負載均衡和緩存功能,如圖1所示為微服務節(jié)點的主要功能模塊。
圖1 自動化工程BIM+GIS云平臺的微服務架構結構
根據圖1可知,自動化工程BIM+GIS云平臺的微服務架構結構中的微服務控制接口在進行設計時,要充分利用微服務節(jié)點的授權、控制特點,發(fā)揮微服務節(jié)點的靈活性和復雜性,采用REST風格設計微服務控制接口。微服務控制接口首先需要將微服務管理資源進行系統(tǒng)分類,分成配置微服務節(jié)點狀態(tài)資源和微服務接口數(shù)據資源,具體資源數(shù)據如表1所示。
表1 具體資源數(shù)據
表1中詳細介紹了微服務控制接口對應的數(shù)據集資源,將這些數(shù)據集資源通過資源路徑存儲在微服務平臺中,配置微服務接口的授權信息,針對微服務接口的服務請求,通過微服務節(jié)點進行傳遞,微服務節(jié)點接收請求并及時響應,利用云平臺的字符串管理微服務接口的格式,由于微服務接口的信息結構體不同,所以在定義其響應代碼時,需要用進程內的內存堆棧進行捕獲,以實現(xiàn)微服務接口的響應,微服務接口如圖2所示。
圖2 微服務架構接口
自動化工程BIM+GIS云平臺的微服務架構結構中,除了微服務節(jié)點和微服務控制接口外,還包括電力云服務平臺和GIS云平臺,本文設計的自動化工程BIM+GIS云平臺微服務架構工作原理如圖3所示。
圖3 電力云服務平臺工作原理
根據圖3可知,設計人員對微服務架構的平臺應用設計完畢后,通過微服務接口的負載均衡和控制功能驗證平臺應用,并對電力云服務平臺進行注冊、登錄。電力云服務平臺的核心是微服務注冊中心,微服務注冊中心可以對微服務架構的內部進行綜合評估,根據評估結果向各大系統(tǒng)提供訪問、查詢、緩存等服務,電力云服務平臺通過微服務節(jié)點中的數(shù)據集資源,控制微服務架構中原始服務記錄向外輸出,由監(jiān)控服務中心對注冊服務中心進行動態(tài)監(jiān)管,注冊服務中心將用戶發(fā)送的負載請求通過分發(fā)路徑向服務網關進行傳遞,服務網關是電力云平臺傳輸微服務數(shù)據的出口,能夠保證微服務架構內部服務信息的安全性和可靠性,為電力云平臺提供數(shù)據緩存和安全防護等服務[3,4]。微服務架構示意圖如下圖4所示。
圖4 微服務架構示意圖
GIS云平臺主要包括GIS微服務應用平臺、GIS微服務數(shù)據庫、GIS微服務組件庫。GIS微服務應用平臺可以管理微服務資源數(shù)據,輔助用戶快速開發(fā)多維服務,GIS微服務數(shù)據庫包含各類空間位置數(shù)據和微服務拓撲數(shù)據,可以控制多源異構微服務數(shù)據,GIS微服務組件庫可以瀏覽微服務組件目錄,獲取微服務類型,對微服務控制接口進行添加、修改管理。
BIM是一種工程信息模型,通過模擬數(shù)字信息集成各種相關數(shù)據,將BIM技術應用于自動化工程BIM+GIS云平臺的微服務架構中,可以實現(xiàn)微服務架構的智能化維護,BIM技術可將微服務架構的設計效果通過服務網關進行檢驗,使微服務架構具有復雜性和靈活性,方便終端用戶發(fā)送服務請求,BIM技術還可以管理微服務的數(shù)據集資源分配。GIS(地理信息系統(tǒng))是基于計算機的工具,在自動化工程BIM+GIS云平臺的微服務架構中使用GIS技術,能夠對微服務架構中的空間和平面進行表達,還可以查詢微服務架構中的空間向量大小,分析和統(tǒng)計微服務種類和服務標準,除此之外,GIS技術能夠管理微服務數(shù)據庫,方便微服務數(shù)據的采集和存儲,GIS技術還可提供全面的微服務分析功能,智能化的GIS技術具有較高的專業(yè)性和集成性,利用該技術可以對微服務的服務項目進行管理,評價服務的效果。
鑒于云平臺中微服務信息的復雜性,在自動化工程BIM+GIS云平臺的微服務構建時需要考慮數(shù)字信息的復雜程度,把微服務架構中相鄰區(qū)域的數(shù)據信息傳輸?shù)酵豢臻g內,發(fā)送數(shù)據集請求至平臺服務器中。按照松散劃分準則對分配至微服務架構中的請求進行服務劃分,如果同一服務空間的數(shù)據請求量巨大,則需要把這些大量的數(shù)據請求分配到微服務節(jié)點上,否則會出現(xiàn)節(jié)點過載的情況,負載均衡的功能不能有效完成。所以,自動化工程BIM+GIS云平臺的微服務構建算法應采用負載均衡算法,微服務的服務端推送功能能夠查詢微服務數(shù)據調用次數(shù),不同微服務區(qū)域具有不同的空間熱度,微服務數(shù)據集群中的實例容量大則表示用戶緩存的服務數(shù)據較多,自動化工程BIM+GIS云平臺的微服務構建流程如圖5所示。
圖5 自動化工程BIM+GIS云平臺的微服務構建流程
1)定義自動化工程微服務數(shù)據的空間區(qū)間為a,負載均衡的微服務節(jié)點個數(shù)為m,在微服務數(shù)據資源庫中選擇某一服務時刻的用戶訪問數(shù)據,通過用戶發(fā)送數(shù)據請求的時間和次數(shù)構建空間資源數(shù)據集E[0,b]。
2)定義微服務架構的標準熱度ya=[b/m/2],也就是用戶訪問微服務架構的總次數(shù)除以2倍的負載均衡微服務節(jié)點個數(shù)。
3)對自動化工程BIM+GIS云平臺的微服務數(shù)據空間區(qū)間a內的數(shù)據集進行劃分,劃分的結果可得到2個字節(jié)的空間區(qū)間,通過微服務數(shù)據記錄判斷字節(jié)所屬的接口范圍,從而按照計算公式計算2個字節(jié)的空間熱度。假設2個字節(jié)的空間熱度為y0,y1,存在等式y(tǒng)0+y1=b。
4)如果yi>ya,即微服務節(jié)點的空間熱度低于標準熱度,需要對微服務子節(jié)點進行劃分,計算2個節(jié)點的空間熱度值。
5)執(zhí)行步驟2),當微服務節(jié)點的熱度高于標準熱度,yi<ya,對節(jié)點可以不進行劃分,那么得到的微服務節(jié)點熱度將高于標準熱度。
6)通過采用負載均衡算法,得到子節(jié)點的空間熱度序列,按照先序遍歷算法對微服務節(jié)點進行編號,由步驟1)所得的負載均衡值構建自動化工程BIM+GIS云平臺的微服務。
為了驗證本文提出的自動化工程BIM+GIS云平臺的微服務架構的穩(wěn)定性和可行性,本文采用了負載均衡算法和先序遍歷算法,將傳統(tǒng)的微服務架構與采用負載均衡算法重構后的微服務架構進行對比,證明了本文提出的自動化工程BIM+GIS云平臺的微服務架構具有更高的穩(wěn)定性和可行性。
微服務架構中的不同服務數(shù)據使用的服務器種類不同,服務數(shù)據的采集、處理和存儲通過微服務節(jié)點的緩存功能來完成,這樣可以提高服務的靈活性和穩(wěn)定性,能夠充分滿足不同用戶發(fā)送的服務請求,而傳統(tǒng)微服務架構創(chuàng)造的實驗環(huán)境中,微服務架構中的不同服務數(shù)據對應同一個服務器,且微服務架構中沒有設置服務數(shù)據緩存區(qū)域,導致微服務架構中的大量服務數(shù)據丟失,降低了服務數(shù)據的完整性,服務數(shù)據的準確度不能得到保障。需求響應實驗結果如圖6所示。
圖6 需求時間響應實驗結果
微服務架構工作過程損耗實驗結果如圖7所示。
圖7 微服務架構工作過程損耗實驗結果
由實驗結果可知,微服務架構中含有多種不同的服務項目,傳統(tǒng)的微服務架構通常包含直接訪問服務和代理服務,不同的服務種類對應不同的服務地址,使服務的授權和監(jiān)控功能無法得到擴展,微服務節(jié)點接口是整個微服務架構的唯一入口,無法高效支撐服務終端所有微服務的緩存、授權、監(jiān)控、負載均衡等基本功能。除此之外,傳統(tǒng)的微服務架構內,沒有設計微服務的登錄、注冊等控制接口,不能應對復雜性較高的微服務,微服務組織不能有效形成。
而本文提出的自動化工程BIM+GIS云平臺的微服務架構,通過負載均衡服務簡化了服務的流程,并能夠對微服務架構中的單一功能進行獨立的開發(fā),實現(xiàn)微服務架構的分布管理和單獨部署,微服務架構中的數(shù)據檢索服務、數(shù)據存儲服務、數(shù)據采集服務等服務的復雜性、多樣性、可靠性以及連續(xù)性較高,客戶端的服務請求量與每種微服務的細粒度高度匹配,面對客戶多次發(fā)送的服務請求,能夠有效降低客戶端代碼的復雜程度,使編碼更加簡單,很大程度上能夠提高微服務架構的應用效果,采用的消息協(xié)議可以較為容易的通過適配器的約束,在微服務架構內可以高效利用瀏覽器。直接訪問不使用服務器,可以直接測出微服務架構的服務效果,在同樣條件下,增加了微服務接口的數(shù)量,使微服務架構在訪問時不產生性能損耗。
本文提出的微服務架構通過采用BIM和GIS技術后被拆分成多種微服務,使客戶端和微服務互相獨立,提高了微服務的靈活度,重構微服務架構更加簡單,有效提高了微服務架構的伸縮性和可靠性,可根據用戶的不同需求對微服務架構進行獨立設計開發(fā),對于海量的服務數(shù)據和復雜度高的服務信息內容通過負載均衡功能,可實現(xiàn)高效存儲、分級處理以及分布管理,對微服務架構的日常維護也更加方便,每種微服務都設計了相應的存儲功能,所以服務設計更加合理,也會提供更高的服務性能。