调度和监视计算机处理的系统的制作方法

文档序号:6419596阅读:325来源:国知局
专利名称:调度和监视计算机处理的系统的制作方法
技术领域
本发明涉及计算机处理的调度和监视。本发明尤其涉及交付作业进行执行。本发明还涉及经多个联网计算机平台(节点)的作业(job)的交付、调度和监视以及为交付到作业的程序提供公共接口。
本发明还涉及一种维护具有每个节点详细作业历史的本地作业存储库(repository)的作业调度器,以及一个维护经一个企业的详细作业历史的中央作业存储库。本发明还涉及在每个计算机平台上提供调度代理(schedulingagent)以开始每个被交付作业的执行。
背景技术
现代计算机系统被用于一个很宽的任务范围。许多任务是简单的并且被实时执行。然而,某些任务需要很长执行时间,或者必须在不同时间间隔或不方便的时间执行(例如,当一个任务正在运行的系统具有轻的任务负载时,如清晨或周末时间)。
基本调度装置已经被用来在不同时间间隔或指定运行时间上运行某些程序或作业。然而,这些系统既不能提供足够的服务或不能无缝地组合成特定的生产线,也不能在联网环境中的多个计算平台之间提供适当的服务。

发明内容
因此,本发明的目的是提供一种调度作业的作业调度装置。
本发明的另一个目的是提供一种作业调度装置,它经多个计算平台提供作业调度服务,并控制被交付的作业的执行;本发明的再一个目的是提供一种计算机网络的每个相应节点上的调度代理,用于接受和管理交付给相应节点的作业;
本发明的另一个目的是提供一种命令行,可以被用来确定作业状况和把作业控制命令发送给正在一个企业的节点上执行的作业。
本发明的另一个目的是提供一种无缝作业调度装置,用于具有交付和调度作业的公共格式的多个软件产品,并向利用作业调度装置的软件产品提供一致性应用编程接口。
本发明的再一个目的是提供一种单个作业调度和管理工具,用于公共应用编程接口之下的所有POEMS激活(enabled)产品(例如,铂金指向产品(platinum point product),该公共应用编程接口特别有效地瞄准产品的作业调度需求。
本发明的另一个目的是提供一种公共图形用户接口(例如,MicrosoftFoundation C1ass(MFC)(微软基本类别)),以调度和列出由GUI(图形用户接口)部件和代理使用的所有的作业和公共API(应用编程接口)。


通过参考下列的结合附图的详细说明,将容易地得到本发明的更加完整的评价以及由此带来的许多优点,同样,将使本发明变得更好理解。
图1表示本发明一个实施例的一个方框图,其中提供了在一个公共应用编程接口下用于POEMS激活产品的作业调度和管理工具;图2是轻量级企业调度器(LES)代理的方框图,该代理协调用于一个节点的运行和作业历史交付;图3是图示说明用来把消息传递到接收模块的RT服务器的流程图;图4是图示说明用来把消息传递到预订特定节点的接收模块的RT服务器的流程图;图5是图示说明铂金企业通信器(PEC)消息的LES代理接收的流程图;图6是图示说明经PEC向一个指向产品(point product)处理发送点产品参数的LES代理的流程图;图7A是图示说明LES代理启动的流程图;图7B是图示说明LES代理的处理的流程图;图8是图示说明LES目录结构的方框图;图9是图示说明应用和指向产品的用户标识需求的铂金安全模型的方框图;图10是POEMS调度服务作业调度窗口的图示;图11是指向产品属性页的图示;图12是指向产品属性页的下拉日历的图示;图13是经指向产品属性页运行的被调度作业一个实例的图示;图14是经指向产品属性页运行的被调度作业的第二实例的图示;图15是提供一个安排为在每天运行的作业的实例的图示;图16是提供一个安排为在每星期特定日运行的作业的实例的图示;图17是提供一个安排为在每个月选定日运行的作业的实例的图示;图18是提供一个安排为在一年的特定日运行的作业的实例的图示;图19是一个通知脚本窗口的图示;图20是日历选择窗口的图示;图21是一个用来创建一个日历的创建日历窗口的图示,该日历具有运行与其关联的作业的选择日期;图22是提出作编辑的一个现有日历的图示;图23是用来创建策略窗口和选择用于编辑和删除的策略窗口的策略调度窗口的图示;图24是通过点击来自策略调度窗口的创建(create)而调用的指向产品属性页的图示;图25是一个删除调度窗口的图示,具有在删除一个调度时,标识一个清除脚本(script)的提示;图26是一个插入对象窗口的图示;图27是属性窗口的普通标志(tab)的图示;图28是属性窗口的代表标志的图示;图29是用来选择代表一个对象的图标图形的选择智能图标(Intellicon)位图的图示;图30是用于作业资源对象标签(label)的显示的一个浏览器视图实例的图示;图31是属性窗口的作业存储库的图示;图32是作业资源对象的文件夹(folder)分层的图示;图33是列出所有作业文件夹中的作业的图示;
图34是所有作业任何状况文件夹中的作业的图示;图35是作业的运行历史的一个实例的图示;图36是特定节点下的所有作业任何状况文件夹中的作业列表的图示;图37是对作业可用的属性页标志的图示;图38是命令标志属性页的图示;图39是数据库标志属性页的图示;图40是作业调度标志属性页的图示;图41是参数标志属性页的图示;图42是含有关于作业运行信息的普通标志属性页的图示;图43是显示关于作业运行的产品特定信息的运行状况标志属性页的图示;图44是作业资源对象中的一组文字上的普通标志属性页的图示;图45是导控器浏览器(Director Explorer)视图中的日志文件栏的视图的图示;图46是用于观看日志文件的弹出菜单的利用的图示;图47是为特定作业运行显示的日志文件观看器的图示;图48是用来删除一个作业文件夹的弹出菜单的图示;图49是一个删除作业窗口的图示;图50是一个状况和结果窗口的图示;图51是删除一个单个作业的弹出菜单的利用的图示;图52是一个删除作业窗口的图示;图53是用于单个作业的删除的状况和结果的图示;图54是在文件夹级上唤醒多个作业重新运行的的弹出窗口的利用的图示;图55是重新运行作业弹出窗口的图示;图56是作业文件夹中的作业重新运行的状况和结果窗口的图示;图57是重新运行单个作业的弹出窗口的利用的图示;图58是用于各作业的一个重新运行作业窗口的图示;图59是取消运行作业的弹出窗口之利用的图示;图60是一个取消运行弹出窗口的图示;图61是在运行作业上调用进展监视器的弹出窗口之利用的图示;
图62是显示关于一个作业的阶段、整个进展和其它信息的本发明所利用的进展监视器的图示;图63是导控器服务管理监视器的图示;和图64是服务管理器监视器的右侧的图示,它显示了驻留在一个节点上的程序的信息。
具体实施例方式
下面参见附图,其中,相同的参考标号代表多个图中的相同或相应的部分。尤其参见图1,该图1示出了,提供在公共应用编程接口下用于POEMS激活产品(例如,铂金指向产品)的作业调度和管理工具。
在图1中,一组指向产品100(指向产品1..n)与不同的POEMS激活应用编程接口(API’s)以及一个铂金企业通信器(PEC)160链接在一起,其每一个指向产品包括一个指向产品GUI 110。至少一个轻量级企业调度员(LES)代理170被安装在一个节点上。指向产品GUI 110把一个用户接口提供给指向产品100,并且通过向一个GUI API 115发送作业数据来传递用户选择。
GUP API 115结合有提供LES的属性页,执行数据检验和作业分配,并根据作业参数调用作业调度API130中的相关调度功能。GUI API 115由指向产品GUI 110使用。
作业调度API130执行调度服务,分配和定义交付的作业,以及通过向运行该作业的一个选用节点上(例如,LES节点1、170)的LES代理来启动一个PEC消息,来分配诸多作业。处理间通信经PEC160执行。作业调度API最好由指向产品GUI 110使用。
LES代理170按照作业调度API 130的请求启动作业的处理。本发明可以经多个计算平台和/或节点实施,并且在作业运行的每个节点上安装一个LES代理(LES代理1..n)。
每个LES代理更新本地作业存储库180,该本地作业存储库180维护被交付给其相应节点的每个作业的作业信息。本地作业存储库被安装在作业运行的每个节点上,并且可以使用SQL*Anywhere(一个具有小覆盖区(footprint)的数据库产品,用于资源的效率)来实施。也可以换用其它SQL产品和各种数据库/存储库配置。
中央作业存储库190维护交付给系统中每个节点的所有作业的作业数据的超集。中央作业存储库由作业数据管理API 140来维护,并且在相关数据管理系统(RDBMS)、Dex、或其它数据存储库或管理系统中实施。
作业数据管理API 140选择、插入、更新或删除作业和作业历史。本地和中央作业存储库由作业数据管理API来更新。此外,作业数据管理API140在内部由作业调度器和LES代理使用。作业调度API把数据的格式变换成PEC消息格式。
中央作业存储库190的位置由RDEX(相关数据交换)来确定。如果没有有效的DEX(数据交换)信息,则SDM(软件传递管理器)安装提示被用作表位置信息。在与中央作业存储库相同的节点、每个客户机和作业运行的每个节点上保持用于POEMS环境而建立的配置文件、PEC160、LES代理等。
中央和本地作业存储库的每一个由LES自动更新。指向产品本身只与API交互而与存储库的类型细节没有关系。
提供指向产品API 120是为了允许每个指向产品进行访问,确定作业状况、作业日志文件,执行建立和取消功能(作业),更新作业日志文件和在作业运行时提取作业参数。在POEMS配置中,该API由可执行的指向产品(例如,指向产品100)使用。
LES命令行155提供访问作业管理功能的命令行(与作业管理API150通信),包括确定作业状态,和建立、删除或更新作业日志文件和提取作业参数。
作业管理API 150删除、取消、重新运行或拷贝现有作业。该API在内部由LES命令行155和作业文件夹185(包含作业列表,可以以各种格式观看)使用。
指向产品API120、作业调度API 130、作业数据管理API 140和作业管理API 150的每一个,在需要时,经PEC消息与安装在节点1..n的任何一个LES代理进行通信。
PEC消息以一种在LES启动(enabled)的工作站与不同API之间进行通信的格式来提供。
设置编历API 165是为了管理日历功能并且在内部由其他API和指向产品GUI使用。
安装在计算网络或系统的节点上的POEMS启动的指向产品和LES代理提供公共作业调度服务,以下称之为轻量级企业调度器(LES)。LES允许用户调度(schedule)一个新作业、删除一个作业、取消一个作业、和重新运行一个作业。
下列步骤提供了一个示例性的LES作业流程1、把作业参数输入到指向产品GUI中。
2、按下“结束/OK”按钮。
3、把作业参数传送给LES作业分配器。
4、把母作业(parent job)输入放入中央存储库中。
5、把作业参数传送给使用PEC的LES代理。
6、将作业参数存储到本地作业表中。(如果该步骤失败,发送指示该作业未在该节点上安排的事件/警示。)7、创建子作业,并存入中央存储库中。
8、为每个所选节点重复步骤5-7。
9、在适当的时间,启动该作业(启动可执行的指向产品)。
10、使用LES API从作业表中获得作业参数。
11、发出作业进展消息。
12、在控制台(console)上使用进展监视器显示作业进展。
13、作业完成,于是LES代理把一个记录置于本地作业历史表中。
14、LES代理把一个记录置于中央作业历史表中。
15、LES代理发送一个“作业完成”事件。LES代理图2是图示说明LES代理(例如,LES代理170)的主要部件和通信的方框图。LES代理有三个主要部分组成1、通信模块210-发送和接收从作业分配API到指向产品和从指向产品到作业分配API的PEC消息。
2、作业管理模块220-LES核心。代理的这一部分设置内部环境和存储器,启动作业、运行作业和管理作业处理。
3、数据管理模块230-从本地和中央存储库(分别为180和190)中更新和删除数据。
低级功能API240对所有代理模块是可用的。该低级API处理所有内部功能、文件管理和消息。
图3是图示说明PEC消息是如何正常传递的流程图。发送模块300发送其中具有编码的目的地的一个消息320,其中把消息320a和320b的拷贝分别发送给每个接收模块340a和340b的RT服务器接收该消息(例如,LES代理)。
为了避免RT服务器把相同的作业消息发送给一个以上的代理,该LES代理注册为PTLES<节点地址>数据组。该注册用唯一的数据组标识每个LES代理,以便把消息传递给与该消息对应的数据组的节点。
每个LES代理预订当前节点地址(主机名)消息,使每个发送器还应当指定哪个节点将接受该消息。适当的消息择径传递(routing)在图4中示出,它示出了把消息320传递到接收模块345a的RT服务器310,和不接收拷贝的接收模块345b。RT服务器在每个管理各个处理过程、提供到正确目的地的PEC择径传递的机器上运行。
图5是图示说明进入到LES代理500的消息流的流程图。所有的进入消息经PEC通信API(例如PEC160,参见图1)从客户机处理520、指向产品代理530、或与一个LES代理通信的其他模块的任一个接收。每个消息经一个RT服务器(例如,510a,510b)择径传递到LES代理500。
图6示出了从LES代理500到指向产品代理530的反向消息业务。LES代理500使用PEC消息经RT服务器510把指向产品参数发送给指向产品处理进程(代理)530。
图7A是图示说明LES代理启动的步骤的流程图。在步骤705,LES配置文件(维护存储库位置上的启动信息,维护发现如何设置和操作的LES的信息)被装载。在步骤710,建立LES本地作业存储库表(例如,本地作业存储库1 180,参见图1)。如果本地作业存储库已经存在于LES代理正在被启动的节点上,则跳过步骤710。
在步骤715,本地作业存储库与中央作业存储库190同步。例如,同步处理(process)更新中央作业存储库,以反映在本地作业存储库中的每个入口,该处理确保中央作业存储库维持跨企业的每个作业的记录。
在步骤720,为所有的过期作业增加历史行(中央和本地)。为历史目的维护过期作业上的信息。
在步骤725,初始化PEC回调(call back)功能。PEC回调功能提供了允许与PEC160进行通信的适当的API接口。
在步骤730,计算和设置一个同步超时。该同步超时被用来控制等待多长时间去连接其他存储库。
如图7B所示,一旦启动LES代理,它就开始执行在安装该LES的节点上运行的被选择的作业处理进程的接收和启动。在步骤750,LES代理计算和执行运行下一个作业的设置,然后输入一个等待循环760,在这里LES代理等待PEC消息、同步超时和运行下一个作业的超时之一。
当等待循环超过运行下一个作业的时间时,执行步骤770,它包括运行当前作业(时间已过的下一个作业)、更新该作业的启动状态、和建立一个运行历史行(在本地和中央存储库中执行更新和建立操作)。
当该循环对同步超时时,则执行中央/本地同步程序(将本地与中央、中央与本地进行同步)。
当循环接收到PEC消息时,LES代理执行包含在PEC消息中的操作,即步骤780。LES代理接收的PEC消息包括运行一个作业、删除一个作业、更新一个作业、请求作业参数(作业参数是一个产品需要的消息、用户名称、db名称,它们由指向产品设置并存储在LES db区域的LES API中,其中指向产品可以用于它想要做的任何事情)的消息。
一旦作业超时、同步超时或PEC消息操作(步骤770,790和780)中的任何一个完成,就计算和设置下一个运行的作业(重复步骤750),并再次进入等待循环760。
当POEMS调度服务被用来添加作业时,指向产品GUI110调用作业调度API130以提交该作业。
API执行下列步骤1、保存中央存储库中的作业。
2、查看代理是否存在。
3、如果代理正在运行,向该代理发送PEC消息(包括作业)。
代理执行以下步骤1、接收PEC消息。
2、保存本地存储库中的作业。
3、检查何时运行作业。
4、启动命令行。
在一个分层组织的目录结构中维护LES代理,图8示出了一个实例。顶层目录$PLATHOME 800含有所有有关的目录,它包含关于铂金(Platinum)产品的文件(其它产品也可以替代使用)。POEMS根目录,$Ptroot 810维护所有的与启动POEMS有关的目录和文件。
Cfgref830目录维护一个配置文件,例如配置文件195。
Shlib*840目录维护所有的*.lib,和*.so文件,他们是共享图书馆。
bin850目录分离地维护ptles*文件852,*.dll 854,和*sql.dll 856文件的每一个。Ptles*文件852包含ptlesag,ptlestp,ptlestab,和其它有关文件。*.dll854维护每个动态链接库,*sql.*856维护对LES功能的LES询问。
Log 860目录维护一个ptlesag.log865日志文件(包括诊断日志关于运行的信息和误差)。
在一个实施例中,如图9所示,为了取得成功,铂金安全模式需要许多应用/指向产品像一个特定用户那样运行。
AutoLogin(自动登录)API提供一个像a16特定操作系统用户那样运行作业的方式,这种方式不需要在运行时间询问用户或者作为作业的一部分硬编码UNIX用户。
为了利用该特点,应用程序可以利用PtLESSetJobCommand()功能并把一个用户名和角色传送给LES。如果用户名和角色被指定为NULL,则LES像默认铂金用户(或其默认用户)那样运行该作业。否则,LES通过调用Autologin API并传送作为被请求用户和被请求角色的用户名和角色、作为资源类型(Rosource Type)的操作系统、以及作为资源事例(Resource Instance)的作业事例名,尝试提取用户标识和口令。把login信息输入AutoLogin在Autolgin实施例中,管理员登入为“root(根)”,以安装LES/OS资源。
以下来源于POEMS导控器(Director)1、选择工具安全管理Autologin(自动登录)2、登录为“root”。如果已经登录,可以在运行Administrator Autologin(管理员自动登录)之前利用“rtlogout.exe”。
3、Autologin Administration窗口显示。
4、右击Agent’s Requesting User文件夹,以激活弹出菜单显示。
5、选择Add Entry(添加入口)。
6、Add Entry窗口显示。
7、把登录信息输入以下字段。
h)把资源类型调整到OS。
i)资源事例是指向产品传送到作业的相同事例名。
如果指向产品……使用AutoLogin和在Add Entry窗口中记录有效用户ID和口令,则LES代理传递ID和口令串并许可访问。
使用AutoLogin但不在Add Entry窗口记录用户信息,则LES代理自动地检验UNIX用户登录。如果发现UNIX用户,则许可访问。
使用AutoLogin和在Add Entry窗口记录无效用户ID和口令,则LES代理默认到PLATINUM(或其它默认)用户。
不使用AutoLogin,则LES代理默认PLATINUM(或其它默认)用户。命令行接口LES中包含的命令行接口执行管理功能,包括-删除一作业及其所有的运行。
-取消作业的运行。
-列出所有作业。
-按产品码、状态、和/或节点列出所有作业。
-立即再运行作业。
命令行接口利用了以下格式ptlescmd[-a action][-jobid][-c cleanup_process][-r run_number][-pproduct_code][-s status][-b buffersize][-n node]注-a选项用于所有的操作;-j选项用于除列表外的所有操作;其它是任选的。
ptlescmd是用来删除作业、取消作业运行、列出作业(所有作业,按产品码、按状态和/或节点)以及立即再运行一个作业的LES命令行接口。
表1提供了支持选项的ptlescmd命令行的一个列表表1

为了使用LES命令行,用户打印出以下内容ptlescmd-a[action]-j[jobid][-letter option_name]其中action是以下之一删除,取消、再运行和列表。
Jobid是用于作业的标识。
Letter是命令行Supported Option(支持选项)表中列出的选项之一的文字。
option_name是命令行Supported Option(支持选项)表中列出的选项之一的名称。
表2提供了一组示例命令行和相应的说明。
表2

注有效状态值包括已完成,已失败,未开始,先占,正在运行和已停止。
LES作业停留在中央和本地存储库中,直至用户删除它们。用户可以在任何时间通过在Poems导控器/作业文件夹185上进行右击来删除、再运行或取消正在运行的作业,并选择适当的选项。一个删除选项去除作业和所有运行以及作业历史。该指向产品可以提供一个可执行的清除处理,以去除与该作业有关的所有指向产品文件。该可操作的处理如果可用,则在去除该作业和作业历史之前由代理运行。
LES提供包括Rerun Job和Update Job的更改选项。Rerun Job选项允许一个用户以不同开始时间重新运行该作业。PtLESUpdateJob()功能允许对所有GUI字段进行更新。
上下文(context)变量,比如%C(PLATHOME)或环境变量%E(FUS_HOME)等,在运行作业命令之前由代理解析。
UNIX用户名作为作业的一部分从GUI指向产品设置。代理不需要口令,因为代理正在按根目录运行(代理具有set_root_ID位)。上下文变量上下文变量是可以在命令行上使用的关键字标识符。LES代理根据传递的当前作业的上下文和作业参数来变换这些变量。LES代理插入这些上下文变量,形成命令行,然后执行命令行。
Keyword Context Variable(关键字上下文变量)-替换自当前作业中发生。
Environment Variable(环境变量)-替换自代理正在运行的环境中发生。
Filename Variable(文件名变量)-代理把该变量用作文件名,并且用该变量指向的文件的内容代替它。如何指定上下文变量关键字上下文变量按%C(上下文标识符由数值替代)指定-例如,用my_prog 1234管理器替代的my_prog %C(JOB_ID)%C(USERNAME),其中管理器的当前作业的作业标识jobid=1234,用户名=管理员。
环境变量指定为%E(变量名)-例如,my_prog%E(HOME)%E(LANG),my_prog/platinum en-us。
文件名变量指定为%F(文件名)-例如,my_prog%(etc/platinum)%C(JOB_ID)%E(HOME)my_prog/home/dmc 1234/home/platinum,其中文件名/etc/platinum包含行home/dmc。
可接受的%(上下文变量名称)语法关键字变量的语法是%C(KEYWORD)。用户可以在括号内的KEYWORD的任一侧插入一个间隔。表3提供了举例的关键字标识符的列表。

GUI APIGUI API由用于若干功能的指向产品100和指向产品GUI110利用,包括·用Job调度API分配作业,需要时置换任何默认值。
·以分类CptDynPropertySheet(派生于CpropertySheet)的GUI为基础,而不是直接使用CpropertySheet。CptDynPropertySheet由DnyPS.DLL输出。此外,GUI API可以用来交付一个作业,而不用显示GUI窗口。
·使用GUI API构造基于作业的CptLESJobSchedulingPage(例如,参见图25)对象,然后把它(和任何其它页)加到CptDynPropertySheet或CptDynPropertySheet派生的属性页上。
·使用GUI API定制任何被显示在调度属性页上的作业参数。
·使用Job Scheduling API设置任何需要的作业参数,该作业参数是不可能通过控制调度属性页来设置的。这些实例包括通过调用PtLESSetJobparm而设置的指向产品专用的作业参数。
·当最终OK指示该作业应当被交付时,使用GUI API使该数据有效和交付该作业。
使用LES作业调度页作为标志(tab)的产品,在交付作业之前调用其ValidateData()方法。ValidateData()可以被安全地调用多次,并且可以以消息框不显示给用户的方式来调用。
表4提供了调用GUI API实施上述讨论的处理的示例代码。

作业分配API作业分配API向适当的机器(LES工作站)分派任务,通常由作业数据管理API140调用。作业调度API作业调度API130与指向产品GUI一同工作以定义被交付的作业。需要一些经过作业调度API可用的功能,有一些是任选的,有一些是用户可以经LES GUI设置的内部功能。为基线功能和任何预期的选项功能或由GUI定义的功能设置一个值(被定义为适用于一个对应的指向产品)。
下表列出了功能类型并为每项功能提供了简要说明。基线功能被用来为作业调度处理提供基本信息并用表5中的说明列出。
表5-基线功能

表6列出和说明的选项功能,不需要被利用(定义)为适用于特定的指向产品。
表6-选项功能

表7列出了用户可以经LES GUI设置的内部功能。


表8提供了关于指向产品如何利用GUI API 115的实例码。例如,分配一个作业结构需要一个定义处理(handle)(jh)的指向产品,一个定义作业运行的日子(0=不运行,1=运行;即,0,0,0,0,0,1,0指星期五运行),一个用户ID和口令,和一个对PtLESJobAlloc()的调用功能。
表8

编历API编历API在内部由其它API使用,并提供全面的编历功能。例如,编历API的主要用途是允许用户为一个特定的作业运行输入编历信息。
作业管理API如上所述,作业管理APIl50删除、取消、再运行或复制现存的作业。此外,它还允许其它API确定作业状态,并设置、取消、或更新作业日志文件,以及提取作业参数。例如,作业管理API内的一个处理是用来停止当前运行的作业的ptLESCancelJob。PtLESCancelJob首先执行在特定节点上的检查,查看作业是否运行,如果作业正在运行,则向相应的LES代理发出一个停止命令。
作业数据管理API作业和作业历史被保存在中央存储库和作业要被运行的节点的本地存储库中。开放数据库连通性(ODBC)被用来选择、插入、更新和/或删除每个作业或作业历史。
指向产品API指向产品API允许指向产品与LES代理通信。当你使用该API时,LES作业文件夹示出关于你的作业的更精确信息,日志文件观看器示出作业日志文件,LES代理管理你的指向产品作业,从发展的观点看,使得LES更容易使用。
该API的功能封装PEC消息到LES代理,以更新作业状态或日志文件,或表示运行作业处理的结束的信号。PEC模型被附着到其中LES代理和指向产品是使用广播通信的Rtclient(Rt客户)。在调用任何LES——API功能之前已执行PEC初始化。此外,指向产品应当在退出之前调用TptTerm。
在一个实施例中,SIGUSR2被用作所有UNIX平台上的CANCEL通知信号,LES代理缺省忽略该信号。由于子处理继承了所有信号,所以CANCEL事件被忽略,除非指向产品采取动作。所以,如果用户应用程序正在使用用于其他目的的SIGUSR2,可能出现冲突(但允许利用用于操作的标准UNIX工具箱)。
在LES代理运行任何指向产品之前设置下列环境变量LES_JOBID→指向产品当前作业编号。
LES_RUN_NUM→指向产品当前运行编号。
LES_GROUPID→指向产品当前策略组编号。
LES_RUNTIME→调度时间(如果-1,则立即调度作业运行。)LES_INSTANCE→作业事例。
LES_USERNAME→作业用户名称。
LES_USERROLE→作业用户角色。
只要代理检测到一个误差,就显示误差消息。表9列出了误差,由编号和消息组成。一些消息使用了变量,在消息文本中表现为%符号,如下列实例所示。当显示误差消息时,用实际值代替这些变量。例如,在该情况中,当显示误差消息时,变量%用实际约束和文件名替代。
表9


表10提供了用于一个指向产品作业模板的示例性源代码,被认为是一个指向产品API120的使用的例子。然而,给出的码不是用来成为本发明的可编辑或可执行的版本,或者成为本发明的一个完美的实施例,而仅仅是反映这里所讨论的某些特征的一个实例。
表10<pre listing-type="program-listing"><![CDATA[ /* Platinum Technology Inc * Copyright (C)1997 Platinum technology Dimeric Lab * All Rights Reserved. * PLATINUM Lightweight Enterprise Scheduler example program * using the LES Point Product API referred to LES_API * Function source code. */ /* Point Product job template and use of the Point Product API */ /* system includes */#include <stdio.h>#include <stdlib.h>/* pec include files */#include <rtworks/ipc.h>#include <ptm/ptm.h>/* LES_API include files */#include"ptles_size.h"#include"ptles_ppapi.h"/* edit keys here *//* for example purposes the num of keys allowed is limited to 10*/#define MAX_KEYS 10static char keys[MAX_KEYS][KEY_L+1]={"key 1",/*e.g replace"key 1"with your key value */"key 2","key 3","key 4",};#define MY_STATUS_RUNNING1#define MY_STATUS_COMPLETE 2#define MY_STATUS_ABORT 3#define MY_STATUS_CANCELED 4FILE *fplog;/*** If user want to cancel this job** switch to the following function*/voidcancel_this_job(sig)int sig;{ fprintf(fplog,"Update Job Status to STATUS_CANCELED \n"); if(PtLESUpdateJobStatus(MY_STATUS_CANCELED)==LESAPI_FAIL) { fprintf(fplog,"PtLESUpdateJobStatusError %d\n"); } fprintf(fplog,"Point Product exampleJob canceled by userrequest\n"); PtLESUpdateExitStatus(PP_FAILED); TptTerm(); fclose(fplog); exit(1);}/* example program demonstrates how a point product *//* can use the LES_API to communicate with the LES Agent*/int main(argc,argv)int argc;char **argv;{int rc; /* used for error return */char pvalue[DATA_L+1]; /* allocation to hold value of a key-valuepair*/int plen; /* length of value */int i; /* used as a counter*/int num_items; /* num of key-value pairs rec*/char *plat_home;char log_path[PATH_L+1];char *les_jobid,*job_id;char *les_groupid;char *les_runtime;char *les_run_number;#if defined(DEBUG) &amp;&amp; defined(WIN32) DebugBreak();#endif job_id=getenv("LES_JOBID"); plat_home=getenv("PLATHOME"); if(plat_home 1=NULL &amp;&amp; job_id 1=NULL)sprintf(log_path,"%s/les/files/logdir/pplogfile_%s.log",plat_home,job_id); else strcpy(log_path,"pplogfile.log"); fplog=fopen(log_path,"w"); if(fplog==NULL) fplog=stderr; fprintf(fplog,"-----------------Point product example------------------\n"); les_jobid=getenv("LES_JOBID"); les_groupid=getenv("LES_GROUPID"); les_runtime=getenv("LES_RUNTIME"); /* ** LES V1.1.0 New Env. */ les_run_number=getenv("LES_RUN_NUMBER"); fprintf(fplog,"ENV.VARIABLE SETUP BY PTLES_AGENT\n"); if(les_jobid 1=NULL) { PtLESSetJobId(atoi(les_jobid)); fprintf(fplog,"....LES_JOBID=%s \n",les_jobid);} if(les_groupid 1=NULL) { fprintf(fplog,"....LES_GROUPID =%s \n",les_groupid); } if(les_runtime 1=NULL) fprintf(fplog,"....LES_RUNTIME=%s \n",les_runtime); if(les_run_number 1=NULL) fprintf(fplog,"....LES_RUN_NUMBER=%s \n",les_run_number); /* print our any arguments passed on the command line */ fprintf(fplog,"Command line argument\n"); for(i=1;i<argc;i++) { fprintf(fplog,"Argument[%d]%s\n",i,argv[i]); } /*To use the LES_API you always have to call the PEC TptInitfunction*/ /* to make a connection to the RtServer in main program */ TptInit(PPROD_API,"V1.1.0"); /*LES V1.1.0 adapt.Add CANCEL Function */ PtLESSetJobCancel(&amp;cancel_this_job); fprintf(fplog,"Update logfile name%s \n",log_path); /* Communicate the Point Products Logfile to LES Agent */ if(PtLESUpdateLogFileName(log_path)==LESAPI_FAIL) { fprintf(fplog,"PtLESUpdateLogFileNameError %d\n"); } /* Update the Point Product Status to Running *//* use this function to update status */ fprintf(fplog,"Update Job Status to STATUS_RUNNING \n"); if(PtLESUpdateJobStatus(MY_STATUS_RUNNING)==LESAPI_FAIL) { fprintf(fplog,"PtLESUpdateJobStatusError %d\n"); } /* The following function call performs the initialcommunication */ /* with the LES AGENT */ /* Used to retrieve the point product parms that may beneeded to */ /* be passed */ /* stored internally is the jobid and run number*/ fflush(fplog); fprintf(fplog,"Get Point product Parameters\n"); rc=PtLESGetProductParms(360 /* TIMEOUT */); if(rc==LESAPI_FAIL) { fprintf(fplog,"PtLESGetProductParmsError %d\n",PtLESGetErrno()); /* Another call to communicate the progress of a job*/ /* to the LES AGENT */ fprintf(fplog,"PP_exampleUpdate the STATUS toMY_STATUS_ABORT=%d \n", MY_STATUS_ABORT); if(PtLESUpdateJobStatus(MY_STATUS_ABORT)==LESAPI_FAIL){fprintf(fplog,"PtLESUpdateJobStatusError%d \n");} /* Communicate exit status of point product */ /* pre defined to PP_SUCCESS,PP_FAILED,PP_PREMPTED */ fprintf(fplog,"PP_exampleUpdate the exit status=%d \n",PP_FAILED); PtLESUpdateExitStatus(PP_FAILED); PtLESDestroyParms(); TptTerm(); fclose(fplog); exit(1);}/* edit the keys static char string defined before the main * to add point product keys*//* return the no of key value pairs */num_items=PtLESGetNumParms();if(num_items==LESAPI_FAIL){ fprintf(fplog,"PtLESGetNumParms%d\n", PtLESGetErrno());}fprintf(fplog,"No.Parameters received%d\n",num_items);num_items=num_items<MAX_KEYS?num_itemsMAX_KEYS;fprintf(fplog,"No.Parameters received%d\n",num_items);/* retrieve an print the key value pairs */for(i=0;i<num_items;i++){ /* get the length of value in the key-value pair */plen=PtLESGetParameterLen(keys[i]);if(plen>0){ /* Function used to retrieve the value given*/ /* a key for the parameter */ if(PtLESGetParameter(keys[i],pvalue,plen)==LESAPI_FAIL) fprintf(fplog,"PtLESGetParameter%d\n",PtLESGetErrno()); else/*print out the key-value pair */ fprintf(fplog, "\tParameter[%d]key=%s Value=%slen=%d\n", i,keys[i],pvalue,plen);} } /* print out the job Id and the Run Number received */ fprintf(fplog,"Received Job Id%ld\n",PtLESGetJobId()); fprintf(fplog,"Received Job RunNumber%ld\n",PtLESGetJobRunNum()); /* Another call to communicate the progress of a job */ /* to the LES AGENT */ fprintf(fplog,"Update Job Status to STATUS_COMPLETED \n"); if(PtLESUpdateJobStatus(MY_STATUS_COMPLETE)==LESAPI_FAIL) {fprintf(fplog,"PtLESUpdateJobStatusError %d\n"); } /*Before terminating call PtLESExitStatus */ /*Communicate exit status of point product */ /*pre defined to PP_SUCCESS,PP_FAILED,PP_PREMPTED */ /*free the internal structures allocated by LES_API*/fprintf(fplog,"Send END OF JOB with STATUS SUCCESS toPTLES_AGENT \n"); PtLESUpdateExitStatus(PP_SUCCESS); PtLESDestroyParms(); /* terminate connection to RTServer */ TptTerm(); fclose(fplog); return(0);}/* eof of main */]]></pre>经POEMS的调度本发明利用包括一个窗口(POEMS调度服务作业调度窗口,图10)或一个属性页(作业调度表属性页,图11)的GUI接口来实施。GUI窗口或页的其它实施例或安排也是可以应用的,例如,使用下拉选择菜单,而不是无线按钮,仅作为一个实例)。
GUI接口允许用户输入用于待交付作业的调度说明,包括-立即作业运行。
-作业稍后运行。
-作业的起始时间和日期。
-作业的再次运行间隔。
-建立或选择调度日历。
此外,GUI接口允许用户确定或修改通知脚本。
为了启动一个作业,用户把一个作业说明输入到作业说明箱中,按照立即、稍后时间或启动日期和时间选择一个运行时间,然后点击OK或结束。
POEMS具有若干个提供适当的启动日期和时间的特征。例如,如图12所示,,为日期选择提供了一个下拉日历。下拉日历包括如下的前进和减少的按钮·选择>>前进一年的按钮。
·选择<<减少一年的按钮。
·选择>前进到下一个月的按钮。
·选择<返回到前一个月的按钮。
由于POEMS调度服务在远端节点上调度作业,因此,提供一个按启动时间使用远端节点(而不是交付节点)的本地时间的选择框。
重现作业运行可以被设置用于间隔的宽阵列,包括·没有-用来调度作业的不重现运行。
·每小时后的几分钟-用来在该小时后的特定几分钟调度作业的重现(recurring)运行。
·小时-用来按指定的每小时间隔调度作业的重现运行。
·日-用来按每周的或几日中指定的间隔调度作业的重现运行。
·周-用来在选定日或几日上按周指定的间隔调度作业的重现运行。
·月-用来在选定日或几日上按月指定的间隔调度作业的重现运行。
·年-用来每年在指定日期调度作业的重现运行。
图13提供了一个在每小时之后的选定分钟运行的被调度的作业的一个实例(安排每小时重现运行间隔)。图14提供了一个在每小时之后的选定分钟运行的被调度的作业的一个实例(安排按小时重现运行间隔)。图15提供了每日运行的被调度的作业的一个实例(安排按日重现运行间隔)。图16提供了一个借助特定启动日期在每个星期四运行的被调度的作业的一个实例(安排按周重现运行间隔)。图17提供了安排为在每月25日运行的作业的一个实例(安排按月再现运行间隔)。图18提供了一个在每年的6月25日运行的被调度的作业的一个实例(安排按年重现运行间隔)。
通知脚本如上所述,GUI接口向用户提供了确定、修改或选择一个通知脚本的机会。通知脚本是外壳脚本,含有用来自动地提供有关作业的通知和作业状态信息的动作。通知脚本例如也可以执行其它功能。指向产品应用程序执行作业通知脚本。产品应用程序文件归档(documentation)应当包括作业完成或作业失败时所采取的动作的详细信息。
可以构成通知脚本用于表、表间隔和标引。当构成用于完成或失败的作业的通知的通知脚本时,可以利用先前赋值的变量。
这些变量的值是为默认通知脚本文件中的特定作业确定的相同值。用户可以在这些文件中定义用户变量的值,然后把通知脚本中的变量用作自变量由于可以把不同值赋给用于每个作业的变量,因此使用通知脚本中的这些变量,可以使相同脚本用于各种作业。你可以按照产品应用程序所确定的那样,使用作业完成脚本或作业失败脚本中的变量。
表11提供了建立的通知脚本变量的列表,包括每个变量的说明。
表11

GUI接口上的通知脚本按钮接入通知脚本窗口(参见图19)。通知脚本窗口允许用户进行·修改用于确认消息的文本,该消息指示一个作业的完成或失败。
·使用该窗口中指定的变量编写一个定制的脚本。
·指定用来通知你作业完成或失败的通知电子邮件地址的路径。
在作业完成脚本框和作业失败脚本框的每一个中,用户可以输入任何一个预定义的脚本变量以修改默认脚本,或仅仅键入用于通知脚本的全路径位置和文件名。
用户的全路径位置或通知电子邮件箱地址被键入通知电子邮件地址箱。该方法可以被利用来指定用于寻呼机、电子邮件、或电话号码的通知择径地址,以把调度作业的信息传递到任何位置。调度一个日历可从GUI接口访问的日历选择窗口(参见图20)提供了可以与当前作业一起使用的预定日历的一个列表。使用该窗口的选项,用户可以·创建一个新日历。
·编辑一个现有日历。
·选择一个事先确定的日历。
·删除一个日历。
为了创建一个日历,用户选择日历选择窗口中的创建按钮,该日历选择窗口调用一个创建日历窗口的显示(参见图21)。用户填写ID(日历的名称)和说明字段。
用户可以选择下列按钮,选择作业应当运行的日期的年和月·选择>>前进一年的按钮。
·选择<<减少一年的按钮。
·选择>前进到下一个月的按钮。
·选择<返回到前一个月的按钮。
通过点击该月的日,一个红边框标出日历上的日期,并在选择日期字段上显示完成的(标出的)日期。也可以选择多个日期。
也可以通过选择一个日历来修改现有的日历,首先在日历选择窗口中点击可用日历中的日历ID或说明,然后点击编辑按钮(例如,参见图22)。该日历一经显示,可以通过选择该日历上的一个日期来增加附加的作业运行日期。用户利用·选择>>前进一年的按钮。
·选择<<减少一年的按钮。
·选择>前进到下一个月的按钮。
·选择<返回到前一个月的按钮;并且用户随后点击该月的该日。红边框标出该日历上的日期,并且完成的日期显示在选择的日期字段中。在运行作业的所有日期显示在所选择日期字段中以前重复上述处理。
通过点击用取消选定的红色边框标注的日历号,可以从选定日期列表中删除日期。当取消选定和选择日期字段中不再显示日期时,日期边框消失。
OK按钮保存和退出窗口。此后的被编辑的日历可在日历选择窗口中得到。点击取消按钮,窗口退出,但不保存对日历的改变。
通过点击显示日历选择窗口(例如,图20)的GUI接口(作业调度窗口/属性页)的选择按钮,可以选择一个日历。通过点击日历ID和可用列表中的说明,然后点击选择按钮(或双击ID或说明),使一个日历增亮。日历选择窗口随后关闭,并且在作业调度窗口或属性页的日历ID字段中显示所选择的日历。
可以通过点击日历选择窗口的删除按钮而不是选择按钮,采用上述的步骤删除一个日历。策略调度提供一个策略调度(strategy scheduling)窗口,以观看、修改或删除一个策略的调度。从一个指向产品中调用调度策略窗口,如图23所示。
创建按钮被提供用于创建一个用于当前策略的新时间安排,它调用作业调度窗口/属性页(参见图24)。然后为新的时间安排(schedule)填写作业调度窗口/属性页。
一个编辑按钮被提供来修改用于当前策略的现有时间安排,它调用编辑所选用时间安排可用的作业调度窗口/属性页。
一个删除按钮被提供来删除一个用于当前策略的时间安排。用户首先加亮待删除的时间安排,然后点击删除。然后显示提示一个清除脚本的一个删除调度窗口(例如,参见图25)。
用户可以通过删除外壳脚本或要运行的其它处理的名称(Name)中的文字(如果有),以清除相关的文件字段来删除该时间安排,而不运行一个清除脚本;或者通过键入脚本的路径和全称删除该时间安排并运行一个清除脚本。用户通过通过点击OK或返回到策略调度窗口来调用动作,而不用通过点击取消进行删除。作业管理服务本发明包括多个以容易使用和直观格式给出的作业管理服务。本发明利用一个作业资源对象,以便允许一个导控器(Director)程序识别和跟踪各种作业处理过程。
将作业资源对象插入导控器之后,用户可以执行以下作业管理任务·以下列格式观看信息·栏-位于导控器窗口的右侧。
·属性页-位于导控器窗口的右侧。
·日志文件-提供日志文件观看器。
·删除作业·再运行作业·取消作业运行·监视作业运行的进程作业资源对象提供一个书签,用于发现要显示的信息,并且定位利用作业管理处理(例如,删除或监视作业)时将起作用的作业。用户调用的插入对象窗口(参见图26)标识插入的对象(POEMS提供可以插入的对象编号图26提供了部分列表)。用户选择一个对象(在该实例中是POEMS调度服务),并按压OK。作为响应,显示属性页(参见图27),包括General(通用)(图28),Representation(表示)(图29),Subscription(预订),Indicator(指示器),JobRepository(作业存储库),Event Correlation(事件相互关系)表。
属性页包括一个标签和一个说明字段。用户输入一个标签和说明(说明是任选的)。
表达标志允许用户在Intellicon视图中选择表示作业的一个图标,和任意选择背景和背景颜色。或者,用户可以在Explorer视图中选择一个图标。
Intellicon视图在图29中示出,包括Intellicon图标的列表(由POEMS字段提供,或者由用户提供),和一个观看所选择的图标(图形)的显示窗口。图30示出了一个Explorer视图的实例,它是显示ProVision(指向产品,或应用程序)作业(或LES作业)的Explorer视图,作为作业资源对象的标签。
通过选择作业存储库标志,显示一个窗口,用于定义与作业有关的时间显示的时区。向下箭头下拉菜单条向用户提供任何时区的选择。该选择不影响为运行作业调度属性页中指定的作业而选择的时间或时区。在一个实施例中,通过提供一个自动补偿选择器可以补偿夏令时,该选择器调用一个程序对夏令时进行调整;或者用户可选择紧挨在预期时区东边的时区。使用作业资源对象上述处理的所确定的作业资源对象能够使用户定位和观察作业和运行。用户可以在Explorer视图中定位每个作业。每次执行一个作业,它都创建一个新运行,然后在作业的运行文件夹中显示。
每个作业资源对象包含被分成下列种类的文件夹的层次ALL Jobs-列出所有作业,不管当前状态,还用状态列出所有运行。
Jobs By Group-列出按组标识符排列的所有作业。
Jobs By Node-列出按作业运行的节点排列的所有作业。
Jobs By Product-列出按用于作业的排列的所有作业。
Jobs By Type-列出按类型排列的所有作业。
Jobs By User-列出按调度作业的用户排列的所有作业。
然而,指向产品可以不允许用户指定作业组或类型。文件夹的分层在图32中示出。
所有作业文件夹(参见图33)用数字列出所有的作业,而不是用组、产品和类型分类它们。所有作业文件夹把作业列在文件夹中,包括·ALL Jobs Any Status-列出所有作业,与状态无关,连同关联的作业历史(作业的每次运行)。
·ALL Runs By Status-根据作业的当前状态把作业的所有运行安排到下列文件夹中·完成的运行·失败的运行·没有启动的运行·先占的运行·停止的运行·Held Jobs-列出保持并且稍后调度的所有作业。
·Scheduled Jobs-列出被调度运行的所有作业。
当使用作业组文件夹最初调度作业时,用户可以根据指定给他们的组来显示作业。特定产品应用程序(用来运行作业)指定一个组,但可以不使用该分类。
作业可以依据使用Jobs By Node Folder(按节点作业文件夹)运行作业的节点来显示。
作业可以依据使用Jobs By Product Folder(按产品作业文件夹)运行每个作业的特定产品来显示。这是有用的,如果使用多个ProVision产品调度和运行具有POEMS Scheduling Service(调度服务)的话(例如,因为它允许通过功能或应用程序进行作业分组)。
当使用Job By Type Flolder(按类型作业文件夹)最初调度作业时,作业可以由指定给它们的作业类型来显示。用户的特定产品应用程序(用来运行该作业)指定作业类型。然而,产品不一定使用该分类。
作业可以依据使用Jobs By User Folder调度该作业的用户来显示。JobsBy User、Jobs By Type、Jobs By Product、Jobs By Node和Jobs By GroupFolders(按组作业文件夹)的每一个包含与上述的所有作业文件夹相同的用于每个用户的文件夹分层。
特定的作业可以通过使用作业资源对象分层中(+)符号来扩展文件夹来定位。由此得到的显示包括Job ID、Job Icon(作业图标)、和一个Job说明。
此外,特定作业的(+)符号展现了其运行历史(例如,参见图35)。
运行历史被存储在几个文件夹中。ALL Runs(所有运行)文件夹包含与其状态无关的每个运。剩余的六个文件夹仅包含拥有适用于该文件夹的状态的运行(完成,失败,未启动,先占,运行和停止运行)。
可以依据图34所示的特定运行的状态在ALL Run文件夹中定位特定运行。在图34中,Job883的Run #1(作业883的运行#1)被停止;因此,它显示在Stopped Runs(已停运行)文件夹以及在ALL Runs文件夹中。
每个运行列表包含·运行图标·运行编号·运行起始日期和时间可以按存储在作业、运行、组、节点、产品、类型中的所有作业、运行、组、节点、产品、类型和用户的列格式观看数据。当使用Explorer视图时,数据显示在Director(导控器)窗口中。如图36所示,它示出了在Job ByNode文件夹中的一个特定节点控制下对ALL Jobs Any Status(所有作业任何状态)文件夹中的作业是有效的一些数据。
用户可以选择下列文件夹的任何一个,以便用列格式观看用于文件夹内容的数据(注某些文件夹,比如ALL Jobs不提供数据),包括·Jobs By Group(按组作业)·Jobs By Node(按节点作业)·Jobs By Product(按产品作业)·Jobs By Type(按类型作业)·Jobs By User(按用户作业)·ALL Jobs Any Status(所有作业的任何状态)·ALL Runs By Status(按状态的所有运行)·Held Job(保持作业)·Scheduled Jobs(调度作业)·All Runs(所有运行)·Completed Runs(完成的运行)·Failed Runs(失败的运行)·Not Started Runs(未启动的运行)·Preempted Runs(先占的运行)·Running Runs(正在运行的运行)·Stopped Runs(停止的运行)观看作业组数据当用户点击作业资源对象中的Jobs By Group文件夹的文字时,显示以下数据栏·Group ID-策略组ID号。
·Strategy ID-在该组所属的公共策略服务中确定的策略的策略ID号。
·Description-创建该组时,用户可以输入的该组的说明。
·Product Code-用来创建可以在该文件夹中观看的作业的产品代码。
·Product Version-用来创建可以在该文件夹中观看的作业的产品版本号。
·Jobs_per_Run-由用于该策略组的产品交付的POEMS调度服务作业的数目。
·Created-生成策略组作业的日期和时间。观看节点数据当用户点击作业资源对象中的Job By Node文件夹的文字时,显示以下数据列Node-作业所在的节点的列表。观看产品数据当用户点击作业资源对象中的Job By Product文件夹的文字时,显示以下数据列Product Code(产品码)-用来创建在该文件夹中可以观看的作业的产品的代码。
Product Version(产品版本)-用来创建在该文件夹中可以观看的作业的产品的版本号。观看数据类型当用户点击作业资源对象中的Job By Type文件夹的文字时,显示以下数据列Type-作业类型的列表。用户可以借助它们的作业类型定位作业,作业类型被指定在用来运行作业的产品中。观看用户数据当用户点击作业资料源对象中的Job By User文件夹的文字时,显示以下数据列User-用户名称的列表。用户可以定位用户名称下列出的作业。观看作业数据当用户点击作业资料源对象中的ALL Jobs Any Status、Held Job或Scheduled Job文件夹的文本时,显示以下数据列·Job ID-唯一的作业ID号。
·Description-可选的作业说明。
·Job Group-用于作业所属的组的策略组ID号。
·Access Mode-如果该列显示L,则锁定该作业并且不能再运行该作业,直至该作业被解锁。一个作业由运行该作业的指向产品锁定和解锁。如果一个作业没有被锁定,则该列空白。
·Product(产品)-创建作业的产品。
·Type-作业类型(取决于产品)·Node(节点)-作业将运行的机器。
·Whosetz-调度作业所用的时区。
·When Deployed-将作业写入作业表中的时间。
·Next Start-该字段可以包含以下值或文本信息之一·下一次设置作业运行。
·立即运行。
·过期。
·稍后安排(保持)。
·Run Count-作业运行的总次数。观看运行数据(作业历史)当用户点击ALL Runs By Status文件夹和包含运行的任何文件夹时,显示以下数据列·Job ID-用于该运行的唯一的作业ID。
·Run Number-唯一的运行编号(指定给作业的每次再现运行的编号)·Group ID-作业归属的组的策略组ID编号。
·Type-作业类型(依赖产品)。
·Time Zone-用于作业运行的时区。
·Scheduled Start Time-作业被安排启动的时间。
·Start Status-作业如何启动的状态。该状态由POEMS Scheduling Service设置,该列可以包含以下值·0作业成功启动。
·1作业不运行,因为当POEMS Scheduling Service失效(down)时启动时间已过,而且该作业此时未再现。
·2因OS状态,导致不能执行。
·3因OS状态(不足的系统资源),导致派生(Fork)失败。
·4无效用户。
·Actual Start Time-该作业运行实际开始时的时间。
·End Time-作业完成时的日期和时间。
·OS Status-当不能创建作业处理时由操作系统提供(参见你的用于信息的操作系统文件)。
·Complt Status-由运行作业的指向产品指定的运行的完成状态(参见你的用于信息的特定产品文件)。
·Failed-该列可以包含以下值·0作业是成功的。
·1由于任何原因导致作业失败。
·Preempted-该列可以包含以下值·1作业不能运行,因为你的特定产品的操作规则导致不允许作业运行。
·-1作业未被先占。
·Stopped-该列可以包含以下值·1作业处理在不通知代理的情况下结束,并且状态是未知的。
·-1作业没有被停止。
·Logfile-用于该运行的日志的名称和位置。以属性页格式观看数据可以在一个作业资源对象之中观看关于特定对象(作业、运行、组、产品或类型)的数据。数据在导控器(Explorer视图)窗口的右侧以具有一个或多个标志的属性页格式来显示。通过点击对象的文本,在导控器的右侧以属性页格式显示数据,如图37所示,以便访问属性页数据。
普通属性页包含以下字段·Job ID-唯一的作业ID编号。
·Description-可选的作业说明。
·Group ID-该作业归属的组的策略组ID编号。
·Target Node(目标节点)-作业将运行的机器。
·Deployed to Target Node(展开列目标节点)-在作业将运行的节点上,把作业写入作业表时的时间。
·Job Type-作业类型(依赖产品)。
·Job Owner-执行作业的对象的所有者。
·Run Count-运行作业的次数。
·Run State-该列可以包含以下值·0等待下次运行。
·1当前正在运行。
·Scheduling Time Zone-调度该作业的工作站的时区。
·Retry Interval(分钟)-该列可以包含以下值·在尝试重新运行一个先占运行后的作业之前等待的分钟数,或·0在作业被预占之后,该作业将不能再运行。
·Retry Count-该列可以包含以下值·当作业被先占或不能启动时进行作业的再试次数。
或·0作业将不能重新运行。
·Recur Fail Threshold(再现失败阈值)-在作业调度被停止之前接受的失败产品的运行次数。
·Recur Fail Count(再现失败计数)-用来检验作业是否已经失败了连续运行的给定次数。(该次数随每次失败而递减,并复位到每次成功运行的初始值;如果该次数为零则不能再调度该作业。)·Access Mode(接入模式)-如果锁定出现,则用户不能重新运行该作业,直至该作业被解锁。一个作业由运行该作业的指向产品锁定和解锁。如果一个作业未被锁定,该字段空白。
其它属性页通过点击相应的标志(tab)来显示。命令属性页(参见图38)包含以下字段·Command Line(命令行)-要执行的命令行。
·E-Mail Completion Notification to(电子邮件完成通知给)-用来发送作业完成或失败通知的电子邮件地址。
·Completion Script(完成脚本)-作业完成脚本。
·Failure Script(失败脚本)-作业失败脚本。
·Product Code(产品码)-创建作业的proVision产品的代码。
数据库属性页(参见图39)包含以下字段·Database Connect String-可选的数据库连接字符串或使用的名称·Database Instance-完成或失败的作业运行的事例的名称。
·Obiect Name-其作业完成或失败的对象的名称。
·User ID-数据库用户ID。
·User Password-加密的数据库用户口令。
注属性页上的信息由运行该作业的指向产品设置。
作业调度属性页(参见图40)显示,在运行作业的产品中作出的以下作业调度选择·作业的开始日期和时间。
·调度作业的时区。
注如果该工作站按钮的使用时区被选择,则它是作业被调度的工作站。
·作业重新运行的间隔。
·用来运行作业的所存日历的日历ID。该字段显示只有当所存的日历被使用时的日历ID。
参数标志(tab)属性页(参见图41)包含以下字段·Job parameters(作业参数)-列出作业参数名称和值。(指向产品确定该字段的内容。)普通标志属性页(参见图42)包含以下字段·Job ID-的用于该运行的唯一作业ID。
·Run Number-唯一的运行编号(指定给每个作业再现运行的编号)。
·Time Zone-作业运行的时区。
·Scheduled Start Time-当调度作业启动时的时间。
·Actual Start Time-当该作业的运行实际启动时的时间。
·Start Status-作业开始的状态(由POEMS Scheduling Service设置)。
·成功地启动。
·Expired(过期)-作业不能运行,因为在POEMS Scheduling Service(调度服务)停止时和作业不能再现的时候启动时间已过。
·Agant down-POEMS Scheduling Service代理失效(down)。
·Fork failed(派生失败)-由于缺少足够的系统资源,处理不能在代理机器上运行。
·End Time-运行完成的日期和时间。
·Operating System Status(操作系统状态)-由操作系统提供的处理状态。
·Run Status(运行状态)-选择以下无线按钮之一,指示当前的运行状态·Completed(完成)-运行结束。
·Not Started(不启动)-运行还未启动。
·Running-运行当前正在进行。
·Stopped-处理已经结束,不通知代理并且状态是未知的。
·Preempted(先占)-由于指向产品操作规则,不允许该运行。
·Failed(失败)-为详细说明的原因导致该运行失败。
·Completion Status Code(完成状态码)-由运行该作业的指向产品指定的运行的完成状态。(参见用于信息的特定产品文件)。
·Logfile(日志文件)该作业的日志的名称。
为了访问运行状态标识属性页,用户点击运行状态标志,以观看运行状态属性页上的数据(参见图43)。
统计字段显示关于作业的该运行的特定产品信息。如果数据由ProVision、指向或其它产品提供,则该字段仅显示数据。观看作业组数据为了访问作业组数据·点击作业资源对象中的一个组的文字,显示图44所示的普通标志属性页。
普通标志属性页(用于一个组)包含以下字段·Group ID-策略组ID编号。
·Description-可选的组说明。
·Strategy ID-按该组归属的公共服务策略确定的策略的策略ID编号。
·Product Code-用来创建在该文件夹中可以观看的作业的ProVision产品的代码(在一个实施例中,是三个字母的Platinum码)。
·Product Version-用来创建在该文件夹中可以观看的作业的ProVision产品的版本号。
·Jobs Per Run-由用于该策略组的产品交付的POEMS调度服务作业的编号。
·When Created-生成策略组的日期和时间。观看日志文件数据当作业被运行时,日志文件由各种ProVision产品、指向产品、应用程序产品等(包含到API的链接并涉及这里所讨论的编程的软件产品的一个类别)生成。如果创建,则用户可以观看由通过一个作业资源对象使用POEMS调度服务的产品所生成日志文件。用户可以启动一个日志文件观看器。
为了确定是否存在一个用于一个给定作业的日志文件,用户首先点击一个ALL Runs By Status(按状态所有文件夹)文件夹的文字或图标,以在导控器窗口右侧以列格式观看数据。然后,向左移动(屏幕),使用水平滚动条或右箭头(例如,参见图45)观看日志列(栏)。如果用于一个运行的日志文件是可用的,则在用于在日志文件列中运行的行中显示它的位置。
为了观看用于一个运行的一个日志文件,用户在一个作业资源对象中寻找该作业的运行。然后,右击该运行,以显示一个弹出菜单(例如,参见图46)。最后,通过从弹出菜单中选择视图日志文件,得到图47所示的显示。删除作业当用户不再需要一个作业历史时,可以使用作业管理窗口删除它。多个作业或单个作业都可以被删除。删除多个作业为了删除多个作业,按照含有作业的文件夹的等级访问作业管理窗口,以便在一个作业资源对象中删除作业。然后,右击该文件夹的图标或文字,以显示图48所示的弹出菜单。通过从弹出菜单中选择删除,显示删除作业窗口(参见图49)。该窗口显示了在交付作业/运行字段中选择的所有作业的Job ID和节点名称。
首先选择并加亮文件夹中的所有作业。如果用户点击一个作业,则它被撤销选择并且将不被删除。如果所有的作业被撤销选择,则交付按钮变得不起作用。
通过以下任一种方式取消任何作业选定·每次点击若干作业的一个(如图49所示);或·使用Select None(选择无)按钮取消对所有作业的选定,然后点击这些作业以作删除;或每次点击删除的若干作业的一个,以最初取消对它们的选定,然后使用Invert(反转)按钮反转你的选择。(这将再次选择你取消选择的作业和取消所有的其它选择。)注Select All(选择所有)按钮可以被用来重新选择所有作业。
点击Submit(交付)按钮,删除所选择的作业。该窗口扩展,以提供状态的动态显示和动作的结果(参见图50)。如果一个作业删除成功地完成,则在成功字段中显示用于每个作业的作业ID和节点名称。如果一个作业删除失败,则在失败字段中显示用于该作业的作业ID、节点名称和一个误差代码。
交付、成功、未决和失败删除的运行总数在小的交付、成功、未决和失败字段中显示。或者,用户在删除作业的同时可以点击关闭按钮,而不等待扩展窗口中显示的所有结果;或者进行等待,直至所有的结果(成功或失败)在扩展窗口的成功或失败字段中显示。然后将关闭按钮改变到你选择关闭作业管理窗口的完成(Done)按钮。删除单个作业为了删除单个作业,按照作业资源对象中的删除作业的等级访问作业管理窗口。然后用户定位删除的作业并右击该作业的图标或文本,以显示一个弹出菜单(参见图51)并选择删除。
然后,显示删除作业窗口(参见图52)。该窗口示出所选择的作业的作业ID和节点名称。如果用户点击该作业,则取消对该作业的选择并使交付按钮变得无效。通过点击交付按钮,删除该作业,并且使该窗口扩展以提供一个动作的状态和结果的动态显示(参见图53)。
如果作业的删除成功完成,则该作业的作业ID和节点名称显示在成功字段中。如果作业的删除失败,则该作业的作业ID、节点名称和错误码显示在失败字段中。
交付、成功、未决和失败删除的运行总数在小的交付、成功、未决和失败字段中显示。再运行作业作业管理窗口可以被利用来使用相同参数再运行已完成的作业。可以再运行多个作业或单个作业。再运行一个作业时,则指定一个新运行编号。在一个实施例中,通过这些过程,防止锁定的作业再运行。再运行多个作业为了再运行多个作业,按照作业资源对象中包含再运行作业的文件夹的等级来访问作业管理窗口。定位包含再运行作业的文件夹,并右击该文件夹的图标和文字,显示一个弹出菜单(参见图54)。通过从弹出菜单选择再运行,显示再运行作业窗口(参见图55)。该窗口显示在交付作业/运行字段中所选择的所有作业的作业ID和节点名称,并提供运行它们的选项。
与上述删除作业过程相同,一个文件夹中的所有作业被最初选择。如果用户点击一个作业,则取消对该作业的选定,并且将不进行再运行。如果用户取消对所有作业的选定,交付按钮则变得无效。
用户可以通过以下方式在起始日期和时间说明区域中利用以下选项之一·点击立即运行按钮,立即运行该作业;或·点击稍后调度按钮,取消该作业的先前安排的下一次启动时间,并在保持作业文件夹中保持该作业。
注作业可以通过使用作业管理窗口或者立即再运行或者按一个指定时间再运行(参见上述的再运行多个作业)。
或·点击按钮上的运行,键入作业起始日期字段中的日期,或点击向下箭头从一个日历中选择日期,然后键入作业起始时间字段中的时间,或使用上/下箭头移动到预期时间。
注在一个实施例中,用户必须使用最初用来运行作业的时区在这些字段中设置日期和时间。在作业最初运行的时区中可以不显示作业资源对象中的作业时间。
然后,按照指定的日期和时间再运行所选择的作业。通过点击交付按钮再运行所选择的作业,使该窗口扩展以提供一个动作的状态和结果的动态显示(参见图56〕。如果一个作业被成功交付,则在成功字段中显示该作业的作业ID和节点名称。如果一个作业交付失败,则在失败字段中显示该作业的作业ID、节点名称和一个错误代码。
交付、成功、未决和失败再运行的运行总和显示在交付、成功、未决和失败字段中。再运行单个作业为了再运行单个作业,按再运行作业的等级访问作业管理窗口。在作业文件夹中定位再运行的作业之后,右击该作业的图标或文字,以显示一个菜单(参见图57),并选择再运行,显示再运行作业窗口(参见图58)。该窗口显示所选择的作业的作业ID和节点名称,并提供再运行它的选项。点击该作业,取消对它的选定,于是交付按钮变得无效。与上述相同,起始日期和时间选项同样也无效。点击交付按钮,再运行该作业。
至于其它再运行选项,该窗口扩展提供一个该交付的状态或结果的动态显示。取消运行用户可以使用作业管理员取消一个再运行作业。用户可以取消一个作业的多个运行或单个运行。然而,在一个作业的关键阶段(critical stage)期间,某些产品可以暂时禁止这种能力,即不允许恢复,使恢复困难,或需要紧随恢复的产品特定过程(处理)。取消多个运行为了取消多个运行,按作业资源对象中包含取消运行的文件夹的等级访问作业管理员。在定位取消运行的一个正在运行的运行文件夹之后,一个该文件夹的图标或文字上的右击显示一个弹出菜单(参见图59)。
通过从弹出菜单中选择取消,显示一个取消运行窗口(参见图60)。该窗口显示在交付作业/运行字段中选择的所有运行作业ID、运行编号和节点名称(例如,参见图57)。
与删除作业过程相似,最初选择一个文件夹中的所有运行。通过点击一个运行,取消对该运行的选定,并且将不取消该运行。如果所有运行被取消选定,交付按钮变得不起作用。交付按钮取消所选的运行,并且该窗口扩展提供一个动作的状态和结果的动态显示。监视作业的进展(progress)进程监视器被提供来观看产品使用POEMS调度服务运行的任何作业的一个当前阶段和整个进程。
各产品公布关于它们的作业的不同阶段的事件。进程监视器预订这些事件,并使用得到的数据向用户提供作业进程的信息。
特定进程标识符和可以被监视的作业阶段依赖于使用POEMS调度服务的产品的各自设计。访问进展监视器可以按作业存储库资源对象中的各运行等级访问进程监视器。
为了监视一个作业的进展,用户首先寻找该作业的运行,右击该运行以显示一个弹出菜单(参见图61)。通过从弹出菜单中选择进程监视器,显示该监视器(参见图62)。进程监视器被配置来显示以下信息·作业当前阶段的名称。
·作业ID和运行编号。
·作业当前阶段的名称和/或编号。
·当前阶段编号和当前阶段中剩余的时间。
·作业当前阶段的进程的图形显示和当前阶段的完成百分比。
·作业的整个进程的图形显示(包括所有阶段)和整个作业完成的百分比。
在一个实施例中,主要的文字字段的内容根据调度作业的产品的设计而改变。
作业当前阶段的名称可以从进展监视器窗口的标题条中观看。作业的当前阶段的进展通过在进程监视器窗口观看主要文字字段或者在进程监视器窗口中观看当前阶段进程来确定。该字段还提供作业的当前阶段的完成百分比。
整个作业的进程通过使用进程监视器窗口中的整个进展字段来观看。此外,黑条被用来图形显示整个作业的进展,和整个作业的完成百分比。故障排除要点本发明包括多种故障排除技术。多种可能性可以使一个故障删除和再运行作业,或取消一个作业的特定运行。
如果一个交付失败·则可能不能与本地和中央存储库进行通信。检验你可以与这两个存储库通信后,再次交付该请求。
·用户可以在作业执行的关键阶段尝试取消一个运行。正在使用的特定ProVision产品可以防止用户利用取消特征,以避免一个潜在的冲突。
·POEMS调度服务代理(ptlesag.exe)不能在定位作业的节点/机器上运行。验证一个调度服务代理正在该机器上运行之后,再次交付该请求。
为了验证调度服务代理正在一个节点上运行,用户从显示导控器服务管理员监视器窗口的菜单栏中选择ToolsMonitorService Manager(工具监视器服务管理器)(参见图63)。用户可以点击加号(+)或双击服务管理器的文字,以显示不同节点上服务管理器的列表。点击用于一个节点的服务管理员的文字,调出具有驻留在该节点上的用于程序的服务管理员监视器的右侧(参见图64)。
本发明已经结合由数据库产品的Platinum序列利用的POMES调度服务进行了说明。然而,本发明的教导可以应用于任何个别或序列计算机或其它产品,以提供相似的服务。因此,本发明不限于特定产品线或产品的类型(例如,指向产品,ProVision产品,或数据库),并且一般来说适用于计算机处理或应用程序。
使用一个传统的通用或一个专用数字计算机或根据本发明公开的教导编程的微处理器可以方便地实施本发明,对计算机领域的熟练人员来说这将是显而易见的。
熟练的程序员根据本发明公开的机器可以容易地准备合适的软件编码,对软件领域计算机领域的熟练人员来说这将是显而易见的对。通过特种集成电路应用的准备或互联传统的组成电路的合适网络,也可以实施本发明,对本领域的熟练人员来说这将是显而易见的。
本发明包括一个计算机程序产品,它是一个存储媒体(介质),具存储在其上/其中的用来安排一个计算机执行本发明的任何处理的指令。该存储媒体包括,但不限于,任何类型的盘,包括软盘、光盘、DVD(数字多功能盘)、CD-ROM(只读光盘)、微驱动和磁光盘,ROM(只读存储器)、RAM(随机存取存储器)、EPROM(可擦可编程ROM)、EEPROM(电可擦可编程ROM)、DRAM(动态RAM)、VRAM(可变RAM)、快闪存储装置、磁或光卡、纳米系统(nanosystems)(包括分子存储器IC),或任何类型的存储指令和/数据的介质或装置。
本发明包括在计算机可读介质的任何一个上存储的软件,该软件控制通用/专用计算机或微处理器的硬件以及使计算机或微控制器能够连接人类用户或利用本发明的结果的其它机械。这种软件包括可以包括,但不限于设备驱动、操作系统和用户应用程序。此外,这种计算机可读介质还包括上述的执行本发明的软件。
通用/专用计算机或微处理器的编程(软件)所包含的是实施本发明教导的软件模块,包括但不限于应用编程接口,用于图形用户接口、作业调度、作业数据管理、作业管理、命令行接口、编历功能和接入一个网络的通信。软件模块还包括在计算机平台的各节点上操作的作业调度代理,和与本发明的处理的结果相符的显示、存储或通信的模块。
每个上述的API被编译并且链接到特定的指向产品、proVision产品、或利用这些API执行本发明的其它应用。此外,维持配置字段用于本发明的设置和操作,以及通过本发明维持存储库。
很明显,能够根据上述教导对本发明作出多种修改和改进。因此,应当明白,在附带的权利要求范围内,可以不按照这里的具体说明来实施本发明。
权利要求
1.一种作业调度装置,用于在至少一个计算平台的至少一个节点上调度作业运行,该装置包括一个安装在每个节点上的企业调度代理,被配置来启动交付给该代理的作业的执行;一个被配置来接受和使参数有效的显示层,所述这些参数标识在至少一个所述节点上要提交作执行的至少一个作业;一个作业调度器,被配置来根据所述的参数分配至少一个作业,并且把所分配的作业交付给至少一个企业调度代理。
2.根据权利要求1所述的作业调度装置,还包括一个作业数据管理装置,被配置为维护交付给每个企业调度代理的作业的作业数据和作业历史。
3.根据权利要求2所述的作业调度装置,其中所述的作业历史包括从每个企业调度代理接收的关于所交付的作业状态的信息。
4.根据权利要求2所述的作业调度装置,其中所述的作业数据管理装置被所述的作业调度器利用来设置要提交给所述企业调度代理的作业的参数。
5.根据权利要求1所述的作业调度装置,还包括一个作业历史存储库,保存交付给每个企业调度代理的作业和作业历史;其中每个企业调度代理包括,一个代理通信器,被配置来发送和接收所述作业调度器与企业调度代理之间的消息,一个作业管理器,被配置来设置、启动、运行和管理交付给企业调度代理的作业;一个数据管理器,被配置来更新和删除来自所述作业历史存储库的数据,和一个低级API,被配置来处理所述企业调度代理(LES代理)的内部功能、文件管理和消息处理功能。
6.根据权利要求5所述的作业调度装置,还包括一个企业通信器,被配置来构成并在所述的作业调度器与每个企业调度代理之间通信传递消息;和一个作业数据管理装置,被配置来维护交付给每个企业调度代理的作业的作业历史;其中所述的数据管理员通过从企业调度器向所述的作业数据管理装置发送的企业通信器消息来更新所述的作业历史。
7.根据权利要求1所述的作业调度装置,还包括一个命令行装置,被配置来接受交付给企业调度代理的有关作业管理的命令;和一个作业管理装置,被配置来将所述的命令行传递到至少一个企业调度代理进行执行。
8.根据权利要求7所述的作业调度装置,其中所述的命令行装置接受的所述命令包括删除一个作业及该作业所有的运行,取消一个作业的运行,列出所有作业,由产品码、状态和节点的至少一个列出所有作业、以及立即再运行一个作业中的至少一个。
9.根据权利要求8所述的作业调度装置,其中所述的命令行装置接受的所述命令包括上下文变量;和所述的企业调度代理根据一个当前作业和作业参数变换所述的上下文变量,并执行所述命令。
10.根据权利要求1所述的作业调度代理,还包括一个指向产品装置,被配置来在一个所述企业调度代理与把作业交付给所述作业调度装置的至少一个产品之间提供通信链路;其中所述的指向产品装置在每个企业调度代理与所述的至少一个产品之间通信传递作业状态、作业日志、设置、取消、作业参数功能和请求。
11.根据权利要求10所述的作业调度装置,还包括一个作业管理装置,被配置来接受命令行输入和将所述的命令行传递给至少一个企业调度代理;一个作业数据管理装置,被配置来维护交付给每个企业调度代理的作业的作业历史;和一个企业通信器,被配置来在所述的作业调度器、指向产品装置、作业管理装置和作业数据管理装置的至少一个与每个所述的企业调度代理之间发送消息。
12.根据权利要求1所述的作业调度装置,还包括一个企业通信器,被配置来在所述的作业调度器与每个所述的企业调度代理之间发送消息。
13.根据权利要求12所述的作业调度装置,其中按特定节点地址登记每个企业调度代理,所述的节点地址用一个唯一的数据组标识每个企业调度代理;和所述的企业通信器用至少一个对应于一数据组的目的地对每个消息进行编码,以把每个消息传送给至少一个企业调度代理。
14.根据权利要求1所述的作业调度装置,还包括一个安装在每个所述的节点上的本地作业存储库;其中每个本地作业存储库维护每个作业的作业和作业历史信息,所述的每个作业被交付给安装本地作业存储库的节点;每个本地作业存储库由被安装在安装本地作业存储库的节点上的企业调度代理来更新;和所述的作业信息包括需要执行每个作业的作业参数。
15.根据权利要求14所述的作业调度装置,还包括一个作业数据管理装置,被配置来维护交付给每个企业调度代理的作业的作业历史;和一个同步装置,被配置来用所述的作业数据管理装置维护的作业历史,同步每个本地作业存储库。
16.根据权利要求1所述的作业调度装置,还包括一个进展监视器,被配置来监视和显示至少一个所述作业的执行;其中所述的进展监视器提供视觉显示,一个所述作业的标识和一个所述作业的当前阶段,所述作业完成百分比,和所述当前阶段的完成百分比。
17.根据权利要求1所述的作业调度装置,还包括一个自动登录装置,被配置来接受来自一个交付作业的用户的登录参数;其中所述的登录参数被一个企业调度代理利用来启动和执行被交付的作业。
18.根据权利要求1所述的作业调度装置,还包括一个通知脚本处理装置,被配置来执行一个具有指令的通知编写,用于通知用户一个被交付作业的状态;其中所述的脚本处理装置包括创建、编辑和选择一个用于特定作业的通知脚本的装置。
19.根据权利要求1所述的作业调度装置,其中所述的显示层包括一个GUI接口,接受用于调度和指定一个待交付的作业的用户输入;其中所述的GUI接口包括用于一个调度日历的选择和创建、起始日期和时间的选择、再现作业运行间隔的选择和作业立即运行的选择的装置。
20.根据权利要求1所述的作业调度装置,还包括一个资源管理装置,被配置来使用户能够定位和观看作业和作业运行。
21.根据权利要求20所述的作业调度装置,其中所述的资源管理装置包括一个RM GUI,用于定义一个代表一个作业的对象,具有,一个通用属性页,具有用于标识该作业的标签和该作业的说明的各输入字段,一个说明属性页,具有一个标识用于代表该作业的图标的选择字段,和一个存储库页,具有标识作业时间的显示的时区的选择字段。
22.根据权利要求21所述的作业调度装置,其中由所述的资源管理装置定义的对象包括,文件夹的分层,至少包括以下文件夹之一所有作业的文件夹、按组作业的文件夹、按节点作业的文件夹、按产品作业的文件夹、按类型作业的文件夹和按用户作业的文件夹。
23.根据权利要求22所述的作业调度装置,其中所述的所有作业文件夹包括以下文件夹一个所有作业任何状态文件夹,列出了与状态无关但与每个作业的作业历史有关的作业,一个按状态所有运行的文件夹,列出了根据状态的作业,这些状态包括完成的运行、失败的运行,未开始的运行、先占的运行、正在运行的运行以及停止的运行,一个保持作业文件夹,列出了保持并且稍后可以安排的作业,和一个被调度的作业文件夹,列出了被调度运行的作业。
24.根据权利要求1所述的作业调度装置,其中所述的显示层包括,一个策略调度窗口,被配置来允许用户观看、创建、修改和删除用于一个策略的时间安排。
25.一种经多个联网计算平台调度作业的方法,包括以下步骤根据用于至少一个待调度的作业的作业参数,确定至少一个作业;向所述计算机平台的的一个选择的节点上维持的至少一个调度代理发送所述的至少一个作业;和在所述调度代理的管理下在一个选择的节点上执行每个作业。
26.根据权利要求25所述的方法,还包括步骤监视执行作业的进展;和在一个进展监视器上显示所述的进展。
27.根据权利要求25所述的方法,还包括在一个作业历史存储库中记录每个作业和每个作业历史的步骤。
28.根据权利要求27所述的方法,还包括以下步骤利用一个作业数据管理装置,用于,提取从所述作业的一个所选择的节点的一个调度代理发送的每个作业的状态消息,和根据所述状态消息更新所述作业历史存储库。
29.根据权利要求28所述的方法,还包括以下步骤在每个所述节点上分别维护一个本地作业存储库,其每一个包含用于交付给各节点的每个作业的作业和作业历史信息。
30.根据权利要求29所述的方法,还包括以下步骤将所述的作业历史存储库与每个本地作业存储库同步。
31.根据权利要求25所述的方法,其中所述的确定步骤包括以下步骤从一个产品和一个收集所述作业参数的用户接口的一个中提取所述的作业参数;使所述的作业参数有效;和根据所述的作业参数分配一个作业。
32.根据权利要求25所述的方法,其中所述的发送步骤包括以下步骤按一个PEC通信格式打包所述的作业参数;和将打包的作业参数从确定所述作业参数的计算平台传送给在所选用的节点上维护的所述调度代理。
33.根据权利要求25所述的方法,其中所述的执行步骤包括以下步骤设置所选择的节点以运行一个由所述的作业参数标识的应用程序;在所选择的节点上执行所述的应用程序;和监视正在执行的所述应用程序的进展。
34.根据权利要求25所述的方法,还包括以下步骤接受交付给所述企业调度代理的作业管理的一个命令行;和将所述的命令行传递给至少一个所述的企业调度代理进行执行。
35.根据权利要求34所述的方法,还包括以下步骤用基于所述上下文变量和待管理的作业的数据替换所述命令行中的上下文变量;和执行该命令行。
36.根据权利要求25所述的方法,还包括以下步骤通信传递至少包括以下之一的数据作业状态、作业日志文件、设置、取消、作业参数功能以及对产品与每个企业调度代理之间所述数据的请求。
37.根据权利要求25所述的方法,还包括以下步骤按节点地址登记每个企业调度代理,所述节点地址用一个独特的数据组标识所登记的企业调度代理;通过消息与每个企业调度代理通信传送作业与作业管理命令和请求;和用至少一个目的地对发送给接收方企业调度代理的每个消息编码,该目的地对应一个将所述消息传送给接收方企业调度代理的数据组。
38.根据权利要求25所述的方法,还包括以下步骤从调度一个自动登录作业的一个用户中提取自动登录参数;和利用所述自动登录参数启动所述作业的执行。
39.根据权利要求38所述的方法,还包括以下步骤提取用于正被交付的一个作业的通知脚本;和并在一个所请求的状态点执行至少一个所述作业的完成的通知脚本。
40.根据权利要求25所述的方法,还包括以下步骤接收一个调度日历,它标识用于至少一个所述作业的执行时间和间隔之一;以及按该日历中标识的时间和间隔,在所选用节点上执行所述的作业。
41.根据权利要求所述的方法,还包括以下步骤提供至少所述作业的说明,包括一个书写说明、一个标签、以及选择代表所述作业的一个图标;和标识用于作业时间显示的时区。
42.根据权利要求25所述的方法,包括以下步骤在包含文件夹的一个对象中放入关于作业时间和状态的信息,其每个文件夹标识所含有的作业的分类,这些文件夹包括一个所有作业的文件夹、一个按组作业的文件夹、一个按节点作业的文件夹、一个按产品作业的文件夹、一个按类型作业文件夹以及一个按用户作业的文件夹。
43.根据权利要求42所述的方法,还包括以下步骤组织所述的所有作业文件夹以维护附加文件夹,包括下列至少之一一个所有作业状态文件夹,列出了与状态无关而与每个作业的作业历史有关的作业,一个依据状态的所有运行的文件夹,列出了根据状态的作业,这些状态包括完成的运行、失败的运行,未开始的运行、先占的运行、正在运行的运行以及停止的运行,一个保持作业文件夹,列出了保持并且稍后可以调度的作业,和一个已调度作业文件夹,列出了被调度运行的作业。
44.根据权利要求25所述的方法,其中还包括提供一个策略调度窗口的步骤,该调度窗口允许用户观看、创建、修改和删除用于一个策略的时间安排。
45.一种计算机可读介质,具有在其上存储的指令,当装载到一个计算机中时,使该计算机执行以下步骤根据用于至少一个待调度的作业的作业参数,确定至少一个作业;向所述计算机平台的一个所选择的节点上维护的至少一个调度代理发送所述的至少一个作业;和在所述调度代理的管理下在一个选择的节点上执行每个作业。
46.一种作业调度装置,用于在至少一个计算平台的至少一个节点上调度作业运行,包括一个安装在每个节点上的企业调度装置,被配置来启动交付给企业调度装置的作业的执行;一个被配置来接受和使参数有效的显示装置,该参数标识在至少一个所述的节点上执行的待交付的至少一个作业;一个作业调度员装置,被配置来根据所述的参数分配至少一个作业,并且把所分配的作业交付给至少一个企业调度装置。
全文摘要
一种提供了应用编程接口(API)的一致集合的作业调度装置,所述的应用编程接口被编译和链接成单个或一组程序以便在单个计算机或经多个计算平台提供调度服务,该作业调度装置包括:一个检索和使作业参数有效的GUI API,一个基于作业参数分配作业的作业调度API,和一个在计算平台的一个或多个节点上支持的企业调度代理。企业通信代理将包含作业的消息从利用作业调度装置执行程序的一个计算机发送到将要执行该作业的一个选定节点上的企业调度代理。然后企业调度代理在该选定的节点上检索作业参数和启动该作业。企业调度代理维护一个本地存储库,并向作业数据管理API发送消息以维护一个中央作业存储库,其中所述的本地作业存储库含有在其相应节点上运行的每个作业的作业信息,而中央作业存储库含有在所有节点上执行的作业的信息。
文档编号G06F15/00GK1350676SQ99816088
公开日2002年5月22日 申请日期1999年12月21日 优先权日1998年12月22日
发明者理查德·E·黑德利, 理查德·E·德维拉斯, 希瓦·米尔扎德 申请人:电脑联合想象公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1