一种基于递归自主式复杂任务分解系统及方法

文档序号:6398130阅读:227来源:国知局
专利名称:一种基于递归自主式复杂任务分解系统及方法
技术领域
本发明涉及计算机软件系统领域,具体涉及一种基于递归自主式复杂任务分解系统及方法。
背景技术
随着网络技术的发展,台式机,笔记本,平板电脑,智能手机等电子设备也层出不穷,极大的方便了人们的生活与工作。人们可以通过移动设备随时随地发布电子数据,比如发微博,拍照,发邮件等。可以说,我们正生活在数据时代,很难估计全球存储的电子数据总量是多少,据IDC(Internet Data Center)估计2011年“数字全球”项目(digitaluniverse)的数据总量为1.8 ZB,而且这个数据每年都在迅速增加。I ZB相当于10的21次方字节的数据,或者相当于1000EB,1000000PB,或者10亿TB的数据。这相当于世界上每个人一个磁盘驱动器的数量级。此外,还有大量数据,大部分数据被锁定在最大的网页内容中(如搜索引擎)或者金融和科学机构,个人数据也正在快速的增长。但更重要的是,计算机所产生的数据更为庞大。机器日志、RFID读取器、传感器网络、车载GPS和零售交易数据等,这些都促使“数据之山越来越高”。公开发布的数据量也在逐年递增。作为企业或组织,再也不能只管理自己的数据,未来的成功在很大程度上取决于它是否能从其他组织的数据中提取出价值。因此,海量数据地处理就显得尤为重要。MapReduce是Google公司针对大规模群组中海量数据处理而开发的一种分布式编程模型。简单来说,Map是一个“分”的过程,它用于把海量数据分割成若干小块以分给若干台处理器去处理;而Reduce是一个“合”的过程,它主要把这些处理器执行后的结果进行汇总。MapReduce模型在整个系统中分为User、Master和Worker三个角色。User主要负责把用户程序提交给Master ;Master,主要负责数据划分、任务调度、负载均衡、容错处理等,它会根据各个Worker的负载情况选择空闲的Worker为其分配Map、Reduce任务;Worker是工作节点,负责从Master接收任务进行数据处理和计算。Worker又分为Map Worker和Reduce Worker, Map Worker负责解析任务的键值对,执行Map操作,然后将中间结果缓存在本地磁盘,并将地址返回给Master ;Reduce Worker从Master获得中间结果的键值对地址,读取数据,按key进行排序化简,并返回结果给用户程序。此模型非常方便使用,它隐藏了并行计算的细节,错误容灾,本地优化以及负载均衡。轻松完成大规模计算,比如,Google的网页搜索服务,排序,数据挖掘,机器学习,以及其他系统。通过MapReduce,应用程序可以再超过1000个节点的大型集群上运行,并提供经过优化的错误容灾。现有任务分解方法存在以下问题,1.在现有的任务分解方法中,由于任务与计算机分解程序是一对一的关系,用户提交的任务通常是大型而复杂的,程序只能根据特定的任务设计分解处理程序。这种方法加剧了任务与程序的依赖性:特定的程序只能处理特定的任务,分解方式串行,执行方式单一 ;2.任务与程序的依赖性,不利于任务的灵活持续分解,比如,当任务的优先级和处理速度发生变化的情况下,计算机网络无法自动进行配置来应对这种变化的发生,从而使得网络的任务处理能力降低。

发明内容
本发明的目的是针对现有技术的不足,提供一种基于递归自主式复杂任务分解系统及方法。一种基于递归自主式复杂任务分解系统,包括能力库、流水线库和递归分解模块。能力库是指对任务进行处理的各种能力的集合,包括人工能力和程序能力,人工能力和程序能力均包括分解能力和执行能力;人工能力是由人工处理任务的能力,程序能力是由计算机程序处理任务的能力,分解能力是将任务分解为多个子任务,执行能力是根据任务的处理流程完成任务,通过把多个执行能力组合可以得到大颗粒度的能力,能力库中的各个能力描述中需要包含特性参数,包括能力的价格、信誉、执行时间和限制条件,能力库中的各个能力由能力的所有者向能力库注册。流水线库包含多条流水线,每条流水线包含已知任务分解后的各子任务对应的执行能力的组合,且该组合是按各执行能力的执行先后顺序排列的,流水线库是指按一定的逻辑把所有已知任务的流水线进行统一管理。递归分解模块接受用户提交的任务,通过递归处理将任务分解成各个子任务,直到各个子任务都和能力库中的执行能力对应,建立新的流水线,并将新的流水线添加到流水线库中。一种基于递归自主式复杂任务分解方法,具体包括如下步骤:
步骤(I)任务分解系统接受提交的任务,首先交给递归分解模块进行处理;
步骤(2)递归分解模块查找流水线库中是否有该任务的对应流水线,如果找不到则任务为新任务,开始建立新任务的流水线,并跳转至步骤(3),如果找到则为已处理任务跳转至步骤(5);
所述的递归分解模块查找过程如下:
提取任务名称关键字,根据关键字到流水线库中查找,看是否有与关键字对应的流水线;若有多条流水线,则通过用户描述要求进行删选,选出最佳匹配;若有唯一流水线,则直接作为最佳匹配;若没有对应流水线,则建立新任务的流水线;
步骤(3)任务匹配能力库,通过匹配得到分解能力或者执行能力,得到分解能力转到步骤(4),得到执行能力转到步骤(5),如果分解能力和执行能力都匹配不到,则停止分解;所述的与能力库的匹配是指任务根据自身的颗粒度程度和特性参数,与能力库中多颗粒度和多特性参数的能力匹配,通过把已有的任务处理流水线作为一种新的执行能力注册到能力库中实现多颗粒度的能力,能力匹配时需要把任务的特性参数和能力的特性参数进行综合匹配,在满足特性参数的多个能力中选择最优能力。所述的多颗粒度和多特性参数是指多个子任务的颗粒度以及特性参数的总和。步骤(4)分解能力将该任务分解为各子任务,把每个子任务重新提交,转到步骤(2);
步骤(5)在该任务的任务处理流水线中添加该执行能力;
步骤(6)通过步骤(I) 步骤(5)的递归分解得到该任务的任务处理流水线,添加到任务处理流水线库。
本发明有益效果如下:
本发明一方面减少了任务分解过程中任务与程序的依赖性,另一方面加强了网络任务的处理能力,适用于处理网络中日益增多的复杂任务;本发明通过递归和流水线技术,结合人工和计算机程序能力将其运用到网络中进行任务分解和执行。在任务分解过程中,递归把一个大型复杂的任务层层分解为多个规模较小的子任务来执行,大大地减少了计算的复杂度。在任务执行过程中,流水线将各个子任务处理的过程顺序组合化,并行执行,大大地提高了任务的处理效率。同时,本发明已经被实际系统使用证明是切实可行的,满足了计算机网络中对复杂任务进行灵活多变分解和执行的需求。


图1基于递归自主式任务分解的系统模型;
图2递归任务分解模块流程 图3实施例的原理示意图。
具体实施例方式下面结合附图和实施例对本发明做进一步说明。如图1所示,一种基于递归自主式复杂任务分解系统,包括能力库、流水线库和递归分解模块。能力库是指对任务进行处理的各种能力的集合,包括人工能力和程序能力,人工能力和程序能力均包括分解能力和执行能力;人工能力是由人工处理任务的能力,程序能力是由计算机程序处理任务的能力,分解能力是将任务分解为多个子任务,执行能力是根据任务的处理流程完成任务,通过把多个执行能力组合可以得到大颗粒度的能力,能力库中的各个能力描述中需要包含特性参数,包括能力的价格、信誉、执行时间和限制条件,能力库中的各个能力由能力的所有者向能力库注册。流水线库包含多条流水线,每条流水线包含已知任务分解后的各子任务对应的执行能力的组合,且该组合是按各执行能力的执行先后顺序排列的,流水线库是指按一定的逻辑把所有已知任务的流水线进行统一管理。递归分解模块接受用户提交的任务,通过递归处理将任务分解成各个子任务,直到各个子任务都和能力库中的执行能力对应,建立新的流水线,并将新的流水线添加到流水线库中。如图2所示,一种基于递归自主式复杂任务分解方法,具体包括如下步骤:
步骤(I)任务分解系统接受提交的任务,首先交给递归分解模块进行处理;
步骤(2)递归分解模块查找流水线库中是否有该任务的对应流水线,如果找不到则任务为新任务,开始建立新任务的流水线,并跳转至步骤(3),如果找到则为已处理任务跳转至步骤(5);
所述的递归分解模块查找过程如下:
提取任务名称关键字,根据关键字到流水线库中查找,看是否有与关键字对应的流水线;若有多条流水线,则通过用户描述要求进行删选,选出最佳匹配;若有唯一流水线,则直接作为最佳匹配;若没有对应流水线,则建立新任务的流水线; 步骤(3)任务匹配能力库,通过匹配得到分解能力或者执行能力,得到分解能力转到步骤(4),得到执行能力转到步骤(5);
所述与能力库的匹配是指任务中颗粒度和特性参数的能力,与能力库中多颗粒度和多特性参数的能力匹配,通过把已有的任务处理流水线作为一种新的执行能力注册到能力库中实现多颗粒度的能力,能力匹配时需要把任务的特性参数和能力的特性参数进行综合匹配,在满足特性参数的多个能力中选择最优能力。步骤(4)分解能力将该任务分解为各子任务,把每个子任务重新提交,转到步骤
(2);
步骤(5)在该任务的任务处理流水线中添加该执行能力;
步骤(6)通过步骤(I) 步骤(5)的递归分解得到该任务的任务处理流水线,添加到任务处理流水线库。实施例1:
为了便于本领域一般技术人员理解和实现本发明,现结合附图3进一步说明本发明。如图3所示,本实施例由一台Windows XP操作系统的PC机的浏览器作为客户端,一台Iinux操作系统的服务器,该服务器具有web和数据库存储等服务功能,用来处理客户端用户所提交的任务。在服务器端上加载任务分解系统,服务器端根据任务分解系统分解并处理客户端提交的任务,匹配服务器数据库中存储的能力库或流水线库,最终向客户端反馈任务处理结果。为此我们构造出了基于web的任务分解系统的软硬件环境,通过一个任务分解网站及后台任务分解执行程序来处理来自客户端用户所提交的各种任务。下面以中文论文翻译成英文的“翻译论文”任务为例,对基于递归自主式复杂任务的分解方法过程进行详细说明:
步骤A:首先搭建任务分解系统实施环境,任务分解系统包括客户端的浏览器、服务器,其中服务器具有web、数据库存储功能以及递归任务分解程序;服务器中的数据库包含任务分解网站、能力库表、任务流水线库表。步骤B:能力库表包括能力名称主字段,与能力相对应的操作方式、能力颗粒度等其他字段。对于“翻译论文”任务,能力库表需包含人工翻译能力和计算机内部的程序翻译能力,其中人工翻译能力由负责翻译服务的会员向任务分解网站注册时提供,如翻译一段,翻译一句,翻译多段,翻译一篇的执行能力,以及拆分论文、拆分段落的分解能力。计算机内部的程序翻译能力由人工在计算机上加载完成,如百度翻译软件、谷歌翻译软件、会员编写的翻译软件的执行能力,按段落或句子分割的程序分解能力;
步骤C:流水线库表中包含已知任务的任务名称、与任务相对应的处理流水线两个主字段,以及任务处理时间、处理代价等其他字段;
步骤D:任务分解系统接受用户提交的任务的请求,转发给递归任务分解程序,通过递归处理的方式将该任务逐步分解为更小的子任务,直到子任务都能和能力库中的执行能力对应,建立新的任务流水线,添加到任务流水线库中,其具体步骤包括:
a:用户根据自己的需求,通过客户端浏览器向服务器端的任务分解系统发送把中文论文翻译成英文的“翻译论文”的任务请求,同时指定对任务处理结果的属性要求,如需要在5个小时内完成,期望的价格是300元,翻译质量高。
b:任务分解系统提取原始或者d步骤重新提交的子任务名称中的关键字“翻译”,根据关键字到流水线库表中查找,看是否有与关键字对应的流水线;若有多条流水线,则通过用户描述要求进行删选,选出最佳匹配后跳转到步骤e ;若有唯一流水线,则直接作为最佳匹配后跳转到步骤e ;若没有对应流水线,则建立新任务的流水线,跳转到步骤c ;
c:任务分解系统通过“翻译”等关键字查询数据库中的能力库表中,通过匹配数据库返回分解能力或执行能力结果,如果返回分解能力转到步骤d,返回执行能力转到步骤e。d:任务分解系统转发任务请求给递归任务分解程序将“翻译论文”的任务分解为更小的子任务,比如“翻译段落”、“翻译句子”,任务分解网站又向递归任务分解程序重新转发更小的子任务,转到步骤b。e:任务分解系统在数据库中的任务流水线库表中,查找出相应的流水线,然后插入子任务对应的执行能力。f:通过步骤a到e的递归分解得到“翻译论文”的任务处理流水线,将此流水线添加到数据库中的任务处理流水线库表中。步骤E:通过以上步骤,任务分解系统便已经完成了对“翻译论文”任务的处理,此时匹配的任务流水线可能有多种选择,任务分解系统根据用户提交任务时指定的属性要求,筛选出满足5个小时内完成,期望的价格是300元,翻译质量高的最佳匹配流水线。步骤F:任务分解系统根据步骤E筛选出的最佳流水线中添加的子任务对应执行能力的排列顺序以及执行能力对应的执行方式,比如最佳流水线包括会员A注册的翻译5句的能力、会员B翻译2段的能力、百度翻译软件翻译I段的能力,会员注册的能力然后通过邮件形式将与会员注册能力大小对应的翻译任务分发下去,直到各段落或句子翻译结果反馈回到任务分解系统,任务分解系统将此最佳匹配流水线重新注册到能力库中以备以后的同样属性要求的任务匹配,最终整合各结果将翻译之后的英文论文返回给用户完成用户“翻译论文”任务的分解和执行。根据用户提交的“翻译论文”任务,如果是已经处理过的任务,则直接通过“翻译”等关键字查询数据库匹配流水线库执行任务。如果是新任务,则要实现一个专家系统,完成从复杂任务分解为小而简单任务,匹配任务属性的智能决策。比如用户所要求的在5个小时内完成,翻译的英文质量高等,递归任务分解程序将任务分解具体到每个句子,然后匹配各句子能力库的相应属性。任务分解网站的专家系统需要将该任务需求转化成对个子任务的需求,如满足上述需求需要仔细检查每一个句子。根据任务的复杂程度,递归任务分解程序将用户提交的任务首先分解为翻译段落子任务,这些子任务又可以分解为更小的子任务,如翻译句子子任务。直到子任务匹配能力库中的执行能力,也就是能力库表中有这句句子的英文翻译。同时,记录任务的分解程序建立分解能力存储在数据库中,以满足以后同样任务的分解。根据流水线的多样性,任务分解网站可以根据用户所出的价格,多久完成的时间,翻译质量等属性匹配流水线。如果用户反馈论文的翻译质量没有达到他的要求,则网站的提供服务的会员或是工作人员可以注册人工能力库,有人工对论文进行校验,直到满足用户的需求。根据上述任务分解过程,当用户向任务分解网站提出一种任务需求,任务分解网站根据递归任务分解程序递归分解任务,直到子任务匹配相应颗粒度的执行能力,如果程序能力不能满足任务的处理属性,可请求人工能力处理任务,最终得到一条满意的流水线来执行该任务。虽然通过实施例描绘了本发明,本领域普通技术人员知道,本发明有许多变形和变化而不脱离本发明的精神,希望所附的权利要求包括这些变形和变化而不脱离本发明的精神。
权利要求
1.一种基于递归自主式复杂任务分解系统,包括能力库、流水线库和递归分解模块;其特征在于: 能力库是指对任务进行处理的各种能力的集合,包括人工能力和程序能力,人工能力和程序能力均包括分解能力和执行能力;人工能力是由人工处理任务的能力,程序能力是由计算机程序处理任务的能力,分解能力是将任务分解为多个子任务,执行能力是根据任务的处理流程完成任务,通过把多个执行能力组合可以得到大颗粒度的能力,能力库中的各个能力描述中需要包含特性参数,包括能力的价格、信誉、执行时间和限制条件,能力库中的各个能力由能力的所有者向能力库注册; 流水线库包含多条流水线,每条流水线包含已知任务分解后的各子任务对应的执行能力的组合,且该组合是按各执行能力的执行先后顺序排列的,流水线库是指按一定的逻辑把所有已知任务的流水线进行统一管理; 递归分解模块接受用户提交的任务,通过递归处理将任务分解成各个子任务,直到各个子任务都和能力库中的执行能力对应,建立新的流水线,并将新的流水线添加到流水线库中。
2.一种基于递归自主式复杂任务分解系统的方法,具体包括如下步骤: 步骤(I)任务分解系统接受提交的任务,首先交给递归分解模块进行处理; 步骤(2)递归分解模块查找流水线库中是否有该任务的对应流水线,如果找不到则任务为新任务,开始建立新任务的流水线,并跳转至步骤(3),如果找到则为已处理任务跳转至步骤(5); 所述的递归分解模块查找过程如下: 提取任务名称关键字,根据关键字到流水线库中查找,看是否有与关键字对应的流水线;若有多条流水线,则通过用户描述要求进行删选,选出最佳匹配;若有唯一流水线,则直接作为最佳匹配;若没有对应流水线,则建立新任务的流水线; 步骤(3)任务匹配能力库,通过匹配得到分解能力或者执行能力,得到分解能力转到步骤(4),得到执行能力转到步骤(5),如果分解能力和执行能力都匹配不到,则停止分解;所述的与能力库的匹配是指任务根据自身的颗粒度程度和特性参数,与能力库中多颗粒度和多特性参数的能力匹配,通过把已有的任务处理流水线作为一种新的执行能力注册到能力库中实现多颗粒度的能力,能力匹配时需要把任务的特性参数和能力的特性参数进行综合匹配,在满足特性参数的多个能力中选择最优能力; 所述的多颗粒度和多特性参数是指多个子任务的颗粒度以及特性参数的总和; 步骤(4)分解能力将该任务分解为各子任务,把每个子任务重新提交,转到步骤(2); 步骤(5)在该任务的任务处理流水线中添加该执行能力; 步骤(6)通过步骤(I) 步骤(5)的递归分解得到该任务的任务处理流水线,添加到任务处理流水线库。
全文摘要
本发明公开了一种基于递归自主式复杂任务分解系统及方法。本发明具体包括如下步骤1)任务分解系统由能力库、流水线库和递归分解模块组成;2)能力库包括人工能力和程序能力,两种能力均又包括分解能力和执行能力;3)流水线库中包含旧任务分解后的各执行能力的组合;4)递归分解模块接受用户提交的任务,通过递归处理将该任务分解成各个子任务,直到都能和能力库中的执行能力对应,建立新的任务流水线,添加到流水线库中;5)用户提交任务,判断任务是否为新任务,如果新任务先执行递归分解模块再到流水线库中匹配执行,如果是已知任务直接到流水线库中匹配执行。本发明采用递归自主式的模式让用户无需关心任务的复杂度就可以分解并执行任务。
文档编号G06F9/38GK103092574SQ201310020640
公开日2013年5月8日 申请日期2013年1月18日 优先权日2013年1月18日
发明者诸葛斌, 王伟明, 戴国伟 申请人:浙江工商大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1