(南京熊貓漢達科技有限公司,南京 210004)
一個軟件應(yīng)用系統(tǒng),除了核心業(yè)務(wù)處理功能外,還需要一系列輔助的功能和服務(wù)作為支撐,以構(gòu)成一個整體。比如,面向用戶的軟件,都需要提供用戶管理能力,包括用戶的增加/修改/刪除、用戶權(quán)限的設(shè)置、用戶登錄/操作的鑒權(quán)、用戶日志的記錄與審計等。
一個復雜的軟件應(yīng)用系統(tǒng),通常會由多個軟件系統(tǒng)或分系統(tǒng)組成,這些分系統(tǒng)之間通過接口交互,相互依賴,相互配合,共同完成整個應(yīng)用系統(tǒng)的功能目標。這些軟件分系統(tǒng)的一些基礎(chǔ)功能和服務(wù)可以一體化設(shè)計和實現(xiàn),也可以由分系統(tǒng)獨自設(shè)計和實現(xiàn)。
獨自設(shè)計和實現(xiàn)的缺點在于:一是分系統(tǒng)間缺少“共識”,所有數(shù)據(jù)共享需要全部依賴接口交互,為達成“共識”,需要做大量的數(shù)據(jù)傳輸和適配;二是不同的實現(xiàn)會導致標準不同、粒度不同、功能不同,復用度差;三是用戶使用時,往往需要對數(shù)據(jù)進行重復錄入、對用戶進行重復登錄、對流程進行重復管理,數(shù)據(jù)沖突和人工干預增加了系統(tǒng)故障率和維護成本。
為此本文提出了一種基于公共服務(wù)的衛(wèi)星通信管理系統(tǒng)軟件體系架構(gòu)設(shè)計。其具體設(shè)計分為以下幾步:一是詳細分析系統(tǒng)功能和性能需求,構(gòu)建公共服務(wù)體系;二是軟件系統(tǒng)前端架構(gòu)設(shè)計,完成前端功能及公共服務(wù)設(shè)計;三是軟甲系統(tǒng)后端架構(gòu)設(shè)計,完成后端功能及公共服務(wù)設(shè)計;四是統(tǒng)一軟件架構(gòu)設(shè)計,完成系統(tǒng)功能及公共服務(wù)設(shè)計。
衛(wèi)星通信管理系統(tǒng)主要包括以下幾個分系統(tǒng),如綜合顯控系統(tǒng)、站網(wǎng)管控系統(tǒng)、任務(wù)規(guī)劃系統(tǒng)、任務(wù)調(diào)度系統(tǒng)、資源管理系統(tǒng)、綜合服務(wù)系統(tǒng)、衛(wèi)星測控系統(tǒng)等。根據(jù)以上軟件功能需求,抽象并分離出一些公共服務(wù),包括:基礎(chǔ)數(shù)據(jù)服務(wù)、消息總線服務(wù)、數(shù)據(jù)訪問服務(wù)、安全管理服務(wù)、配置管理服務(wù)、運行維護管理服務(wù)、虛擬平臺管理服務(wù)。
基礎(chǔ)數(shù)據(jù)服務(wù),提供對整個系統(tǒng)公共基礎(chǔ)數(shù)據(jù)的授權(quán)管理與訪問服務(wù),基礎(chǔ)數(shù)據(jù)包含數(shù)據(jù)字典、隸屬關(guān)系、生產(chǎn)廠家、設(shè)備型號、站型型號、信道模塊、衛(wèi)星載荷、波束信息等。
消息總線服務(wù),為軟件系統(tǒng)提供系統(tǒng)間或系統(tǒng)內(nèi)部即時消息的訂閱、發(fā)布和可靠交互等服務(wù)。
數(shù)據(jù)訪問服務(wù),為軟件系統(tǒng)提供統(tǒng)一的數(shù)據(jù)庫讀取和寫入服務(wù),對各系統(tǒng)屏蔽數(shù)據(jù)庫操作和庫表結(jié)構(gòu)。
安全管理服務(wù),為各軟件分系統(tǒng)提供統(tǒng)一的用戶管理、角色管理、權(quán)限管理、用戶操作鑒權(quán)、用戶日志記錄與監(jiān)視、用戶日志查詢分析與審計、用戶日志備份等服務(wù)。
配置管理服務(wù),為各軟件分系統(tǒng)提供統(tǒng)一的運行參數(shù)配置與管理服務(wù),及時為軟件系統(tǒng)提供運行所需參數(shù),以及實時通告配參數(shù)變更,提供各軟件分系統(tǒng)的零配置啟動運行能力。
運行維護管理服務(wù),為軟件系統(tǒng)提供通用的軟件進程狀態(tài)與性能、網(wǎng)絡(luò)拓撲連接關(guān)系、網(wǎng)絡(luò)交換機運行狀態(tài)、硬件資源狀態(tài)與性能、軟件接口交互流量等監(jiān)視和管理功能,提供通用的運行維護管理界面呈現(xiàn),實現(xiàn)標準化的軟件系統(tǒng)運行維護管理服務(wù)。
虛擬平臺管理服務(wù),為虛擬化平臺提供虛擬機的創(chuàng)建、配置和運行,虛擬機的監(jiān)控和管理,以及虛擬機資源的擴充等功能。
傳統(tǒng)的前端架構(gòu),采用頁面進行業(yè)務(wù)處理和人機呈現(xiàn),不同的頁面提供不同的功能,每個頁面根據(jù)需要建立事件通道和數(shù)據(jù)通道,根據(jù)頁面業(yè)務(wù)邏輯的需要,接收事件和傳送數(shù)據(jù)。傳統(tǒng)前端架構(gòu)模型如圖1所示。
圖1 傳統(tǒng)前端架構(gòu)模型示意圖
傳統(tǒng)前端架構(gòu)模型,打開多個頁面,建立多個事件通道和數(shù)據(jù)通道,需要消耗更多的Web瀏覽器和服務(wù)器資源。
本文提出一種新的前端架構(gòu)WebOS。該架構(gòu)在一個頁面內(nèi),為用戶提供類操作系統(tǒng)桌面,以窗口的方式提供人機交互界面。該架構(gòu)提供統(tǒng)一的事件總線和數(shù)據(jù)總線,作為橋梁,連接后臺Web服務(wù)器和前端各功能窗口,如圖2所示。
除了事件總線和數(shù)據(jù)總線外,WebOS還提供一些公共服務(wù),包括:日志記錄、告警服務(wù)、對象共享、統(tǒng)一定時、桌面管理、訪問控制、快捷訪問等服務(wù)。
本文提出一種基于公共服務(wù)構(gòu)建的通用后臺架構(gòu)。在公共服務(wù)的基礎(chǔ)上,各應(yīng)用系統(tǒng)只需關(guān)注和實現(xiàn)自己核心業(yè)務(wù)的功能,從而使整個系統(tǒng)獲得更強的可擴展性、更高的可靠性和效率、更好的用戶體驗。
這些公共的服務(wù)和模塊包括:安全管理服務(wù)、基礎(chǔ)數(shù)據(jù)服務(wù)、數(shù)據(jù)訪問服務(wù)、配置管理服務(wù)、運行維護管理服務(wù)、消息總線服務(wù)、前端數(shù)據(jù)處理服務(wù)、前端事件處理服務(wù)。
安全管理服務(wù)提供鑒權(quán)和日志功能;基礎(chǔ)數(shù)據(jù)服務(wù)提供基礎(chǔ)資源數(shù)據(jù);配置管理服務(wù)為各分系統(tǒng)分發(fā)配置參數(shù);消息總線服務(wù)為各應(yīng)用系統(tǒng)提供公共、實時、可靠的消息分發(fā);消息總線服務(wù)提供對所需信息的接收和分發(fā);前端數(shù)據(jù)處理服務(wù)提供前端數(shù)據(jù)預處理和分發(fā);前端事件處理服務(wù)提供前端事件預處理和分發(fā)。
在公共服務(wù)的支撐下,各分系統(tǒng)只需要實現(xiàn)一系列核心業(yè)務(wù)處理模塊,調(diào)用需要的公共服務(wù)完成相應(yīng)的功能。
針對便于后續(xù)系統(tǒng)的擴展和維護需求,通過對現(xiàn)有模型需求的深入分析,對綜合顯控系統(tǒng)、站網(wǎng)管控系統(tǒng)、任務(wù)規(guī)劃系統(tǒng)、任務(wù)調(diào)度系統(tǒng)、資源管理系統(tǒng)軟件采用統(tǒng)一的軟件體系架構(gòu)進行設(shè)計,即面向服務(wù)(SOA)的體系架構(gòu)。各分系統(tǒng)在進行軟件設(shè)計時,根據(jù)系統(tǒng)資源和時間約束條件,進行定時、定量和規(guī)模分析,綜合考慮余量??紤]的具體關(guān)聯(lián)因素包括臨界時間、數(shù)據(jù)傳輸速率、CPU負載、內(nèi)存資源、程序規(guī)模等。
WebOS前端架構(gòu)模型和通用后端架構(gòu)模型進行統(tǒng)一架構(gòu)和設(shè)計,整合出統(tǒng)一的基于公共服務(wù)的衛(wèi)星通信管理系統(tǒng)軟件架構(gòu),如圖3所示。
前端采用WebOS,統(tǒng)一提供事件總線、數(shù)據(jù)總線、日志記錄、告警服務(wù)、統(tǒng)一定時服務(wù)、桌面管理、訪問控制、快捷訪問等公用服務(wù)。
后端采用基于公用服務(wù)的架構(gòu),統(tǒng)一提供安全管理服務(wù)、基礎(chǔ)數(shù)據(jù)服務(wù)、數(shù)據(jù)訪問服務(wù)、配置管理服務(wù)、運行維護管理服務(wù)、消息總線服務(wù)、前端數(shù)據(jù)處理服務(wù)、前端事件處理服務(wù)等。
圖3 統(tǒng)一的基于公共服務(wù)的衛(wèi)星通信管理系統(tǒng)軟件架構(gòu)模型示意圖
目前,公司已經(jīng)在多個衛(wèi)星通信管理系統(tǒng)中采用基于公共服務(wù)的軟件體系架構(gòu),并且獲得了良好的實際效果。但是公共服務(wù)的構(gòu)建是一個需要長期積累的過程,是一個用經(jīng)驗固化資產(chǎn)的模型,后續(xù)公司將繼續(xù)在系統(tǒng)的開發(fā)中積極創(chuàng)新,構(gòu)建更多、更好地公共服務(wù)模型,為后續(xù)衛(wèi)星通信系統(tǒng)軟件體系架構(gòu)設(shè)計提供優(yōu)質(zhì)的資產(chǎn)庫運用。