馬英哲
摘要:通過對各類衛星數據產品生產特點的分析,抽取了不同種類衛星產品生產調度業務的共同點,提出了建設一種采用三級調度組織結構的產品生產調度平臺思想,基于Agent思想設計了平臺運行架構,并以隊列管理調度為核心進行了Agent結構設計,通過對各種調度策略的優劣分析,為各Agent分配了合理的調度策略,通過實例驗證了平臺設計的可行性。
關鍵詞:Agent;產品生產調度平臺;隊列管理;調度策略
中圖分類號:TP309.3文獻標志碼:A文章編號:1008-1739(2021)21-56-4

0引言
衛星數據通過地面接收站從衛星傳輸到地面之后,地面系統需要對接收的數據進行處理。由于數據量和用戶需求大,地面系統往往需要一套生產調度系統完成各類數據的生產協調任務。隨著我國衛星種類和數量的不斷增多,設計一套能夠使用各種衛星的產品生產調度平臺,能夠很好地節約研制成本并提高研發效率。在平臺中引入Agent設計理念[1],能夠對衛星數據產品的生產過程實現無人值守的自動化的決策調度,并最大限度地提高系統資源的利用率和產品生產的效率,增強系統的擴展性。
1產品生產調度平臺
無論是遙感衛星、偵察衛星、氣象衛星、試驗衛星或科學衛星,幾乎所有衛星都需要通過地面接收站將星上產生的數據下傳至地面,然后通過地面系統對星上數據進行處理,最終得到各級數據產品。產品生產調度平臺是地面系統數據處理的調度中樞,如圖1所示。負責對各類不同衛星的數據進行分類,接收各衛星用戶提出的產品生產請求,根據不同衛星不同產品的生產流程調度各衛星各級產品的生產。

2平臺架構與調度策略
2.1平臺組織結構
產品生產調度平臺是一個集流程管理和隊列管理的自動化調度平臺,分為三級調度,如圖2所示,分別為生產請求調度、生產任務調度和生產作業調度。

①生產請求調度:對大量產品生產請求進行分解與合并,構成生產任務隊列。
②生產任務調度:針對生產任務創建生產流程實例,根據流程的流向與分支下達不同的生產作業。
③生產作業調度:采用隊列管理的方式,根據作業的優先級、每種作業的負載要求、剩余生產資源狀況等要素,對作業進行合理分配,調度作業的執行,保證整體作業的效率和資源的充分利用。
此外,與調度平臺配套使用的監控UI,完成應急生產請求的提交、生產流程、資源和隊列狀態的監控。
2.2平臺運行架構
產品生產調度平臺基于Agent思想,構建通用化流程調度Agent以及可擴展的隊列管理Agent,并結合智能的業務調度Agent,共同組建支持多星多產品的通用產品生產調度平臺。
根據三級調度的設計思想進行架構設計,平臺運行架構如圖3所示,一級調度為業務調度Agent,采用智能算法進行大量生產請求的分解與沖突合并,優化生產任務隊列。
生產任務下發至二級調度,即流程調度Agent。流程調度Agent根據任務的要求創建各個產品的生產流程實例,為每個流程步驟創建生產作業,完成各產品各生產步驟的并行調度。生產作業下發至三級調度。
三級調度由隊列管理[3]Agent組負責,一共包含6個 Agent,根據作業所處的階段及狀態劃分為等待隊列管理Agent、調度隊列管理Agent、處理隊列管理Agent、取消隊列管理Agent、異常隊列管理Agent和完成隊列管理Agent。它們行使各自隊列內作業的調度的權力,將待調度的作業依據作業流水線推至下一作業隊列。所有Agent均由隊列管理Agent擴展能力形成。

隊列管理Agent由環境感知模塊、執行模塊、通信模塊、信息處理模塊、決策與控制模塊、信息庫以及知識庫和作業隊列組成,如圖4所示。

①環境感知模塊、執行模塊負責與系統環境進行交互。
②通信模塊負責檢查消息的語法格式,完成Agent內部消息與外部消息格式的轉換,同時負責與其他Agent的信息交互。完成隊列存儲該Agent所要完成的任務,信息處理模塊負責對感知和接收的信息進行初步加工、處理和存儲。
③決策與智能控制模塊是賦予Agent職能的關鍵部件,運用知識庫中的知識對信息處理模塊處理所得到的外部環境信息進行算法調度,并與其他Agent的信息進行進一步的協商,為進一步的通信或從作業隊列中選擇適當的作業供執行模塊執行做出合理的決策。
④信息庫存儲該Agent的ID、名稱及地址等基本信息。
⑤能力列表描述Agent可以處理的消息類型及解決某問題的能力和水平。三級調度的各Agent根據各自的能力進行能力列表配置、知識庫的選擇、執行模塊和環境感知模塊的擴展。
2.3平臺調度策略
Agent的決策與智能調度模塊中包含著一定的調度策略。由于各Agent任務類型不一,在處理過程中占用的資源、處理時間等調度因素各異,因此每個Agent的任務調度可以采用不同的調度策略。這些策略均保存在知識庫中,由Agent根據自身需求選擇合適的策略進行調度。該平臺采用了以下8種基本調度策略。
①先進先出:最簡單也是最明顯的調度策略,適用于任務量小且資源豐富的調度單元,或者對任務隊列排序無特殊要求的調度單元。
②短時間作業優先:以作業占用系統資源的時間長短為依據進行作業調度。
③First Fit:根據作業到達作業隊列的順序掃描作業隊列中的作業,執行第一個系統資源能滿足其資源需求的作業。
④Best Fit:掃描整個作業隊列,從中選取當前系統能滿足的資源要求最大的作業投入運行。
⑤優先級調度[4]:根據各種不同的參數(用戶優先級、作業類型等)計算出作業的優先級;根據優先級對作業進行排列并生成作業隊列,系統根據作業隊列來逐一考慮是否運行該作業。
⑥資源預留算法[5]:當一個作業在隊列中等待的時間超過一定的值,對它所需要的資源進行預留,即這些資源中的一部分成為可用時,不再分配給其他的作業,一直到預留的所有資源都已得到滿足時,將該作業投入運行。
⑦回填調度算法:充分利用作業管理系統在作業調度時產生的時間空隙,從作業等待隊列中選擇合適的作業插入到這段時間內運行,而不影響其他作業的按時運行。
⑧搶先式調度算法[6]:基于作業或隊列的基本優先級,有高優先級的作業合適運行時,將搶占較低優先權作業的執行權。
這8種基本調度策略是最為常用和基礎的調度策略,特點和優缺點如表1所示,可在不同的需求場景中得到應用。
衛星產品生產調度平臺有其自身特點:①各級產品的生產時間級別越高,處理時間可能會更長;②特殊時期,系統會調度大量應急任務(高優先級);③低級產品生產頻率高,高級產品生產頻率低。

各Agent根據各自的特點選擇其中的某個基本策略作為調度模塊的調度策略,或者采用綜合調度策略以滿足自身調度需求。根據產品生產調度平臺Agent的功能以及作用,為各Agent分配和組合調度策略,并確定調度算法,Agent調度策略分配與組合如表2所示。

各Agent采用的調度策略在實際運行過程中也不是一成不變的,往往會根據衛星個數、生產請求的數量、緊迫程度、運行資源使用情況等實際需求進行策略調整或算法參數調整(如:每個隊列作業數量、預留資源比例及回填作業數量等)。
3應用實例
平臺架構已經應用在遙感衛星地面應用系統中,結合產品生產業務進行業務模型配置,完成測繪衛星數據產品的生產進行實時調度,業務模型如圖5所示。

③生產需求(Require):用戶提出的針對某種特定級別產品的生產要求。
④生產任務(Task):根據生產需求合并與分解得到從源級別產品到目的級別產品的生產任務。
⑤生產作業(SubTask):特定級別產品的生產。
⑥需求任務關系(Require-Task):生產需求與生產任務之間的對應關系,表示一個生產需求與生產任務是多對多關系。
⑦任務流程關系(Task-Flow):生產任務與生產各之間的映射關系,表示一個生產任務對應一個生產流程。
⑧作業任務關系(SubTask-Task):生產任務與生產作業之間的關系,表示一個生產任務可對應多個生產作業。

根據以上業務模型對生產流程進行配置,對流程實例的生產任務和作業進行適配,平臺即可滿足二級和三級調度能力,而一級調度中的分解算法可根據不同的衛星類型進行擴展。
4結束語
通過對衛星數據產品生產業務的分析,設計了平臺的組織架構,提出了三級生產調度的設計思想,并逐級進行詳細設計,分析了每級采用的調度策略,通過實例驗證了平臺的可行性。該衛星產品生產平臺基于Agent思想進行設計,使得各級調度具備獨立的信息處理能力和一定的協商能力,適用于各類衛星地面應用系統進行產品生產任務調度的自動處理。當新增衛星和數據產品時,僅需進行專用算法擴展和模型適配即可滿足生產調度需求,具有很強的通用性和擴展性。
參考文獻
[1]鄭力明,李曉冬.淺談面向Agent的軟件工程[J].軟件, 2014,35(10):51-53.
[2]王汝傳,徐小龍,黃海平.智能Agent及其在信息網絡中的應用[M].北京:北京郵電大學出版社,2006.
[3]黃壽鑫,周群彪,蔡葵.基于流的隊列管理和隊列調度研究[J].四川大學學報(自然科學版),2010,47(6):1255-1258.
[4]程鄴華.云平臺的任務優先級調度研究[D].邯鄲:河北工程大學,2015.
[5]丁長松,胡志剛,肖鵬.網格環境中可靠性增強的資源預留策略[J].通信學報,2011,32(7):40-46.
[6]江雷.搶占式調度算法與搶占閾值調度算法研究[J].現代計算機,2013(12):14-16.