CN112308443A - 一种遥感信息产品生成工作流的批量调度方法及装置 - Google Patents
一种遥感信息产品生成工作流的批量调度方法及装置 Download PDFInfo
- Publication number
- CN112308443A CN112308443A CN202011240075.9A CN202011240075A CN112308443A CN 112308443 A CN112308443 A CN 112308443A CN 202011240075 A CN202011240075 A CN 202011240075A CN 112308443 A CN112308443 A CN 112308443A
- Authority
- CN
- China
- Prior art keywords
- task
- workflow
- algorithm
- batch
- tasks
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 33
- 238000004519 manufacturing process Methods 0.000 claims abstract description 56
- 239000000047 product Substances 0.000 claims description 109
- 230000004913 activation Effects 0.000 claims description 26
- 238000007689 inspection Methods 0.000 claims description 15
- 230000003213 activating effect Effects 0.000 claims description 12
- 239000012467 final product Substances 0.000 claims description 11
- 238000011031 large-scale manufacturing process Methods 0.000 abstract description 4
- 238000005516 engineering process Methods 0.000 abstract description 3
- 230000005855 radiation Effects 0.000 description 9
- 238000010586 diagram Methods 0.000 description 7
- 238000010923 batch production Methods 0.000 description 4
- 230000000243 photosynthetic effect Effects 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- 238000009825 accumulation Methods 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/06—Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
- G06Q10/063—Operations research, analysis or management
- G06Q10/0633—Workflow analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/10—Office automation; Time management
- G06Q10/103—Workflow collaboration or project management
Landscapes
- Business, Economics & Management (AREA)
- Human Resources & Organizations (AREA)
- Engineering & Computer Science (AREA)
- Strategic Management (AREA)
- Entrepreneurship & Innovation (AREA)
- Economics (AREA)
- Tourism & Hospitality (AREA)
- Marketing (AREA)
- Operations Research (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Game Theory and Decision Science (AREA)
- Development Economics (AREA)
- Educational Administration (AREA)
- Data Mining & Analysis (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明实施例公开了一种遥感信息产品生产工作流的批量调度方法及装置。所述方法包括:获取待生产遥感信息产品的工作流中的各算法任务之间的逻辑关系,并根据所述逻辑关系对各所述算法任务进行分层,得到分层任务;基于可扩展标记语言根据所述分层任务描述待生产遥感信息产品批次对应的批量工作流;基于工作流调度引擎调用所述可扩展标记语言控制所述批量工作流的执行过程。本发明实施例从系统资源优化配置的角度充分利用了遥感信息产品批量化生产的特性,简化了批量生产时的业务逻辑,提升了大规模生产系统的运行效率,可以作为底层技术应用于各类遥感信息产品生产系统中。
Description
技术领域
本发明涉及遥感信息产品生产技术领域,特别是一种遥感信息产品生产工作流的批量调度方法及装置。
背景技术
遥感信息产品是基于遥感数据经模型运算后提取出的各行业所关注的信息,是遥感学科面向各行业应用的出口。标准化的遥感信息产品体系构建与规模化的产品生产越来越成为遥感学科产业化发展的重要方向。近年来随着遥感卫星数据资源的快速累积与高性能计算基础设施的不断普及,遥感信息产品规模化生产的条件日趋成熟,产品生产的目的也不再局限于小范围的科学研究,而是逐渐转向大规模的行业实际应用,相应的,遥感信息产品生产系统相关技术也正在成为研究的热点。
遥感信息产品生产具有层级化的特点,即高层级产品是以低层级产品作为输入的,且层级数量多,层级关系复杂,因此工作流成为了描述遥感信息产品生产流程的自然选择。遥感信息产品生产的另一个特点是批量化,即同一种产品的生产往往是同时批量进行的,在下达生产任务时一般是指定某一时间与空间范围内的一批产品,同时下达任务。对于批量下达的相同工作流任务,就可以通过合并同层级任务而简化任务的调度,以节约并优化系统资源的使用。更具体的来看,由于遥感数据的体量一般都较大,遥感信息产品生产算法调度执行过程中应当尽量避免数据的重复移动,而把相同任务进行合并调度可以有效减少公用数据的重复移动。在工作流执行过程中,系统可能会分派单独的线程去跟踪每一个工作流的执行,采用合并调度的方式可以让一个监控线程一次性跟踪整个批次产品的生产过程,简化系统逻辑,优化资源使用。
目前相关的技术方法主要指向的是遥感信息产品工作流本身的描述与调度问题,或大规模生产系统的构建问题,建尚未进一步针对工作流的合并与批量调度提出有效的解决方案。
发明内容
本发明解决的技术问题是:克服现有技术的不足,提供了一种遥感信息产品生产工作流的批量调度方法及装置。
为了解决上述技术问题,本发明实施例提供了一种遥感信息产品生成工作流的批量调度方法,包括:
获取待生产遥感信息产品的工作流中的各算法任务之间的逻辑关系,并根据所述逻辑关系对各所述算法任务进行分层,得到分层任务;
基于可扩展标记语言根据所述分层任务描述待生产遥感信息产品批次对应的批量工作流;
基于工作流调度引擎调用所述可扩展标记语言控制所述批量工作流的执行过程。
可选地,所述获取待生产遥感信息产品的工作流中的各算法任务之间的逻辑关系,并根据所述逻辑关系对各所述算法任务进行分层,得到分层任务,包括:
根据各算法任务之间的逻辑关系,获取所述工作流中的每个串行阶段,并将属于每个串行阶段的所有算法任务归为一个任务层;所述串行阶段中包括所有在当前阶段可被并行执行的并行任务。
可选地,所述基于可扩展标记语言根据所述分层任务描述待生产遥感信息产品批次对应的批量工作流,包括:
在采用所述可扩展标记语言描述所述批量工作流时,基于所述可扩展标记语言的根节点描述所述批量工作流;
其中,所述根节点包含:分层列表节点,所述分层列表节点记录每个所述分层任务节点,每个所述分层任务节点以节点属性标识该任务层的级别,每个所述分层任务节点中包含若干个任务组节点,每个所述任务组节点以属性标识算法任务是否生产的是最终产品,以及算法任务的名称。
可选地,所述基于工作流调度引擎调用所述可扩展标记语言控制所述批量工作流的执行过程,包括:
基于所述工作流调度引擎调用所述可扩展标记语言对所述批量工作流执行激活操作和检查操作。
可选地,所述基于所述工作流调度引擎调用所述可扩展标记语言对所述批量工作流执行激活操作和检查操作,包括:
针对工作流,在基于所述工作流调度引擎激活所述工作流时,激活所述工作流中的第一个任务层,并检查所述工作流中当前正在执行的任务层,若当前正在执行的任务层为所述工作流中的最后一个任务层,则在当前执行的任务层执行完成之后,判定所述工作流执行完成;
针对任务层,在进行所述任务层的激活时,激活所述任务层下的所有任务组,在进行所述任务组的检查时,更新所述任务层下所有任务组的运行状态,若所述任务层的所有任务组全部完成则判定所述任务层执行完成;
针对任务组,在进行所述任务组的激活时,激活所述任务组下的所有算法任务,在进行所述任务组的检查时,更新所述任务组下所有算法任务的运行状态,若所述任务组下的所有算法任务全部完成则判定所述任务组执行完成;
针对算法任务,在进行所述算法任务的激活时,搜索输入数据并根据搜索结果填充输入参数,并将所述算法任务发布至计算集群运行,在进行所述算法任务的检查时,更新所述算法任务的运行状态,并判断所述算法任务是否完成。
为了解决上述技术问题,本发明实施例还提供了一种遥感信息产品生产工作流的批量调度装置,包括:
分层任务获取模块,用于获取待生产遥感信息产品的工作流中的各算法任务之间的逻辑关系,并根据所述逻辑关系对各所述算法任务进行分层,得到分层任务;
批量工作流描述模块,用于基于可扩展标记语言根据所述分层任务描述待生产遥感信息产品批次对应的批量工作流;
工作流执行控制模块,用于基于工作流调度引擎调用所述可扩展标记语言控制所述批量工作流的执行过程。
可选地,所述分层任务获取模块包括:
分层任务获取单元,用于根据各算法任务之间的逻辑关系,获取所述工作流中的每个串行阶段,并将属于每个串行阶段的所有算法任务归为一个任务层;所述串行阶段中包括所有在当前阶段可被并行执行的并行任务。
可选地,所述批量工作流描述模块包括:
批量工作流描述单元,用于在采用所述可扩展标记语言描述所述批量工作流时,基于所述可扩展标记语言的根节点描述所述批量工作流;
其中,所述根节点包含:分层列表节点,所述分层列表节点记录每个所述分层任务节点,每个所述分层任务节点以节点属性标识该任务层的级别,每个所述分层任务节点中包含若干个任务组节点,每个所述任务组节点以属性标识算法任务是否生产的是最终产品,以及算法任务的名称。
可选地,所述工作流执行控制模块包括:
激活检查操作执行单元,用于基于所述工作流调度引擎调用所述可扩展标记语言对所述批量工作流执行激活操作和检查操作。
可选地,所述激活检查操作执行单元包括:
工作流执行子单元,用于针对工作流,在基于所述工作流调度引擎激活所述工作流时,激活所述工作流中的第一个任务层,并检查所述工作流中当前正在执行的任务层,若当前正在执行的任务层为所述工作流中的最后一个任务层,则在当前执行的任务层执行完成之后,判定所述工作流执行完成;
任务层执行子单元,用于针对任务层,在进行所述任务层的激活时,激活所述任务层下的所有任务组,在进行所述任务组的检查时,更新所述任务层下所有任务组的运行状态,若所述任务层的所有任务组全部完成则判定所述任务层执行完成;
任务组执行子单元,用于针对任务组,在进行所述任务组的激活时,激活所述任务组下的所有算法任务,在进行所述任务组的检查时,更新所述任务组下所有算法任务的运行状态,若所述任务组下的所有算法任务全部完成则判定所述任务组执行完成;
算法任务执行子单元,用于针对算法任务,在进行所述算法任务的激活时,搜索输入数据并根据搜索结果填充输入参数,并将所述算法任务发布至计算集群运行,在进行所述算法任务的检查时,更新所述算法任务的运行状态,并判断所述算法任务是否完成。
本发明与现有技术相比的优点在于:
本发明实施例通过利用遥感信息产品批量化生产的特点,为了实现分层合并,本发明对于遥感信息产品生产工作流首先按照其逻辑执行顺序进行分层描述,拆解工作流中的嵌套关系,确定工作流中每一种算法任务所属的层级;然后依照层级顺序依次进行批量算法调度,直至整批产品全部生产完成。同时本发明也提供了相应的工作流分层批量调度引擎的实现方法。本发明从系统资源优化配置的角度充分利用了遥感信息产品批量化生产的特性,简化了批量生产时的业务逻辑,提升了大规模生产系统的运行效率,可以作为底层技术应用于各类遥感信息产品生产系统中。
附图说明
图1为本发明实施例提供的一种遥感信息产品生成工作流的批量调度方法的步骤流程图;
图2为本发明实施例提供的一种遥感信息产品生产工作流分层定义的示意图;
图3为本发明实施例提供的一种遥感信息产品生产工作流的分层合并的示意图;
图4为本发明实施例提供的一种遥感信息产品的空间范围划分与检索的示意图;
图5为本发明实施例提供的另一种遥感信息产品的时间范围划分与检索的示意图;
图6为本发明实施例提供的一种工作流批量调度引擎的结构示意图;
图7为本发明实施例提供的一种遥感信息产品生产工作流的批量调度装置的结构示意图。
具体实施方式
本发明的技术思路为:采用分层的视角对工作流加以描述,以将工作流中算法的逻辑执行顺序隐含在层级的划分当中。分层的原则是将每个串行阶段中可以被并行执行的所有算法归为一层,一层中的所有任务完成后进入下一个串行阶段,再将新的串行阶段中所有可以被并行执行的算法归为一层,直到最后一个串行阶段。采取这样的分层方式后,每一层中的所有算法之间均是并行关系,层与层之间均是串行关系。考虑同种产品的多个工作流时,相同层之间也均是并行关系,因此所有相同的层可以合并,层中的所有算法,无论原本属于哪一个工作流,最终生产的是哪个产品,均可以无差别的并行执行,只要保证所有算法都被执行过即可。从算法的角度看,经过这样的合并之后,所有工作流中的同一个算法都被放在一起执行,因此在本发明中将这样一起执行的算法定义为一个算法任务组。多个工作流经过合并之后,最终得到的是多个算法任务层,层与层之间是串行关系,每层中又包含一个或多个算法任务组,组与组之间是并行关系。可以发现合并之后的执行逻辑非常简洁明确,只需一层一层依次执行,每一层中的所有任务同时执行即可。这样的工作流合并拆解了每个产品单独的生产流程,而是从一个批量的角度对生产流程进行调度,即使某个单独产品已经可以进入下一个生产阶段,也还需等待所有产品均完成当前阶段后,再同时进入下一个生产阶段。
本发明中使用可扩展标记语言(XML)文件的形式对工作流进行分层描述,根节点是<工作流>,其中包含一个<分层列表>节点,依次记录每一个<任务层>节点,<任务层>节点需要以节点属性的方式标明该层的级别,其值为数字形式,例如1、2、3等,一般从第1个层级开始依次描述每一个<任务层>。每个<任务层>中包含若干个<任务组>,即该层中所要执行的不同算法,每个<任务组>节点以属性的方式标明该算法是否生产的是最终产品,以及算法任务的名称,此名称用以唯一标识此算法。描述了所有<任务层>中的所有<任务组>即完成了整个工作流的描述。值得注意的是在描述工作流中的算法时,只定义了算法所在的层级,并没有定义算法的输入参数,算法输入参数的搜索条件定义在由算法任务名称所标识的独立文件中,具体的参数描述方式可自行决定,但对于数据实体参数,必须要指明输入数据的种类,以及每景输入数据所覆盖空间范围与时间范围的确认方式,这样才能明确无误的搜索到所有被需求的此种输入数据。本发明采用了一种数据与流程分离的工作流执行策略,在算法执行前,会根据定义好的搜索条件查找算法的输入数据等参数,因此在描述流程或调度算法时无需关注算法参数。
采用分层的方式对工作流进行定义之后,本发明提供了相应的工作流分层批量调度引擎,引擎本身需要在内存中实时维护工作流的相关信息,此时的每一个工作流代表一批产品的生产过程,工作流中包含如前定义的算法任务层与算法任务组,每个任务组中包含具体的若干个算法任务,每个算法任务都需要维护其运行状态,每个任务层则根据工作流的定义包含若干个任务组。调度引擎为具体的算法任务、任务组、任务层以及工作流本身都定义了统一的操作接口,包括激活与检查两种操作,对于算法任务,激活时首先搜索输入数据并根据搜索结果填充输入参数,然后将任务发布至计算集群开始运行,检查时更新任务的运行状态,判断任务是否完成;对于任务组,激活时同时激活其下的所有算法任务,检查时更新所有算法任务的运行状态,如果所有算法任务全部完成则判定本任务组也已完成;对于任务层,激活时同时激活其下的所有任务组,检查时更新所有任务组的运行状态,如果所有任务组全部完成则判定本任务层也已完成,此时根据工作流的层级顺序激活下一个任务层,如果本任务层已经是最后一个任务层则判定工作流已完成。对于工作流,需要记录当前正在执行的任务层,激活时激活第一个任务层,检查时检查当前正在执行的任务层。调度引擎可以同时调度多个批量产品的生产过程,即同时维护多个工作流的执行状态,引擎对于每一个工作流分配一个专门的执行线程,负责实时跟踪工作流的执行情况。执行线程采用轮询的方式,即每隔一段时间调用一次所负责工作流的检查接口,自下而上从每一个具体算法任务开始逐层更新自身的运行状态,直至判定工作流的运行状态。
实施例一
参照图1,示出了本发明实施例提供的一种遥感信息产品生成工作流的批量调度方法的步骤流程图,如图1所示,该遥感信息产品生产工作流的批量调度方法具体可以包括如下步骤:
步骤101:获取待生产遥感信息产品的工作流中的各算法任务之间的逻辑关系,并根据所述逻辑关系对各所述算法任务进行分层,得到分层任务。
本发明实施例可以应用于批量生产遥感信息产品的过程中,对工作流进行批量控制的场景中。
在本实施例中,在需要生产待生产遥感信息产品时,可以获取待生产遥感信息产品的工作流中的各算法任务之间的逻辑关系,并根据逻辑关系对各算法任务进行分层,以得到分层任务,具体地,可以结合下述具体实现方式进行详细描述。
在本发明的一种具体实现方式中,上述步骤101可以包括:
子步骤A1:根据各算法任务之间的逻辑关系,获取所述工作流中的每个串行阶段,并将属于每个串行阶段的所有算法任务归为一个任务层;所述串行阶段中包括所有在当前阶段可被并行执行的并行任务。
在本发明实施例中,可以根据各算法任务之间的逻辑关系,获取工作流中的每个串行阶段,并将属于每个串行阶段的所有算法任务归为一个任务层,在串行阶段中可以包括所有在当前阶段可被并行执行的并行任务,具体地,在拆解工作流中各算法之间的逻辑关系,转而按照分层的方式对工作流中的算法进行组织时,分层的原则是将每个串行阶段中可以被并行执行的所有算法归为一层,一层中的所有任务完成后进入下一个串行阶段,再将新的串行阶段中所有可以被并行执行的算法归为一层,直到最后一个串行阶段,采取这样的分层方式后,每一层中的所有算法之间均是并行关系,层与层之间均是串行关系。
在获取待生产遥感信息产品的工作流中的各算法任务之间的逻辑关系,并根据逻辑关系对各算法任务进行分层得到分层任务之后,执行步骤102。
步骤102:基于可扩展标记语言根据所述分层任务描述待生产遥感信息产品批次对应的批量工作流。
在得到分层任务之后,可以基于可扩展标记语言根据分层任务描述待生产遥感信息产品批次对应的批量工作流,具体地,可以结合下述具体实现方式进行详细描述。
在本发明的另一种具体实现方式中,上述步骤102可以包括:
子步骤B1:在采用所述可扩展标记语言描述所述批量工作流时,基于所述可扩展标记语言的根节点描述所述批量工作流。
在本实施例中,在用一个XML文件按照分层的方式描述代表一批生产任务的批量工作流时,XML文件的根节点是<工作流>,其中包含一个<分层列表>节点,依次记录每一个<任务层>节点,<任务层>节点需要以节点属性的方式标明该层的级别,每个<任务层>中包含若干个<任务组>,即该层中所要执行的不同算法,每个<任务组>节点以属性的方式标明该算法是否生产的是最终产品,以及算法任务的名称,此名称用以唯一标识此算法。以植被净初级生产力(NPP)1KM产品为例,XML文件的根节点是<工作流>,根节点以属性的方式标明了最终的产品名称,根节点下有一个<分层列表>子节点,用以罗列所有的算法任务层。图2中的工作流一共有三个任务层,<任务层>节点均以属性的方式标明了该任务层的级别,第一层有两个任务组,分别为叶面积指数(LAI)1KM与光合有效辐射(PAR)5KM,第二层有一个任务组,即光合有效辐射分量(FPAR)1KM,最后一层有一个任务组,即最终产品植被净初级生产力(NPP)1KM。图3展示了植被净初级生产力产品生产工作流的分层合并过程,对于每个单独的生产过程,首先需要生产一景叶面积指数产品与五景光合有效辐射产品,这两种产品的生产是可以并行的,然后再以这两种产品作为输入生产一景光合有效辐射分量产品,完成之后再生产最终的植被净初级生产力产品。从分层的视角来拆解上述工作流,首先叶面积指数产品生产与光合有效辐射产品生产是一开始就可以执行的,而且两者是并行关系,但下一步光合有效辐射分量产品的生产需要等待这两种产品生产完成才能开始,因此叶面积指数产品生产任务与光合有效辐射产品生产任务就应当归为第一层;最终产品植被净初级生产力的生产需要等待上一步的光合有效辐射分量产品生产完成才可以进行,因此光合有效辐射分量产品生产任务位于第二层,最后的植被净初级生产力产品生产任务位于第三层。考虑批量产品生产时,例如图3中所示同时生产三景产品,将相同的任务层进行合并,相同的算法任务归为同一个任务组,就得到了合并后的可供批量调度的工作流结构。
在基于可扩展标记语言根据分层任务描述待生产遥感信息产品批次对应的批量工作流之后,执行步骤103。
步骤103:基于工作流调度引擎调用所述可扩展标记语言控制所述批量工作流的执行过程。
在基于可扩展标记语言根据分层任务描述待生产遥感信息产品批次对应的批量工作流之后,可以基于工作流调度引擎调用可扩展标记语言控制批量工作流的执行过程,具体地,可以基于工作流调度引擎调用可扩展标记语言对批量工作流执行激活操作和检查操作。
在本实施例中,在实现批量工作流调度引擎时,调度引擎为具体的算法任务、任务组、任务层以及工作流本身都定义了统一的操作接口,包括激活与检查两种操作,对于算法任务,激活时首先搜索输入数据并根据搜索结果填充输入参数,然后将任务发布至计算集群开始运行,检查时更新任务的运行状态,判断任务是否完成;对于任务组:包括多个算法任务,激活时同时激活其下的所有算法任务,检查时更新所有算法任务的运行状态,如果所有算法任务全部完成则判定本任务组也已完成;对于任务层:包括多个任务组,激活时同时激活其下的所有任务组,检查时更新所有任务组的运行状态,如果所有任务组全部完成则判定本任务层也已完成,此时根据工作流的层级顺序激活下一个任务层,如果本任务层已经是最后一个任务层则判定工作流已完成;对于工作流,需要记录当前正在执行的任务层,激活时激活第一个任务层,检查时检查当前正在执行的任务层。
本发明通过一个工作流批量调度引擎来执行批量生产任务,引擎在接收到某种产品的生产任务之后,首先根据产品名称寻找并解析相应的工作流分层定义XML文件,以读取工作流中所涉及的任务层与任务组结构。在遥感信息产品生产系统中,批量生产任务的下达除了产品名称之外,一般都会指定这批产品所需覆盖的空间范围与时间范围,即需要生产多大的时空范围内的此种产品。而每一景产品所覆盖的时间范围与空间范围都是确定的,关于空间范围,一般采取网格划分的形式,即每一景产品都对应一个空间网格,而每个网格所覆盖的空间范围都是确定的,每种空间分辨率下的产品一般都有标准的网格划分方式与编号体系,图4展示了产品所覆盖空间范围的划分与指定空间范围所覆盖网格的检索;关于时间范围,根据产品的时间分辨率,例如时间分辨率为5天,则表示每景产品会覆盖五天的时间,而每年的产品都从当年的第1日算起,因此每年的第一景产品就覆盖1日至5日这段时间,依此类推,以划分每一景产品所覆盖的时间范围,图5展示了产品所覆盖时间范围的划分与指定时间段所涉及产品的检索。根据上述方式即可确定指定的时空范围内,具体会有哪些景产品需要被生产,接着就可以将这些产品的生产工作流进行合并,得到包含了具体算法任务的任务层与任务组。
图6展示了工作流批量调度引擎的组成结构,引擎本身需要在内存中实时维护合并后工作流的相关信息,此时的每一个工作流代表一批产品的生产过程,工作流中包含如前定义的算法任务层与算法任务组,每个任务组中包含具体的若干个算法任务,每个算法任务都需要维护其运行状态,每个任务层则根据工作流的定义包含若干个任务组。调度引擎为具体的算法任务、任务组、任务层以及工作流本身都定义了统一的操作接口,包括激活与检查两种操作,对于算法任务,激活时首先搜索输入数据并根据搜索结果填充输入参数,然后将任务发布至计算集群开始运行,检查时更新任务的运行状态,判断任务是否完成;对于任务组,激活时同时激活其下的所有算法任务,检查时更新所有算法任务的运行状态,如果所有算法任务全部完成则判定本任务组也已完成;对于任务层,激活时同时激活其下的所有任务组,检查时更新所有任务组的运行状态,如果所有任务组全部完成则判定本任务层也已完成,此时根据工作流的层级顺序激活下一个任务层,如果本任务层已经是最后一个任务层则判定工作流已完成。对于工作流,需要记录当前正在执行的任务层,激活时激活第一个任务层,检查时检查当前正在执行的任务层。调度引擎可以同时调度多个批量产品的生产过程,即同时维护多个工作流的执行状态,引擎对于每一个工作流分配一个专门的执行线程,负责实时跟踪工作流的执行情况。执行线程采用轮询的方式,即每隔一段时间调用一次所负责工作流的检查接口,自下而上从每一个具体算法任务开始逐层更新自身的运行状态,直至判定工作流的运行状态。
本发明实施例为了实现分层合并,对于遥感信息产品生产工作流首先按照其逻辑执行顺序进行分层描述,拆解工作流中的嵌套关系,确定工作流中每一种算法任务所属的层级;然后依照层级顺序依次进行批量算法调度,直至整批产品全部生产完成。
实施例二
参照图7,示出了本发明实施例提供的一种遥感信息产品生成工作流的批量调度装置的结构示意图图,如图7所示,该遥感信息产品生产工作流的批量调度装置具体可以包括如下模块:
分层任务获取模块210,用于获取待生产遥感信息产品的工作流中的各算法任务之间的逻辑关系,并根据所述逻辑关系对各所述算法任务进行分层,得到分层任务;
批量工作流描述模块220,用于基于可扩展标记语言根据所述分层任务描述待生产遥感信息产品批次对应的批量工作流;
工作流执行控制模块230,用于基于工作流调度引擎调用所述可扩展标记语言控制所述批量工作流的执行过程。
可选地,所述分层任务获取模块210包括:
分层任务获取单元,用于根据各算法任务之间的逻辑关系,获取所述工作流中的每个串行阶段务,并将属于每个串行阶段的所有算法任务归为一个任务层;所述串行阶段中包括所有在当前阶段可被并行执行的并行任务。
可选地,所述批量工作流描述模块220包括:
批量工作流描述单元,用于在采用所述可扩展标记语言描述所述批量工作流时,基于所述可扩展标记语言的根节点描述所述批量工作流;
其中,所述根节点包含:分层列表节点,所述分层列表节点记录每个所述分层任务节点,每个所述分层任务节点以节点属性标识该任务层的级别,每个所述分层任务节点中包含若干个任务组节点,每个所述任务组节点以属性标识算法任务是否生产的是最终产品,以及算法任务的名称。
可选地,所述工作流执行控制模块230包括:
激活检查操作执行单元,用于基于所述工作流调度引擎调用所述可扩展标记语言对所述批量工作流执行激活操作和检查操作。
可选地,所述激活检查操作执行单元包括:
工作流执行子单元,用于针对工作流,在基于所述工作流调度引擎激活所述工作流时,激活所述工作流中的第一个任务层,并检查所述工作流中当前正在执行的任务层,若当前正在执行的任务层为所述工作流中的最后一个任务层,则在当前执行的任务层执行完成之后,判定所述工作流执行完成;
任务层执行子单元,用于针对任务层,在进行所述任务层的激活时,激活所述任务层下的所有任务组,在进行所述任务组的检查时,更新所述任务层下所有任务组的运行状态,若所述任务层的所有任务组全部完成则判定所述任务层执行完成;
任务组执行子单元,用于针对任务组,在进行所述任务组的激活时,激活所述任务组下的所有算法任务,在进行所述任务组的检查时,更新所述任务组下所有算法任务的运行状态,若所述任务组下的所有算法任务全部完成则判定所述任务组执行完成;
算法任务执行子单元,用于针对算法任务,在进行所述算法任务的激活时,搜索输入数据并根据搜索结果填充输入参数,并将所述算法任务发布至计算集群运行,在进行所述算法任务的检查时,更新所述算法任务的运行状态,并判断所述算法任务是否完成。
本发明说明书中未作详细描述的内容属本领域技术人员的公知技术。
Claims (10)
1.一种遥感信息产品生产工作流的批量调度方法,其特征在于,包括:
获取待生产遥感信息产品的工作流中的各算法任务之间的逻辑关系,并根据所述逻辑关系对各所述算法任务进行分层,得到分层任务;
基于可扩展标记语言根据所述分层任务描述待生产遥感信息产品批次对应的批量工作流;
基于工作流调度引擎调用所述可扩展标记语言控制所述批量工作流的执行过程。
2.根据权利要求1所述的方法,其特征在于,所述获取待生产遥感信息产品的工作流中的各算法任务之间的逻辑关系,并根据所述逻辑关系对各所述算法任务进行分层,得到分层任务,包括:
根据各算法任务之间的逻辑关系,获取所述工作流中的每个串行阶段,并将属于每个串行阶段的所有算法任务归为一个任务层;所述串行阶段中包括所有在当前阶段可被并行执行的并行任务。
3.根据权利要求1所述的方法,其特征在于,所述基于可扩展标记语言根据所述分层任务描述待生产遥感信息产品批次对应的批量工作流,包括:
在采用所述可扩展标记语言描述所述批量工作流时,基于所述可扩展标记语言的根节点描述所述批量工作流;
其中,所述根节点包含:分层列表节点,所述分层列表节点记录每个所述分层任务节点,每个所述分层任务节点以节点属性标识该任务层的级别,每个所述分层任务节点中包含若干个任务组节点,每个所述任务组节点以属性标识算法任务是否生产的是最终产品,以及算法任务的名称。
4.根据权利要求1所述的方法,其特征在于,所述基于工作流调度引擎调用所述可扩展标记语言控制所述批量工作流的执行过程,包括:
基于所述工作流调度引擎调用所述可扩展标记语言对所述批量工作流执行激活操作和检查操作。
5.根据权利要求4所述的方法,其特征在于,所述基于所述工作流调度引擎调用所述可扩展标记语言对所述批量工作流执行激活操作和检查操作,包括:
针对工作流,在基于所述工作流调度引擎激活所述工作流时,激活所述工作流中的第一个任务层,并检查所述工作流中当前正在执行的任务层,若当前正在执行的任务层为所述工作流中的最后一个任务层,则在当前执行的任务层执行完成之后,判定所述工作流执行完成;
针对任务层,在进行所述任务层的激活时,激活所述任务层下的所有任务组,在进行所述任务组的检查时,更新所述任务层下所有任务组的运行状态,若所述任务层的所有任务组全部完成则判定所述任务层执行完成;
针对任务组,在进行所述任务组的激活时,激活所述任务组下的所有算法任务,在进行所述任务组的检查时,更新所述任务组下所有算法任务的运行状态,若所述任务组下的所有算法任务全部完成则判定所述任务组执行完成;
针对算法任务,在进行所述算法任务的激活时,搜索输入数据并根据搜索结果填充输入参数,并将所述算法任务发布至计算集群运行,在进行所述算法任务的检查时,更新所述算法任务的运行状态,并判断所述算法任务是否完成。
6.一种遥感信息产品生产工作流的批量调度装置,其特征在于,包括:
分层任务获取模块,用于获取待生产遥感信息产品的工作流中的各算法任务之间的逻辑关系,并根据所述逻辑关系对各所述算法任务进行分层,得到分层任务;
批量工作流描述模块,用于基于可扩展标记语言根据所述分层任务描述待生产遥感信息产品批次对应的批量工作流;
工作流执行控制模块,用于基于工作流调度引擎调用所述可扩展标记语言控制所述批量工作流的执行过程。
7.根据权利要求6所述的装置,其特征在于,所述分层任务获取模块包括:
分层任务获取单元,用于根据各算法任务之间的逻辑关系,获取所述工作流中的每个串行阶段,并将属于每个串行阶段的所有算法任务归为一个任务层;所述串行阶段中包括所有在当前阶段可被并行执行的并行任务。
8.根据权利要求6所述的装置,其特征在于,所述批量工作流描述模块包括:
批量工作流描述单元,用于在采用所述可扩展标记语言描述所述批量工作流时,基于所述可扩展标记语言的根节点描述所述批量工作流;
其中,所述根节点包含:分层列表节点,所述分层列表节点记录每个所述分层任务节点,每个所述分层任务节点以节点属性标识该任务层的级别,每个所述分层任务节点中包含若干个任务组节点,每个所述任务组节点以属性标识算法任务是否生产的是最终产品,以及算法任务的名称。
9.根据权利要求6所述的装置法,其特征在于,所述工作流执行控制模块包括:
激活检查操作执行单元,用于基于所述工作流调度引擎调用所述可扩展标记语言对所述批量工作流执行激活操作和检查操作。
10.根据权利要求9所述的装置,其特征在于,所述激活检查操作执行单元包括:
工作流执行子单元,用于针对工作流,在基于所述工作流调度引擎激活所述工作流时,激活所述工作流中的第一个任务层,并检查所述工作流中当前正在执行的任务层,若当前正在执行的任务层为所述工作流中的最后一个任务层,则在当前执行的任务层执行完成之后,判定所述工作流执行完成;
任务层执行子单元,用于针对任务层,在进行所述任务层的激活时,激活所述任务层下的所有任务组,在进行所述任务组的检查时,更新所述任务层下所有任务组的运行状态,若所述任务层的所有任务组全部完成则判定所述任务层执行完成;
任务组执行子单元,用于针对任务组,在进行所述任务组的激活时,激活所述任务组下的所有算法任务,在进行所述任务组的检查时,更新所述任务组下所有算法任务的运行状态,若所述任务组下的所有算法任务全部完成则判定所述任务组执行完成;
算法任务执行子单元,用于针对算法任务,在进行所述算法任务的激活时,搜索输入数据并根据搜索结果填充输入参数,并将所述算法任务发布至计算集群运行,在进行所述算法任务的检查时,更新所述算法任务的运行状态,并判断所述算法任务是否完成。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011240075.9A CN112308443A (zh) | 2020-11-09 | 2020-11-09 | 一种遥感信息产品生成工作流的批量调度方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011240075.9A CN112308443A (zh) | 2020-11-09 | 2020-11-09 | 一种遥感信息产品生成工作流的批量调度方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112308443A true CN112308443A (zh) | 2021-02-02 |
Family
ID=74325471
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011240075.9A Pending CN112308443A (zh) | 2020-11-09 | 2020-11-09 | 一种遥感信息产品生成工作流的批量调度方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112308443A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112882810A (zh) * | 2021-02-25 | 2021-06-01 | 国家超级计算天津中心 | 基于超级计算机的高通量任务处理方法 |
CN114462787A (zh) * | 2021-12-31 | 2022-05-10 | 长安大学 | 基于工作流平台表达有组分关系服务的方法 |
Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020194257A1 (en) * | 2001-05-31 | 2002-12-19 | Fabio Casati | Multinode activation and termination method and system |
CN1959717A (zh) * | 2006-10-09 | 2007-05-09 | 北京道达天际软件技术有限公司 | 订单驱动的海量遥感数据集群化预处理系统及其方法 |
CN102446208A (zh) * | 2011-09-02 | 2012-05-09 | 华东师范大学 | 一种基于分布式的海量遥感影像快速建立金字塔算法 |
CN102521687A (zh) * | 2011-12-01 | 2012-06-27 | 中国资源卫星应用中心 | 遥感卫星数据预处理小型化通用平台 |
CN104077669A (zh) * | 2014-07-23 | 2014-10-01 | 中国科学院自动化研究所 | 一种计算机工作流的自主定制与驱动执行的通用方法 |
CN105278960A (zh) * | 2015-10-27 | 2016-01-27 | 航天恒星科技有限公司 | 一种遥感应用中的流程自动化方法及系统 |
CN106022245A (zh) * | 2016-05-16 | 2016-10-12 | 中国资源卫星应用中心 | 一种基于算法分类的多源遥感卫星数据并行处理系统及方法 |
CN106127365A (zh) * | 2016-06-15 | 2016-11-16 | 中国科学院遥感与数字地球研究所 | 定量遥感产品在线交互式自主生产方法 |
US20170075721A1 (en) * | 2015-09-16 | 2017-03-16 | Salesforce.Com, Inc. | Providing strong ordering in multi-stage streaming processing |
CN108985709A (zh) * | 2018-06-26 | 2018-12-11 | 中国科学院遥感与数字地球研究所 | 面向多卫星数据中心协同遥感产品生产的工作流管理方法 |
CN110622128A (zh) * | 2017-05-16 | 2019-12-27 | 甲骨文国际公司 | 计算处理的动态并行化 |
CN110704170A (zh) * | 2019-09-09 | 2020-01-17 | 深圳壹账通智能科技有限公司 | 批量任务处理方法、装置、计算机设备和存储介质 |
CN110941463A (zh) * | 2019-11-13 | 2020-03-31 | 中国科学院遥感与数字地球研究所 | 一种遥感卫星数据预处理多级产品自驱动系统 |
-
2020
- 2020-11-09 CN CN202011240075.9A patent/CN112308443A/zh active Pending
Patent Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020194257A1 (en) * | 2001-05-31 | 2002-12-19 | Fabio Casati | Multinode activation and termination method and system |
CN1959717A (zh) * | 2006-10-09 | 2007-05-09 | 北京道达天际软件技术有限公司 | 订单驱动的海量遥感数据集群化预处理系统及其方法 |
CN102446208A (zh) * | 2011-09-02 | 2012-05-09 | 华东师范大学 | 一种基于分布式的海量遥感影像快速建立金字塔算法 |
CN102521687A (zh) * | 2011-12-01 | 2012-06-27 | 中国资源卫星应用中心 | 遥感卫星数据预处理小型化通用平台 |
CN104077669A (zh) * | 2014-07-23 | 2014-10-01 | 中国科学院自动化研究所 | 一种计算机工作流的自主定制与驱动执行的通用方法 |
US20170075721A1 (en) * | 2015-09-16 | 2017-03-16 | Salesforce.Com, Inc. | Providing strong ordering in multi-stage streaming processing |
CN105278960A (zh) * | 2015-10-27 | 2016-01-27 | 航天恒星科技有限公司 | 一种遥感应用中的流程自动化方法及系统 |
CN106022245A (zh) * | 2016-05-16 | 2016-10-12 | 中国资源卫星应用中心 | 一种基于算法分类的多源遥感卫星数据并行处理系统及方法 |
CN106127365A (zh) * | 2016-06-15 | 2016-11-16 | 中国科学院遥感与数字地球研究所 | 定量遥感产品在线交互式自主生产方法 |
CN110622128A (zh) * | 2017-05-16 | 2019-12-27 | 甲骨文国际公司 | 计算处理的动态并行化 |
CN108985709A (zh) * | 2018-06-26 | 2018-12-11 | 中国科学院遥感与数字地球研究所 | 面向多卫星数据中心协同遥感产品生产的工作流管理方法 |
CN110704170A (zh) * | 2019-09-09 | 2020-01-17 | 深圳壹账通智能科技有限公司 | 批量任务处理方法、装置、计算机设备和存储介质 |
CN110941463A (zh) * | 2019-11-13 | 2020-03-31 | 中国科学院遥感与数字地球研究所 | 一种遥感卫星数据预处理多级产品自驱动系统 |
Non-Patent Citations (3)
Title |
---|
HONGYI LI 等: "A Web-Based Remote Sensing Data Processing and Production System With the Unified Integration of Multi-Disciplinary Data and Models", IEEE ACCESS, 17 September 2020 (2020-09-17), pages 162961 - 162972, XP011809133, DOI: 10.1109/ACCESS.2020.3021791 * |
王俊岭: "基于集群间两级并行的海量遥感数据调度模型设计与实现", 中国优秀硕士学位论文全文数据库 信息科技辑, 15 February 2014 (2014-02-15), pages 140 - 476 * |
郑逢斌 等: "一种XML驱动的遥感产品生产并发数据流模型", 计算机工程与应用, no. 24, 9 March 2018 (2018-03-09), pages 266 - 270 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112882810A (zh) * | 2021-02-25 | 2021-06-01 | 国家超级计算天津中心 | 基于超级计算机的高通量任务处理方法 |
CN112882810B (zh) * | 2021-02-25 | 2023-02-07 | 国家超级计算天津中心 | 基于超级计算机的高通量任务处理方法 |
CN114462787A (zh) * | 2021-12-31 | 2022-05-10 | 长安大学 | 基于工作流平台表达有组分关系服务的方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105354239B (zh) | 一种基于配置数据加工模型的加工中心数据流式处理方法 | |
CN106022245B (zh) | 一种基于算法分类的多源遥感卫星数据并行处理系统及方法 | |
CN112308443A (zh) | 一种遥感信息产品生成工作流的批量调度方法及装置 | |
CN102402716B (zh) | 智能生产决策支持系统 | |
CN105069134A (zh) | 一种Oracle统计信息自动收集方法 | |
CN110147377A (zh) | 大规模空间数据环境下基于二级索引的通用查询算法 | |
CN108037919A (zh) | 一种基于web的可视化大数据工作流配置方法及系统 | |
CN107247799A (zh) | 兼容多种大数据存储的数据处理方法、系统及其建模方法 | |
CN112148788A (zh) | 异构数据源的数据同步方法及系统 | |
CN109685386A (zh) | 基于数据信息的多目标作业车间的复杂网络模型构建方法 | |
CN106371924B (zh) | 一种最小化MapReduce集群能耗的任务调度方法 | |
CN108009258A (zh) | 一种可在线配置的数据采集与分析平台 | |
CN103235881A (zh) | 一种基于最小割集的核反应堆故障监测系统 | |
CN110175175A (zh) | 一种基于spark的分布式空间二级索引与范围查询算法 | |
CN105868222A (zh) | 一种任务调度方法及装置 | |
CN102681901A (zh) | 一种分区域的可重构硬件任务放置方法 | |
CN109669975A (zh) | 一种工业大数据处理系统及方法 | |
CN112199363A (zh) | 一种农业多源异构数据的融合存储方法与系统 | |
CN107609172A (zh) | 一种跨系统多维度数据检索处理方法及装置 | |
CN113010296B (zh) | 基于形式化模型的任务解析与资源分配方法及系统 | |
CN108875087A (zh) | 一种描述事物空间属性并基于所述描述进行查找的方法 | |
CN110175676A (zh) | 一种面向内存受限环境的高性能规则匹配方法 | |
CN106096159A (zh) | 一种云平台下的分布式系统行为仿真分析系统的实现方法 | |
CN102819218B (zh) | 基于事件控制函数的离散事件系统监控器及其控制方法 | |
CN117076077A (zh) | 基于大数据分析的计划调度优化方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |