高 靜,安創(chuàng)鋒,劉 歡,田 迪
(1.中海石油(中國)有限公司秦皇島32-6/渤中作業(yè)公司,天津 300452;2.中海油能源發(fā)展股份有限公司工程技術(shù)分公司,天津 300452)
為引領(lǐng)第四次工業(yè)革命,數(shù)字化、智能化戰(zhàn)略已經(jīng)上升至重要國際戰(zhàn)略,中國海洋石油有限公司提出大力發(fā)展數(shù)字化、智能化指導思想。中海油某智能油田建設(shè)過程中緊密集合目前最新的IT 技術(shù),同時遵循中海油生產(chǎn)云平臺應(yīng)用建設(shè)規(guī)范要求,目標實現(xiàn)了油藏、注采和設(shè)備設(shè)施的智能化管理以及遠程操控管理,進而實現(xiàn)海上油田無人化少人化、油藏研究可視化、生產(chǎn)運營協(xié)同化和戰(zhàn)略決策科學化管理,推動生產(chǎn)方式轉(zhuǎn)變和管理流程優(yōu)化,構(gòu)建一種“智能、安全、高效”的新型海上油氣開采運行模式,并通過智能油田綜合管理系統(tǒng)將研究建設(shè)成果進行可視化展示。
因此本文將重點介紹通過微服務(wù)架構(gòu)設(shè)計,完成項目分層微服務(wù)架構(gòu)設(shè)計在海上智能油田綜合管理系統(tǒng)的實踐。一方面實現(xiàn)大型能源行業(yè)綜合業(yè)務(wù)系統(tǒng)設(shè)計,另一方面闡述一種成果積累的微服務(wù)設(shè)計方法。
該文所設(shè)計的智能油田綜合管理系統(tǒng)包含陸地云端服務(wù)系統(tǒng)和邊緣端服務(wù)兩個區(qū)域的功能應(yīng)用,其中邊緣端服務(wù)負責對海上19 套生產(chǎn)監(jiān)測系統(tǒng)進行實時高頻的數(shù)據(jù)采集、匯聚及回傳至陸地服務(wù)器與邊緣視覺識別計算,云端服務(wù)系統(tǒng)負責對海上平臺各類生產(chǎn)數(shù)據(jù)進行綜合多樣計算與可視化展示。
智能油田綜合管理系統(tǒng)云端微服務(wù)通過前期的需求分析調(diào)研與結(jié)合各專業(yè)工程師日常工作流程進行梳理,最終確定9 項功能應(yīng)用模塊,包含遠程監(jiān)控、生產(chǎn)管理、油藏管理、注采管理、設(shè)備設(shè)施管理、調(diào)度管理、能耗管理、安全管理和報表管理,如圖1 所示。根據(jù)領(lǐng)域模型DDD 微服務(wù)拆分最佳實踐,對9 項功能模塊的后端服務(wù)進行服務(wù)拆分,最終形成8 個服務(wù)領(lǐng)域,包含油藏中心、設(shè)施中心、作業(yè)中心、設(shè)備中心、支持中心、用戶中心、人員中心和算法中心,通過領(lǐng)域的劃分能夠?qū)Ψ?wù)進行業(yè)務(wù)域的統(tǒng)一管理,統(tǒng)一業(yè)務(wù)的數(shù)據(jù)服務(wù),此種設(shè)計方法目標可避免數(shù)據(jù)服務(wù)的重復性建設(shè)。
圖1 云端微服務(wù)設(shè)計
智能油田綜合管理系統(tǒng)邊緣端微服務(wù)通過在海上平臺架設(shè)多協(xié)議接入邊緣計算一體機設(shè)備,負責為海上生產(chǎn)監(jiān)測設(shè)備提供硬件、軟件接入服務(wù)和邊緣計算資源,并實現(xiàn)邊緣數(shù)據(jù)階段性數(shù)據(jù)緩存,避免網(wǎng)絡(luò)中斷導致數(shù)據(jù)丟失,再通過數(shù)據(jù)匯聚程序?qū)崿F(xiàn)數(shù)據(jù)的清洗與轉(zhuǎn)化,形成數(shù)據(jù)輸出接口服務(wù),如圖2 所示。目前,邊緣一體機中部署的對接服務(wù)可實現(xiàn)對接MODBUS、OPC、HTTP、MQTT 和ONVIF 等協(xié)議數(shù)據(jù)。
圖2 邊緣端微服務(wù)設(shè)計
服務(wù)劃分是微服務(wù)架構(gòu)設(shè)計中重要一環(huán),是架構(gòu)合理性的關(guān)鍵,不但影響到系統(tǒng)的穩(wěn)定和性能,還會對將來的全局業(yè)務(wù)監(jiān)控、鏈路分析和服務(wù)治理的效果產(chǎn)生巨大影響,而且會對系統(tǒng)靈活性和組織溝通效率也產(chǎn)生深遠的影響。系統(tǒng)的服務(wù)劃分可以遵循以下幾個原則,如圖3 所示。
圖3 微服務(wù)設(shè)計實踐原則圖
服務(wù)的最小完備性:服務(wù)所提供的能力應(yīng)該是完整的,能夠滿足基本的業(yè)務(wù)目標,同時避免添加不必要的能力。
自我履行的原則:服務(wù)自身能夠決定自己能夠做什么,不屬于服務(wù)本身的職責,應(yīng)該轉(zhuǎn)給其他服務(wù)完成。
穩(wěn)定的能力空間:減少其他服務(wù)變化對本服務(wù)的影響。
易用性的原則:使用服務(wù)使用者專業(yè)領(lǐng)域內(nèi)有意義的名稱,優(yōu)先選用業(yè)務(wù)概念而不是技術(shù)概念。
可被重用、可被組合原則:服務(wù)可重復使用相同或相似場景,可與其他服務(wù)組合使用。
歸屬清晰:服務(wù)的業(yè)務(wù)歸屬應(yīng)當清晰,服務(wù)的分層應(yīng)當清晰。
智能油田建設(shè)項目在微服務(wù)拆分之前,由架構(gòu)設(shè)計團隊對項目微服務(wù)架構(gòu)進行技術(shù)路線設(shè)計,項目采用4 層架構(gòu)設(shè)計,充分考慮業(yè)務(wù)流程解耦,提高系統(tǒng)程序的靈活性與可拓展性:由前端服務(wù)層完成系統(tǒng)界面展示,做到前后端分離;聚合服務(wù)層完成負責業(yè)務(wù)過程組合與交互,用于支撐多變的前端需求;基礎(chǔ)服務(wù)層負責整合并提供基礎(chǔ)業(yè)務(wù),用于持續(xù)基礎(chǔ)能力沉底;數(shù)據(jù)層進行數(shù)據(jù)分類存儲,如圖4 所示。
圖4 微服務(wù)架構(gòu)設(shè)計思路圖
在智能油田建設(shè)項目微服務(wù)設(shè)計工作中,按照微服務(wù)設(shè)計最佳實踐進行本項目的微服務(wù)設(shè)計。整個過程以真實業(yè)務(wù)為輸入,經(jīng)過業(yè)務(wù)模型梳理、用例模型梳理、序列圖設(shè)計、服務(wù)梳理、服務(wù)設(shè)計5 個階段,輸出智能油田建設(shè)項目微服務(wù)設(shè)計,實現(xiàn)可指導研發(fā)階段的服務(wù)落地的目的。如圖5 所示。
圖5 微服務(wù)架構(gòu)設(shè)計流程圖
(1)微服務(wù)設(shè)計過程通過需求矩陣分析與工作流程分析等方式獲取系統(tǒng)建設(shè)范圍,明確項目需要解決的問題與需要實現(xiàn)的優(yōu)化功能。通過需求分析過程確定用戶角色、業(yè)務(wù)描述、需求描述、數(shù)據(jù)描述和運行環(huán)境要求,形成業(yè)務(wù)需求功能點設(shè)計矩陣。通過需求功能點矩陣將需求明細轉(zhuǎn)化為軟件服務(wù)動作。
(2)梳理服務(wù)動作,結(jié)合中海油集團公司數(shù)據(jù)湖項目提供的統(tǒng)一數(shù)據(jù)源,由業(yè)務(wù)人員輔助確定服務(wù)的數(shù)據(jù)源,將數(shù)據(jù)源進行匹配對比,在數(shù)據(jù)源符合性達到60%的服務(wù),進行針對性的服務(wù)分析,將相似或者相同的動作進行通用性設(shè)計。
在過程一方面形成的是共性服務(wù)動作,如文件上傳、下載、消息服務(wù)、郵件服務(wù)等技術(shù)服務(wù)組件,此類服務(wù)通常市面上具有成型的技術(shù)組件,項目組只需按照項目特定場景選擇合適技術(shù)棧開展優(yōu)化即可。
上文提到,本項目將采用聚合服務(wù)與基礎(chǔ)服務(wù)解耦的架構(gòu)設(shè)計,所以在業(yè)務(wù)服務(wù)聚合的過程需要充分考慮服務(wù)的輸入源特征,如服務(wù)動作由多個服務(wù)聚合才能形成最終的結(jié)果,并且此序列動作與系統(tǒng)界面展示強相關(guān)(序列輸出與展示內(nèi)容一致),那么將此服務(wù)抽離形成聚合服務(wù)。如序列動作主要為操作實體對象與數(shù)據(jù)源強相關(guān),那么將此服務(wù)抽離形成基礎(chǔ)服務(wù),通過此過程實現(xiàn)頁面與數(shù)據(jù)層的高內(nèi)聚與低耦合,如圖6 所示。
圖6 前后端調(diào)研關(guān)系圖
(3)此設(shè)計方法在推廣過程中充分考慮各用戶對相同業(yè)務(wù)在界面展示的不同需求,針對此情況開發(fā)人員只需要對聚合服務(wù)與前端界面服務(wù)進行調(diào)整,無需修改基礎(chǔ)服務(wù)。同時如果在數(shù)據(jù)源模型發(fā)生優(yōu)化的情況下,開發(fā)人員修訂基礎(chǔ)服務(wù)即可完成程序修訂,無需對多個聚合服務(wù)進行修訂。
實時數(shù)據(jù)采集與遠傳程序支持通過ModbusRTU、Http、OPC、WebService、ONVIF、數(shù)據(jù)庫連接等多種方式從在線監(jiān)測系統(tǒng)中采集實時數(shù)據(jù),獲取到實時數(shù)據(jù)后,再通過MQTT 協(xié)議將數(shù)據(jù)遠傳到海油PaaS 云平臺。云端數(shù)據(jù)匯集程序?qū)崟r數(shù)據(jù)存儲到kudu 數(shù)據(jù)庫,文件類數(shù)據(jù)存儲到MinIO 文檔庫,如圖7 所示。
圖7 邊緣端數(shù)據(jù)采集架構(gòu)圖
其中數(shù)據(jù)采集服務(wù)包含采集配置,通過協(xié)議接口配置、數(shù)據(jù)采集頻率配置、點表配置、緩存配置、斷點續(xù)傳和傳輸加密等實現(xiàn)對多協(xié)議的數(shù)據(jù)進行采集;為方便數(shù)據(jù)采集統(tǒng)計,設(shè)計按平臺、設(shè)備類別、時間對采集的實時數(shù)據(jù)進行統(tǒng)計;由于采集服務(wù)部署于海上平臺環(huán)境,IT 人員配備不足,通過采集報警實現(xiàn)系統(tǒng)自動對數(shù)據(jù)采集異常進行報警,并將報警信息推送給管理員。
實時數(shù)據(jù)甄別服務(wù)是在實時數(shù)據(jù)采集的基礎(chǔ)上,實時對數(shù)據(jù)質(zhì)量進行監(jiān)測,按照定義的數(shù)據(jù)甄別規(guī)則診斷出假、啞、空等問題數(shù)據(jù)。
數(shù)據(jù)緩存服務(wù)是通過采集服務(wù)獲取數(shù)據(jù)后,并行將數(shù)據(jù)緩存至數(shù)據(jù)庫,在網(wǎng)絡(luò)情況中斷情況下保證數(shù)據(jù)傳輸不丟失,確保數(shù)據(jù)的完整性。數(shù)據(jù)回傳服務(wù)采用物聯(lián)網(wǎng)MQTT 協(xié)議對數(shù)據(jù)進行加密回傳。如圖8 所示。
圖8 消息傳輸架構(gòu)圖
本系統(tǒng)在實施10 個月后完成全部軟件功能開發(fā)、系統(tǒng)測試、和上線試運行工作,目前系統(tǒng)已正常運行,并在油田內(nèi)部進行正常運行使用。系統(tǒng)建設(shè)成果中的微服務(wù),可在中海油其他油田進行成果復用。
在本文中,對目前海上油田業(yè)務(wù)需求以及智能化功能需求進行架構(gòu)設(shè)計,研究了針對業(yè)務(wù)復雜度較高的微服務(wù)劃分思路及方法,提出了實踐方案,通過此微服務(wù)劃分方式支持中海油智能油田系統(tǒng)的建設(shè),保證建設(shè)成果的可復用性,做到一次建設(shè),多處使用,可極大地降低投資與建設(shè)成本。