(南京熊貓漢達科技有限公司,南京 210004)
一個軟件應用系統,除了核心業務處理功能外,還需要一系列輔助的功能和服務作為支撐,以構成一個整體。比如,面向用戶的軟件,都需要提供用戶管理能力,包括用戶的增加/修改/刪除、用戶權限的設置、用戶登錄/操作的鑒權、用戶日志的記錄與審計等。
一個復雜的軟件應用系統,通常會由多個軟件系統或分系統組成,這些分系統之間通過接口交互,相互依賴,相互配合,共同完成整個應用系統的功能目標。這些軟件分系統的一些基礎功能和服務可以一體化設計和實現,也可以由分系統獨自設計和實現。
獨自設計和實現的缺點在于:一是分系統間缺少“共識”,所有數據共享需要全部依賴接口交互,為達成“共識”,需要做大量的數據傳輸和適配;二是不同的實現會導致標準不同、粒度不同、功能不同,復用度差;三是用戶使用時,往往需要對數據進行重復錄入、對用戶進行重復登錄、對流程進行重復管理,數據沖突和人工干預增加了系統故障率和維護成本。
為此本文提出了一種基于公共服務的衛星通信管理系統軟件體系架構設計。其具體設計分為以下幾步:一是詳細分析系統功能和性能需求,構建公共服務體系;二是軟件系統前端架構設計,完成前端功能及公共服務設計;三是軟甲系統后端架構設計,完成后端功能及公共服務設計;四是統一軟件架構設計,完成系統功能及公共服務設計。
衛星通信管理系統主要包括以下幾個分系統,如綜合顯控系統、站網管控系統、任務規劃系統、任務調度系統、資源管理系統、綜合服務系統、衛星測控系統等。根據以上軟件功能需求,抽象并分離出一些公共服務,包括:基礎數據服務、消息總線服務、數據訪問服務、安全管理服務、配置管理服務、運行維護管理服務、虛擬平臺管理服務。
基礎數據服務,提供對整個系統公共基礎數據的授權管理與訪問服務,基礎數據包含數據字典、隸屬關系、生產廠家、設備型號、站型型號、信道模塊、衛星載荷、波束信息等。
消息總線服務,為軟件系統提供系統間或系統內部即時消息的訂閱、發布和可靠交互等服務。
數據訪問服務,為軟件系統提供統一的數據庫讀取和寫入服務,對各系統屏蔽數據庫操作和庫表結構。
安全管理服務,為各軟件分系統提供統一的用戶管理、角色管理、權限管理、用戶操作鑒權、用戶日志記錄與監視、用戶日志查詢分析與審計、用戶日志備份等服務。
配置管理服務,為各軟件分系統提供統一的運行參數配置與管理服務,及時為軟件系統提供運行所需參數,以及實時通告配參數變更,提供各軟件分系統的零配置啟動運行能力。
運行維護管理服務,為軟件系統提供通用的軟件進程狀態與性能、網絡拓撲連接關系、網絡交換機運行狀態、硬件資源狀態與性能、軟件接口交互流量等監視和管理功能,提供通用的運行維護管理界面呈現,實現標準化的軟件系統運行維護管理服務。
虛擬平臺管理服務,為虛擬化平臺提供虛擬機的創建、配置和運行,虛擬機的監控和管理,以及虛擬機資源的擴充等功能。
傳統的前端架構,采用頁面進行業務處理和人機呈現,不同的頁面提供不同的功能,每個頁面根據需要建立事件通道和數據通道,根據頁面業務邏輯的需要,接收事件和傳送數據。傳統前端架構模型如圖1所示。

圖1 傳統前端架構模型示意圖
傳統前端架構模型,打開多個頁面,建立多個事件通道和數據通道,需要消耗更多的Web瀏覽器和服務器資源。
本文提出一種新的前端架構WebOS。該架構在一個頁面內,為用戶提供類操作系統桌面,以窗口的方式提供人機交互界面。該架構提供統一的事件總線和數據總線,作為橋梁,連接后臺Web服務器和前端各功能窗口,如圖2所示。
除了事件總線和數據總線外,WebOS還提供一些公共服務,包括:日志記錄、告警服務、對象共享、統一定時、桌面管理、訪問控制、快捷訪問等服務。
本文提出一種基于公共服務構建的通用后臺架構。在公共服務的基礎上,各應用系統只需關注和實現自己核心業務的功能,從而使整個系統獲得更強的可擴展性、更高的可靠性和效率、更好的用戶體驗。
這些公共的服務和模塊包括:安全管理服務、基礎數據服務、數據訪問服務、配置管理服務、運行維護管理服務、消息總線服務、前端數據處理服務、前端事件處理服務。
安全管理服務提供鑒權和日志功能;基礎數據服務提供基礎資源數據;配置管理服務為各分系統分發配置參數;消息總線服務為各應用系統提供公共、實時、可靠的消息分發;消息總線服務提供對所需信息的接收和分發;前端數據處理服務提供前端數據預處理和分發;前端事件處理服務提供前端事件預處理和分發。
在公共服務的支撐下,各分系統只需要實現一系列核心業務處理模塊,調用需要的公共服務完成相應的功能。
針對便于后續系統的擴展和維護需求,通過對現有模型需求的深入分析,對綜合顯控系統、站網管控系統、任務規劃系統、任務調度系統、資源管理系統軟件采用統一的軟件體系架構進行設計,即面向服務(SOA)的體系架構。各分系統在進行軟件設計時,根據系統資源和時間約束條件,進行定時、定量和規模分析,綜合考慮余量。考慮的具體關聯因素包括臨界時間、數據傳輸速率、CPU負載、內存資源、程序規模等。
WebOS前端架構模型和通用后端架構模型進行統一架構和設計,整合出統一的基于公共服務的衛星通信管理系統軟件架構,如圖3所示。
前端采用WebOS,統一提供事件總線、數據總線、日志記錄、告警服務、統一定時服務、桌面管理、訪問控制、快捷訪問等公用服務。
后端采用基于公用服務的架構,統一提供安全管理服務、基礎數據服務、數據訪問服務、配置管理服務、運行維護管理服務、消息總線服務、前端數據處理服務、前端事件處理服務等。

圖3 統一的基于公共服務的衛星通信管理系統軟件架構模型示意圖
目前,公司已經在多個衛星通信管理系統中采用基于公共服務的軟件體系架構,并且獲得了良好的實際效果。但是公共服務的構建是一個需要長期積累的過程,是一個用經驗固化資產的模型,后續公司將繼續在系統的開發中積極創新,構建更多、更好地公共服務模型,為后續衛星通信系統軟件體系架構設計提供優質的資產庫運用。