馮 陽,張國強
(1.中國電子科技集團公司第五十四研究所,河北 石家莊 050081; 2.陸軍航空兵軍代局,北京 100010)
隨著航天及對地觀測技術的發展,人們對航天對地觀測衛星應用的需求越來越高。對地觀測衛星利用其攜帶的有效載荷在對目標實施觀測、獲取目標信息數據后,需要及時、有效地將數據下傳至地面站,以供用戶使用。根據衛星數據下傳計劃合理有序地安排調度多地點、多臺套地面接收設備完成衛星數據接收任務,是衛星數據接收調度系統的基本職能。文獻[1-2]論述了衛星數據接收調度系統,經過分析發現傳統的衛星數據接收任務調度系統通常在進行設計時,應用模塊之間直接調用,中間沒有其他邏輯控制。這種設計不能滿足衛星數據接收任務調度系統衛星持續增加、業務多變的系統要求。
隨著衛星后續發射和在軌運行數量的不斷增加、地面接收站等基礎設施建設的不斷擴充,設計一個能夠適應未來衛星、接收站、數據接收與轉發的持續擴展的衛星數據接收調度系統成為一個亟待解決的工程問題。本文設計了一種基于工作流技術的遙感衛星數據接收調度系統,通過工作流引擎驅動系統的各業務模塊的銜接,所有的業務分支邏輯判斷均通過工作流,從而達到系統的可擴展性。
衛星地面接收系統主要完成衛星的捕獲跟蹤和數傳數據的接收、解調、解密、解壓、解擾、記錄和轉發等任務[3]。衛星地面接收系統主要包括衛星數據接收調度系統、數據接收站網系統和數據傳輸系統[4]。
衛星數據接收調度系統主要負責接收衛星數據下傳計劃,規劃地面接收系統資源,根據數據下傳計劃制定數據接收與記錄任務、數據傳輸任務,管理調度地面數據接收系統的接收資源,完成衛星數據獲取、傳輸任務,保障衛星地面接收系統的統一協調、穩定和高效運行[5]。數據接收站網系統根據數據下傳與記錄任務,負責衛星下傳數據的接收、記錄、快視處理和顯示等;數據傳輸系統根據數傳任務,調配傳輸和網絡資源,管理數傳隊列作業,完成衛星原始數據從數據接收站網系統到衛星地面處理系統的傳輸。
衛星數據接收調度系統根據獲取的衛星數據下傳計劃進行任務規劃、決策,調度數據接收站網系統的各接收站和數據傳輸系統,完成衛星數據接收、傳輸的作業調度過程[6]。衛星數據接收與傳輸作業調度流程主要包括:
① 獲取衛星業主方管理控制系統的衛星數據下傳計劃,進行存儲和解析處理,生成并反饋衛星數據下傳計劃回執[7];
② 依據業務規則如衛星軌道[8]及載荷能力、數據接收站設備資源等約束,面向設定時段的多星、多站、多任務綜合目標優化需求,采用調度策略和算法對衛星數據下傳計劃進行規劃安排[9],生成滿足計劃任務要求的接收傳輸任務規劃方案,制定各項作業任務;
③ 制定數據接收與記錄任務、數據傳輸任務,分別發送給數據接收站網系統的各接收站、數據傳輸系統[10];
④ 數據接收站網系統各接收站執行接收衛星下傳數據,并實時將衛星原始數據和快視數據轉發數據傳輸系統[11];
⑤ 數據傳輸系統根據數傳任務將衛星原始數據傳輸到衛星地面處理系統[12];
⑥ 數據接收系統和傳輸系統在執行過程中,及時報告任務執行情況給衛星數據接收調度系統。
傳統的衛星數據接收任務調度系統通常是一臺個人計算機作客戶機使用,另外一臺服務器用于存放后臺的數據庫系統。應用程序與數據庫系統直接相連,中間沒有其他邏輯[13]。這種方式有一個很大的缺點,就是一旦系統的業務邏輯有所改變,例如新的衛星發射需要衛星數據接收業務保證,所有程序模塊都需要重新修改、編譯和鏈接,工作量相當大。這種設計不僅不能符合衛星數據接收任務調度系統衛星持續增加、業務多變的系統要求,而且開發效率較為低下,系統維護性差,嚴重制約了衛星地面數據接收任務調度系統的可靠性、穩定性和可擴展性[14]。
工作流的概念最早起源于生產組織和辦公自動化領域,其中涉及的主要問題就是過程的自動化。經過一系列的約定,在參與者之間進行信息、文檔或者任務的傳遞,從而達成既定目標。工作流管理聯盟對工作流與工作流管理系統的定義是:工作流是一類能夠完全或者部分自動執行的業務過程,根據一系列程序規則、文檔、信息或任務能夠在不同的執行者之間進行傳遞與執行。
工作流管理聯盟定義了工作流最基本的術語,包括工作流(Workflow)、業務過程(Business Process)、工作流管理系統、活動、自動活動(Automated Activites)、人工活動(Manual Activities)、過程定義(Process Definition)、 實 例(Instances/Cases)、過程實例(Process Instances)、活動實例(Activity Instances)以及工作流參與者(Workflow Participant)等[15]。基本概念之間的關系如圖1所示。

圖1 工作流基本概念之間的關系
插件通過宿主程序、業務插件和插件接口實現正常運作。其中宿主程序負責啟動整個系統,實現系統所需插件加載、卸載和調用等管理[16]。
業務插件能夠動態地插入到系統中,多個業務插件集成在一起實現復雜業務的處理。業務插件需要向宿主程序提供調用接口,當宿主程序需要調用業務插件時能夠找到這個接口,實現與宿主程序的信息交互,使得宿主程序能夠得到業務插件的相關信息[17]。
插件技術的優點:易修改,可維護性強;結構清晰,相互獨立;結構容易調整;可移植性強;耦合度低[18]。基于這些優點,系統采用插件技術進行設計開發,可提高系統軟件復用性、模塊化、封裝性和可擴展性,同時降低軟件開發成本。
由于系統需要完成對多類多顆衛星數據接收傳輸任務調度,并需具備對未來衛星的擴展接口,因此不再是“一星一系統”建設,需要具有良好的可擴展性,滿足接收傳輸資源統一分配、任務統一控制、接口和流程統一設計的要求,兼顧未來衛星接收資源管控的任務需求特點。
系統總體架構基于平臺插件技術、采用工作流技術進行業務流程建模、依托工作流引擎驅動業務流程調度。對主要業務邏輯進行拆解封裝,當流程邏輯發生變化時,通過重新定義和配置而無需編程以適應變化的業務過程,大大提高流程自動化和流程再造的能力。
構建面向服務的工作流體系架構,將業務功能以“粗粒度”服務的形式實現,使得流程設計同時具備靈活性和可管理性。通過統一定制的工作流引擎,按照預先定義好的規則和過程,結合具體的軟件實現和運行環境,以服務綁定的方式按照一定邏輯關系推動系統業務功能執行,并對業務流程進行跟蹤和監視。
① 對系統工作流程進行分解,基于業務處理邏輯相關性,將流程“粗粒度”劃分為衛星接收計劃管理、接收任務管理、傳輸任務管理、歸檔任務管理、質量監測任務管理和衛星軌道根數管理等主要流程。
② 對上述分解的流程進行設計,劃分到若干節點,這些節點所表示的業務功能,最終以“粗粒度”服務的形式實現。
③ 在完成業務工作流流程設計后,進行工作流建模。
工作流模型是對工作流業務活動的抽象描述,它描述了工作流服務軟件執行過程所需的所有信息。通過工作流中間件提供的過程定義工具完成工作流建模工作,適應未來衛星的擴展,只需增加新增衛星的擴展處理模塊,在工作流中進行相應配置即可,同時減少軟件邏輯判讀處理復雜度,由工作流引擎依據工作流模型配置驅動軟件完成工作流程。
在完成工作流程分解與設計后,形成了若干節點,這些節點需要以“粗粒度”服務的形式實現,才能被工作流引擎管理調度。在進行相關軟件功能模塊開發后,以服務的形式對功能模塊進行封裝。
由于工作流技術的核心功能是維護業務流程的建模和運行,它本身不提供通信手段,應用層只能提供API調用方式與之進行通信。由于衛星數據接收任務調度系統中各模塊部署在不同臺位,無法與工作流引擎進行API通信,所以在工作流引擎外部布署一個Webservice服務將涉及業務需要的工作流功能進行封裝,對應用層提供統一的遠程訪問接口。在工作流引擎運行過程中會涉及應用層的部分插件,為了能夠及時通知插件,需要插件也將接收消息的接口統一封裝為Webservice服務[19]。當流程運轉到某個節點時工作流能立即通知相關插件的接口。在業務層一方由于各插件既有主動與工作流通信的需求也有被動接收消息的需要,通過統一開發獨立的代理插件可簡化各插件的工作流通信工作,也封裝了與工作流通信的細節信息,降低耦合度。
在工作流管理系統通過對工作流模型實例化和統一的面向服務的接口定義完成對整個流程服務的部署。
業務流程中各個業務節點與工作流引擎保持實時狀態通信,上報流程執行狀態,工作流引擎根據流程建模時定義數據流轉規則和調用關系驅動業務流程的執行。流程狀態以消息方式在各服務與工作流引擎之間傳遞,以可靠的服務間消息通信方式,確保數據傳輸的正確性和及時性。
根據衛星個性特點開發獨立處理插件,在工作流模型中配置各個插件的運行流程。工作流負責通知和收集各插件的任務和結果。各類插件提供統一的Webservice接口保持一致性,當出現業務變化時只需刪除舊插件、替換新插件即可,以保證整個系統在運行過程中功能模塊無縫替換。
以衛星數據下傳計劃處理流程為例,由于涉及到國內外10多個衛星機構的30多顆衛星,而且衛星的擴充很頻繁,每個衛星機構、每顆衛星的數據下傳計劃的格式、頻度、處理邏輯和后續計劃反饋流程等均不同,所以衛星下傳計劃格式解析需要可擴展,按照衛星分解成多個處理節點進行解析。
在進行工作流設計時,接收到相應衛星數據下傳計劃后,通過后置條件驅動,完成各衛星接收計劃的解析插件,首先在工作流模型中建立已有各衛星工作流程如圖2所示,其中的一個節點對應一個插件。數據傳輸模塊接收衛星地面管控系統發送的數據下傳計劃后啟動工作流,根據軟件提交的數據自動選擇對應的衛星流程分支,通知相應的解析插件,調用其公布的Webservice接口。解析插件處理完成后再將解析結果通過工作流代理插件提交工作流,工作流再根據提交的數據選擇分支,如果成功則調用衛星計劃處理分析插件公布的Webservice接口。
新增衛星接收計劃處理能力有需求時,如圖2中虛線框所示,只需按照標準規范新研具體衛星接收計劃解析插件、衛星接收計劃處理分析插件等,關聯到工作流模型中,即可以完成新增衛星接收計劃自動處理流程。這樣的開發方式,對于系統的升級改造,只需要增加相應的功能模塊,添加到工作流模型中,業務邏輯的判斷、分支處理都由工作流模型來調度,不修改原有軟件模塊、插件,剝離系統耦合度,極大地提高了系統的可擴展性,減少了系統升級改造的工作量。由于不修改原有軟件模塊,不會影響原有系統功能運行,可以提高系統的可靠性[20]。

圖2 任務調度工作流模型設計示例
本文采用工作流技術,基于插件開發方法進行衛星數據接收調度系統的設計,提供了一種基于OSGI和工作流的衛星數據接收任務調度系統的設計實現方法,使系統具備了模塊化與插件化支持、熱插拔與動態支持、面向服務架構支持和模塊擴展性支持等能力,使系統具有靈活性、敏捷反應能力和良好的可擴展能力等特點。一方面可以充分利用現有任務調度系統能力,保障原有業務功能不受影響;另一方面快速搭建新的系統能力,為新增衛星和地面接收站提供數據接收調度能力。
本文主要針對當前主流地面系統進行設計,但隨著衛星地面系統的發展,還存在一定局限性,在對未來海外站任務調度的支持、未來測控任務調度的支持等方面還需要進行深入研究和改進。