一种数据处理流程的调度方法

文档序号:6331742阅读:229来源:国知局
专利名称:一种数据处理流程的调度方法
技术领域
本发明涉及计算机流程处理领域,尤其是一种基于队列调度数据处理流程的方 法。
背景技术
目前,数据处理流程调度采用的方法主要有基于模板、基于有限状态机以及基于 Petri网三种调度方法。基于模板的流程调度方法通过为各种类型的数据处理业务逻辑建立相应的模板, 在调度具体数据处理流程实例时,寻找相匹配的模板,用实际流程涉及的节点来填充模板 中对应的空位,从而实现流程的调度执行。此方法实现起来比较方便,有一定的灵活性,但 由于模板固定了流程的流向逻辑,就需要为涉及的所有业务逻辑分别建立模板,当业务复 杂多样时,模板数急剧增加,系统过于繁杂。基于有限状态机的流程调度方法首先将数据处理流程的节点设置为有限状态机 的主题,将主题所处的位置设置为有限状态机的状态,将流程中进行的操作动作设置为有 限状态机的动作。通过动作触发有限状态机中状态的迁移,来实现流程的调度执行。由于 灵活的状态迁移,在调度过程中引入调度自身的相关逻辑,能灵活的适应业务流程;但其缺 点是任何时刻系统只能有一个状态,无法表示并发性,不能描述异步并发的系统。另外,在 系统部件较多时,状态数随之增加,导致复杂性显著增长。基于Petri网的流程调度方法中,Petri网是简单的过程模型,由库所和变迁两种 节点以及有向弧和令牌组成。库所是Petri网中的被动因素,他们不能改变Petri网的状 态,经常表示媒介、状态、阶段或条件;变迁是Petri网中的主动因素,通过实施变迁,从一 个状态转变到另一个状态,因此变迁经常表示事件、操作或传输。两个库所或两个变迁之间 不允许有弧,只能是库所到变迁或者是变迁到库所之间有弧。库所中可以拥有任意数量的 令牌。如果一个变迁的每个输入库所都拥有令牌,该变迁即为被允许。一个变迁被允许时, 变迁将发生,输入库所的令牌被消耗,同时为输出库所产生令牌。从而实现流程计算。基于 Petri网的流程调度方法比较强大,可定义几乎所有的复杂流程过程,但由于模型概念比较 复杂,对于非专业人员难于理解,用户培训成本比较高。此外,现有的数据处理流程的调度方法中,大多数都是在执行完一个节点后,遍历 所有未计算节点,来选取满足约束条件的节点,效率不是很高。

发明内容
为了克服现有技术方法复杂和效率不高的不足,本发明提供一种数据处理流程的 调度方法,能够确保流程执行的高效完成。本发明解决其技术问题所采用的技术方案包括以下步骤1)按照数据处理任务中基本数据处理操作的执行顺序连接各个计算节点,形成一 个数据处理流程;所述的数据处理任务是由连续的基本数据处理操作组成,基本数据处理操作用来完成基本的算术运算、逻辑运算、条件运算和数值计算,每种基本数据处理操作由 一个计算节点来完成;所述的计算节点的功能是读取外部输入数据,经过内部基本数据处 理操作,得到结果数据;2)读取数据处理流程所需的外部输入数据;3)通过流程调度,对各个计算节点进行调度执行,具体包括以下步骤a)创建一个空的变长队列,把数据处理流程的开始节点的所有后继节点放入队列 中,所述的后继节点是在数据处理流程中执行顺序在其之后的相邻节点;b)从队列中,按先进先出的方式或基于优先级的方式选取一个节点;c)执行此节点内部的数据处理操作,完成后将此节点从队列中移出;d)若此节点有后继节点,继续执行下一步;否则,转步骤f);e)将数据处理结果传递给此节点的所有后继节点,每传递一次数据,判断此数据 的后继节点是否其所有输入数据都已经到达。若是,则将此后继节点装入队列;否则,不将 其放入队列。数据全部传完后,转步骤b);f)判断队列是否为空,若是,数据处理流程执行结束;否则,转步骤b)。所述的先进先出的选取方式是每次从队列中取出位于队首的节点,所述的基于优 先级的方式是每次从队列中取出优先级最高的节点。所述数据处理流程还可以包含分支,流程的调度方法用一个内部基本数据处理操 作是判断选择运算的节点来实现分支判断。本发明的有益效果是本发明提供的基于队列的流程调度方法,可以适用于不同 的数据处理流程。对于任意的数据处理流程,不管流程中的节点的数据处理操作如何变化, 也不管流程中的节点组合方式如何变化,本发明都能良好的执行,灵活性很强。本发明提供 的基于队列的流程调度方法的效率很高,基于队列进行调度,每次节点内部数据处理操作 完成后,不需要遍历所有内部数据处理操作未完成的节点,只需要从其后继节点中选取输 入数据都已经到达的节点开始新一轮调度,具有很好的调度效率。本发明提供的基于队列 的流程调度模型清晰简捷,便于实际实现。下面结合附图和实施例对本发明进一步说明。


图1是本发明数据处理流程的调度示意图。图2是本发明数据处理流程调度方法原理图。
具体实施例方式本发明的核心思想是目前的数据处理流程调度算法要么灵活性不足,不能很好 的适应数据处理业务逻辑的变化;要么是要基于有限状态机进行计算,当系统部件较多时, 复杂性显著增加,实现效率不高。本发明针对上述问题,采取基于队列的流程调度算法,为 完成用户的数据处理任务,首先读取外部数据,创建一个变长队列将数据处理流程的开始 节点的所有后继节点放入队列;按照先进先出策略或者优先级策略从队列中取出一个节 点,执行此节点内部的数据处理操作,完成操作后,将计算结果数据传递给它的所有后继节 点,把后继节点中满足约束条件的节点装入队列,当发现队列为空时,流程调度结束;否则,开始新一轮调度。本发明在综合比较了多种流程调度算法的基础上实现了高效的调度,并 且能灵活的适用各种应用场景。以下结合附图对本发明进行详细描述。图1是本发明数据处理流程的调度示意图。如图1所示,通过本发明提供的数据 处理流程的调度方法来完成对运动图像进行复原的处理任务,此处理任务具体步骤如下步骤101 按照数据处理任务中基本数据处理操作的执行顺序连接各个计算节 点,形成一个数据处理流程。对运动图像进行复原任务,可由去除随机噪声,通过运动模糊 退化模型生成点扩散函数,对点扩散函数进行傅立叶变换,构建维纳滤波器,模糊图像经 过维纳滤波,再反傅立叶变换,输出复原图像这些基本处理任务顺序组成一个数据处理流 程;步骤102 读取数据处理流程所需的外部输入数据。即读取拍摄的一系列运动模 糊帧图像数据;步骤103 通过流程调度,对各个计算节点进行调度执行。即调度各个图像处理基 本操作节点执行。图2为本发明的实施例提供的数据处理流程的具体调度方法的示意图,如图2所 示,本发明流程调度方法包括以下步骤步骤201 创建一个空的变长队列,把开始节点的所有后继节点放入队列中。队列用来存放所有输入数据都已经到达的节点;开始节点完成复原的第一个子任 务,对运动图像帧数据进行去除随机噪声处理;步骤202 从队列中,按先进先出方式或者基于优先级方式,取出一个节点。这里采取先进先出方式取出一个图像处理基本操作节点。步骤203 执行此节点内部的数据处理操作,完成后将此节点从队列中移出。数据 处理操作用来完成基本的图像处理任务,包括有去除随机噪声操作,傅立叶变换操作,滤波 提取操作,反傅立叶变换。步骤204 此节点是否有后继节点。如果没有后继节点,转步骤206);否则,继续执 行下一步。终止节点没有后继节点;步骤205 将此节点的数据处理结果传递给它的所有后继节点,每传递一次数据, 查询接受此数据的后继节点是否输入端的数据都已经到达,若是,则将其装入队列;否则, 不做任何处理;数据全部传完后,转步骤202)。节点只有在其输入数据都到达后才能执行 数据处理操作;步骤206 判断队列是否为空。若是,数据处理流程调度结束;否则,转步骤202); 若队列为空,则所有节点的内部的数据处理操作都已经完成,表明数据处理流程调度结束; 否则要按照某种策略继续取出队列中的一个节点,开始新一轮的调度。上面以运动图像复原流程调度为例具体说明本发明的调度方法。如图2所示,本 发明在具体实施时,可以采取独立模块来封装调度,由计算引擎来执行基本图像数据处理 操作,调度模块通过本发明提供的数据处理流程的调度方法来完成对运动图像复原的处理 任务,最终将拍摄的运动模糊图像复原成相对清晰的图像。
权利要求
一种数据处理流程的调度方法,其特征在于包括下述步骤1)按照数据处理任务中基本数据处理操作的执行顺序连接各个计算节点,形成一个数据处理流程;所述的数据处理任务是由连续的基本数据处理操作组成,基本数据处理操作用来完成基本的算术运算、逻辑运算、条件运算和数值计算,每种基本数据处理操作由一个计算节点来完成;所述的计算节点的功能是读取外部输入数据,经过内部基本数据处理操作,得到结果数据;2)读取数据处理流程所需的外部输入数据;3)通过流程调度,对各个计算节点进行调度执行,具体包括以下步骤a)创建一个空的变长队列,把数据处理流程的开始节点的所有后继节点放入队列中,所述的后继节点是在数据处理流程中执行顺序在其之后的相邻节点;b)从队列中,按先进先出的方式或基于优先级的方式选取一个节点;c)执行此节点内部的数据处理操作,完成后将此节点从队列中移出;d)若此节点有后继节点,继续执行下一步;否则,转步骤f);e)将数据处理结果传递给此节点的所有后继节点,每传递一次数据,判断此数据的后继节点是否其所有输入数据都已经到达。若是,则将此后继节点装入队列;否则,不将其放入队列。数据全部传完后,转步骤b);f)判断队列是否为空,若是,数据处理流程执行结束;否则,转步骤b)。
2.根据权利要求1所述的数据处理流程的调度方法,其特征在于所述的先进先出的 选取方式是每次从队列中取出位于队首的节点,所述的基于优先级的方式是每次从队列中 取出优先级最高的节点。
3.根据权利要求1所述的数据处理流程的调度方法,其特征在于所述的数据处理流 程包含分支,流程的调度方法用一个内部基本数据处理操作是判断选择运算的节点来实现 分支判断。
全文摘要
本发明公开了一种数据处理流程的调度方法,按照数据处理任务中基本数据处理操作的执行顺序连接各个计算节点,形成一个数据处理流程;读取数据处理流程所需的外部输入数据;通过流程调度,对各个计算节点进行调度执行。本发明可以适用于不同的数据处理流程,具有很好的调度效率,模型清晰简捷,便于实际实现。
文档编号G06F9/46GK101957777SQ20101027792
公开日2011年1月26日 申请日期2010年9月9日 优先权日2010年9月9日
发明者侯正雄, 周兴社, 张伟刚, 李秀春, 杨科, 王云岚, 胥悦雷, 谷建华, 赵天海, 陈健 申请人:西北工业大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1