王 偉
(中海油能源發(fā)展股份有限公司工程技術(shù)分公司,天津 300000)
當前我國大力發(fā)展數(shù)字經(jīng)濟,推進數(shù)字產(chǎn)業(yè)化和產(chǎn)業(yè)數(shù)字化,推動數(shù)字經(jīng)濟和實體經(jīng)濟深度融合。為順應時代發(fā)展趨勢,構(gòu)建數(shù)字經(jīng)濟國家戰(zhàn)略框架,各行各業(yè)均在積極推進數(shù)字化轉(zhuǎn)型。近年來,石油石化行業(yè)各企業(yè)正加速推進數(shù)字化轉(zhuǎn)型,為此,G公司提出建設(shè)融合服務平臺,優(yōu)化業(yè)務流程,整合已有系統(tǒng),推動實現(xiàn)生產(chǎn)經(jīng)營管理一體化目標[1]。
G公司已有信息系統(tǒng)呈煙囪式模式建設(shè),核心功能重復建設(shè)問題嚴重,數(shù)據(jù)分散,標準不統(tǒng)一,很難發(fā)揮有效的數(shù)據(jù)價值?!捌脚_化戰(zhàn)略”為公司信息化的深入發(fā)展提供了新的解決思路[2-4]。面向公共服務的中間件,是一種能夠提供可靠、高效的服務共享機制的軟件。本文將平臺作為公共服務能力的提供方,將各個業(yè)務系統(tǒng)作為服務的使用方,中間件系統(tǒng)將提供方的服務完成一層封裝,使用方按照接口規(guī)則完成調(diào)用,實現(xiàn)相應業(yè)務邏輯功能。
基于實際軟件系統(tǒng)開發(fā)需要,本文設(shè)計了一款輕量級的中間件,并基于Spring Boot完成一套后臺管理控制系統(tǒng)的開發(fā),實現(xiàn)對應用和服務的可視化管理,并將成果應用到實際業(yè)務系統(tǒng)的開發(fā)中[5]。圖1為應用代理中心在各系統(tǒng)間所處的位置,即應用系統(tǒng)的下層、公共服務的上層,總的作用是為處于自己上層的應用軟件提供運行與開發(fā)的環(huán)境,幫助用戶靈活、高效地開發(fā)和集成復雜的應用軟件。
圖1 應用代理中心在各系統(tǒng)間所處的位置
企業(yè)數(shù)字化轉(zhuǎn)型以信息整合、統(tǒng)一認證、統(tǒng)一流程引擎、安全效率為基礎(chǔ)。傳統(tǒng)信息化建設(shè)方式以縱向業(yè)務為主線,一套業(yè)務一套系統(tǒng)的構(gòu)建方式導致每套系統(tǒng)單獨存儲一套用戶、組織、權(quán)限信息,系統(tǒng)權(quán)限回收困難,因此統(tǒng)一用戶和統(tǒng)一權(quán)限的需求應運而生。
大應用為各子系統(tǒng)的建設(shè)提供了一系列公共服務,為了實現(xiàn)公共服務的快速對接,提高組件使用效率,應用代理中心作為中間層,與大應用平臺提供的公共服務接口進行一次對接,并二次封裝成API接口供其他客戶端使用,各客戶端節(jié)省了重復與公共服務接口進行對接的工作,實現(xiàn)了大應用與子系統(tǒng)間的高效聯(lián)通。
微服務架構(gòu)可以將應用按照業(yè)務功能拆分成多個服務,每個服務都可以獨立部署和擴展,提高了系統(tǒng)的可維護性和可擴展性。應用代理中心可以通過負載均衡、動態(tài)路由等機制,實現(xiàn)對微服務的統(tǒng)一管理和控制,提高了系統(tǒng)的穩(wěn)定性和安全性。應用開源的微服務框架Spring Cloud實現(xiàn)應用代理中心的設(shè)計和實現(xiàn),可以降低開發(fā)和維護成本。
本系統(tǒng)的主要功能包含管理員授權(quán)、資源管理、客戶端應用管理和日志查詢。管理員可以通過系統(tǒng)對用戶進行授權(quán)管理,包括用戶的角色、權(quán)限和資源等;對資源進行管理,包括微服務、API、數(shù)據(jù)庫等;對客戶端應用進行管理,包括應用的名稱、描述、API訪問權(quán)限等;對操作日志和異常日志進行查詢和分析,從而發(fā)現(xiàn)和解決問題。
應用代理中心需要具有可伸縮性,能夠根據(jù)業(yè)務需求動態(tài)擴展和縮小運行實例,以適應高并發(fā)和大流量的業(yè)務場景;具有高可靠性,能夠在微服務出現(xiàn)故障或異常時自動切換到備用實例,保證系統(tǒng)的連續(xù)性和穩(wěn)定性;具有高性能,能夠處理大量的請求和響應,以及支持高并發(fā)的業(yè)務場景;具有可監(jiān)控性,能夠?qū)崟r監(jiān)控微服務的運行狀態(tài)和性能指標,以便進行故障排查和性能優(yōu)化;具有可擴展性,能夠支持多種微服務框架和編程語言,以及適應不同的業(yè)務需求和場景。
本系統(tǒng)基于Spring Cloud微服務架構(gòu),采用前后端分離模式進行系統(tǒng)功能開發(fā)、部署和運維[1-3]。前端采用Nginx、Vue.js開發(fā)技術(shù),后端采用微服務網(wǎng)關(guān)、Spring Boot、Apache Boot、JWT、Feign技術(shù),數(shù)據(jù)庫選用Redis和Mysql。Eureka作為微服務的注冊發(fā)現(xiàn)組件,Gateway作為網(wǎng)關(guān)服務,用來實現(xiàn)授權(quán)管理、訪問控制和流量限制,是系統(tǒng)的唯一出口;Fegin通過Hystrix依賴,實現(xiàn)在微服務出現(xiàn)異常時及時熔斷,觸發(fā)調(diào)用方的異常處理流程,有效防止調(diào)用方發(fā)生異常。
從需求分析可以看出,本系統(tǒng)存在以下幾個實體:
1)用戶實體:用戶ID、用戶名、賬號、密碼、郵箱、電話、職務、單位名稱。表1是對用戶實體的表結(jié)構(gòu)信息說明。
表1 用戶信息表
2)公共服務資源實體:資源ID、資源名稱、描述、狀態(tài)、apiID、api名稱、api文件、api主機地址。
3)客戶端應用實體:客戶端ID、名稱、生效時間、應用憑證狀態(tài)、應用路徑、資源名稱。
4)日志實體:日志ID、類型、操作用戶ID、操作用戶名稱、操作用戶IP地址、訪問請求路徑、訪問請求參數(shù)、操作時間、操作內(nèi)容。
應用代理中心圍繞核心目標設(shè)計四大功能,分別為管理員授權(quán)、資源管理、客戶端應用管理和日志查詢功能,整體應用界面如圖2所示。
圖2 應用代理中心應用界面
2.4.1 管理員授權(quán)模塊
應用代理中心允許存在多個管理員,并支持對管理員的添加和移除操作。管理員擁有對資源增刪改查的權(quán)限、對客戶端管理的權(quán)限以及日志查詢的權(quán)限。
2.4.2 資源管理模塊
資源管理界面以列表的形式展示注冊到應用代理中心的公共服務資源,管理員可以在此模塊中對已發(fā)布的資源進行普通的增刪改查操作,同時也可以啟用、停用或在線更新資源。管理員在添加新資源時需包括七方面信息:1)名稱,是資源在系統(tǒng)內(nèi)的唯一標識(必填);2)描述,是對資源功能的簡要概述;3)api名稱,是對資源接口的命名;4)api文件,是對資源接口的描述文件,首次添加時需要以jar包形式發(fā)布,二次發(fā)布時,可用“api數(shù)據(jù)”空間直接上傳;5)api主機,是資源發(fā)布后的地址;6)api數(shù)據(jù),更新api文件時,僅需上傳jason文件即可實時發(fā)布更新;7)激活,控制資源是否處于可用狀態(tài)(默認是打開狀態(tài))。
2.4.3 客戶端應用管理模塊
客戶端管理界面以表格的形式展示已在應用代理中心注冊的客戶端應用,管理員可以在此模塊中對客戶端進行普通的增刪改查操作,同時可以為客戶端配置相應的資源及應用憑證。
1)添加客戶端應用,包括客戶端名稱和生效時間。
2)編輯客戶端應用,包括編輯基礎(chǔ)信息、編輯應用憑證、編輯資源綁定。具體如下:(1)基礎(chǔ)信息編輯,包括名稱、簡介、應用、自動認證、生效時間、信任、資源和應用重定向地址8個方面;(2)應用憑證編輯,客戶端擁有合法身份才能使用應用代理中心提供的接口服務,處于信任狀態(tài)的客戶端AppSecret為激活狀態(tài),處于非信任狀態(tài)的客戶端在請求資源時需攜帶AppSecret的value值作為憑證;(3)資源綁定編輯,客戶端在使用公共資源時,只需在界面上拖拽相關(guān)資源綁定到客戶端下,即可實現(xiàn)資源的應用。
3)刪除客戶端應用,允許管理員對客戶端進行刪除操作。
2.4.4 日志查詢模塊
日志查詢界面以列表的形式展示當前系統(tǒng)記錄的所有日志,提供時間和類型兩個維度的檢索,可以方便快速地檢索出需要的日志信息。
基于微服務架構(gòu)開發(fā)的應用代理中心,通過對大應用提供的公共服務接口進行封裝,并提供可視化的操作界面,為系統(tǒng)研發(fā)人員提供了快速開發(fā)的能力。對大應用無須重復向下對接,應用代理中心提供技術(shù)支持以完成公共服務的應用;對各客戶端無須了解對接過程,只要直接調(diào)用應用代理中心對接后的成果即可,省去了不必要的開發(fā)工作。
隨著技術(shù)升級、功能優(yōu)化以及新功能的迭代,只需應用代理中心一個節(jié)點的變動,即可實現(xiàn)功能的快速拓展,極大地提高了開發(fā)效率及開發(fā)質(zhì)量。
充分利用數(shù)字技術(shù),實現(xiàn)與業(yè)務的深度融合,在數(shù)字化轉(zhuǎn)換、數(shù)字化升級的基礎(chǔ)上,進一步觸及公司核心業(yè)務,構(gòu)建新的商務模式,有利于實現(xiàn)高層次轉(zhuǎn)型。數(shù)字化是數(shù)字化轉(zhuǎn)型的重要手段,本文設(shè)計研發(fā)的應用代理中心,服務于系統(tǒng)研發(fā)人員,目的在于降低客戶端調(diào)用公共服務的溝通成本,降低重復開發(fā)帶來的成本多次投入,提高研發(fā)工作效率,提升研發(fā)人員業(yè)務專注度,助力企業(yè)數(shù)字化轉(zhuǎn)型。