CN101809538B - 用于调度由事件驱动的作业的执行的方法和系统 - Google Patents
用于调度由事件驱动的作业的执行的方法和系统 Download PDFInfo
- Publication number
- CN101809538B CN101809538B CN200880108307.6A CN200880108307A CN101809538B CN 101809538 B CN101809538 B CN 101809538B CN 200880108307 A CN200880108307 A CN 200880108307A CN 101809538 B CN101809538 B CN 101809538B
- Authority
- CN
- China
- Prior art keywords
- event
- target entity
- action
- rule
- configuration structure
- 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.)
- Expired - Fee Related
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/54—Interprogram communication
- G06F9/542—Event management; Broadcasting; Multicasting; Notifications
-
- 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/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5055—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering software capabilities, i.e. software resources associated or available to the machine
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Multi Processors (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Debugging And Monitoring (AREA)
- Stored Programmes (AREA)
Abstract
提出了一种在数据处理系统的调度实体(例如,调度服务器)的控制下调度所述系统的目标实体(例如,工作站)上的作业的执行的解决方案。相应的方法(400)始于提供(406-409)规划的步骤,所述规划定义了一组作业的执行流。所述方法继之以根据所述规划提交(466-475)每个要在选定目标实体上执行的作业。还提供(412-415)一组规则;每个规则定义了响应于事件目标实体上的事件而要在动作目标实体上执行的动作。所述方法然后包括确定(421)为每个事件目标实体在所述规则中定义的事件的步骤。然后允许(424-457)每个事件目标实体检测相应事件。现在触发(481-496)每个动作在相应动作目标实体上的执行以响应检测到所述相应事件。
Description
技术领域
本发明涉及数据处理领域。更具体地说,本发明涉及调度数据处理系统中的作业的执行。
背景技术
工作负荷调度器(或简称为调度器)常用于控制数据处理系统中大量作业的执行。商用调度器的实例包括IBM Corporation的“IBM TivoliWorkload Scheduler(TWS)”。
作业包括任何种类的可在系统中执行的工作单位。例如,如US-A-7,150,037中所述,调度器用于控制将配置文件下载到网络设备(在网络配置管理系统中)。通过评估由一个或多个规则形成的相应策略而动态地生成每个配置文件;每个规则包括条件(用于确定如何标识基础结构数据库中的相应网络设备)、动作(用于确定如何设置所需的配置参数)以及检验(用于确定在检验网络配置期间如何解释规则与相应网络设备的实际配置之间的任何差异)。
通常,调度器从中央调度服务器控制多个工作站上作业的执行;用于每个作业的工作站可被静态地定义或在提交作业以便执行时被动态地选择
(从具备所需特征的所有可用工作站中选择)。后者的解决方案允许实现能够轻松扩展且高度可靠的系统;而且,可采用工作负荷平衡技术来优化工作站上作业的分配。
根据预定义的工作负荷规划(或简称为规划)控制作业的提交。规划根据时态约束(即,日期和/或时间)建立作业的执行流;此外,还可以根据特定相关性(例如,先前作业的完成)来设置执行作业的条件。
然而,对于未在规划中定义的作业而言,调度器完全无法控制其执行。当无法事先知晓需要执行作业时(例如,因为在出现特定事件时才触发作业的执行)将会出现问题。
已经以非常具体的应用提出了基于调度或响应于事件发生而控制任务执行的总体思路,如US-A-7,146,350中所述。具体地说,该文档披露了用于审核企业的信息技术(IT)基础结构的系统。为此,系统服务器控制对IT基础结构的特定资源的静态评估或动态评估(包括相应策略中定义的步骤序列)的执行。可以通过如通常那样利用调度器提供年份、日期及时间信息来触发评估;备选地,还可通过在系统节点上检测到的预定义事件来触发相同的评估。为此,每个节点必须监视所有可能的关注事件;然后通过服务器从不同的节点收集以此方式获得的信息。但是,这带来了节点的开销(用于检测事件)以及服务器的开销(用于收集事件);而且,为了收集事件而从节点传输到服务器的大量信息造成网络流量显著增加。
发明内容
广义地说,本披露旨在支持根据规划或响应于事件而调度作业。
具体地说,本发明的不同方面提供了如独立权利要求中阐述的解决方案。从属权利要求中描述了本发明的有利实施例。
更具体地说,本发明的一个方面提出了一种在数据处理系统的调度实体(例如,调度服务器)的控制下调度所述系统的目标实体(例如,工作站)上的作业的执行的方法。所述方法始于提供规划的步骤,所述规划定义了一组作业的执行流。所述方法继之以根据所述规划提交每个要在选定目标实体上执行的作业。还提供一组规则;每个规则定义了响应于事件目标实体上的事件而要在动作目标实体上执行的动作。所述方法然后包括确定为每个事件目标实体在所述规则中定义的事件的步骤。然后允许每个事件目标实体检测相应事件。现在触发每个动作在相应动作目标实体上的执行以响应检测到所述相应事件。
例如,所述动作可包括甚至未在所述规划中定义的其他作业。
在建议的实施方式中,通过部署一个或多个检测模块在其上运行的配置结构来允许每个(事件)工作站检测相应事件。
作为进一步的改进,当所述配置结构与所述工作站上已可用的先前版本的配置结构等同时,阻止部署所述配置结构。
为此,可能要比较所述配置结构的两个版本的摘要值。
在本发明的一个实施例中,服务器从每个(事件)工作站接收对每个事件的通知,然后提交相应动作以在相关(动作)工作站上执行。
进一步改进所述解决方案的方法是监视所述规则,以便仅响应于所述规则的任何更改才执行上述操作。
作为进一步的增强,这些操作被限于受到更改后的规则影响的(事件)工作站。
本发明的另一方面提出了用于执行上述方法的计算机程序。
本发明的不同方面提出了相应的系统。
附图说明
通过结合附图参考下面仅作为非限制性指示的详细说明,将最佳地理解发明本身及其进一步的特性和优点,这些附图是:
图1是其中可应用根据本发明的实施例的解决方案的数据处理系统的示意性方块图;
图2示出了系统的示例性计算机的功能方块图;
图3示出了可用于实现根据本发明的实施例的解决方案的主要软件组件;以及
图4A-4B示出了描述与实现根据本发明的实施例的解决方案相关的活动流的图。
具体实施方式
具体参考图1,其中示出了具有分布式体系结构的数据处理系统100。系统100包括调度服务器(或简称为服务器)105,它用于控制系统100 内作业的执行;通常,所述作业包括批处理(即,非交互)应用-例如工资支出或成本分析程序。所述作业在服务器105的控制下在多个目标工作站(或简称为工作站)110上执行。为此,服务器105和工作站110通过网络115(例如,局域网)进行通信。
转到图2,使用200表示上述系统(服务器或工作站)的通用计算机。计算机200包括若干与系统总线205(其结构适于根据系统内的计算机200的实际功能进行扩展)并联的单元。具体地说,一个或多个微处理器(μP)210控制计算机200的操作;RAM 215由微处理器210直接用作工作存储器,ROM 220存储计算机200的引导的基本代码。若干外围单元聚集在本地总线225的周围(通过相应接口)。具体地说,海量存储器包括一个或多个硬盘230和用于读取CD-ROM 240的驱动器235。而且,计算机200包括输入单元245(例如,键盘和鼠标)和输出单元250(例如,监视器和打印机)。适配器255用于将计算机200连接到网络(图中未示出)。桥接器单元260将系统总线205与本地总线225进行连接。每个微处理器210和桥接器单元260都可以作为请求访问系统总线205以传输信息的主机代理运行。仲裁器265管理对系统总线205的互斥访问的许可。
现在参考图3,可用于实现根据本发明实施例的解决方案的主要软件组件整体上用标号300表示。信息(程序和数据)通常存储在硬盘上并在运行程序以及操作系统和其他应用程序(图中未示出)时被载入(至少部分载入)每个计算机的工作存储器。所述程序初始地例如从CD-ROM安装到硬盘上。
具体地说,服务器105运行调度器305(例如,上述TWS)。
调度器305包括配置器310(例如,TWS中的“Composer”),它用于维护工作负荷数据库315(以适当的控制语言-例如,基于XML的语言编写)。工作负荷数据库315包含可用于调度器305的所有工作站的定义;例如,每个工作站由用于访问它的信息(例如,名称、地址等)及其物理/逻辑特征(例如,处理能力、存储器大小、操作系统等)定义。工作负荷数据库315还包括每个作业的描述符。作业描述符指定要调用的程 序(使用它们的参数及环境变量)。而且,作业描述符指示其上(静态地(根据其名称)或动态地(根据其特征))执行作业的工作站。作业描述符然后提供作业执行的时态约束(例如,其运行周期,如每天、每周或每月;其最早或最晚开始时间,或最大允许持续时间)。可选地,作业描述符指定作业的相关性(即,在作业可以开始之前必须满足的条件);示例性相关性包括顺序约束(例如,其他作业的成功完成)或允许(enabling)约束(例如,操作员输入对提示的响应)。通常,作业被组织成流;每个作业流包括作业的有序序列(逻辑相关),所述序列应根据预定相关性作为单个工作单位运行。为了简洁,在后文中使用术语“作业”表示单个作业或作业流。工作负荷数据库315还存储与先前作业执行相关的统计信息(例如,记录它们的持续时间,从中可以推断出相应的估计持续时间)。
规划器320(例如,TWS的“Master Domain Manager”)用于创建规划,所述规划的定义存储在控制文件325(例如,TWS的“Symphony”)中。规划指定在特定生产周期(通常为一天)内执行一批作业的流程,以及所需的工作站的定义。通常在每个生产周期之前自动创建新的规划。为此,规划器320处理工作负荷数据库315中的可用信息以选择要运行的作业,以及按照所需顺序(根据它们的预期持续时间、时态约束以及相关性)安排这些作业。规划器320通过添加要执行的作业(针对下一生产周期)以及删除已完成的先前存在的作业(属于先前生产周期)来创建规划;此外,先前生产周期的尚未成功完成或仍在运行或等待运行的作业可保存在所述规划中(以便它们在下一生产周期中执行)。
处理机330(例如,TWS的“Batchman”过程)在每个生产周期开始时启动规划。处理机330将尽快提交每个要执行的作业;为此,处理机330从可用工作站中选择具备所需特征(通常根据负载平衡器(图中未示出)提供的信息)的工作站。
由相应模块335(例如,TWS的“Jobman”过程)管理作业的实际执行;为此,执行器335与每个工作站110(图中仅示出一个)上运行的执行代理340通过接口相连。
代理340响应于从执行器335接收的相应命令而实施每个作业的执行,并且返回与其执行结果相关的反馈信息(例如,作业是否成功完成、其实际持续时间等)。所有被执行的作业的反馈信息均由执行器335传递给处理机330,后者将所述信息输入控制文件325中(以便提供规划的所有作业的当前状态的实时图示)。在生产周期结束时,规划器320访问控制文件325以在工作负荷数据库315中更新与被执行的作业相关的统计信息。
在根据本发明的实施例的解决方案中,如下文中详细描述的,调度器305还支持响应于相应事件而执行作业(或更一般地,执行任何其他动作)。为此,允许每个工作站仅检测关注的事件-即,这些事件在工作站上的出现会触发执行相应的动作(例如,通过有选择地部署自定制配置文件)。
通过这种方式,调度器可以控制任何动作的执行,即使事先不知道需要执行这些动作时也是如此;具体地说,这允许提交未在规划中定义的作业。在任何情况下,都以工作站和服务器的最小开销来实现所需结果;而且,不会造成网络流量显著增加。
更具体地说,在图中示出的实施方式中,编辑器345用于维护规则存储库350(优选地由验证/授权机制保护以控制规则的任何更新)。存储库350中的每个规则均定义了响应于在相应(事件)工作站上检测到事件而要在相应(动作)工作站上执行的动作。可支持多种不同的事件;例如,所述事件可包括进入作业的错误状态,工作站关闭,创建或删除文件等。典型地,所述动作包括提交作业以便执行;在此方面要强调的是,规则可指定任何作业,甚至是未包括在规划内的作业。但是,可支持其他动作-例如,对用户的电子邮件通知,接通工作站电源等。可在系统的任何计算机上检测事件并执行动作;例如,由服务器自身检测与作业状态更改相关的事件(在这种情况下,服务器还作为工作站运行);而且,可在静态地或动态地(根据所需特征)定义的工作站上执行包括提交作业在内的动作。
提供了一组用于检测事件和用于执行动作(与提交作业不同)的插件模决(或简称为插件);(事件)插件的实例可以是文件扫描器,而(动作)插件的实例可以是电子邮件发送器。规划器320访问规则存储库350 (以便将检测事件和执行相应动作所需的信息添加到控制文件325中)。
事件插件数据库355将每个事件与相应事件插件相关联以检测事件。监视器360处理存储库350中的规则(例如,每当检测到更改时)。更具体地说,监视器360确定为每个工作站在规则中定义的事件。监视器360然后针对与这些事件(如事件插件数据库355中所指示的)关联的每个事件插件创建配置文件;所述配置文件设置事件插件的配置参数,使得事件插件能够检测期望事件(多个)。每个工作站的配置文件然后合并成单个配置档案(例如,采用压缩的形式)。监视器360将以此方式获得的所有配置档案保存在相应存储库365中。同时,监视器360计算每个配置档案的循环冗余码(CRC)(通过对配置档案应用16或32位多项式)。使用配置表370将每个工作站与相应配置档案及其CRC进行关联(在监视器360的控制下)。
部署器375将每个CRC传输到相应工作站(如配置表370中所指示的);为此,部署器375从控制文件325中的工作站定义检索所需信息。为了简洁,参考上述同一工作站110,此信息由控制器380接收。控制器380访问在工作站110上安装的(事件和/或动作)插件(使用390表示)的当前配置文件(使用385表示)。当收到的CRC与配置文件385的CRC不同时,控制器380(通过部署器375)从服务器105下载(新的)配置档案,然后相应地更新配置文件385;优选地,加密并保护由服务器105提供的配置档案,从而确保其保密性和完整性。
插件390与代理340通过接口相连以便与服务器105交换信息。具体地说,代理340向事件收集器391通知在工作站110上检测到的事件;优选地,加密并保护由工作站110提供的事件通知,从而确保其保密性和完整性。事件收集器391将在所有工作站上检测到的事件的通知传递给事件关联器392。事件关联器392访问规则存储库350,以便确定响应于事件而要执行的动作(以及相应的工作站)。对于要在特定工作站上执行的每个动作,事件关联器392调用处理机330(通过传递此信息)。处理机330访问动作插件数据库393,后者将每个动作与相应动作插件进行关联以执 行动作。处理机330然后调用与要执行的动作(如动作插件数据库394中所指示的)关联的动作插件(整体上以394表示)。每个动作插件394管理相应动作在所需工作站上的实际执行;为此,动作插件394与每个相关工作站(如以上图中针对同一工作站110所示)上运行的代理340通过接口相连。而且,动作插件394还可包括适于执行用户通知(例如,通过电子邮件)的模块。
转到图4A-4B,使用方法400表示可在上述系统内实现以调度作业执行的示例性过程的逻辑流。
所述方法在服务器的泳道(swim-lane)中的黑色开始圆圈403处开始。在方块406创建新规划时,所述过程继续到方块409;在此阶段,生成规划的定义(包括作业执行流的规范以及执行作业所需的工作站的定义)并将该定义存储在控制文件中。
当监视器检测到规则(存储在相应的存储库中)中的任何更改时,活动流继续到方块412。响应于此更改,在方块415,重新生成规划并将其重新置于控制文件中,以便添加其中要检测事件并执行相应动作的工作站的定义。
然后执行循环以处理发生更改的规则;所述循环从方块418开始,其中标识每个发生更改的规则(从第一个规则开始)。继续到方块421,从事件插件数据库提取与(当前)更改后的规则中指定的事件关联的事件插件。现在参考方块424,调用该事件插件(通过传递要检测的事件的指示);通过这种方式,生成事件插件的配置文件(且正确设置相应配置参数以使所述事件插件能够检测到期望事件)。在方块430标识其中将检测规则中指示的事件的工作站。继续到方块433,以此方式获得的配置文件被添加到此工作站的配置档案。然后在方块436进行测试以判定下一规则是否已更改。如果是,则所述方法返回方决418以针对下一更改后的规则重复上述相同操作。
相反地,一旦处理完所有发生更改的规则,则进入进一步的循环以处理上面获得的新的配置档案;所述循环从方块439开始,其中计算每个(新 的)配置档案的(新的)CRC(从第一个开始)。继续到方块442,将新的CRC传输到相应的工作站。响应于此操作,该工作站在方块445计算当前安装在其上的配置文件的(旧的)CRC;然后将新的CRC与旧的CRC进行比较。活动流根据比较结果在方块448处产生分支。如果新的CRC与旧的CRC不同,则工作站在方块451从服务器请求新的配置档案。返回服务器的泳道,在方块454,将所需的新的配置档案传输到工作站。一旦工作站在方块457收到新的配置档案,将提取其配置文件并将所述配置文件安装在工作站上。所述方法然后继续到服务器的泳道中的方块460;当新的CRC等于旧的CRC时,也会从方块448直接到达同一点。在该点处,执行测试以判定是否已处理所有新的配置档案。如果否,则所述方法返回到方块439以针对另一新的配置档案重复上述相同操作。
与此相反,如果规划在生产周期开始时启动,则活动流继续到方块463。只要可以执行规划的每个作业(根据其时态约束和相关性),所述方法就从方块466继续到方块469;在此阶段,提交作业以在选定工作站(从具有所需特征的可用工作站中选择)上执行。响应于此操作,在方块472,在(选定)工作站(为了简洁,使用上述同一工作站表示)上执行作业。继续到方块475,所述工作站将反馈信息(与作业执行结果相关)返回服务器。转到服务器的泳道中的方块478,将反馈信息输入控制文件。
以完全异步的方式,每当通用(事件)工作站(为了简洁,使用与上述相同的工作站表示)检测到其事件插件的配置文件中指示的事件之一时,活动流就继续到方块481。响应于此操作,所述工作站在方决484向服务器通知事件。现在转到服务器的泳道中的方块485,根据从规则存储库中提取的规则确定响应于此事件而要执行的任何动作(以及相应的工作站)。为此,事件关联器可以只是评估规则(每个规则定义了响应于事件的动作的执行);而且,所述事件关联器还可评估规则间的关系(例如,定义响应于检测到不同事件的动作的执行)。继续到方块487,服务器提交每个动作在相应工作站(为了简洁,使用与上述相同的工作站表示)上的执行;为此,所述处理机调用相应的动作插件(如动作插件数据库中所指示的)。 同时,服务器还可发送相应的通知(例如,使用到工作站110的用户的电子邮件)。
响应于此操作,在方块490,在工作站上执行动作(借助执行代理或相应的动作插件)。继续到方块493,如上所述,工作站将反馈信息(与动作的执行结果相关)返回到服务器。转到服务器的泳道中的方块496,如上所述,将反馈信息输入控制文件。所述活动流然后在同心的黑/白停止圆圈499处结束。
自然地,为了满足局部和特定的要求,本领域的技术人员可以对上述解决方案应用许多逻辑和/或物理修改及更改。更具体地说,尽管参考本发明的优选实施例(多个)以特定程度的细节描述了本发明,但是应理解,各种形式和细节上的省略、替换、更改以及其他实施例都是可能的。具体地说,甚至可以在没有上述说明中为了更全面地理解本发明而阐述的特定细节(例如,数字实例)的情况下实施所提出的解决方案;相反,为了不使非必要的细节造成本说明难以理解,可能省略或简化公知的特性。而且明确地指示,作为总体设计选择,结合任何所披露的发明实施例描述的特定元件和/或方法步骤都可被结合到任何其他实施例中。
具体地说,所提出的解决方案使其能够通过等效的方法来实现(通过使用类似的步骤、删除一些非必要的步骤,或添加进一步的可选步骤);而且,所述步骤可以以不同的顺序执行,同时执行或以交错的方式执行(至少部分如此)。
而且,可以将相同的解决方案应用于任何其他工作负荷调度器(或等价的应用)。具体地说,尽管在上述描述中参考了非交互式作业,其并非旨在作为限制;实际上,相同的解决方案可用于调度任何类型的工作单位(例如,交互式任务)的执行。同样,可通过不同的方式定义和/或生成规划-例如,基于任何附加或备选的时态约束或相关性(甚至基于工作站之间的动态关系);另外,可使用任何其他准则来选择用于提交作业的工作站(例如,根据用于均匀分配作业的执行的统计方法)。
可使用任何其他类型的定义要响应于相应事件而执行的动作的规则 (策略)来实现所提出的解决方案;同样,上述事件和动作只是示例性的,并且不应以限制的方式进行解释。例如,使用任何逻辑运算符(例如,OR、AND等)将(基本)规则组合为(复杂)规则,以便定义响应于任何事件组合的动作的执行(即使在不同的工作站上);同样,所述规则可定义包括多个(基本)动作的(复杂)动作甚至在包括多个(基本)工作站的(复杂)实体上的执行-即,通过根据同一事件聚合更多的规则。备选地,所述事件可包括其他规则的结果;而且,也可以通过时态约束和/或相关性设置动作的条件。
在将通知发送给其他或不同的用户,以及这些通知由SMS做出等情况下,类似的考虑将适用。在本发明的不同实施例中,所述动作可以仅包括作业、通知或任何其他预定义类型的操作;当然,并非一定需要重新生成规划以包括与规则相关的信息。
在使用等效结构(例如,仅包括实施事件插件的期望行为的命令)替代配置文件(以及配置档案)的情况下,类似的考虑将适用;同样,可使用任何其他方式(例如,利用软件分发基础结构)将配置文件部署到相关的工作站。
在所提出的解决方案的基本实施方式中,还可以不加区别地将配置文件分发到所有工作站。
而且,CRC可属于另一类型(例如,CRC-4),它可以由简单的配置档案校验和、散列值或更常见地由任何其他以短得多的形式表示配置档案的摘要值所替代。但是,这都不妨碍直接在服务器上管理配置档案的选择性部署(例如,通过以集中方式维护有关所有工作站的实际状态的信息)。
所提出的解决方案的一种常见变型还允许每个(事件)工作站直接向相应(动作)工作站通知每个事件而无需通过服务器。例如,可以针对每个事件执行上述操作,也可以仅当在其中检测到相应事件的同一工作站上执行动作时才执行上述操作。
根据请求(甚至不监视规则)强制部署期望配置文件的可能方法也在本解决方案的范围之内。
在任何情况下,在简化的实施方式中,还可以在规则发生任何更改的情况下针对所有工作站重新生成(和部署)配置文件。
在程序(可用于实现本发明的每个实施例)以不同方式构建,或提供附加模块或功能的情况下,类似的考虑将适用;同样,存储器结构可具有其他类型,或可由等效实体(并非一定包括物理存储介质)替代。在任何情况下,所述程序均可采用任何适于由任何数据处理系统使用或与任何数据处理系统结合使用的形式,例如外部或驻留软件、固件或微代码(位于目标代码或源代码中-例如,需要进行编译或解译)。而且,可以在任何计算机可用介质上提供程序;所述介质可以是任何适于包含、存储、传送、传播或传输程序的元件。例如,所述介质可以是电、磁、光、电磁、红外线或半导体类型的介质;此类介质的实例包括固定盘(其中可以预载程序)、移动盘、磁带、卡、连线、光纤、无线连接、网络、广播波形等。在任何情况下,根据本发明实施例的解决方案可使用硬件结构(例如,集成在半导体材料制成的芯片中)实现,或使用硬件和软件的组合实现。将显而易见的是,还可以作为通过网络(例如,因特网)访问的服务部署所提出的解决方案。
所提出的方法可在具有不同的体系结构或包括等效单元(例如,基于本地网络)的系统上执行。而且,每个计算机都可包括类似元件(例如,临时存储程序或部分程序以减少在执行期间对海量存储器的访问的高速缓冲存储器);在任何情况下,可使用任何代码执行实体(例如,PDA、移动电话等)替代计算机,或使用它们的组合(例如,多层服务器体系结构、网格计算基础结构等)替代计算机。
Claims (14)
1.一种在数据处理系统的调度实体的控制下调度作业在所述系统的目标实体上的执行的方法(400),其中所述方法包括以下步骤:
提供(406-409)定义一组作业的执行流的规划,
根据所述规划提交(466-475)每个要在选定目标实体上执行的作业,其特征在于
提供(412-415)一组规则,每个规则定义了响应于事件目标实体上的事件而要在动作目标实体上执行的动作,
确定(430)为每个事件目标实体在所述规则中定义的事件,
允许(418-457)每个事件目标实体检测相应事件,包括:
为在所述事件目标实体上运行的至少一个检测模块创建(433)配置结构,所述配置结构使所述至少一个检测模块监视事件,以及
将所述配置结构部署(439-457)到所述事件目标实体;
触发(481-493)每个动作在相应动作目标实体上的执行以响应检测到所述相应事件。
2.如权利要求1中所述的方法(400),其中所述动作中的至少一个动作包括提交未在所述规划中定义的其他作业以在所述相应动作目标实体上执行。
3.如权利要求1中所述的方法(400),其中所述允许每个事件目标实体检测相应事件(418-457)的步骤进一步包括:
当所述配置结构与先前部署到所述事件目标实体的先前版本的配置结构等同时,阻止(439-448)将所述配置结构部署到所述事件目标实体。
4.如权利要求3中所述的方法(400),其中所述阻止将所述配置结构部署到所述事件目标实体(439-448)的步骤包括:
生成(439)代表所述配置结构的摘要值,
将所述摘要值传送(442)到所述事件目标实体,以使所述事件目标实体将所述摘要值与指示先前版本的配置结构的先前摘要值相比较(445)并仅响应于所述比较的否定结果才请求(451)从所述调度实体部署所述配置结构。
5.如权利要求1至4中的任一权利要求所述的方法(400),其中所述触发每个动作在相应动作目标实体上的执行以响应所述相应事件(481-493)的步骤包括:
从所述相应事件目标实体接收(484)对所述事件的通知,
标识(485)在所述规则中为所述事件定义的每个动作和相应动作目标实体,以及
提交(487)每个标识的动作以在所述相应动作目标实体上执行。
6.如权利要求1至4中的任一权利要求所述的方法(400),还包括以下步骤:
监视(412)所述规则,响应于所述规则中的每个更改而执行所述确定为每个事件目标实体在所述规则中定义的事件(430)以及允许每个事件目标实体检测相应事件(418-457)的步骤。
7.如权利要求6中所述的方法(400),还包括以下步骤:
标识(430)所述事件目标实体中与更改后的规则对应的受到影响的事件目标实体,所述确定为每个事件目标实体在所述规则中定义的事件(430)以及允许每个事件目标实体检测相应事件(418-457)的步骤被限于所述受到影响的事件目标实体。
8.一种在数据处理系统的调度实体的控制下调度作业在所述系统的目标实体上的执行的系统,包括:
用于提供定义一组作业的执行流的规划的装置,
用于根据所述规划提交每个要在选定目标实体上执行的作业的装置,包括:
用于提供一组规则的装置,每个规则定义了响应于事件目标实体上的事件而要在动作目标实体上执行的动作,
用于确定为每个事件目标实体在所述规则中定义的事件的装置,
用于允许每个事件目标实体检测相应事件的装置,配置为:
为在所述事件目标实体上运行的至少一个检测模块创建配置结构,所述配置结构使所述至少一个检测模块监视事件,以及
将所述配置结构部署到所述事件目标实体;
用于触发每个动作在相应动作目标实体上的执行以响应检测到所述相应事件的装置。
9.如权利要求8中所述的系统,其中所述动作中的至少一个动作包括提交未在所述规划中定义的其他作业以在所述相应动作目标实体上执行。
10.如权利要求8中所述的系统,其中所述用于允许每个事件目标实体检测相应事件的装置进一步配置为:
当所述配置结构与先前部署到所述事件目标实体的先前版本的配置结构等同时,阻止将所述配置结构部署到所述事件目标实体。
11.如权利要求10中所述的系统,其中所述用于阻止将所述配置结构部署到所述事件目标实体的装置进一步配置为:
生成代表所述配置结构的摘要值,
将所述摘要值传送到所述事件目标实体,以使所述事件目标实体将所述摘要值与指示先前版本的配置结构的先前摘要值相比较并仅响应于所述比较的否定结果才请求从所述调度实体部署所述配置结构。
12.如权利要求8至11中的任一权利要求所述的系统,其中所述用于触发每个动作在相应动作目标实体上的执行以响应所述相应事件的装置进一步配置为:
从所述相应事件目标实体接收对所述事件的通知,
标识在所述规则中为所述事件定义的每个动作和相应动作目标实体,以及
提交每个标识的动作以在所述相应动作目标实体上执行。
13.如权利要求8至11中的任一权利要求所述的系统,还包括:
用于监视所述规则,响应于所述规则中的每个更改而执行所述确定为每个事件目标实体在所述规则中定义的事件以及允许每个事件目标实体检测相应事件的装置。
14.如权利要求13中所述的系统,还包括:
用于标识所述事件目标实体中与更改后的规则对应的受到影响的事件目标实体的装置,所述用于确定为每个事件目标实体在所述规则中定义的事件以及允许每个事件目标实体检测相应事件的装置被限于所述受到影响的事件目标实体。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP07117512.9 | 2007-09-28 | ||
EP07117512 | 2007-09-28 | ||
PCT/EP2008/060295 WO2009040171A2 (en) | 2007-09-28 | 2008-08-05 | Method, system and computer program for scheduling execution of jobs driven by events |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101809538A CN101809538A (zh) | 2010-08-18 |
CN101809538B true CN101809538B (zh) | 2013-06-05 |
Family
ID=39870564
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200880108307.6A Expired - Fee Related CN101809538B (zh) | 2007-09-28 | 2008-08-05 | 用于调度由事件驱动的作业的执行的方法和系统 |
Country Status (5)
Country | Link |
---|---|
EP (1) | EP2193441A2 (zh) |
JP (1) | JP5695420B2 (zh) |
KR (1) | KR20100081305A (zh) |
CN (1) | CN101809538B (zh) |
WO (1) | WO2009040171A2 (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105190536B (zh) * | 2013-02-28 | 2019-05-31 | 安提特软件有限责任公司 | 一种用于验证作业的系统及方法 |
CA3100068A1 (en) * | 2018-05-12 | 2019-11-21 | Schlumberger Canada Limited | Multi-domain planning and execution |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5790789A (en) * | 1996-08-02 | 1998-08-04 | Suarez; Larry | Method and architecture for the creation, control and deployment of services within a distributed computer environment |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH06149401A (ja) * | 1992-11-11 | 1994-05-27 | Chubu Nippon Denki Software Kk | 運用スケジュール設定方式 |
US5721825A (en) * | 1996-03-15 | 1998-02-24 | Netvision, Inc. | System and method for global event notification and delivery in a distributed computing environment |
US7150037B2 (en) * | 2001-03-21 | 2006-12-12 | Intelliden, Inc. | Network configuration manager |
US7444639B2 (en) * | 2001-12-20 | 2008-10-28 | Texas Insturments Incorporated | Load balanced interrupt handling in an embedded symmetric multiprocessor system |
JP2004280422A (ja) * | 2003-03-14 | 2004-10-07 | Nec Software Chubu Ltd | 分散システム、計算機及び分散システムの自動運転スケジュール生成方法 |
US7487503B2 (en) * | 2004-08-12 | 2009-02-03 | International Business Machines Corporation | Scheduling threads in a multiprocessor computer |
JP4538736B2 (ja) * | 2005-03-30 | 2010-09-08 | 日本電気株式会社 | ジョブ実行監視システム、ジョブ制御装置、ジョブ実行方法及びジョブ制御プログラム |
JP2007058478A (ja) * | 2005-08-24 | 2007-03-08 | Hitachi Kokusai Electric Inc | 制御内容更新装置 |
-
2008
- 2008-08-05 CN CN200880108307.6A patent/CN101809538B/zh not_active Expired - Fee Related
- 2008-08-05 WO PCT/EP2008/060295 patent/WO2009040171A2/en active Application Filing
- 2008-08-05 KR KR1020107007006A patent/KR20100081305A/ko not_active Application Discontinuation
- 2008-08-05 EP EP08786903A patent/EP2193441A2/en not_active Ceased
- 2008-08-05 JP JP2010526227A patent/JP5695420B2/ja not_active Expired - Fee Related
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5790789A (en) * | 1996-08-02 | 1998-08-04 | Suarez; Larry | Method and architecture for the creation, control and deployment of services within a distributed computer environment |
Also Published As
Publication number | Publication date |
---|---|
JP5695420B2 (ja) | 2015-04-08 |
JP2010541055A (ja) | 2010-12-24 |
WO2009040171A3 (en) | 2009-06-18 |
CN101809538A (zh) | 2010-08-18 |
EP2193441A2 (en) | 2010-06-09 |
WO2009040171A2 (en) | 2009-04-02 |
KR20100081305A (ko) | 2010-07-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101876943B (zh) | 识别大型机环境中多个相关应用之间的关系的系统和方法 | |
CN102576331B (zh) | 用于在虚拟机监视器环境中的虚拟机之间同步瞬时资源使用的系统和方法 | |
US7703091B1 (en) | Methods and apparatus for installing agents in a managed network | |
US20030229653A1 (en) | System and method for data backup | |
CN102122274A (zh) | 虚拟化解决方案的自动化配置和安装 | |
CN108614688A (zh) | 应用于混合云环境的可视化应用编排及方法 | |
CN101779217A (zh) | 远程健康监视和控制 | |
CN103036986A (zh) | 在分布式应用对象上提供更新通知 | |
CN103092645B (zh) | 一种基于微内核技术的地理空间信息应用系统及其实现方法 | |
CN101960439A (zh) | 客户端环境创建系统、客户端环境创建方法、客户端环境创建程序和存储介质 | |
US9400992B2 (en) | Populating a software catalogue with related product information | |
CN101379504B (zh) | 用于复合应用的基于角色的访问控制管理的方法及系统 | |
CN104601617A (zh) | 虚拟桌面系统中外设的接入处理方法及装置 | |
CN102799485A (zh) | 历史数据的迁移方法及装置 | |
JP2010250749A (ja) | パッチ適用システム | |
Petriu et al. | Analysing software requirements specifications for performance | |
CN101809538B (zh) | 用于调度由事件驱动的作业的执行的方法和系统 | |
US20090089772A1 (en) | Arrangement for scheduling jobs with rules and events | |
CN102841825A (zh) | 一种驱动备份方法、装置及驱动还原方法、装置 | |
CN103927244A (zh) | 一种基于动态代理实现的插件调度过程监控的方法 | |
CN113313353A (zh) | 一种持续交付流水线管理方法及装置 | |
JP6705979B2 (ja) | 機器設定装置、機器設定方法、及びプログラム | |
CN112445473A (zh) | 客户端布局方法与装置、存储介质、电子设备 | |
CN107506231A (zh) | 一种vdi数据保护的方法及系统 | |
JP2001265603A (ja) | 自動振分ソフトウエア配布システム及びその方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20130605 Termination date: 20200805 |