管理任务执行的制作方法

文档序号:6348299阅读:303来源:国知局
专利名称:管理任务执行的制作方法
技术领域
本说明书涉及管理任务执行。
背景技术
数据处理系统通常存储、管理、处理并分析数据。数据处理系统可以简单地操控被调度来在某一时间完成的一个或多个任务。可替换地,数据处理系统可以是大规模客户关系管理系统(customer relationship management system) 不论简单还是复杂,数据处理系统通常包括一个或多个组件,例如处理元件、输入数据和输出数据。数据处理系统的处理元件确定数据处理系统的功能,例如,数据仓库、客户关系管理和数据挖掘(mining)等等。数据处理系统的输入数据可以来自许多源。例如,输入数据可以来自平面文件(flat file)、数据库表格、操作系统等等。输入数据也可以来自因特网,将信息从一个系统携带到另一个系统。数据处理系统的输出数据是处理元件生成的数据。输出数据的格式取决于生成它们的处理元件而不同。

发明内容
在一方面,通常,一种用于管理任务执行的方法包括接收将由各个功能模块执行的多个任务的规范;使用数据流图来处理输入数据流,所述数据流图包括由链接连接的表示数据处理组件的节点,所述链接表示数据处理组件之间的数据流;响应于至少一个数据处理组件提供的至少一个数据流,生成消息流;和响应于消息流中的每个消息,使用一个或多个相应功能模块来执行一个或多个任务的集合的迭代。方面可以包括以下特征中的一个或多个。至少一个功能模块被配置成启动所述数据流图的执行。所述多个任务的规范规定所述至少两个任务之间的从属关系。所述至少两个任务之间的从属关系定义关于与所述任务对应的功能模块的执行的至少部分排序。所述至少两个任务之间的从属关系定义用于确定至少一个功能模块的执行所基于的至少一个条件的条件逻辑。至少一个功能模块包括故障处理模块,当所述条件逻辑检测在其他功能模块中的一个的执行中已发生故障时执行该故障处理模块。响应于消息流中的两个或更多消息而同时执行一个或多个任务的给定集合的多次迭代。响应于数据流中的数据元素而无需包括该数据元素,生成消息流中的一个或多个消息。消息流中的一个或多个消息包括数据流中的数据元素的至少一部分。至少一个功能模块被配置成响应于接收到消息流中的一个消息而发送确认。至少一个数据处理组件重发未确认的消息。所述方法还包括存储标识多个任务的规范的参数值。所述方法还包括将所生成的消息流发送到用于接收由参数值标识的消息的应用。所述方法还包括以对用于执行所述任务的多个处理可视的参数来存储由所述应用接收到的消息。在另一方面,通常,一种用于管理任务执行的系统包括任务管理系统,包括用于接收将由各个功能模块执行的多个任务的规范的电路;和数据处理系统,包括使用数据流图来处理输入数据流的电路,所述数据流图包括由链接连接的表示数据处理组件的节点, 所述链接表示数据处理组件之间的数据流。所述数据处理系统被配置成响应于至少一个数据处理组件提供的至少一个数据流来生成消息流。所述任务管理系统被配置成响应于消息流中的每个消息,使用一个或多个相应功能模块来执行一个或多个任务的集合的迭代。在另一方面,通常,一种用于管理任务执行的系统包括用于接收将由各个功能模块执行的多个任务的规范的部件;用于使用数据流图来处理输入数据流的部件,所述数据流图包括由链接连接的表示数据处理组件的节点,所述链接表示数据处理组件之间的数据流。所述数据处理系统被配置成响应于至少一个数据处理组件提供的至少一个数据流来生成消息流。所述任务管理系统被配置成响应于消息流中的每个消息,使用一个或多个相应功能模块来执行一个或多个任务的集合的迭代。在另一方面,通常,一种计算机可读介质存储用于管理任务执行的计算机程序。所述计算机程序包括使得计算机进行以下步骤的指令接收将由各个功能模块执行的多个任务的规范;使用数据流图来处理输入数据流,所述数据流图包括由链接连接的表示数据处理组件的节点,所述链接表示数据处理组件之间的数据流;响应于至少一个数据处理组件提供的至少一个数据流,生成消息流;和响应于消息流中的每个消息,使用一个或多个相应功能模块来执行一个或多个任务的集合的迭代。各方面可以包括下列优点中的一个或多个。该技术使得数据流能够被转换为控制流,并且可以有利于其中输入数据是持续的且不可预测的以及每条数据可能需要精心的处理的数据处理情形。数据流图可被合并到任务管理应用的控制流中,对于基于在响应于数据流的元素而生成的输入消息中存储的值的数据处理,允许不同的数据流图。对于数据处理和任务管理具有分离的开发环境允许数据处理应用和任务管理应用的开发被装填(sandbox)到彼此不干扰的独立环境中。因为数据处理应用通常强调数据可用性、数据变换和数据完整性,并且任务管理应用通常强调错误处理、系统资源分配和计算顺序,因此在用于开发数据处理应用和任务管理应用的复杂数据处理系统中使用分离的图形开发工具允许每个工具满足每种类型的应用的独特需求。具有分离的数据处理应用和任务管理应用也便于软件重用。在复杂数据处理系统中,数据可以来自多种外部源并且采取不同的格式。输入数据可能是受损的并且可以使用错误校验来确保数据完整性。分离的数据处理应用处理重新格式化以及错误校验封装,并将该复杂度与下游任务管理应用隔离,这允许不需要可能数据源的特定知识就可以开发任务管理应用并且当数据源或格式改变时可以重用任务管理应用。同样地,可以关注于数据源而不需要下游计算环境的特定知识来开发数据处理应用, 并且甚至当下游处理已经改变时也可以重用数据处理应用。从下列描述以及根据权利要求书,本发明的其他特征和优点将变得明显。


图IA和图IB示出了数据处理系统的示例。图2是数据流图的示例。图3是控制流图的示例。图4图示了如何将数据流转换为控制流。图5是数据处理系统的方框图。图6是示出如何配置应用来迭代地运行的示例。图7A和图7B是示出迭代任务处理的实现的方框图。图8是数据发送机制的示例。
具体实施例方式图IA和图IB示出了数据处理系统的示例。图IA中的数据处理系统100是图表生成工具。在图IA中,Java程序104从包含销售数据的表格102中读取输入,然后绘制柱状图106作为输出。Java程序104是数据处理系统100的处理元件;表格102是输入数据; 以及柱状图106是输出数据。图IB中的数据处理系统120包括在零售商业中部署的调用(call)中心130。该调用中心130从仓库122、制造商124、零售店1 和终端134中拉拽(pull)数据以便向调用中心代理131、132、133和134给出关于商品可用性的实时信息。服务器136、终端134和在它们上运行的应用是处理元件。从仓库122、制造商124、零售店1 和终端134中拉拽的信息是输入数据。显示在调用代理的终端上的关于商品可用性的实时信息是输出数据。诸如图IB中所示的那样的复杂数据处理系统处理大量数据并且通过在系统上运行的应用进行无数的计算。一些应用是商业上可获得的。一些应用必须是客户订制的以满足客户的特殊需求。复杂数据处理系统中的应用往往是专用的。例如,一些应用可以主要处理数据处理,并且一些可以主要处理任务管理。数据处理应用通常处理数据相关的计算,例如重新格式化、排序和组织数据。数据处理应用往往关注于数据如何从源流向目的地以及数据如何在处理中进行变换。任务管理应用通常处理计算相关业务的调度和初始化,例如执行程序、 调度事件、管理处理和处理故障条件。任务管理应用往往重点在于控制如何逐个任务地流动以及控制流怎样受条件逻辑和故障条件的影响。数据处理应用和任务管理应用通常具有不同的特性。用于这两种类型的应用的开发环境可以是相同的或者分离的。用于数据处理应用的示例性开发环境是下述的基于图的计算环境。
基于图的计算环境允许程序员通过使用组件作为构建块来构建基于图的应用。基于图的应用通常通过有向图以及图中的有向链接(或者“边缘”)来表示,该有向图在图中具有表示组件(或者是数据存储组件或者是可执行计算组件)的节点(或者“顶点”),且有向链接表示组件之间的数据流。数据流图(也简称为“图”)是模块化实体。每个图可以由一个或多个其它图组成,并且具体图可以是更大图中的组件。图形开发环境(GDE)向开发人员提供用于开发、测试和部署应用的用户界面作为定制给给定用户专用环境的可执行图形。图2是表示数据处理应用的数据流图的示例。在图2中,输入数据集组件202包含特殊商品的状态数据。该状态数据是从仓库、制造商和零售店拉拽的。计算组件204读取输入数据集组件202中包含的数据,重新格式化它们,并且将它们馈送到下一计算组件 208。计算组件208分析重新格式化的数据并且生成将要存储在输出数据集组件210中的输出数据。该输出数据表示商品可用性。符号212是表示从输入数据集组件202流出的数据元素(例如,记录或其他数据单元)的源的输出端口。符号214是表示流入计算组件208 的数据元素的目的地的输入端口。链接206示出了数据流动的方向,即,从计算组件204到计算组件208。由数据流图200具体化的数据处理应用可用于调用中心系统、例如图IB中所示的调用中心系统120中。诸如图200之类的数据流图具体化了数据处理应用的数据处理方面,诸如,像数据来自哪里、数据经历什么变换以及数据到达哪里那样。作为比较,图3示出了控制流图300(也称作“计划(Plan)”)。控制流图300表示了规定将要由各个功能模块执行的任务的任务管理应用的规范。功能模块可以执行包括例如一系列将要在计算机系统上执行的动作的任务。可以使用数据流图来实现功能模块或者功能模块可以表示另一控制流图(称作“子计划(SubPlan) ”)。功能模块可以是条件逻辑、或者程序、或者用户脚本的实现。在控制流图300中,诸如人口统计图302、邮递图306、 顶级客户图310和底层客户图314之类的功能模块是数据流图。负载交易程序304是包括例如以Python或Perl的脚本的可执行代码的功能模块。分发邮件条件任务308是条件逻辑的实现,取决于特定客户是被分类为顶级客户还是底层客户或者是需要授信(credit extension)的客户而将控制引导到顶级客户图310、或者信用子计划312、或者底层客户图314。信用子计划312和费用子计划316自身是控制流图。用箭头链接322、3M等来连接功能模块。箭头链接规定由功能模块执行的任务之间的从属关系,由此指示控制如何从一个功能模块流向另一个功能模块并且定义功能模块根据其来运行的至少部分排序。例如,人口统计图302是在邮递图306之前运行的。诸如图300的控制流图体现了由控制流图控制的任务管理应用的控制方面。任务管理应用的控制方面包括例如确定不同任务之间的运行顺序并且应用条件逻辑。如上所述,复杂数据处理系统可能必须管理大量数据并且执行许多计算。在复杂数据处理系统中,可以使用任务管理应用和数据处理应用两者。例如,在图IB中所示的调用中心系统120中,客户交易数据流向系统并且使用实时处理来对其处理。如果仅需要一步处理来处理数据,诸如在数据库中将数据登记为条目, 则由诸如数据流图200之类的数据流图表示的简单应用可能就足够了。然而,在许多情况下,可能需要多步处理。例如,在大的零售商业中,可能同时发生数千起客户交易。可能需要并行处理。或者在综合零售商业中,客户可能愿意被差别对待。因此可以实现条件逻辑来处理不同类别的客户。或者,在可靠的调用中心系统中,可以使用异常处理(exception handling)、故障转移(failover)和数据清理。因此可能需要故障处理。当数据处理是涉及并行处理、条件逻辑和/或故障处理的多步处理时,简单的数据流图可能并非捕获多步处理的复杂性的最佳方案。在处理期间在某一阶段将数据流转换为控制流可能是有利的。例如,诸如图IB中所示的调用中心系统120之类的复杂数据处理系统可以使用数据处理应用和任务管理应用两者。首先在数据处理应用中处理输入数据。随后在任务管理应用中使用该数据来驱动控制流。对于开发复杂数据处理系统的应用的开发人员来说,例如当输入数据是流化的、连续的且不可预测的时,或者当可能需要同时数据处理时,可以使用使得数据流驱动控制流的技术。图4中图示了该技术的示例。在图4中,数据处理应用(例如图IB中所示的调用中心系统120)接收来自各个外部源的输入数据(例如仓库数据402、制造数据404和零售店销售数据406)的流。当在该示例中由数据流图410实现的、输入数据流入数据处理应用中时,图410中的一个组件将来自不同源的数据重新格式化为适当的格式。图410中的另一组件然后存储该数据并且生成将被发送到任务管理应用450的消息。数据处理应用所生成的消息基于接收到的输入数据或者在接收到的输入数据中的元素,并且在一些实现中部分输入数据可被用作消息。可以使用不同的机制将消息从数据处理应用410发送到任务管理应用450,例如, 消息传送、队列、共享存储器空间、远程过程调用。任务管理应用450基于消息或者在消息中包含的某些值,可以援用(invoke)不同的处理,例如执行计划442、子计划444和/或数据流图446的处理。在一些情况下,对于从数据处理应用410接收到的每个输入消息,任务管理应用 450援用一个或多个任务(例如计划442、子计划444或数据流图446)的相应集合的分离迭代。因此如果响应于作为数据处理应用410的输出而生成的数据元素来生成每个消息, 则应用450能够针对每个数据元素进行迭代。循环索引针对任务管理应用450的每次迭代而递增。在每次循环迭代中,与当前循环索引相关联的处理被分拆(spin off)以处理输入消息。取决于任务管理应用450接收到的消息或者在消息中包含的值,被分拆来处理输入消息的该处理可以执行数据流图、或者子计划、或者用于执行一个或多个任务的集合的任何程序。在图示的示例中,对于数据处理应用410处理的输入仓库数据402的第一元素,消息422由数据处理应用410生成并且被发送到任务管理应用450。任务管理应用450开始它的第一循环迭代(具有循环索引0),分拆为子处理452以便处理消息442。处理452对应于任务管理应用450召用的计划442,以便减少可用商品的数量。子处理妨4在与任务管理应用450的循环索引1相关联的第二循环迭代中启动,以便处理响应于制造数据404而生成的输入数据的第二元素。子处理妨4可以对应于子计划444,其例如执行增加可用商品的数量的任务。子处理456在与循环索引2相关联的第三循环迭代中启动,以便处理响应于零售店销售数据406而生成的输入数据的第三元素。子处理456可以对应于执行数据流图446。任务管理应用可被配置成同时或连续地援用处理452、妨4和456。处理可以是指在不同的CPU上或者在同一 CPU上运行的处理。在后一种情况下,
8处理也可以称作“线程(thread)”。为了增加可靠性,任务管理应用450可被配置成当它接收到消息时向数据处理应用410发送确认。如果任务管理应用判定接收到的消息是完整无损的,则该确认可以是肯定确认,或者如果任务管理应用判定接收到的消息是受损的,则该确认可以是否定确认。数据处理应用410可被配置成等待在发送下一消息之前已经接收到上一发送的消息的确认。它可被进一步配置成当接收到肯定确认时发送下一消息并且当接收到否定确认是重发上一消息。图5是应用开发和执行系统500的方框图。系统500包括两个图形开发环境,⑶E 512用于数据流图开发,且GDE 514用于控制流开发。可替换地,可以使用一个图形开发环境开发数据流图和控制流图两者。或者,图形开发环境可被用来开发控制流图,并且命令行用户界面可被用于数据流图,或者反之亦然。使用⑶E 512,构建包括数据流图580的数据处理应用518。使用⑶E514,构建包括控制流图550的任务管理应用516。系统500也包括数据库520。数据库520可以是可扩展(scalable)的面向对象数据库系统,其向系统500提供各种类型的信息(例如元数据)的存储。数据库520可以是例如企业元数据数据库,其可以支持基于图的应用的开发和执行以及基于图的应用与例如操作系统的其他系统之间的数据交换。系统500进一步包括操作系统524。操作系统5 可以是例如并行操作环境。操作系统5M对于运行应用开发环境、例如⑶E 512和⑶E 514提供支持,并且提供已开发应用的可扩展的并行和分布式执行。在图5中,当数据正由数据处理应用518处理时,输入数据流530经过数据流图 580。数据流图580包括计算组件、重新格式化584。在数据流图580中,数据从输入数据集 582流向输出数据集586。在被重新格式化之后,数据从数据处理应用518流出并且流入任务管理应用516, 并且被用来驱动由控制流图550驱动的任务管理应用516。控制流图550示出了两个任务, 任务552和任务554。任务可以是例如通过执行数据流图或脚本(例如Perl脚本)来执行的计算。时间顺序556示出了在控制流图550中规定的任务的运行顺序。在这种情况下, 任务552在任务5M之前执行。如图5所示,控制流图550中的任务552是Perl脚本,并且控制流图中的任务5M 自身是子任务的控制流图。任务5M包括由可以在操作系统5M中执行的方法实现的几个子任务。这些方法可以是系统提供的现有方法或由用户开发的定制方法。如图5中所示, 例如,任务545包括五个方法触发(Trigger)、开始(At Mart)、执行(Perform)、失败(At Failure)和成功(At Success)。这些方法可以通过系统来提供或者可以由客户开发。在一些示例中,可以如下实现上面五个方法。方法“触发”可被实现为表示任务554的开始点。它可以包含用于开始执行的条件。该条件可以是是否存在指定文件或者标记是否已被设置为真(true)。方法“开始”可被实现为系统准备方法“执行”的方法,例如将环境变量设置为期望值,或者建立日志文件以便将运行时间信息记入日志。方法“执行”可被实现为执行任务554的主功能。任务5M也可以包括条件逻辑来处理在方法“执行”之后发生的事情。如果方法“执行”在其执行期间成功,则执行方法 “成功”以便利用为零的返回代码来退出任务阳4。如果方法“执行”在其执行期间失败, 则执行方法“失败”以便利用为非零的返回代码来退出任务554。可选地,可以对于回滚 (rollback)、错误处理和恢复添加附加的方法。例如,可以添加回滚的方法以便从失败点开始以逆执行顺序来回滚已经完成的事情。可替换地,可以添加清理(cleanup)的方法以便通过重置标记、寄存器等等来清理失败的条件。为了处理迭代输入数据,可以使用循环SubPlan (子计划)。在一些实现中,任务管理应用被配置成包括循环SubPlan。如图6中所示,控制流图602是循环SubPlan的示例, 并且具有为处理输入数据元素而实现的条件逻辑。为了处理输入数据流,迭代地运行控制流图602。屏幕截图604是示出如何通过将预定属性设置为“循环”以及通过设置适当的循环属性来将简单应用(在该示例中被称作“My_Subplan”)配置为循环SubPlan的示例。循环属性包括循环类型(D0-While,F0r-Each等)、循环值矢量、循环并存条件、循环计数和循环索引等等。作为示例,图7A和图7B展示了如何构造包括任务管理应用和数据处理应用的系统来处理迭代输入数据。假设我们具有涉及处理连续且不可预测地到达的客户交易的商业。开发人员可以构造数据处理应用702来处理数据格式化和其他准备工作,并且可以构造任务管理应用 704来执行进一步处理数据的任务。在已经构造了数据处理应用和任务管理应用之后,数据处理应用可被配置成将数据传送到任务管理应用,并且任务管理应用可被配置成监听来自数据处理应用的消息。在一些实现中,在数据处理应用和任务管理应用之间传送的消息可以包括由数据处理应用输出(例如,在消息中封装和/或加密)的数据。在一些实现中,在数据处理应用和任务管理应用之间传送的消息可以响应于来自数据处理应用的数据而生成,但无需包括输出数据自身。因此,术语“消息”可以是指以任何形式或格式的在数据处理应用和任务管理应用之间传送的信息。在任务管理侧,任务管理应用704包括连续地监听来自数据处理应用702的消息的一个或多个任务(例如SubPlan)的循环集合。符号706是指示应用正在迭代运行的符号。到达任务管理应用704的消息触发新的循环迭代,其中可以分拆一个处理。任务管理应用704可被配置成在开始新循环迭代之前等待直到最后一个循环迭代完成为止或者被配置成当接收到消息时立即开始新的迭代。在后一种情况下,处理在每次迭代同时运行以外拆分。在数据处理侧,用户可以配置消息发送应用(例如数据流图)来与对方监听应用 “交谈”,该对方监听应用在这种情况下是任务管理应用704。在一些实现中,消息发送应用定义保持对方监听应用的名称的参数,从而消息发送应用知道向哪里发送消息。如前所提到的,具有分离的数据处理应用和任务管理应用提供重用软件的优势。 然而,当任务管理应用、即对方监听应用已被新的任务管理应用代替时,保持对方监听应用的名称的消息发送应用中的参数需要被相应地更新。用户可能需要打开消息发送应用并且做出所要求的改变。为了避免每次任务管理应用已被新应用代替时需要打开消息发送应用,可以使得参数Name_0f_LiStening_Applicati0n (监听应用的名称)对于消息发送应用和任何对方监听应用来说是可见的。在监听应用中,参数Name_of_Listening_Application被分配监听应用的名称的值。因为该参数对于消息发送应用来说也是可见的,因此消息发送应用可以读取参数Name_0f_LiStening_Applicati0n的值以便找出认为向其发送消息的应用。这样,甚至在运行时间也能够改变监听应用,而不需要打开消息发送应用来用于更新。在一些实现中,监听应用将接收到的消息存储在参数中。处理的参数定义用于那个处理的系统设置。在一些情况下,父处理的参数可以被继承,并且因此对于它的子处理来说是可见的。例如,图7A中的参数720用于存储从数据处理应用702发送到任务管理应用 704的消息。可选地,用户可以在任务管理侧构造程序或方法以便剔除消息发送应用,如图7B 中所示。在图7B中,任务管理应用722( —个计划(Plan))包括监听程序704,其自身是任务管理应用(一个子计划(SubPlan)),用于监听消息;和启动程序726,启动消息发送数据处理应用702的执行,如箭头730所示。图7B也示出数据处理应用702包括两个数据处理应用732和734以及队列736。 数据处理应用732首先对输入数据执行复杂处理。然后它移交数据,从而数据得以向队列 736公布。数据处理应用734从队列736中检索数据,重新格式化它们,并且通过发送将被存储在预定位置的消息将它们公布给任务管理应用704。此处,队列736正充当流向数据处理应用732的输入数据与流出数据处理应用734的流出数据之间的缓冲器。这样,数据处理应用734可被配置成在送出下一消息之前等待先前发送的消息的确认,而不阻挡数据处理应用732处理连续且不可预测地流化的输入数据。而且,因为从中去除了部分复杂处理, 因此数据处理应用734被保持得简单而轻便。当任务管理应用722开始运行时,启动程序7 启动数据处理应用732和734。同时,监听程序704开始监听来自消息发送数据处理应用702的消息。在一些实现中,数据处理应用732和734以及任务管理应用722可被配置成在同一主机上运行。数据处理应用 732和734以及任务管理应用722也可以包括各种错误处理方法,例如用于使得消息发送耐故障的回滚、恢复、清理以及确认和消息跟踪,如图8中所展示的。在图8中,标记为公布方的消息发送应用802可以是如图7A中所示的数据处理应用702或者如图7B中所示的数据处理应用734。标记为用户的接收应用804可以是如图 7A或图7B中所示的任务管理应用704。在图8中,从公布方发送的消息被分配一个序列号。序列号帮助公布方跟踪所发送的消息并且便于用户确认消息的接收。对于接收到的每个消息,用户向公布方发送一个确认。在该确认中,用户指明接收到的消息的序列号以及该消息是完整无损(肯定)还是受损(否定)。当公布方发送具有序列号X的消息时,它可以等待对该消息的确认。当它接收到包含序列号X的确认时,如果该确认是肯定的,则它发送序列号X+1的下一个消息,或者如果确认是否定的,则它重新发送序列号X的消息。可替换地,公布方可以不等待先前发送的消息的确认就发送消息。如果在某一时间段内还没有接收到确认,则公布方可以存储未确认的消息,并且重新发送该消息。用户可被安排成忽略具有相同序列号的消息,从而接收重复的消息将不会造成问题。如果系统在某一点崩溃,则公布方可以在恢复时重新发送未确认的消息。如果期望数据幸免于系统故障,则该未确认的消息可被存储在例如盘的永久性存储器中。可以使用其他方法或技术来确保成功地发送每个消息。上述方案可以使用用于在计算机上执行的软件来实现。例如,该软件形成在一个或多个已编程或可编程计算机系统上执行的一个或多个计算机程序中的过程(其可以是各种各样的架构,例如分布式、客户机/服务器、或网格),每个已编程或可编程计算机系统包括至少一个处理器、至少一个数据存储系统(包括易失性和非易失性存储器和/或存储元件)、至少一个输入设备或端口、和至少一个输出设备或端口。该软件可以形成例如一个或多个更大程序模块,其提供与计算图形的设计和配置相关的其他服务。图形的节点和元素可被实现为存储在计算机可读介质中的数据结构或者符合存储在数据储存库中的数据模型的其他组织数据。该软件可以被提供在由通用或专用可编程计算机可读的诸如⑶-ROM之类的存储介质上或者可以经由网络的通信介质被传递(以传播信号编码)到它被执行的计算机处。 全部功能都可以在专用计算机上执行,或者使用专用硬件例如处理器来执行。该软件可以以其中通过不同计算机来执行软件规定的不同计算部分的分布式方式来实现。每个这种计算机程序优选地被存储在或者被下载到可由通用或专用可编程计算机读取的存储媒体或设备(例如,固态存储器或媒体,磁媒体或光媒体),用以当该存储媒体或设备被计算机系统读取时配置和操作计算机以执行此处描述的过程。本发明系统也可以被考虑来实现为利用计算机程序配置的计算机可读存储介质,其中如此配置的存储介质使得计算机系统以特定和预定的方式操作来执行此处描述的功能。已经描述了本发明的许多实施例。然而,将会理解,在不背离本发明的精神和范围的情况下可以进行各种各样的修改。例如,上述的一些步骤可以是不受顺序约束的,因此可以以不同于所描述的顺序进行。将会理解,前面的描述意欲是示意性的,且不限制本发明的范围,由所附权利要求书的范围来限定本发明的范围。例如,在实质上不影响整体处理的情况下可以以不同的顺序来执行上述的许多功能步骤。其他实施例在所附权利要求的范畴之内。
权利要求
1.一种用于管理任务执行的方法,所述方法包括接收将由各个功能模块执行的多个任务的规范;使用数据流图来处理输入数据流,所述数据流图包括由链接连接的表示数据处理组件的节点,所述链接表示数据处理组件之间的数据流;响应于至少一个数据处理组件提供的至少一个数据流,生成消息流;和响应于消息流中的每个消息,使用一个或多个相应功能模块来执行一个或多个任务的集合的迭代。
2.如权利要求1所述的方法,其中,至少一个功能模块被配置成启动所述数据流图的执行。
3.如权利要求1所述的方法,其中,所述多个任务的规范规定所述至少两个任务之间的从属关系。
4.如权利要求3所述的方法,其中,所述至少两个任务之间的从属关系定义关于与所述任务对应的功能模块的执行的至少部分排序。
5.如权利要求3所述的方法,其中,所述至少两个任务之间的从属关系定义用于确定至少一个功能模块的执行所基于的至少一个条件的条件逻辑。
6.如权利要求5所述的方法,其中,所述至少一个功能模块包括故障处理模块,当所述条件逻辑检测在其他功能模块中的一个的执行中已发生故障时执行该故障处理模块。
7.如权利要求1所述的方法,其中,响应于消息流中的两个或更多消息而同时执行一个或多个任务的给定集合的多次迭代。
8.如权利要求1所述的方法,其中,响应于数据流中的数据元素而无需包括该数据元素,生成消息流中的一个或多个消息。
9.如权利要求1所述的方法,其中,消息流中的一个或多个消息包括数据流中的数据元素的至少一部分。
10.如权利要求1所述的方法,其中,至少一个功能模块被配置成响应于接收到消息流中的一个消息而发送确认。
11.如权利要求10所述的方法,其中,至少一个数据处理组件重发未确认的消息。
12.如权利要求1所述的方法,还包括存储标识多个任务的规范的参数值。
13.如权利要求12所述的方法,还包括将所生成的消息流发送到用于接收由参数值标识的消息的应用。
14.如权利要求13所述的方法,还包括以对用于执行所述任务的多个处理可视的参数来存储由所述应用接收到的消息。
15.一种用于管理任务执行的系统,所述系统包括任务管理系统,包括用于接收将由各个功能模块执行的多个任务的规范的电路;和数据处理系统,包括使用数据流图来处理输入数据流的电路,所述数据流图包括由链接连接的表示数据处理组件的节点,所述链接表示数据处理组件之间的数据流;其中,所述数据处理系统被配置成响应于至少一个数据处理组件提供的至少一个数据流来生成消息流;并且其中,所述任务管理系统被配置成响应于消息流中的每个消息,使用一个或多个相应功能模块来执行一个或多个任务的集合的迭代。
16.一种用于管理任务执行的系统,所述系统包括用于接收将由各个功能模块执行的多个任务的规范的部件;用于使用数据流图来处理输入数据流的部件,所述数据流图包括由链接连接的表示数据处理组件的节点,所述链接表示数据处理组件之间的数据流;其中,所述数据处理系统被配置成响应于至少一个数据处理组件提供的至少一个数据流来生成消息流;并且其中,所述任务管理系统被配置成响应于消息流中的每个消息,使用一个或多个相应功能模块来执行一个或多个任务的集合的迭代。
17.一种存储用于管理任务执行的计算机程序的计算机可读介质,所述计算机程序包括使得计算机进行以下步骤的指令接收将由各个功能模块执行的多个任务的规范;使用数据流图来处理输入数据流,所述数据流图包括由链接连接的表示数据处理组件的节点,所述链接表示数据处理组件之间的数据流;响应于至少一个数据处理组件提供的至少一个数据流,生成消息流;和响应于消息流中的每个消息,使用一个或多个相应功能模块来执行一个或多个任务的集合的迭代。
全文摘要
管理任务执行包括接收将由各个功能模块执行的多个任务(442、444、446)的规范;使用数据流图来处理输入数据(402、404、406)流,所述数据流图包括表示由链接连接的数据处理组件(410)的节点,所述链接表示数据处理组件之间的数据流;响应于至少一个数据处理组件(410)提供的至少一个数据流,生成消息(422)流;和响应于消息流中的每个消息,使用一个或多个相应功能模块来执行一个或多个任务(442)的集合的迭代。
文档编号G06F9/46GK102317911SQ201080007664
公开日2012年1月11日 申请日期2010年2月12日 优先权日2009年2月13日
发明者M.巴克斯鲍姆, T.瓦克林 申请人:起元技术有限责任公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1