王錦志,錢 奇,張才俊,楊 維,耿愛國
(1.國家電網有限公司客戶服務中心,天津 300300;2.南瑞集團有限公司(國網電力科學研究院有限公司,江蘇 南京 211106;3.北京科東電力控制系統有限責任公司,北京 100192)
隨著“網上國網”建設的不斷深入,目前初步建成以八中心為主體的業務中臺及數據中臺[1],具備了對外開放的能力,內外部渠道對網上國網數據資源及服務能力對接需求日益迫切。但當前開放平臺系統仍存在運行低下,數據共享能力差、生態開發程度低的問題[2]。
針對上述存在的問題,文獻[3]結合電網自動化系統的運行情況,提出將電網調度自動化和服務平臺一體化,使多套系統數據統一,解決了信息不通暢、共享數據不及時的問題。但沒有對監控信息進行合理分類分層,重要信息無法快速挖掘。文獻[4]提出基于SMPC技術的數據共享系統,設計一個數據共享協議,實現源數據不出庫的情況下完成數據共享。但系統將數據明文共享到一個中心節點上,源數據直接暴露在平臺中。本研究基于“SG-UAP3.0”平臺建立網上國網開放平臺,按照信息內、外網部署方式進行模塊構建,采取OAuth2.0的協議進行身份鑒權,具有防偽造和防重放功能,防止對服務的非法訪問。
本研究網上國網開放平臺依據項目總體目標,將信息內網和信息外網按照模塊化進行部署。信息外網為互聯網區域用戶提供統一門戶、接入服務和支撐服務,并部署能力開放服務、管理平臺、開發者網站、能力接入、測試技術支持服務等應用功能[5]。在信息內網部署能力開放服務、開放平臺能力接入、測試技術支持服務等應用功能,為信息內網行業內單位提供接入服務及支撐服務。開放平臺基于“SG-UAP3.0”進行開發,根據內外網隔離的原則,進行系統架構設計[6]。網上國網開放平臺系統架構如圖1所示。

圖1 網上國網開放平臺架構Fig.1 Online State Grid Open Platform Architecture
本研究網上國網開放平臺系統由基礎資源層、數據存儲層、內網服務層、外網服務層、隔離交互層和展示層構成。基礎資源層采用統一的云平臺為信息內網和信息外網提供基礎服務,主要提供計算資源、存儲資源和網絡資源等[7]。數據存儲層為信息內網和信息外網提供結構化數據、非結構化數據、緩存數據的存儲及服務,可以按需供應服務及橫向擴展。隔離交互層使用邏輯硬隔離設備將信息內網和信息外網隔離起來,內、外網服務層主要包括內外網穿透服務、能力開放服務、能力接入服務、測試技術支持服務、共享服務中心等。展示層主要運用Html、JS、CSS、HTML5、SDK等技術,通過WEB和APP兩種方式進行數據展示[8]。
信息外網中開發者網站主要面向省市公司、產業單位、渠道合作伙伴以及社會企事業單位或個人開發者,為其開放國網服務能力。網上國網開放平臺實現行業內外部系統間的業務協同、信息交互和數據融合共享。信息內、外網集成架構如圖2所示。
信息內網與用戶中心,工單中心,賬單中心,ISC、BPM及網上國網運管平臺集成,在信息外網與共享服務中心、網上國網 App、95598智能互動網站、95598智能終端、營業廳移動終端、第三方系統、ISC、BPM及網上國網運營平臺等集成[9]。能力開放作為上層和下層的能力管控中心,對各平臺進行整合統一,規范各系統接口提供統一服務和運營。

圖2 信息內、外網集成架構Fig.2 Information internal and external network integration architecture
能力開放服務基于驗證與授權協議對服務發布與服務共享進行開放時間、使用期限、權限范圍、應用類型及登陸令牌等多維度的管控,并通過其管控能力實現對服務發布與共享的多重校驗與授權,最大限度保證服務發布與共享的可靠性、安全性,全面提升服務質量。
綜上所述,本研究的創新點在于:①開放平臺采用應用管理機制,完成用戶的應用身份認證和功能驗證,采用REST接口實現Web服務,可根據不同的應用場景選擇不同的鑒權服務,加入鑒權信息同步模塊和安全認證功能,保證了鑒權系統的用戶信息同步和網絡傳輸過程中的信息安全。②數據共享平臺采用基于Web的云服務,為開放平臺用戶提供數據交換、數據集成和資源共享等功能。WebService Server對數據庫和文件等數據資源提供操作服務,調用提供的WebService接口即可實現應用服務層與服務層的連接。
本研究能力開放平臺提供多種有效地機制來保護用戶的服務安全,以RESTful API的方式對外提供間接的服務訪問[10],隱藏服務的真實地址,降低服務開放風險;提供服務訪問身份鑒權機制,具有防偽造和防重放功能。能力開放平臺的鑒權功能完成對用戶身份和應用能力關系的鑒權認證。用戶通過開放平臺的管理系統使用某項應用時,接入子系統將使用請求發送到鑒權子系統進行使用鑒權認證,全方面確認用戶信息和、應用信息、能力信息等,認證通過的用戶才能通過開放平臺接入應用服務[11]。本研究能力開放平臺的鑒權子系統如圖3所示。

圖3 鑒權子系統結構Fig.3 Structure diagram of authentication subsystem
鑒權子系統程序具有高擴展性,能夠滿足復雜多變的業務需求,采用REST接口實現Web服務,面向接口的編程理念[12]。使用開閉原則等設計,通過高度可配置化提高了可擴展性,降低了鑒權子系統的耦合度。其中信息同步功能是鑒權認證的基礎,開放平臺的管理系統通過信息同步接口向鑒權子系統和接入子系統發送同步信息,保證了整個開放平臺的信息一致性,完成了用戶、開發人員、應用、能力、應用產品、能力產品等信息的同步。安全認證功能包括防偽管理、Token管理、證書管理和身份認證等功能,保證了開放平臺數據傳輸過程中用戶信息的安全。本研究鑒權子系統根據不同的應用場景提供2種鑒權服務:Appkeys鑒權和OAuth2+JWT鑒權[13]。Appkeys鑒權適用于公有云API和不涉及用戶、權限等敏感信息的數據開放服務。Appkeys鑒權流程如圖4所示。

圖4 Appkeys鑒權流程Fig.4 Appkeys authentication flow chart
Appkeys鑒權步驟如下所示:①調用方獲取能力開放平臺服務認證頒發的Key;②調用方攜帶AppKey請求能力服務;③服務網關請求認證服務驗證AppKey合法性;④驗證成功后,服務網關請求上游服務,此處上游服務不做任何校驗,直接返回結果。
OAuth2+JWT鑒權適用于安全等級要求較高、不明確服務調用者身份的場景,這種情況下各服務間互不授信,彼此調用需要驗證合法性[14]。
OAuth2+JWT鑒權流程如圖5所示。OAuth2+JWT鑒權步驟如下所示:①獲取Access Token。②調用能力開放平臺API。③服務網關到認證服務置換JWT Token。④攜帶JWT Token請求上游服務;⑤根據請求認證服務獲取JWK,使用JWK對JWT Token校驗、解密,完成角色判斷,實現服務調用。
進行用戶身份鑒權時信息同步模塊完成與外部接口的信息同步,信息同步的UML類圖如圖6所示。

圖5 OAuth2+JWT鑒權流程Fig.5 OAuth2+JWT authentication flow chart

圖6 信息同步的UML類圖Fig.6 UML class diagram for information synchronization
鑒權信息同步根據與外部系統交互的不同分為外部系統同步信息和鑒權系統同步信息。外部系統同步信息生成后再同步到鑒權系統,鑒權系統將處理結果發送到外部系統[15]。在系統初始化時,外部系統將用戶必要數據主動同步到鑒權系統,之后進行數據的增加或刪減時,通過信息同步接口告知鑒權系統。鑒權同步信息由鑒權系統產生,并將結果同步到外部系統,主要包括UserAppRelationSync用戶應用關系同步和DevEapRelationSync開發者能力產品關系同步。
本研究網上國網開放平臺系統的數據共享平臺采用基于Web的云服務,為用戶提供云模式下的數據共享服務[16]。分布式數據共享平臺為網上國網開放平臺用戶提供數據交換、數據集成和資源共享等功能,建立了任務管理子系統、數據集成子系統和作業管理子系統,主要進行任務管理、資源管理、資源分發、服務分布、用戶管理和數據集成等操作。本研究分布式數據共享平臺架構如圖7所示。

圖7 分布式數據共享平臺架構Fig.7 Distributed data sharing platform architecture
數據共享平臺中資源提供者向平臺提供數據資源,完成抽取數據任務、轉換數據任務和爬取數據任務,并進行加載數據任務的構建和配置[17]。資源管理者對元數據進行管理,處理數據模板和映射關系文件,同時進行資源的備份和數據處理作業的管理等任務。數據共享平臺中業務處理構件包括服務管理構件、資源分發構件、輔助決策構件、作業管理構件和任務管理構件[18]。業務處理構件清單見表1。數據共享平臺的WebService Server對數據庫和文件等數據資源提供操作服務,主要包括數據共享作業的元數據配置ConfigJobMetaDataService、執行調度、MapMetaDataService、案例信息上傳UploadCaseService、更新UpdateCaseService等服務。
為驗證本研究網上國網開放平臺系統的性能,進行實驗測試系統的數據共享時間和鑒權系統的吞吐率。
實驗環境參數如下:①SG-UAP 開發平臺;②中間件為Edas 3.3、docker、spring-cloud、spring-boot;③數據庫為Oracle 11g、Redis3.0;④開源軟件為Git 2.14、RedisDesktopManager 0.8;⑤瀏覽器為Chrome 89.0、IE 11、firefox83.0;⑥數據訪問為mybatis-plus、JDBC。
打開網上國網開放平臺App,在登錄界面輸入用戶名和密碼,然后輸入驗證碼后進入到系統界面,用戶系統主頁中進行查詢電量使用情況、進行繳費、個人戶號的管理等操作。
在系統主界面選擇電費賬單即可獲得用戶當月的電費明細,顯示當月有功總電量、電費單價、電費金額、上期示數和本期示數。
研究實驗環境中數據共享的邏輯節點分為數據需求方和數據提供方,數據需求方提出數據共享需求,并提供數據共享模型。數據提供方響應需求方的共享請求,執行模型并返回執行結果。
實驗過程中隨機挑選一個節點作為數據需求方,其他節點作為數據提供方,并在數據庫中存儲源數據。分別使用2~10個節點進行了10 000次數據共享實驗,得到本研究系統的運行時間見表2。
研究系統運行速度較快,數據共享使用時間較短,節點數量的增加對運行時間的影響不大。在開放平臺穩定的網絡環境中,數據共享系統速度快且穩定性強。當節點數量增加到10個時,本研究系統數據共享所用時間僅為710 ms。

表2 系統運行時間Tab.2 System running time
對3種鑒權系統的內部接口進行服務調用測試,在不同的并發量條件下,使用Apache Benchmark測試鑒權系統的吞吐率。并發量設定為100~500,測試得到系統的吞吐率,見表3。
隨著并發量的增加,系統吞吐率逐漸下降,在并發量和請求總量較小時,本研究開放平臺鑒權子系統的吞吐量可達到1 000以上,完全滿足系統需求,此時系統時延在100 ms以下。并發量達到300時,本研究系統的吞吐量下降到692。并發量大于300后,系統吞吐率下降緩慢,最終穩定在660以上。

表3 系統的吞吐率Tab.3 Throughput rate of the system
本研究完成了網上國網開放平臺的整體設計,建立網上國網服務中臺能力開放技術體系,面向開發人員和能力發布者提供應用創建、能力創建、文檔管理等服務供功能。開放平臺向內外部單位開放網上國網數據資源及服務能力,支持省公司、政府部門、商業伙伴及公眾用戶開展服務創新,促進網上國網生態業務融合創新發展。
本研究仍存在一些不足之處還需進一步改進,由于數據源和數據處理方式的多樣化,系統需要不斷添加對于新的數據源類型的抽取服務支持,和對不同數據持久化的方式的支撐。