APP下载

基于Agent的卫星数据产品生产调度平台设计

2021-01-13马英哲

计算机与网络 2021年21期

马英哲

摘要:通过对各类卫星数据产品生产特点的分析,抽取了不同种类卫星产品生产调度业务的共同点,提出了建设一种采用三级调度组织结构的产品生产调度平台思想,基于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.