CN103377076A - 一种运行时调整任务执行计划的方法和系统 - Google Patents
一种运行时调整任务执行计划的方法和系统 Download PDFInfo
- Publication number
- CN103377076A CN103377076A CN2012101338444A CN201210133844A CN103377076A CN 103377076 A CN103377076 A CN 103377076A CN 2012101338444 A CN2012101338444 A CN 2012101338444A CN 201210133844 A CN201210133844 A CN 201210133844A CN 103377076 A CN103377076 A CN 103377076A
- Authority
- CN
- China
- Prior art keywords
- task
- planning
- execution plan
- task execution
- plan
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Theoretical Computer Science (AREA)
- Entrepreneurship & Innovation (AREA)
- Human Resources & Organizations (AREA)
- Strategic Management (AREA)
- Economics (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Quality & Reliability (AREA)
- Game Theory and Decision Science (AREA)
- Educational Administration (AREA)
- Marketing (AREA)
- Operations Research (AREA)
- Development Economics (AREA)
- Tourism & Hospitality (AREA)
- General Business, Economics & Management (AREA)
- General Engineering & Computer Science (AREA)
- Stored Programmes (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种运行时调整任务执行计划的方法和系统,该方法运行在任务执行引擎中,所述任务执行引擎通过计划编制接口接收计划编制任务,所述计划编制任务包含任务执行计划,该方法包括:接收第一计划编制任务;响应于接收到第二计划编制任务,该第二计划编制任务包含对第一计划编制任务的任务执行计划进行修改的任务执行计划,修改所述第一计划编制任务的任务执行计划;以及读取所述第一计划编制任务的任务执行计划的下一个任务,并启动该下一个任务。该方法和系统无需如传统方法需要专业人员利用流程建模工具去重新修改设计流程,容易实现,并且有助于加速对客户的业务响应。
Description
技术领域
本发明涉及业务流程系统管理,更具体地,涉及一种运行时调整任务执行计划的方法和系统。
背景技术
在业务流程系统管理这一技术领域,随着业务需求复杂性的日益增长,业务流程的设计变得越来越艰巨,业务流程的维护也更加困难。目前,相比传统的业务流程设计,以任务为导向的设计方法受到更多的关注。任务类似于一个流程片段,它通常简单,并且目的直接,可以降低传统流程的复杂性,在设计和运行时提供更多的灵活性。
由于任务本身仅仅是整个复杂流程的一部分且很简单,它不能满足整个业务需求,因此需要任务之间的协同合作。目前,在一些任务执行引擎(也称流程引擎)的实现中,任务之间的协同合作一般在流程设计阶段被定义。一个任务可以将一个事件类型定义为一个先决条件,另一个任务可以触发这类事件,之后前一个任务将被启动。在这个设计中,触发事件任务(也称源任务)和事件任务(也称目标任务)之间的关系必须在设计时决定。
然而,在目前的任务执行引擎中,运行时任务执行计划的动态调整的需求很难被满足。例如,在教育领域,当一些学生在某个科目上表现不好,或是想进一步提高时,他们需要在此科目上得到帮助,这时老师需要针对学生的实际情况制定一个学习改进计划,在该计划中需要包括很多的任务,比如跟学生家长沟通,跟学科专家讨论,安排学生的课程,中期测验,教师评估等。由于不同的计划可能有不同的任务,任务和任务之间的次序也不尽相同,而且任务本身也是无法事先全部定义的,所以流程的设计开发人员在利用传统的任务执行引擎及其设计工具,设计满足类似需求的流程时,不可能预测到所有可能的组合,或者组合的数目过多,设计开发人员不能在设计时加入过多的限制及引入及其复杂的控制逻辑,导致传统的任务执行引擎及其设计工具在设计阶段无法直接解决这样的问题。
发明内容
为了解决现有的任务执行引擎中存在的问题,引入任务的设计思路,并且在任务执行引擎运行时动态决定加入那些任务,或者修改任务之间的协作关系及其协作方式是非常必要的。
根据本发明的一个方面,提供了一种运行时调整任务执行计划的方法,该方法运行在任务执行引擎中,所述任务执行引擎通过计划编制接口接收计划编制任务,所述计划编制任务包含任务执行计划,该方法包括:
接收第一计划编制任务;
响应于该第一计划编制任务的任务执行计划需要修改,接收所述第二计划编制任务,并且根据所述第二计划编制任务的任务执行计划修改所述第一计划编制任务的任务执行计划;以及
读取所述第一计划编制任务的任务执行计划的下一个任务,并启动该下一个任务。
根据本发明的另一个方面,提供了一种运行时调整任务执行计划的系统,该系统运行在任务执行引擎中,所述任务执行引擎通过计划编制接口接收计划编制任务,所述计划编制任务包含任务执行计划,该系统包括:
接收模块,被配置为接收第一计划编制任务;
修改模块,被配置为响应于该第一计划编制任务的任务执行计划需要修改,接收所述第二计划编制任务,并且根据所述第二计划编制任务的任务执行计划修改所述第一计划编制任务的任务执行计划;以及
运行模块,被配置为读取所述第一计划编制任务的任务执行计划的下一个任务,并启动该下一个任务。
附图说明
通过结合附图对本公开示例性实施方式进行更详细的描述,本公开的上述以及其它目的、特征和优势将变得更加明显,其中,在本公开示例性实施方式中,相同的参考标号通常代表相同部件。
图1示出了适于用来实现本发明实施方式的示例性计算系统100的框图;
图2示出了根据本发明的一种优选的实施方式的一种运行时调整任务执行计划的方法流程;
图3示出了使用XML来描述背景技术中涉及的任务流程的第一计划编制任务的任务执行计划的示例;
图4示出了使用XML来描述背景技术中涉及的任务流程的第二计划编制任务的任务执行计划的示例;
图5示出了使用XML来描述背景技术中涉及的任务流程的修改后的第一计划编制任务的任务执行计划的示例;以及
图6示出了根据本发明的一种优选的实施方式的一种运行时调整任务执行计划的系统得结构框图。
具体实施方式
下面将参照附图更详细地描述本公开的优选实施方式。虽然附图中显示了本公开的优选实施方式,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整的传达给本领域的技术人员。
图1示出了适于用来实现本发明实施方式的示例性计算系统100的框图。如图1所示,计算机系统100可以包括:CPU(中央处理单元)101、RAM(随机存取存储器)102、ROM(只读存储器)103、系统总线104、硬盘控制器105、键盘控制器106、串行接口控制器107、并行接口控制器108、显示控制器109、硬盘110、键盘111、串行外部设备112、并行外部设备113和显示器114。在这些设备中,与系统总线104耦合的有CPU 101、RAM 102、ROM 103、硬盘控制器105、键盘控制器106、串行控制器107、并行控制器108和显示控制器109。硬盘110与硬盘控制器105耦合,键盘111与键盘控制器106耦合,串行外部设备112与串行接口控制器107耦合,并行外部设备113与并行接口控制器108耦合,以及显示器114与显示控制器109耦合。应当理解,图1所述的结构框图仅仅是为了示例的目的,而不是对本发明范围的限制。在某些情况下,可以根据具体情况增加或减少某些设备。
所属技术领域的技术人员知道,本发明可以实现为系统、方法或计算机程序产品。因此,本公开可以具体实现为以下形式,即:可以是完全的硬件、也可以是完全的软件(包括固件、驻留软件、微代码等),还可以是硬件和软件结合的形式,本文一般称为“电路”、“模块”或“系统”。此外,在一些实施例中,本发明还可以实现为在一个或多个计算机可读介质中的计算机程序产品的形式,该计算机可读介质中包含计算机可读的程序代码。
可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于——无线、电线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言-诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言-诸如”C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)-连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
下面将参照本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述本发明。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机程序指令实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,这些计算机程序指令通过计算机或其它可编程数据处理装置执行,产生了实现流程图和/或框图中的方框中规定的功能/操作的装置。
也可以把这些计算机程序指令存储在能使得计算机或其它可编程数据处理装置以特定方式工作的计算机可读介质中,这样,存储在计算机可读介质中的指令就产生出一个包括实现流程图和/或框图中的方框中规定的功能/操作的指令装置(instruction means)的制造品(manufacture)。
也可以把计算机程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机或其它可编程装置上执行的指令能够提供实现流程图和/或框图中的方框中规定的功能/操作的过程。
为解决现有技术中存在的问题,本发明提供了一种运行时调整任务执行计划的方法,该方法运行在任务执行引擎中,该发明使用专门的计划编制任务可以负责接收任务执行计划的编制请求,从而形成一个运行时的任务执行计划,该任务执行计划可以被解释任务执行引擎调度执行;在该任务执行计划执行的整个过程中,可以根据需要生成多个计划编制任务的实例,每个计划编制任务实例都可以成为当前任务执行计划的一部分,从而当任务执行引擎解释执行任务执行计划的过程中轮到该计划编制任务实例时,该计划编制任务会被激活,生成相应的任务执行计划,并且融合到运行时的任务执行计划。整个过程是一个不断迭代优化的过程。从而达到修改最初的运行时任务执行计划的目的。
图2示出了根据本发明的一种优选的实施方式的一种运行时调整任务执行计划的方法流程,该方法运行在任务执行引擎中,所述任务执行引擎通过计划编制接口接收计划编制任务,计划编制任务本身作为一个任务,包含着任务执行计划,也就是说,计划编制任务是一个复合任务。根据图2,该方法包括:
在步骤S201,接收第一计划编制任务;
在步骤S202,响应于接收到第二计划编制任务,该第二计划编制任务包含对第一计划编制任务的任务执行计划进行修改的任务执行计划,修改所述第一计划编制任务的任务执行计划;以及
在步骤S203,读取所述第一计划编制任务的任务执行计划的下一个任务,并启动该下一个任务。
在任务执行引擎中,元任务是任务执行引擎执行的一个基本单位,任务可以是元任务,也可以是复合任务(即元任务的组合),还可以是元任务和复合任务的组合或嵌套。上述方法中,计划编制任务本身也是一个任务,它包含了一个任务执行计划,该任务执行计划包括的全部各个任务的范围、执行顺序以及上下文信息。上下文信息泛指在当前任务执行计划中所有任务共享的属性及特定任务的属性等,包括但不限于任务的输入数据字段、输出数据字段,中间数据字段等。全部的任务可以由程序员定义并且注册到任务注册模块中存储。任务注册模块可以作为任务执行引擎的一个模块,也可以使任务执行引擎外的一个存储系统,与任务执行引擎相耦合,通信。任务注册模块存储的注册任务包含该任务的元数据信息,元数据信息包括但不限于例如任务的类型,名称,输入和输出的数据字段等信息。图3示出了使用XML来描述背景技术中涉及的任务流程的第一计划编制任务的任务执行计划的示例。其中routes表明了各任务的执行顺序。
任务执行引擎包含修改接口,该修改接口响应于用户或者外部系统的某种特定操作,例如用户的某种特定键盘操作,或者通过鼠标对任务执行引擎的菜单的操作,或者外部系统的某种中断操作,等等本领域技术人员所知的各种激活操作,激活一编辑装置,用户或外部系统可以利用该编辑装置编辑第二计划编制任务的任务执行计划,该编辑装置将编辑好的第二计划编制任务的任务执行计划发送给任务执行引擎的计划编制接口。
任务执行引擎还可以包含编辑接口,该编辑接口响应于所述任务执行引擎通过计划编制接口接收计划编制任务,激活一编辑装置,用于编辑所述计划编制任务的任务执行计划,例如任务执行引擎接收第一计划编制任务,计划编制接口就激活一编辑装置,用户可以使用该编辑装置进一步编辑该计划编制任务的任务执行计划,在接收到第二计划编制任务时,可以对该第二计划编制任务的任务执行计划进行编辑修改。
就背景技术中所述的例子,教师可以利用修改接口停止第一计划编制任务的任务执行计划的执行,加入第二编制任务,从而修改第一计划编制任务的任务执行计划。也可以通过计划编制接口直接接收第二计划编制任务。图4示出了使用XML来描述背景技术中涉及的任务流程的第二计划编制任务的任务执行计划的示例。本领域技术人员可以理解,第二计划编制任务中的任务执行计划对第一计划编制任务中的任务执行计划的修改包括但不限于:在第一计划编制任务的任务执行计划中,可以再加入多个第二计划编制任务,进行多次修改任务执行计划;或者还可以在第一计划编制任务加入第二计划编制任务,在第二计划编制任务加入第三计划编制任务,进行迭代或者嵌套式地修改任务执行计划。图2所示的方法中,第一计划编制任务可以认为是根计划编制任务,可以对其加入新的计划编制任务,但是,加入的计划编制任务不能修改或者删除已经执行过的任务。
加入的多个第二计划编制任务,或者嵌套的多个第二计划编制任务可以修改当前第一计划编制任务的任务执行计划,具体来说,加入的多个第二计划编制任务,或者嵌套的多个第二计划编制任务包含以下对第一计划编制任务的任务执行计划的至少一种修改:(1)在所述第一计划编制任务的任务执行计划中加入至少一个任务;(2)从所述第一计划编制任务的任务执行计划中删除至少一个任务;(3)设定或者改变所述第一计划编制任务的任务执行计划中任务的执行顺序;(4)设定或者改变所述第一计划编制任务的任务执行计划中任务的并行执行;(5)设定或者改变所述第一计划编制任务的任务执行计划中特定任务的上下文信息。这样,就可以在运行时,连续或者迭代地改变当前第一计划编制任务的任务执行计划。这里,特定任务的上下文信息包括该特定任务的属性信息,例如该任务的输入数据字段、输出数据字段等。
任务执行引擎需要解析第二计划编制任务的任务执行计划,执行相应的修改操作,例如将增加的任务加入到图3所示的任务执行计划,将删除的任务从图3所示的任务执行计划,等等。从而得到一个修改的第一计划编制任务的任务执行计划。图5示出了使用XML来描述背景技术中涉及的任务流程的修改后的第一计划编制任务的任务执行计划的示例。
任务执行计划可以按需修改,但是执行起来也需要按修改后的任务执行计划执行。本领域技术人员可以理解,在一个任务执行引擎中,可以存在多个第一计划编制任务,也就是多个任务执行计划,可以使用不同的唯一编号(task-plan ID)来标志这些不同的任务执行计划,并且该ID在整个任务执行计划运行期保持不变。每一个任务执行计划中还可能包含不同的任务,也可以用任务唯一编号(task ID)来标识这些不同的任务。在一个任务执行引擎中,读取所述第一计划编制任务的任务执行计划的下一个任务,并启动该下一个任务可以通过读取所述第一计划编制任务的任务执行计划的唯一编号,这样,如果第一计划编制任务的任务执行计划被修改,但是修改的任务执行计划仍然采用原来的唯一编号,就可以读取修改后的任务执行计划,就可以保证修改的任务执行计划被执行。图4和图5也表明了上述技术方案。
但是在任务执行计划被修改过程中,如果执行该计划,就会存在问题。因此,在一种实施方式中,可以对该第一计划编制任务的任务执行计划使用锁控制任务执行计划的读操作,其中在修改接口或计划编制接口激活期间,也就是响应于该第一计划编制任务的任务执行计划需要修改,对该第一计划编制任务的任务执行计划的读操作加锁。这时执行引擎的操作只能将当前正在执行的任务执行完毕,不能读取下一个任务,处于等待状态;当任务执行引擎响应于接收到第二计划编制任务,该第二计划编制任务包含对第一计划编制任务的任务执行计划进行修改的任务执行计划,修改所述第一计划编制任务的任务执行计划后,也就是响应于该第一计划编制任务的任务执行计划修改完毕,对该第一计划编制任务的任务执行计划的读操作解锁,这时,执行引擎才可以继续读取下一个任务,继续执行。
另外,本领域技术人员可以想到,上述使用锁控制只是一种控制任务执行计划修改和执行的方式,也可以采用状态查询的方式,例如,当该第一计划编制任务的任务执行计划需要修改,任务执行计划的状态为不可用;第一计划编制任务的任务执行计划修改完毕,任务执行计划的状态为可用;如果所述读取所述第一计划编制任务的任务执行计划的下一个任务时,确定任务执行计划的状态为不可用,就等待,直到任务执行计划的状态为可用,才读取。还可以采用其他的类似于触发的方式执行,例如中断触发方式,其中响应于第一计划编制任务的任务执行计划需要修改,触发读取所述第一计划编制任务的任务执行计划的下一个任务动作停止;响应于第一计划编制任务的任务执行计划修改完毕,触发读取所述第一计划编制任务的任务执行计划的下一个任务动作继续执行,等等。
在一种实施方式中,任务执行引擎中的上述方法还包括:验证第一计划编制任务中的任务执行计划的正确性。如果第一计划编制任务中的任务执行计划验证失败,可以通知外部系统或者用户验证失败的信息,然后通过外部接口接收外部系统或者用户的输入,以确定继续执行该第一计划编制任务还是重新输入新的计划编制任务,或者结束该第一计划编制任务的执行。
验证第一计划编制任务中的任务执行计划的正确性后,就可以启动该第一计划编制任务,或者不进行验证,直接启动该第一计划编制任务。被启动的第一计划编制任务可以通过本领域技术人员熟知的各种方式(如生成工作项等)被外部系统或者用户用来确认当前的任务执行计划,或者修改当前任务执行计划。
在一种实施方式中,任务执行引擎中的上述方法还包括:响应于验证第一计划编制任务中的任务执行计划被修改,验证修改后的第一计划编制任务中的任务执行计划的正确性。同样如果验证失败,可以通知外部系统或者用户验证失败的信息,然后通过外部接口接收外部系统或者用户的输入,以确定继续执行该第一计划编制任务还是重新输入新的计划编制任务,或者结束该第一计划编制任务的执行。
验证修改后的第一计划编制任务中的任务执行计划的正确性后,就可以启动该修改后的第一计划编制任务,或者不进行验证,直接启动该修改后的第一计划编制任务。在修改当前任务执行计划过程中,第一计划编制任务需要与任务执行计划追踪记录存储访问接口交互,以确保任务执行计划的改变与任务执行历史相兼容,比如,获得当前已经执行完毕的任务,通过任务执行计划追踪获得下一格任务,从而开始执行修改后的任务执行计划。其中已经执行完的任务在任务执行计划中不能被改变,或者通过添加新的同类型的任务来实现修改已经执行完的任务等,新加的任务的输入数据项可以从已经执行过的任务输出数据项获得,等等。
任务执行计划执行过程中,读取所述第一计划编制任务的任务执行计划的下一个任务,启动该下一个任务后,在任务执行引擎中,就可以追踪记录该下一个任务的执行状态及执行的上下文信息;其中任务执行引擎提供任务执行计划追踪记录存储访问接口,通过该任务执行计划追踪记录存储访问接口,外部系统或者用户可以访问当前任务执行计划的各任务执行状态及执行的上下文信息,任务执行状态包括该任务是否已经执行完毕,正在执行和未执行,任务执行的上下文信息包括任务执行过程中输入的参数,输出的参数以及参数的变化等。
这样,读取所述第一计划编制任务的任务执行计划的下一个任务,由于下一步的任务也是一个注册任务,就可以通过任务注册模块获得下一个任务的元数据信息,从而获得该下一任务的元数据,例如任务类型,输入数据要求,输出数据要求,等;并且通过任务执行计划的任务执行顺序,可以知道该任务和其他任务的依赖关系,该任务的输入参数和其它任务的输出数据的关系等等。如果和其它任务之间存在依赖关系,需要通过任务执行计划追踪记录存储访问接口获得所述第一计划编制任务的任务执行计划的其它任务执行状态及执行的上下文信息,这样,使用所述第一计划编制任务的任务执行计划的各任务执行状态及执行的上下文信息,以及下一个任务的元数据信息就可以装配该下一个任务,比如数据字段赋值等,从而启动该下一个任务。
上述运行时调整任务执行计划的方法能够在运行时动态创建或者修改任务执行计划,在创建或者修改后立即生效;并且将包含任务执行计划的计划编制任务本身也作为一个任务,而且也可以成为任务执行计划的一部分,这就极大的增强了运行时调整任务执行计划方法的扩展性,使其具有不断地迭代优化的能力;并且无需如传统方法需要专业人员利用流程建模工具去重新修改设计流程,容易实现,并且有助于加速对客户的业务响应。
在同一个发明构思下,本发明还公开了一种运行时调整任务执行计划的系统,该系统运行在任务执行引擎中,所述任务执行引擎通过计划编制接口接收计划编制任务,所述计划编制任务包含任务执行计划,图6示出了根据本发明的一种优选的实施方式的一种运行时调整任务执行计划的系统得结构框图,根据图6,该系统包括:接收模块601,被配置为接收第一计划编制任务;修改模块602,被配置为响应于接收到第二计划编制任务,该第二计划编制任务包含对第一计划编制任务的任务执行计划进行修改的任务执行计划,修改所述第一计划编制任务的任务执行计划;以及运行模块403,被配置为读取所述第一计划编制任务的任务执行计划的下一个任务,并启动该下一个任务。上述系统中任务执行计划指定了该任务执行计划包括的全部任务的范围、执行顺序以及上下文信息。优选地,所述任务执行引擎包含修改接口,该修改接口响应于用户或者外部系统的特定操作,激活一编辑装置,用于编辑第二计划编制任务的任务执行计划,该编辑装置将编辑好的第二计划编制任务的任务执行计划发送给任务执行引擎。
在一种实施方式中,该第二计划编制任务的任务执行计划包含以下至少一种对所述第一计划编制任务的任务执行计划的修改:(1)在所述第一计划编制任务的任务执行计划中加入至少一个任务;(2)从所述第一计划编制任务的任务执行计划中删除至少一个任务;(3)设定或者改变所述第一计划编制任务的任务执行计划中任务的执行顺序;(4)设定或者改变所述第一计划编制任务的任务执行计划中任务的并行执行;(5)设定或者改变所述第一计划编制任务的任务执行计划中特定任务的上下文信息。
在一种实施方式中,对该第一计划编制任务的任务执行计划使用状态锁控制,这时该系统还包括:锁控制模块,被配置为响应于该第一计划编制任务的任务执行计划需要修改,对该第一计划编制任务的任务执行计划的读操作加锁,以及响应于该第一计划编制任务的任务执行计划修改完毕,对该第一计划编制任务的任务执行计划的读操作解锁;其中运行模块是在该锁控制模块对第一计划编制任务的任务执行计划的读操作解锁下读取的。
在另一种实施方式中,运行模块还包括:记录模块,被配置为启动该下一个任务后,追踪记录该下一个任务的执行状态及执行的上下文信息;其中所述任务执行引擎通过任务执行计划追踪记录存储访问接口提供当前任务执行计划的各任务执行状态及执行的上下文信息。
在又一种实施方式中,任务执行引擎与任务注册模块相连,该任务注册模块被配置为存储注册的任务,其中所述注册任务包含该注册任务的元数据信息。优选地,在所述第一计划编制任务和所述第二计划编制任务的任务执行计划中的全部任务是从该任务注册模块存储的注册的任务中选择的。
在一种实施方式中,所述运行模块包括:第一获得模块,被配置为通过任务执行计划追踪记录存储访问接口获得所述第一计划编制任务的任务执行计划的上一任务执行状态及执行的上下文信息;第二获得模块,被配置为通过任务注册模块获得下一个任务的元数据信息;以及装配模块,被配置为使用所述第一获得模块获得的第一计划编制任务的任务执行计划的各任务执行状态及执行的上下文信息,以及所述第二获得模块获得的下一个任务的元数据信息装配该下一个任务,从而启动该下一个任务。
附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。
Claims (18)
1.一种运行时调整任务执行计划的方法,该方法运行在任务执行引擎中,所述任务执行引擎通过计划编制接口接收计划编制任务,所述计划编制任务包含任务执行计划,该方法包括:
接收第一计划编制任务;
响应于接收到第二计划编制任务,该第二计划编制任务包含对第一计划编制任务的任务执行计划进行修改的任务执行计划,修改所述第一计划编制任务的任务执行计划;以及
读取所述第一计划编制任务的任务执行计划的下一个任务,并启动该下一个任务。
2.根据权利要求1所述的方法,其中所述任务执行计划指定了该任务执行计划包括的全部任务的范围、执行顺序以及上下文信息。
3.根据权利要求2所述的方法,其中该第二计划编制任务的任务执行计划包含以下至少一种对所述第一计划编制任务的任务执行计划的修改:
在所述第一计划编制任务的任务执行计划中加入至少一个任务;
从所述第一计划编制任务的任务执行计划中删除至少一个任务;
设定或者改变所述第一计划编制任务的任务执行计划中任务的执行顺序;
设定或者改变所述第一计划编制任务的任务执行计划中任务的并行执行;
设定或者改变所述第一计划编制任务的任务执行计划中特定任务的上下文信息。
4.根据权利要求3所述的方法,其中对该第一计划编制任务的任务执行计划使用状态锁控制对其的读操作,并且该方法包括:
响应于该第一计划编制任务的任务执行计划需要修改,对该第一计划编制任务的任务执行计划的读操作加锁;
响应于该第一计划编制任务的任务执行计划修改完毕,对该第一计划编制任务的任务执行计划的读操作解锁;
其中所述读取所述第一计划编制任务的任务执行计划的下一个任务是在该第一计划编制任务的任务执行计划的读操作解锁下读取的。
5.根据权利要求1-4之一所述的方法,其中还包括:
启动该下一个任务后,追踪记录该下一个任务的执行状态及执行的上下文信息,其中所述任务执行引擎通过任务执行计划追踪记录存储访问接口提供当前任务执行计划的各任务执行状态及执行的上下文信息。
6.根据权利要求5所述的方法,其中所述任务执行引擎与任务注册模块相连,该任务注册模块存储注册的任务,其中所述注册任务包含该注册任务的元数据信息。
7.根据权利要求6所述的方法,其中在所述第一计划编制任务和所述第二计划编制任务的任务执行计划中的全部任务是从该任务注册模块存储的注册的任务中选择的。
8.根据权利要求7所述的方法,其中所述读取所述第一计划编制任务的任务执行计划的下一个任务,并启动该下一个任务,包括:
通过所述任务执行计划追踪记录存储访问接口获得所述第一计划编制任务的任务执行计划的各任务执行状态及执行的上下文信息,
通过所述任务注册模块获得该下一个任务的元数据信息,以及
使用所述第一计划编制任务的任务执行计划的各任务执行状态及执行的上下文信息,以及下一个任务的元数据信息装配该下一个任务,从而启动该下一个任务。
9.根据权利要求1所述的方法,其中所述任务执行引擎包含修改接口,该修改接口响应于用户或者外部系统的特定操作,激活一编辑装置,用于编辑第二计划编制任务的任务执行计划,该编辑装置将编辑好的第二计划编制任务的任务执行计划发送给任务执行引擎。
10.一种运行时调整任务执行计划的系统,该系统运行在任务执行引擎中,所述任务执行引擎通过计划编制接口接收计划编制任务,所述计划编制任务包含任务执行计划,该系统包括:
接收模块,被配置为接收第一计划编制任务;
修改模块,被配置为响应于接收到第二计划编制任务,该第二计划编制任务包含对第一计划编制任务的任务执行计划进行修改的任务执行计划,修改所述第一计划编制任务的任务执行计划;以及
运行模块,被配置为读取所述第一计划编制任务的任务执行计划的下一个任务,并启动该下一个任务。
11.根据权利要求10所述的系统,其中所述任务执行计划指定了该任务执行计划包括的全部任务的范围、执行顺序以及上下文信息。
12.根据权利要求11所述的系统,其中该第二计划编制任务的任务执行计划包含以下至少一种对所述第一计划编制任务的任务执行计划的修改:
在所述第一计划编制任务的任务执行计划中加入至少一个任务;
从所述第一计划编制任务的任务执行计划中删除至少一个任务;
设定或者改变所述第一计划编制任务的任务执行计划中任务的执行顺序;
设定或者改变所述第一计划编制任务的任务执行计划中任务的并行执行;
设定或者改变所述第一计划编制任务的任务执行计划中特定任务的上下文信息。
13.根据权利要求12所述的系统,其中对该第一计划编制任务的任务执行计划使用状态锁控制对其的读操作,并且该系统包括:
锁控制模块,被配置为响应于该第一计划编制任务的任务执行计划需要修改,对该第一计划编制任务的任务执行计划的读操作加锁,以及响应于该第一计划编制任务的任务执行计划修改完毕,对该第一计划编制任务的任务执行计划的读操作解锁;
其中运行模块是在该锁控制模块对第一计划编制任务的任务执行计划的读操作解锁下读取的。
14.根据权利要求10-13之一所述的系统,其中所述运行模块还包括:
记录模块,被配置为启动该下一个任务后,追踪记录该下一个任务的执行状态及执行的上下文信息;
其中所述任务执行引擎通过任务执行计划追踪记录存储访问接口提供当前任务执行计划的各任务执行状态及执行的上下文信息。
15.根据权利要求14所述的系统,其中所述任务执行引擎与任务注册模块相连,该任务注册模块被配置为存储注册的任务,其中所述注册任务包含该任务元数据信息。
16.根据权利要求15所述的系统,其中在所述第一计划编制任务和所述第二计划编制任务的任务执行计划中的全部任务是从该任务注册模块存储的注册的任务中选择的。
17.根据权利要求16所述的系统,其中所述运行模块包括:
第一获得模块,被配置为通过所述任务执行计划追踪记录存储访问接口获得所述第一计划编制任务的任务执行计划的各任务执行状态及执行的上下文信息;
第二获得模块,被配置为通过所述任务注册模块获得下一个任务的元数据信息;以及
装配模块,被配置为使用所述第一获得模块获得的第一计划编制任务的任务执行计划的各任务执行状态及执行的上下文信息,以及所述第二获得模块获得的下一个任务的元数据信息装配该下一个任务,从而启动该下一个任务。
18.根据权利要求10所述的系统,其中任务执行引擎包含修改接口,该修改接口响应于用户或者外部系统的特定操作,激活一编辑装置,用于编辑第二计划编制任务的任务执行计划,该编辑装置将编辑好的第二计划编制任务的任务执行计划发送给任务执行引擎。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2012101338444A CN103377076A (zh) | 2012-04-28 | 2012-04-28 | 一种运行时调整任务执行计划的方法和系统 |
US13/766,083 US9690617B2 (en) | 2012-04-28 | 2013-02-13 | Adjustment of a task execution plan at runtime |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2012101338444A CN103377076A (zh) | 2012-04-28 | 2012-04-28 | 一种运行时调整任务执行计划的方法和系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103377076A true CN103377076A (zh) | 2013-10-30 |
Family
ID=49462237
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2012101338444A Pending CN103377076A (zh) | 2012-04-28 | 2012-04-28 | 一种运行时调整任务执行计划的方法和系统 |
Country Status (2)
Country | Link |
---|---|
US (1) | US9690617B2 (zh) |
CN (1) | CN103377076A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105631079A (zh) * | 2014-11-27 | 2016-06-01 | 中国科学院沈阳自动化研究所 | 一种可配置的分段式生产任务排程方法 |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104123184B (zh) * | 2013-04-28 | 2017-12-22 | 国际商业机器公司 | 一种用于为构建过程中的任务分配资源的方法和系统 |
US9996389B2 (en) * | 2014-03-11 | 2018-06-12 | International Business Machines Corporation | Dynamic optimization of workload execution based on statistical data collection and updated job profiling |
CN113535354A (zh) * | 2021-06-30 | 2021-10-22 | 深圳市云网万店电子商务有限公司 | 调整Flink SQL算子并行度的方法及装置 |
CN115562676B (zh) * | 2022-10-11 | 2023-06-06 | 中国兵器工业计算机应用技术研究所 | 一种图计算引擎的触发方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20010034558A1 (en) * | 2000-02-08 | 2001-10-25 | Seagate Technology Llc | Dynamically adaptive scheduler |
CN101169738A (zh) * | 2007-11-28 | 2008-04-30 | 电子科技大学 | 一种自适应的媒体内容创作任务分配方法 |
US20090007123A1 (en) * | 2007-06-28 | 2009-01-01 | Samsung Electronics Co., Ltd. | Dynamic Application Scheduler in a Polling System |
CN101510163A (zh) * | 2009-04-07 | 2009-08-19 | 金蝶软件(中国)有限公司 | 一种计划任务的处理方法及系统 |
US20110264483A1 (en) * | 2010-04-27 | 2011-10-27 | Hamid Reza Motahari Nezhad | Dynamic collaborative adaptation of a business activity in a business activity management system |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020188644A1 (en) | 2001-06-08 | 2002-12-12 | Verano | Workflow automated task component manager |
WO2004102454A2 (en) | 2003-05-07 | 2004-11-25 | Sap Aktiengesellschaft | An end user oriented workflow approach including structured processing of ad hoc workflows with a collaborative process engine |
US7631291B2 (en) | 2004-10-01 | 2009-12-08 | Microsoft Corporation | Declarative representation for an extensible workflow model |
US20080046862A1 (en) | 2006-08-18 | 2008-02-21 | Juergen Sattler | Business task management |
US8276152B2 (en) * | 2007-12-05 | 2012-09-25 | Microsoft Corporation | Validation of the change orders to an I T environment |
US20090235252A1 (en) * | 2008-03-17 | 2009-09-17 | Sap Ag | Execution-level process modeling |
US8156388B2 (en) * | 2008-11-24 | 2012-04-10 | Symbol Technologies, Inc. | Analysis leading to automatic action |
US9317407B2 (en) * | 2010-03-19 | 2016-04-19 | Novell, Inc. | Techniques for validating services for deployment in an intelligent workload management system |
US8381218B2 (en) * | 2010-11-30 | 2013-02-19 | Microsoft Corporation | Managing groups of computing entities |
-
2012
- 2012-04-28 CN CN2012101338444A patent/CN103377076A/zh active Pending
-
2013
- 2013-02-13 US US13/766,083 patent/US9690617B2/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20010034558A1 (en) * | 2000-02-08 | 2001-10-25 | Seagate Technology Llc | Dynamically adaptive scheduler |
US20090007123A1 (en) * | 2007-06-28 | 2009-01-01 | Samsung Electronics Co., Ltd. | Dynamic Application Scheduler in a Polling System |
CN101169738A (zh) * | 2007-11-28 | 2008-04-30 | 电子科技大学 | 一种自适应的媒体内容创作任务分配方法 |
CN101510163A (zh) * | 2009-04-07 | 2009-08-19 | 金蝶软件(中国)有限公司 | 一种计划任务的处理方法及系统 |
US20110264483A1 (en) * | 2010-04-27 | 2011-10-27 | Hamid Reza Motahari Nezhad | Dynamic collaborative adaptation of a business activity in a business activity management system |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105631079A (zh) * | 2014-11-27 | 2016-06-01 | 中国科学院沈阳自动化研究所 | 一种可配置的分段式生产任务排程方法 |
CN105631079B (zh) * | 2014-11-27 | 2019-03-12 | 中国科学院沈阳自动化研究所 | 一种可配置的分段式生产任务排程方法 |
Also Published As
Publication number | Publication date |
---|---|
US9690617B2 (en) | 2017-06-27 |
US20130290968A1 (en) | 2013-10-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7117449B1 (en) | Method and apparatus to present an integrated process modeler | |
US7251787B2 (en) | Method and apparatus for an integrated process modeller | |
CN102656557B (zh) | 自动化企业软件开发 | |
US20160092502A1 (en) | Graphical modeling of database query statements | |
Kovalenko et al. | Modeling automationml: Semantic web technologies vs. model-driven engineering | |
CN104375818A (zh) | 一种通过配置文件实现通用数据格式录入的系统及方法 | |
US20230086854A1 (en) | Dynamically controlling case model structure using case fragments | |
CN103377076A (zh) | 一种运行时调整任务执行计划的方法和系统 | |
CN103377411A (zh) | 用于生成wbs模型数据的方法和系统 | |
US20170139684A1 (en) | General modeling method to construct system models based on a system meta model | |
Benouda et al. | Automatic code generation within MDA approach for cross-platform mobiles apps | |
US9069873B2 (en) | Apparatus and method for creating mashup web application | |
JP6370503B1 (ja) | プログラム作成装置 | |
CN103377405A (zh) | 部署和修改面向服务架构部署环境模型的方法和系统 | |
US20230214424A1 (en) | Dynamic determination of data | |
CN104572439A (zh) | 回归警告方法和系统 | |
Annighoefer et al. | Open source domain-specific model interface and tool frameworks for a digital avionics systems development process | |
Clerissi et al. | Test driven development of web applications: A lightweight approach | |
Moutinho et al. | Ecore representation for extending PNML for Input-Output Place-Transition nets | |
KR102360646B1 (ko) | 유저 계정의 입력 정보에 기반한 어플리케이션 자동 제작 시스템 | |
US10157360B1 (en) | Smart bricks information system | |
Coulon et al. | Shape-diverse DSLs: languages without borders (vision paper) | |
US9405514B1 (en) | Process fragment management | |
CN110019177A (zh) | 规则存储的方法和装置 | |
Seifi et al. | Navigation Maps for Business Process Landscapes. |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20131030 |