王錦志,錢 奇,張才俊,楊 維,耿愛國
(1.國家電網(wǎng)有限公司客戶服務(wù)中心,天津 300300;2.南瑞集團(tuán)有限公司(國網(wǎng)電力科學(xué)研究院有限公司,江蘇 南京 211106;3.北京科東電力控制系統(tǒng)有限責(zé)任公司,北京 100192)
隨著“網(wǎng)上國網(wǎng)”建設(shè)的不斷深入,目前初步建成以八中心為主體的業(yè)務(wù)中臺及數(shù)據(jù)中臺[1],具備了對外開放的能力,內(nèi)外部渠道對網(wǎng)上國網(wǎng)數(shù)據(jù)資源及服務(wù)能力對接需求日益迫切。但當(dāng)前開放平臺系統(tǒng)仍存在運行低下,數(shù)據(jù)共享能力差、生態(tài)開發(fā)程度低的問題[2]。
針對上述存在的問題,文獻(xiàn)[3]結(jié)合電網(wǎng)自動化系統(tǒng)的運行情況,提出將電網(wǎng)調(diào)度自動化和服務(wù)平臺一體化,使多套系統(tǒng)數(shù)據(jù)統(tǒng)一,解決了信息不通暢、共享數(shù)據(jù)不及時的問題。但沒有對監(jiān)控信息進(jìn)行合理分類分層,重要信息無法快速挖掘。文獻(xiàn)[4]提出基于SMPC技術(shù)的數(shù)據(jù)共享系統(tǒng),設(shè)計一個數(shù)據(jù)共享協(xié)議,實現(xiàn)源數(shù)據(jù)不出庫的情況下完成數(shù)據(jù)共享。但系統(tǒng)將數(shù)據(jù)明文共享到一個中心節(jié)點上,源數(shù)據(jù)直接暴露在平臺中。本研究基于“SG-UAP3.0”平臺建立網(wǎng)上國網(wǎng)開放平臺,按照信息內(nèi)、外網(wǎng)部署方式進(jìn)行模塊構(gòu)建,采取OAuth2.0的協(xié)議進(jìn)行身份鑒權(quán),具有防偽造和防重放功能,防止對服務(wù)的非法訪問。
本研究網(wǎng)上國網(wǎng)開放平臺依據(jù)項目總體目標(biāo),將信息內(nèi)網(wǎng)和信息外網(wǎng)按照模塊化進(jìn)行部署。信息外網(wǎng)為互聯(lián)網(wǎng)區(qū)域用戶提供統(tǒng)一門戶、接入服務(wù)和支撐服務(wù),并部署能力開放服務(wù)、管理平臺、開發(fā)者網(wǎng)站、能力接入、測試技術(shù)支持服務(wù)等應(yīng)用功能[5]。在信息內(nèi)網(wǎng)部署能力開放服務(wù)、開放平臺能力接入、測試技術(shù)支持服務(wù)等應(yīng)用功能,為信息內(nèi)網(wǎng)行業(yè)內(nèi)單位提供接入服務(wù)及支撐服務(wù)。開放平臺基于“SG-UAP3.0”進(jìn)行開發(fā),根據(jù)內(nèi)外網(wǎng)隔離的原則,進(jìn)行系統(tǒng)架構(gòu)設(shè)計[6]。網(wǎng)上國網(wǎng)開放平臺系統(tǒng)架構(gòu)如圖1所示。
圖1 網(wǎng)上國網(wǎng)開放平臺架構(gòu)Fig.1 Online State Grid Open Platform Architecture
本研究網(wǎng)上國網(wǎng)開放平臺系統(tǒng)由基礎(chǔ)資源層、數(shù)據(jù)存儲層、內(nèi)網(wǎng)服務(wù)層、外網(wǎng)服務(wù)層、隔離交互層和展示層構(gòu)成?;A(chǔ)資源層采用統(tǒng)一的云平臺為信息內(nèi)網(wǎng)和信息外網(wǎng)提供基礎(chǔ)服務(wù),主要提供計算資源、存儲資源和網(wǎng)絡(luò)資源等[7]。數(shù)據(jù)存儲層為信息內(nèi)網(wǎng)和信息外網(wǎng)提供結(jié)構(gòu)化數(shù)據(jù)、非結(jié)構(gòu)化數(shù)據(jù)、緩存數(shù)據(jù)的存儲及服務(wù),可以按需供應(yīng)服務(wù)及橫向擴展。隔離交互層使用邏輯硬隔離設(shè)備將信息內(nèi)網(wǎng)和信息外網(wǎng)隔離起來,內(nèi)、外網(wǎng)服務(wù)層主要包括內(nèi)外網(wǎng)穿透服務(wù)、能力開放服務(wù)、能力接入服務(wù)、測試技術(shù)支持服務(wù)、共享服務(wù)中心等。展示層主要運用Html、JS、CSS、HTML5、SDK等技術(shù),通過WEB和APP兩種方式進(jìn)行數(shù)據(jù)展示[8]。
信息外網(wǎng)中開發(fā)者網(wǎng)站主要面向省市公司、產(chǎn)業(yè)單位、渠道合作伙伴以及社會企事業(yè)單位或個人開發(fā)者,為其開放國網(wǎng)服務(wù)能力。網(wǎng)上國網(wǎng)開放平臺實現(xiàn)行業(yè)內(nèi)外部系統(tǒng)間的業(yè)務(wù)協(xié)同、信息交互和數(shù)據(jù)融合共享。信息內(nèi)、外網(wǎng)集成架構(gòu)如圖2所示。
信息內(nèi)網(wǎng)與用戶中心,工單中心,賬單中心,ISC、BPM及網(wǎng)上國網(wǎng)運管平臺集成,在信息外網(wǎng)與共享服務(wù)中心、網(wǎng)上國網(wǎng) App、95598智能互動網(wǎng)站、95598智能終端、營業(yè)廳移動終端、第三方系統(tǒng)、ISC、BPM及網(wǎng)上國網(wǎng)運營平臺等集成[9]。能力開放作為上層和下層的能力管控中心,對各平臺進(jìn)行整合統(tǒng)一,規(guī)范各系統(tǒng)接口提供統(tǒng)一服務(wù)和運營。
圖2 信息內(nèi)、外網(wǎng)集成架構(gòu)Fig.2 Information internal and external network integration architecture
能力開放服務(wù)基于驗證與授權(quán)協(xié)議對服務(wù)發(fā)布與服務(wù)共享進(jìn)行開放時間、使用期限、權(quán)限范圍、應(yīng)用類型及登陸令牌等多維度的管控,并通過其管控能力實現(xiàn)對服務(wù)發(fā)布與共享的多重校驗與授權(quán),最大限度保證服務(wù)發(fā)布與共享的可靠性、安全性,全面提升服務(wù)質(zhì)量。
綜上所述,本研究的創(chuàng)新點在于:①開放平臺采用應(yīng)用管理機制,完成用戶的應(yīng)用身份認(rèn)證和功能驗證,采用REST接口實現(xiàn)Web服務(wù),可根據(jù)不同的應(yīng)用場景選擇不同的鑒權(quán)服務(wù),加入鑒權(quán)信息同步模塊和安全認(rèn)證功能,保證了鑒權(quán)系統(tǒng)的用戶信息同步和網(wǎng)絡(luò)傳輸過程中的信息安全。②數(shù)據(jù)共享平臺采用基于Web的云服務(wù),為開放平臺用戶提供數(shù)據(jù)交換、數(shù)據(jù)集成和資源共享等功能。WebService Server對數(shù)據(jù)庫和文件等數(shù)據(jù)資源提供操作服務(wù),調(diào)用提供的WebService接口即可實現(xiàn)應(yīng)用服務(wù)層與服務(wù)層的連接。
本研究能力開放平臺提供多種有效地機制來保護(hù)用戶的服務(wù)安全,以RESTful API的方式對外提供間接的服務(wù)訪問[10],隱藏服務(wù)的真實地址,降低服務(wù)開放風(fēng)險;提供服務(wù)訪問身份鑒權(quán)機制,具有防偽造和防重放功能。能力開放平臺的鑒權(quán)功能完成對用戶身份和應(yīng)用能力關(guān)系的鑒權(quán)認(rèn)證。用戶通過開放平臺的管理系統(tǒng)使用某項應(yīng)用時,接入子系統(tǒng)將使用請求發(fā)送到鑒權(quán)子系統(tǒng)進(jìn)行使用鑒權(quán)認(rèn)證,全方面確認(rèn)用戶信息和、應(yīng)用信息、能力信息等,認(rèn)證通過的用戶才能通過開放平臺接入應(yīng)用服務(wù)[11]。本研究能力開放平臺的鑒權(quán)子系統(tǒng)如圖3所示。
圖3 鑒權(quán)子系統(tǒng)結(jié)構(gòu)Fig.3 Structure diagram of authentication subsystem
鑒權(quán)子系統(tǒng)程序具有高擴展性,能夠滿足復(fù)雜多變的業(yè)務(wù)需求,采用REST接口實現(xiàn)Web服務(wù),面向接口的編程理念[12]。使用開閉原則等設(shè)計,通過高度可配置化提高了可擴展性,降低了鑒權(quán)子系統(tǒng)的耦合度。其中信息同步功能是鑒權(quán)認(rèn)證的基礎(chǔ),開放平臺的管理系統(tǒng)通過信息同步接口向鑒權(quán)子系統(tǒng)和接入子系統(tǒng)發(fā)送同步信息,保證了整個開放平臺的信息一致性,完成了用戶、開發(fā)人員、應(yīng)用、能力、應(yīng)用產(chǎn)品、能力產(chǎn)品等信息的同步。安全認(rèn)證功能包括防偽管理、Token管理、證書管理和身份認(rèn)證等功能,保證了開放平臺數(shù)據(jù)傳輸過程中用戶信息的安全。本研究鑒權(quán)子系統(tǒng)根據(jù)不同的應(yīng)用場景提供2種鑒權(quán)服務(wù):Appkeys鑒權(quán)和OAuth2+JWT鑒權(quán)[13]。Appkeys鑒權(quán)適用于公有云API和不涉及用戶、權(quán)限等敏感信息的數(shù)據(jù)開放服務(wù)。Appkeys鑒權(quán)流程如圖4所示。
圖4 Appkeys鑒權(quán)流程Fig.4 Appkeys authentication flow chart
Appkeys鑒權(quán)步驟如下所示:①調(diào)用方獲取能力開放平臺服務(wù)認(rèn)證頒發(fā)的Key;②調(diào)用方攜帶AppKey請求能力服務(wù);③服務(wù)網(wǎng)關(guān)請求認(rèn)證服務(wù)驗證AppKey合法性;④驗證成功后,服務(wù)網(wǎng)關(guān)請求上游服務(wù),此處上游服務(wù)不做任何校驗,直接返回結(jié)果。
OAuth2+JWT鑒權(quán)適用于安全等級要求較高、不明確服務(wù)調(diào)用者身份的場景,這種情況下各服務(wù)間互不授信,彼此調(diào)用需要驗證合法性[14]。
OAuth2+JWT鑒權(quán)流程如圖5所示。OAuth2+JWT鑒權(quán)步驟如下所示:①獲取Access Token。②調(diào)用能力開放平臺API。③服務(wù)網(wǎng)關(guān)到認(rèn)證服務(wù)置換JWT Token。④攜帶JWT Token請求上游服務(wù);⑤根據(jù)請求認(rèn)證服務(wù)獲取JWK,使用JWK對JWT Token校驗、解密,完成角色判斷,實現(xiàn)服務(wù)調(diào)用。
進(jìn)行用戶身份鑒權(quán)時信息同步模塊完成與外部接口的信息同步,信息同步的UML類圖如圖6所示。
圖5 OAuth2+JWT鑒權(quán)流程Fig.5 OAuth2+JWT authentication flow chart
圖6 信息同步的UML類圖Fig.6 UML class diagram for information synchronization
鑒權(quán)信息同步根據(jù)與外部系統(tǒng)交互的不同分為外部系統(tǒng)同步信息和鑒權(quán)系統(tǒng)同步信息。外部系統(tǒng)同步信息生成后再同步到鑒權(quán)系統(tǒng),鑒權(quán)系統(tǒng)將處理結(jié)果發(fā)送到外部系統(tǒng)[15]。在系統(tǒng)初始化時,外部系統(tǒng)將用戶必要數(shù)據(jù)主動同步到鑒權(quán)系統(tǒng),之后進(jìn)行數(shù)據(jù)的增加或刪減時,通過信息同步接口告知鑒權(quán)系統(tǒng)。鑒權(quán)同步信息由鑒權(quán)系統(tǒng)產(chǎn)生,并將結(jié)果同步到外部系統(tǒng),主要包括UserAppRelationSync用戶應(yīng)用關(guān)系同步和DevEapRelationSync開發(fā)者能力產(chǎn)品關(guān)系同步。
本研究網(wǎng)上國網(wǎng)開放平臺系統(tǒng)的數(shù)據(jù)共享平臺采用基于Web的云服務(wù),為用戶提供云模式下的數(shù)據(jù)共享服務(wù)[16]。分布式數(shù)據(jù)共享平臺為網(wǎng)上國網(wǎng)開放平臺用戶提供數(shù)據(jù)交換、數(shù)據(jù)集成和資源共享等功能,建立了任務(wù)管理子系統(tǒng)、數(shù)據(jù)集成子系統(tǒng)和作業(yè)管理子系統(tǒng),主要進(jìn)行任務(wù)管理、資源管理、資源分發(fā)、服務(wù)分布、用戶管理和數(shù)據(jù)集成等操作。本研究分布式數(shù)據(jù)共享平臺架構(gòu)如圖7所示。
圖7 分布式數(shù)據(jù)共享平臺架構(gòu)Fig.7 Distributed data sharing platform architecture
數(shù)據(jù)共享平臺中資源提供者向平臺提供數(shù)據(jù)資源,完成抽取數(shù)據(jù)任務(wù)、轉(zhuǎn)換數(shù)據(jù)任務(wù)和爬取數(shù)據(jù)任務(wù),并進(jìn)行加載數(shù)據(jù)任務(wù)的構(gòu)建和配置[17]。資源管理者對元數(shù)據(jù)進(jìn)行管理,處理數(shù)據(jù)模板和映射關(guān)系文件,同時進(jìn)行資源的備份和數(shù)據(jù)處理作業(yè)的管理等任務(wù)。數(shù)據(jù)共享平臺中業(yè)務(wù)處理構(gòu)件包括服務(wù)管理構(gòu)件、資源分發(fā)構(gòu)件、輔助決策構(gòu)件、作業(yè)管理構(gòu)件和任務(wù)管理構(gòu)件[18]。業(yè)務(wù)處理構(gòu)件清單見表1。數(shù)據(jù)共享平臺的WebService Server對數(shù)據(jù)庫和文件等數(shù)據(jù)資源提供操作服務(wù),主要包括數(shù)據(jù)共享作業(yè)的元數(shù)據(jù)配置ConfigJobMetaDataService、執(zhí)行調(diào)度、MapMetaDataService、案例信息上傳UploadCaseService、更新UpdateCaseService等服務(wù)。
為驗證本研究網(wǎng)上國網(wǎng)開放平臺系統(tǒng)的性能,進(jìn)行實驗測試系統(tǒng)的數(shù)據(jù)共享時間和鑒權(quán)系統(tǒng)的吞吐率。
實驗環(huán)境參數(shù)如下:①SG-UAP 開發(fā)平臺;②中間件為Edas 3.3、docker、spring-cloud、spring-boot;③數(shù)據(jù)庫為Oracle 11g、Redis3.0;④開源軟件為Git 2.14、RedisDesktopManager 0.8;⑤瀏覽器為Chrome 89.0、IE 11、firefox83.0;⑥數(shù)據(jù)訪問為mybatis-plus、JDBC。
打開網(wǎng)上國網(wǎng)開放平臺App,在登錄界面輸入用戶名和密碼,然后輸入驗證碼后進(jìn)入到系統(tǒng)界面,用戶系統(tǒng)主頁中進(jìn)行查詢電量使用情況、進(jìn)行繳費、個人戶號的管理等操作。
在系統(tǒng)主界面選擇電費賬單即可獲得用戶當(dāng)月的電費明細(xì),顯示當(dāng)月有功總電量、電費單價、電費金額、上期示數(shù)和本期示數(shù)。
研究實驗環(huán)境中數(shù)據(jù)共享的邏輯節(jié)點分為數(shù)據(jù)需求方和數(shù)據(jù)提供方,數(shù)據(jù)需求方提出數(shù)據(jù)共享需求,并提供數(shù)據(jù)共享模型。數(shù)據(jù)提供方響應(yīng)需求方的共享請求,執(zhí)行模型并返回執(zhí)行結(jié)果。
實驗過程中隨機挑選一個節(jié)點作為數(shù)據(jù)需求方,其他節(jié)點作為數(shù)據(jù)提供方,并在數(shù)據(jù)庫中存儲源數(shù)據(jù)。分別使用2~10個節(jié)點進(jìn)行了10 000次數(shù)據(jù)共享實驗,得到本研究系統(tǒng)的運行時間見表2。
研究系統(tǒng)運行速度較快,數(shù)據(jù)共享使用時間較短,節(jié)點數(shù)量的增加對運行時間的影響不大。在開放平臺穩(wěn)定的網(wǎng)絡(luò)環(huán)境中,數(shù)據(jù)共享系統(tǒng)速度快且穩(wěn)定性強。當(dāng)節(jié)點數(shù)量增加到10個時,本研究系統(tǒng)數(shù)據(jù)共享所用時間僅為710 ms。
表2 系統(tǒng)運行時間Tab.2 System running time
對3種鑒權(quán)系統(tǒng)的內(nèi)部接口進(jìn)行服務(wù)調(diào)用測試,在不同的并發(fā)量條件下,使用Apache Benchmark測試鑒權(quán)系統(tǒng)的吞吐率。并發(fā)量設(shè)定為100~500,測試得到系統(tǒng)的吞吐率,見表3。
隨著并發(fā)量的增加,系統(tǒng)吞吐率逐漸下降,在并發(fā)量和請求總量較小時,本研究開放平臺鑒權(quán)子系統(tǒng)的吞吐量可達(dá)到1 000以上,完全滿足系統(tǒng)需求,此時系統(tǒng)時延在100 ms以下。并發(fā)量達(dá)到300時,本研究系統(tǒng)的吞吐量下降到692。并發(fā)量大于300后,系統(tǒng)吞吐率下降緩慢,最終穩(wěn)定在660以上。
表3 系統(tǒng)的吞吐率Tab.3 Throughput rate of the system
本研究完成了網(wǎng)上國網(wǎng)開放平臺的整體設(shè)計,建立網(wǎng)上國網(wǎng)服務(wù)中臺能力開放技術(shù)體系,面向開發(fā)人員和能力發(fā)布者提供應(yīng)用創(chuàng)建、能力創(chuàng)建、文檔管理等服務(wù)供功能。開放平臺向內(nèi)外部單位開放網(wǎng)上國網(wǎng)數(shù)據(jù)資源及服務(wù)能力,支持省公司、政府部門、商業(yè)伙伴及公眾用戶開展服務(wù)創(chuàng)新,促進(jìn)網(wǎng)上國網(wǎng)生態(tài)業(yè)務(wù)融合創(chuàng)新發(fā)展。
本研究仍存在一些不足之處還需進(jìn)一步改進(jìn),由于數(shù)據(jù)源和數(shù)據(jù)處理方式的多樣化,系統(tǒng)需要不斷添加對于新的數(shù)據(jù)源類型的抽取服務(wù)支持,和對不同數(shù)據(jù)持久化的方式的支撐。