在次最佳网格环境中维持应用工作的制作方法

文档序号:6505009阅读:171来源:国知局

专利名称::在次最佳网格环境中维持应用工作的制作方法
技术领域
:本发明一般涉及网格环境,特别是涉及在网格环境中管理应用工作。更具体地说,本发明涉及通过根据应用的简表重新配置应用,在次最佳网格环境中维持应用工作,所述应用的简表表示了网格环境中的工作需求。
背景技术
:从在两个计算机系统之间进行第一次连接开始到现在,通过连接在两个计算机系统之间传送数据、资源和其他信息的新的方法持续发展。在典型的网络体系结构中,当两个计算机系统正在通过连接交换数据时,计算机系统之一被认为是发送请求的客户端,而另一个被认为是处理该请求并返回结果的服务器。在增加处理请求的速度的努力中,服务器系统在尺寸上和速度上持续扩展。此外,在对每秒到达多个请求时的峰值周期的处理的努力中,经常将服务器系统连接在一起作为一个组,并在成组的服务器之间分配请求。已经开发了多种对服务器进行分组的方法,诸如群集,多系统共享数据(sysplex)环境和企业系统。对于服务器群集,一个服务器通常被指定来管理输入请求和输出响应的分配。其他服务器通常并行工作来处理来自客户端的经分配的请求。因此,在群集中的多个服务器中的一个服务器可以服务于客户请求而客户不会检测到服务器群集正在处理请求。通常,服务器或者服务器组工作在特定网络平台上,诸如Unix或者Unix的某种变体,并为运行的应用提供托管环境。每个网络平台可以提供从数据库集成、群集服务、到工作量管理的安全和问题确定的范围内的功能(Unix是OpenGroup的商标)。每个网络平台通常提供不同应用的实现方式、语义行为和应用编程接口(API)。然而,仅仅将服务器组在一起以扩大处理能力是一种用于提高网络中的响应时间的效率的受限制的方法。因此,在公司网络中,日益增加地,不仅仅是对服务器分组,而是将服务器和服务器系统的组作为分布式资源组织起来。存在更多的努力来在公司网络中和公司网络的外部的服务器之间进行协作、共享数据、共享周期以及改善其他交互模式。此外,存在更多的努力来将非必要的元素从一个公司网络外包(outsource)给服务提供者网络。此外,存在一种趋势来协调在不受同一管理系统支配但仍然解决安全、政策、支付和成员资格的问题的资源之间共享的资源。例如,在个人桌面上的资源通常不受与公司服务器群集的资源相同的管理系统的支配。甚至公司网络中的不同的管理组可以实现截然不同的管理系统。将具有不同安全协议(每个安全协议由不同的管理系统控制)的、位于不同区域的、工作在不同网络平台上的服务器和其他计算系统可用的资源分散的问题导致了网格技术的发展,该技术使用用于运行网格环境的开放标准。网格环境支持在动态的、分布式的虚拟组织中的多种资源的共享和协调使用。当从由具有不同策略和管理系统的不同组织进行操作的、地理上分布式的系统中选择资源被组织来处理作业请求时,在网格环境中创建虚拟组织。用于将网格环境与仅仅是另外一种管理系统的环境进行区分的网格环境的重要属性是跨多种不同的资源集合所维持的服务质量。优选地,网格环境比仅仅提供资源做的更多;网格环境提供带有特定级别服务的资源,包括响应时间、吞吐量、可用性、安全性和多个资源类型的协作分配,以满足复杂的用户要求。然而,在提供服务质量的努力中,网格环境中的问题在于,当网络系统的现实在于最优性能不是总可获得时,如何满足性能需求。首先,网络系统的现实在于,应用典型地被写入来在具有特定工作需求的特定平台上执行。特别是,通常根据在特定平台上的最优条件下运行的度量来规定应用的工作需求。因此,当运行在非本地平台或者资源上时,应用行为有着很大的不同。因此,当在网格环境中将多个异构的系统链接在一起时,存在当应用在非本地平台上执行时如何维持服务质量的问题。特别是,当前没有装置来表示在网格环境中执行的每个应用的工作需求,在所述网格环境中,用来执行作业的可用资源可以在某个时间间隔内迅速地改变。此外,网络系统的现实在于应用通常是编写的,其中应用的模块被编写来在具有相对静态的资源池的特定平台上执行。因此,当为相对静态的资源池编写的应用遇到次最佳工作条件时,整个应用关闭。此外,在网格环境中,应用仅仅是网格体系结构的一个级别的功能。除了应用级别之外,多个级别和类型的服务可以由应用来实现。当这些服务层运行在网格环境中的多个异构平台上时,存在相同的维持应用的服务质量的问题。因此,鉴于上述观点,需要一种方法、系统和程序来在网格环境中管理软件层功能,并且特别是,来改变应用或者服务行为以维持服务质量。因此,需要一种方法、系统和程序来表示在网格环境中使用的应用或者服务的工作需求,从而当在网格环境中检测到次最佳性能时,可以基于应用的工作需求来重新配置应用或者服务的工作行为。
发明内容在一实施例中,将应用提交给网格环境中的多个资源节点中的至少一个资源节点。然后,服务可用性管理代理监视该至少一个资源节点的性能状态。服务可用性管理代理将性能状态与当应用正工作在该至少一个资源节点上时所规定的工作需求进行比较。特别是,为放置该至少一个资源节点的平台而规定工作需求。此外,应用的简表跨多个类型的平台为应用规定工作需求。如果性能状态不满足工作需求,则服务可用性管理代理调节该至少一个资源节点的应用和网格环境的其他资源节点的使用,从而在网格环境中出现次最佳状态时使应用持续工作。服务可用性管理代理可以调节应用使用的资源类型和数量。首先,服务可用性管理代理可以对于可替换资源节点所在的平台类型,定位满足为应用规定的工作需求的该资源节点,并重新将应用定位到可替换资源节点上。第二,服务可用性管理代理可以从应用简表中标识应用的第一模块并发送用于该至少一个资源节点的指令以关闭该第一模块。特别是,模块是通过应用协调的独立的处理单元。在关闭模块后,服务可用性管理代理确定应用是否仍可运行,并且如果应用仍可运行,则服务可用性管理代理监视资源节点以确定是否需要关闭附加模块。通常,应用简表的目的是表示跨多个异构资源平台的应用的工作需求,和表示应用的模块关闭(breakdown)的优先级,从而在检测到应用的次最佳条件时可以调节应用对资源的使用。在一实施例中,应用的简表为XML方案,它指定应用的属性,以及在不同平台上工作时和在关闭应用模块之时应用的性能范围。在可替换实施例中,应用的简表可以通过其他协议的模式和数据文件来实现。在附带的权利要求中阐明了被认为是本发明新颖特性的特征。然而,通过参考以下结合附图的阐述性实施例的详细描述,将最好地理解本发明本身以及其优选使用模式、另外的目标和优点,在附图中图1描述了计算机系统的一实施例,该计算机系统可以在网格环境中实现,并且在该计算机系统中可以实现本发明;图2是例示网格环境中的通常类型的组件的一实施例的框图;图3是描述可以在网格环境中实现的体系结构的一个示例的框图;图4是根据本发明的方法、系统和程序从网格管理系统的观点描述了在网格环境中工作的系统的框图;图5是描述了可以实现本发明的网格环境的逻辑基础设施的一个实施例的阐述性表示;图6是描述了根据本发明的方法、系统和程序的SAMA控制器的一实施例的框图;图7是例示根据本发明的方法、系统和程序,通过重新路由应用来调节资源使用的一种方法的框图;图8描述了例示根据本发明的方法、系统和程序,通过重新配置应用的工作行为来调节资源使用的另一种方法的框图;图9A-9B描述了用于通过工作在次最佳条件下的网格环境中的应用来调节网格资源的使用的过程和程序的高级别逻辑流程图;和图10描述了用于在网格环境中处理状态请求的过程和程序的高级别逻辑流程图。具体实施例方式现在参考附图并具体参考图1,描述了计算机系统的一实施例,该计算机系统可以在网格环境中实现,并且在该计算机系统中可以实现本发明。如将要进一步描述的,网格环境包括被管理来提供资源的多个计算机系统。此外,如将要进一步描述的,本发明可以在各种计算机系统中执行,包括在网格环境中管理的若干不同工作系统下工作的各种计算系统,移动系统和电子设备。在一实施例中,计算机系统100包括总线122或者用于在计算机系统100中传送信息的其他设备和至少一个处理设备(诸如处理器112),其耦合到总线122上用来处理信息。总线122优选地包括低延迟路径和较高延迟路径,它们通过桥和适配器进行连接,并在计算机系统100中由多个总线控制器进行控制。当作为服务器系统实现时,计算机系统100典型地包括被设计来提高网络服务能力的多个处理器。处理器112可以是通用处理器,诸如IBM的PowerPC处理器,在正常工作期间,该处理器在操作系统和可以从诸如随机存取存储器(RAM)114的动态存储设备和诸如只读存储器(ROM)116的静态存储设备访问的应用软件的控制下处理数据(IBM和PowerPC是国际商业机器公司的商标)。操作系统可以为用户提供图形用户界面(GUI)。在优选实施例中,应用软件包含机器可执行指令,当在处理器112上执行时,该机器可执行指令执行图9A-9B、10的流程图所述的操作和这里所述的其他操作。可替换地,本发明的步骤可以通过包含用于执行这些步骤的硬件化的逻辑的特定硬件组件来执行,或者通过已编程的计算机组件和定制的硬件组件的任意组合来执行。本发明可以作为在机器可读媒体上包括的计算机程序产品而被提供,机器可读媒体上存储了用于对计算机系统100进行编程以执行根据本发明的过程的机器可执行指令。这里所使用的术语“机器可读媒体”包括参与向处理器112或计算机系统100的其他组件提供用于执行的指令的任意媒体。这种媒体可以采用多种形式,包括但是不局限于非易失性媒体、易失性媒体和传输媒体。非易失性媒体的常见形式例如包括软盘、软磁盘、硬盘、磁带或者任何其他磁媒体、光盘ROM(CD-ROM)或者任何其他光媒体,打孔卡或者任何其他带有孔图案的物理媒体、可编程ROM(PROM)、可擦写PROM(EPROM)、电EPROM(EEPROM)、闪速存储器、任何其他存储芯片或者盒式磁带(cartridge)、或者计算机系统100可以读取并适合存储指令的任何其他媒体。在本发明中,非易失性媒体的示例是海量存储设备118,如图所示,其是计算机系统100的内部组件,但是将会理解,它还可以由外部设备提供。易失性媒体包括动态存储器,诸如RAM114。传输媒体包括同轴电缆、铜线或者光纤,包括构成总线122的线。传输媒体还可以采用声波或者光波的形式,诸如在射频或者红外数据传输期间生成的那些声波或者光波。此外,本发明可以作为计算机程序产品下载,其中计算机指令可以从诸如虚拟资源160的远程虚拟资源通过到与总线122耦合的通信接口132的网络链路134(例如调制解调器或者网络连接)以载波或者其他传播媒体中包含的数据信号的方式传输到请求计算机系统100。虚拟资源160可以包括可从单个系统或者多个系统进行访问的资源的虚拟表示,其中多个系统中的每一个都可以被看作工作在独立平台上的离散资源集合,但是由网格管理器作为虚拟资源进行协调。通信接口132提供了耦合到网络链路134的双向数据通信,网络链路134可以连接在例如局域网(LAN)、广域网(WAN)或者因特网服务提供商(ISP),它们提供了对网络102的访问。特别是,网络链路134可以提供对一个或者多个网络(诸如网络102)的有线和/或者无线网络通信,通过这些网络,对诸如虚拟资源160的虚拟资源的使用在由网格管理系统150提供时是可访问的。网格管理系统150可以是包括点对点网络的多种类型网络的一部分,或者可以是单个计算机的一部分,诸如计算机系统100。作为一个示例,网络102可以指世界范围的网络和网关集合,它们使用特定协议(诸如传输控制协议(TCP)和网际协议(IP))来相互进行通信。网络102使用携带数字数据流的电、电磁或者光信号。经过各种网络的信号和在网络链路134上和经过通信接口132的信号是传播信息的载波的示例性形式,其携带数字数据进入或者离开计算机系统100。将会理解,可以实现各种可替换类型的网络、网络的组合和网络的基础设施。当作为服务器系统实现时,计算机系统100典型地包括可以通过连接到输入/输出控制器的外围组件互连(PCI)总线桥访问的多个通信接口。按照这种方式,计算机系统100允许到多个网络计算机的连接。此外,尽管没有描述,但可以将多个外围组件和内部/外部设备添加到计算机系统100,它们连接于与总线122的多个级别之一相耦合的多个控制器、适配器和扩展槽。例如,显示设备、音频设备、键盘或者光标控制设备都可以作为外围组件添加。本领域普通技术人员将会明白,图1中描述的硬件可以变化。此外,本领域普通技术人员将会明白,所描述的示例并不意味着隐含对本发明的体系结构上的限定。现在参考图2,框图例示了在网格环境中的通常类型组件的一实施例。在本实施例中,网格环境240的组件包括与网格管理系统150交互的客户端系统200,网格管理系统150与服务器群集222、服务器224、工作站和台式计算机226、数据存储系统228和网络230进行交互。出于例示的目的,没有描述网格环境240中连接组件的网络的网络位置和类型。然而,将要理解的是,网格环境240中的组件可以驻留于可以通过相互重叠的多种类型的网络来实现的网络基础设施体系结构之上。网络基础设施的范围可以是从多个大型企业系统到点对点系统到单计算机系统。此外,将要理解的是,网格环境240中的组件仅仅是网格环境中若干类型组件的代表。网格环境可以仅被包含在单个计算机系统中,或者被包含在多个企业系统中。诸如网格环境240的网格环境的中心目标是对被视为虚拟资源160的来自多个离散系统的资源进行组织和递送。客户端系统200、服务器群集222、服务器224、工作站和台式计算机226、数据存储系统228、网络230和创建网格管理系统150的系统可以是异构的,并且通过独立管理系统进行区域性分布,但是其被使能通过由网格管理系统150使能的网格基础设施来交换信息、资源和服务。此外,服务器群集222、服务器224、工作站和台式计算机226、数据存储系统228和网络230可以是地理上跨国家和大洲分布,或者相互可在本地访问。在本示例中,客户端系统200与网格管理系统150交互。客户端系统200可以表示向网格管理系统150发送请求的任何计算机系统。特别是,客户端系统200可以将作业请求和作业发送到网格管理系统150。此外,虽然在本实施例中客户端系统200被描述为利用请求来访问网格环境240,但是在可替换实施例中客户端系统200还可以在网格环境240中工作。虽然虚拟资源160中的系统是并行描述的,但在实际中,该系统可以是系统层次结构的一部分,其中,虚拟资源160中的某些系统可以位于客户端系统200,而其他系统需要访问外部网络。此外,重要的是要注意,虚拟资源160中所描述的系统可以被物理包含于客户端系统200中。网格管理系统150的一个功能是管理来自客户端系统200的作业和作业请求,并控制将每个作业分配到虚拟资源160中的所选出的计算系统上,以使用虚拟资源160中的可用计算系统中的特定资源。然而,从客户端系统200的观点上,虚拟资源160处理请求并返回结果,而不用区分虚拟资源160中的哪个计算系统实际执行该请求。为了实现网格环境240,网格管理系统150便利了网格服务。网格服务可以根据多种体系结构来进行设计,这些体系结构包括但是不局限于开放网格服务体系结构(OGSA)。特别是,网格管理系统150指的是通过将计算系统链接在异构网络环境中而创建网格的管理环境,所述异构网络环境的特征在于通过网格服务共享资源。网格环境240在被网格管理系统150管理时可以提供单一类型的服务或者多种类型的服务。例如,计算网格、拾遗网格和数据网格是在网格环境中提供的服务类型的示例类别。计算网格可以管理高性能服务器的计算资源。拾遗网格可以跨台式计算机系统对CPU资源和数据存储资源进行拾遗。数据网格可以管理例如多个组织或者企业可访问的数据存储资源。将要明白的是,网格环境不限于单一类型的网格类别。参考图3,框图例示了可以在网格环境中实现的体系结构的一个示例。如所述,体系结构300包括多个功能层。如同将要进一步描述的,本发明是在体系结构的一个或者多个层中实现的过程,所述体系结构诸如体系结构300,它在网格环境(诸如图2所述的网格环境)中实现。重要的是注意到,体系结构300仅仅是可以在网格环境中实现的以及可以实现本发明的体系结构的一个示例。此外,重要的是注意到,可以在网格环境中实现多个体系结构。在体系结构300中,首先,物理与逻辑资源层330组织网格中的系统的资源。物理资源包括但是不局限于服务器、存储媒体和网络。逻辑资源将物理层虚拟化并聚集在可用资源中,所述可用资源诸如操作系统、处理能力、存储器、I/O处理、文件系统、数据库管理器、目录、存储器管理器和其他资源。接着,Web服务层320在网格服务310和物理与逻辑资源330之间提供接口。Web服务层320实现在网际协议(IP)或者其他网络传输层之上执行的服务接口,它包括但是不局限于Web服务描述语言(WSDL)、简单对象访问协议(SOAP)和可扩展标记语言(XML)。此外,开放网格服务基础设施(OSGI)标准322通过扩展Web服务320而构建在当前Web服务320之上,以提供为网格资源建模所需要的动态和可管理的Web服务的能力。特别是,通过实现具有Web服务320的OGSA标准322,使用OGSA来设计的网格服务310可相互操作。在可替换实施例中,其他基础设施或者附加的基础设施可以在Web服务层320的顶部实现。网格服务层310包括多种服务。例如,网格服务层310可以包括使用OGSA来设计的网格服务,使得在创建网格服务时实现统一标准。可替换地,可以在多种体系结构下设计网格服务。网格服务可以被分组为四个主要功能。然而,将要理解的是,网格服务也可以执行其他功能。首先,资源管理服务302管理物理与逻辑资源的使用。资源可以包括但是不局限于处理资源、存储器资源和存储资源。对这些资源的管理包括接收作业请求、调度作业请求、分配作业以及管理作业结果的检索。资源管理服务302优选地监视资源负载,将作业分配到网格的较不忙碌部分以平衡资源负载,并承受非期望的活动峰值。特别是,用户可以规定优选性能级别,从而资源管理服务302分配作业以在网格中维持该优选性能级别。第二,信息服务304管理网格中的计算系统之间的信息传送和通信。由于可以实现多种通信协议,因此信息服务304优选地使用多种类型的通信协议来管理跨多个网络的通信。第三,数据管理服务306管理网格中的数据传送和存储。特别是,数据管理服务306可以将数据移动到网格中的节点,所述节点中将要执行需要数据的作业。可以实现特定类型的传输协议,诸如网格文件传输协议(GridFTP)。最后,安全服务308为了在网格中工作的每个系统的连接层上的安全而应用安全协议。安全服务308可以实现安全协议,诸如开放安全套接层(SSL),以提供安全的传输。此外,安全服务308可以提供单个注册机制,从而一旦用户被认证,就创建代理证书,并且该代理证书当在网格中执行动作时为用户所用。多种服务可以一同工作以提供网格计算系统的若干关键功能。在第一示例中,在网格中分配计算作业。数据管理服务306可以将计算作业划分为独立的网格服务请求数据包,其随后由资源管理服务302进行分配并进行管理。结果由数据管理服务306收集并进行整理。在第二示例中,跨网格中多个计算系统的存储资源被看作由数据管理服务306管理并由资源管理服务302监视的单一虚拟数据存储系统。应用层340包括使用网格服务层310中可用的一个或者多个网格服务的应用。有利的是,应用通过网格服务层310和Web服务320与物理与逻辑资源330进行接口,从而使多种异构系统能够相交互和相互操作。例如,应用可以在网站“www.ibm.com”上得到。网站为用户提供了进入点,以发送作业请求而从服务(诸如目录搜索引擎或者企业到企业服务)中进行选择。重要的是注意到,尽管应用和网格服务位于网格体系结构300的不同层中,但通常所指的应用也包括通过应用而暴露的网格服务。现在参考图4,根据本发明的方法、系统和程序从网格管理系统的观点描述了在网格环境中工作的系统的框图。如图1所述,计算机系统包括多个硬件组件。然而,作为网格环境的一部分,这些硬件组件被看作是资源。例如,系统400包括应用资源402、两个CPU资源404和406、存储器资源408和存储资源410。在系统400中的资源典型地属于在网格环境中观察时的资源类型,然而,在可替换实施例中,可以提供其他类型的资源。此外,例如,在系统400中的资源可以是物理地位于单一计算机系统中,或者跨由网络连接的多个计算机系统进行分布。作为图2所述的网格管理系统的一部分,网格管理器和路由器(GM)424提供在系统400的资源和发送请求的客户端系统之间的接口。特别是,带有GM424的资源监视器422监视系统400中每个可用资源的工作状态。GM424优选地将状态报告发送到网格环境中的其他网格管理器和路由器,以指示系统400中资源的可用性。此外,状态报告可以描述系统400的计算机硬件、操作系统和资源。例如,在系统400加入或者离开网格环境时,在预定的时间间隔以及在特定的预定事件中检测到阈值时,可以生成状态报告,所述特定的预定事件包括但是不局限于硬件故障或者应用或者服务的一部分失效。现在参考图5,阐述性表示描述了可以实现本发明的网格环境的逻辑基础设施的一个实施例。尽管图2描述了在网格环境的通用组件的示例,但在本图中,阐述了在网格环境540中,如何在网格环境中逻辑地看待通用组件的示例。特别是,网格管理系统功能被逻辑地散布在多个GM中,诸如GM504、GM510和GM520。此外,虚拟资源被逻辑地散布在多个资源(RS)中,诸如RS506、RS508、RS512、RS514、RS522和RS524。重要的是注意到,资源可能不是物理资源的直接表示,而是一个或者多个物理资源和/或者物理资源组的逻辑表示。在示例中,客户端系统200发送作业请求到GM504。GM504搜索可用以处理在作业请求中规定的作业的资源。特别是,GM504检查RS506和RS508是否可以处理在作业请求中规定的作业,以及是否可以发送查询到其他GM,诸如GM510或GM520。GM510和520返回关于处理作业请求的资源的可用性的报告。特别是,作业请求优选地包括通过特定应用进行的对于网格服务的请求。通常,应用是自包含的,但是暴露出网格服务层。对于处理作业请求所必须的资源是对于处理由所访问的应用和服务所规定的请求所必须的那些资源。为了阐述的目的,RS506和RS508被看作是本地资源或者是在同一离散资源集合中的资源,其中作业从客户端系统200提交到所述离散资源集合。在以下示例中,当RS506和508不满足来自客户端系统200的对作业的性能要求时,则可以分配额外的资源,包括在同一离散资源集合中的其他资源、对要求资源的容量、来自内部网格的资源和最终来自外部网格的资源。更具体的说,在示例中,GM510、RS512和RS514是由第一企业操作用来提供对于第一规定价格的第一规定数量的网格服务的一个网格基础设施“网格A”的一部分企业。然后,GM520、RS522和RS524是由第二企业操作用来提供对于第二规定价格的第二规定数量的网格服务的另一个网格基础设施“网格B”的一部分。当GM504发送作业请求到GM510和GM520时,每个GM优选地报告是否可以处理作业请求和处理该请求的价格。相对于客户端系统200,网格A和B可以是工作在与客户端系统200相同的企业系统中的内部网格或者外部网格。在接收到资源可用性的报告后,GM504收集用于处理该作业的选项,并将选项返回客户端系统200。然后客户端系统200可以决定选择优选选项并根据所选出的选项发送作业以完成处理。GM504管理将作业结果返回到客户端系统200。在由客户端系统200选出的选项中使用的资源形成用于处理作业的虚拟组织。例如,如果客户端系统200基于从GM510返回的选项,选择一个处理作业的选项,则可以形成一虚拟组织以处理作业,该虚拟组织将包括GM504、GM510、RS512和RS514。根据本发明的一个优点,服务可用性管理代理(SAMA)530在网格环境540中优选地是可访问的。SAMA为网格环境540执行监视网格资源、策略调整、应用简表管理、分析处理和问题分派的功能。SAMA530可以由动态策略控制,在执行差错管理时所述动态政策管理它的行为。特别是,当使应用和服务降级到最小工作级别或者降级到根本没有服务的地步的次最佳条件出现时,在网格环境540中可能出现错误。这种次最佳性能出现的原因可能是系统故障、网络基础设施撤销(dropping)或者过载或者在网格环境540中出现的其他故障。特别是,当在网格环境540中检测到次最佳条件时,SAMA530优选地管理网格资源的使用,以允许应用和服务继续工作。特别是,SAMA530可以调整提供给应用和服务的资源类型和数量,努力保持应用和服务的运行。例如,SAMA530可以将应用或服务移动到新的资源节点集。此外,例如,SAMA530可以对应用的工作行为进行重新配置以使用较少的资源。特别是,SAMA530可以被合并在单个系统中或者跨多个系统分布。此外,在图3的网格体系结构300中,可以在多个级别中实现SAMA530。例如,可以将SAMA530部分地作为Web服务或者部分地作为资源管理服务来实现。重要的是要注意,SAMA530可以管理应用和服务二者对网格资源的使用,为了举例的目的,将描述对应用的网格资源的管理。此外,将要理解的是,SAMA530可以通过在网格环境540中工作的其他控制器和代理来管理网格资源的使用。现在参考图6,是根据本发明的方法、系统和程序的SAMA控制器的一实施例的框图。如图所述,SAMA530包括多个控制器和一个SAMA数据库610。首先,资源监视器606监视在网格资源中的资源的性能和可用性。更具体的,例如,资源监视器可以监视资源使用、容量和吞吐量。推论分析控制器604优选地从工作在网格环境中的系统接收消息,并解析该消息以确定特定的请求。特别是,消息可以包括作业请求。作业请求可以调用为网格可用的应用所公布的一个或者多个特定服务。每个应用优选地拥有存储在简表612中的简表。出于举例的目的,网格应用简表数据库612包括每个应用的简表的XML表示的文档类型定义(DTD)。重要的是要注意,尽管管理资源使用的简表的应用的示例专注在应用的资源使用上,但可以为在网格体系结构中的所有功能层(包括服务)规定简表。在表格1中阐述了应用简表的示例性方案。在示例中,阐述了应用属性信息的类型的样本,它可以被包括在应用简表中。特别是,可以规定应用的名称、版本、描述、开发者名称、拥有者名称和代码大小。下一步,在示例中,对在网格环境中可用于使应用工作的每个平台,规定了应用的最小性能和最大性能的需求的样本。此外,包括了应用的模块和基于平台的所期望性能。模块定义可以包括例如模块名称、模块数据、所需资源数量和优先级编号。平台定义可以包括例如平台名称、平台的版本和描述、最大和最小存储器大小、对称式多处理器(SMP)系统的最大和最小CPU需求、最大和最小CPU时钟速度以及工作名称和版本。此外,由于安全需求,对于应用将要在其上工作的任何平台,应用简表可以规定特定类型的所需要的平台证书,其中所述证书指示出该平台已经经历了由某种安全标准(诸如通用标准(CC))确保的某个级别的保证机制。将要理解的是,尽管应用简表的本示例是XML表示,但也可以实现其他类型的简表的表示。将要理解的是,该示例性方案还可以被应用于网格环境中的服务、代理和其他控制器。此外,如本领域技术人员将要理解的,在本发明的实现中,可以将其他类型的信息包括在应用简表中。简表管理控制器602将应用简表的最大和最小工作需求与当前工作条件进行比较,以确定网格是否在最佳条件下工作。如果网格没有在最佳条件下运行,则简表管理控制器602优选地确定是否可对应用进行调度,使其在另外一个或多个资源节点上运行。特别是,简表管理控制器602将额外的资源节点的平台与在应用简表中所规定的应用的平台需求进行比较。此外,如果额外的节点不可用,则简表管理控制器602确定是否可以对应用的模块进行降级或者关闭,同时仍然维持根据应用简表的最小工作条件。特别是,简表管理控制器602可以处理应用简表,以确定为应用标识的模块。在一个示例中,为每个模块分配资源大小需求和要除去(prune)或者关闭的优先级。简表管理控制器602优选地根据每个模块的优先级和资源大小需求来关闭模块。可替换地,在SAMA530接收到的消息可以包括对于网格环境的可用性的状态请求,以在客户端系统发送作业之前处理作业。特别是,服务清单数据库616维持网格中可用的服务和应用的当前状态。服务清单数据库616优选地只要模块被关闭就进行更新,从而基于服务清单数据库616中的状态而高效地返回对状态请求的响应。在简表管理控制器602调节网格资源的使用之前,推论分析控制器604可将应用请求或者所监视的次最佳条件与策略数据库614中的网格策略进行比较。特别是,网格策略可以规定网格环境的整体工作需求。此外,在简表管理控制器602正在调节网格资源的使用时,网格策略可以规定特定应用可用的资源的类型和数量。表1<xmlversion=”1.0”encoding=“UTF-8”><!--***************************************************************************************ApplicationProfileDTD-Version1.0***************************************************************************************+:Oneormorepermitted*:Zeroormorepermitted:Optional***************************************************************************************--><!--ApplicationProfileDefinition--><!ELEMENTApplication(ApplicationData,AppVitalSecurity+)><!-Applicationattributeinformation--><!ELEMENTApplicationData><!ATTLISTApplicationDataNameCDATA#REQUIREDVersionCDATA#REQUIREDDescriptionCDATA#REQUIREDDeveloperNameCDATA#REQUIREDOwnerNameCDATA#REQUIREDCodeSizeCDATA#REQUIRED><!ELEMENTAppVital(PruneModule*,Platform+)><!ATTLISTAppVitalminimalPerformanceCDATA#REQUIREDmaximumPerformanceCDATA#REQUIRED<!-PruneModuleDefinition--><!ELEMENTPruneModuleEMPTY><!ATTLISTPruneModuleModuleNameCDATA#REQUIREDModuleDataCDATA#REQUIREDResourceAmtCDATA#REQUIREDPriorityNumberCDATA#REQUIRED<!-PlatformsupportedDefinition--><!ELEMENTPlatformEMPTY><!ATTLISTPlatformNameCDATA#REQUIREDVersionCDATA#REQUIREDDescriptionCDATA#REQUIREDMaxMemorySizeCDATA#REQUIREDMinMemorySizeCDATA#REQUIREDMaxCPUCDATA#REQUIREDMinCPUCDATA#REQUIREDMaxSpeedCDATA#REQUIREDMinCDATA#REQUIREDOSNameCDATA#REQUIREDOSVersionCDATA#REQUIREDevalNameCDATA#IMPLIEDevalProviderCDATA#IMPLIEDevalLevelCDATA#IMPLIEDevalDateIssuedCDATA#IMPLIED><!-SecurityInformationDefinition--><!ELEMENTSecurityEMPTY><!ATTLISTSecurityKeyType(SYMMETRIC|ASYMMETRIC)CDATA#REQUIREDalgorithmNameCDATA#REQUIREDalgorithmAttributeCDATA#IMPLIEDKeyLengthCDATA#REQUIREDKeyIndentifierCDATA#REQUIREDKeyUsage(Authentication|Encryption|Signature)CDATA#REQUIREDeExportable(TRUE|FALSE)CDATA#REQUIREDcertificateType(X509V1|X509V3|OTHER)CDATA#IMPLIEDcertificateNameCDATA#IMPLIEDcertificateAttributeCDATA#IMPLIEDcSProviderType(Software|Hardware)CDATA#REQUIREDssmNameCDATA#IMPLIEDssmVersionCDATA#IMPLIEDssmExtNameCDATA#IMPLIEDssmExtVersionCDATA#IMPLIEDhsmNameCDATA#IMPLIEDhsmVersionCDATA#IMPLIEDhsmFirmNameCDATA#IMPLIEDhsmFirmVersionCDATA#IMPLIEDhsmExtNameCDATA#IMPLIEDhsmExtVersionCDATA#IMPLIEDevalNameCDATA#IMPLIEDevalProviderCDATA#IMPLIEDevalLevelCDATA#IMPLIEDevalDateIssuedCDATA#IMPLIED>现在参考图7,所描述的框图阐述了根据本发明的方法、系统和程序,通过重新路由应用来调节资源使用的一种方法。如所述,应用700首先运行在工作在平台706的节点A的资源上。应用700运行在平台706上的工作需求优选地在应用700的简表中定义。如果根据该简表,应用700在平台706上运行的性能是次最佳的,则SAMA可以搜索可用来满足应用700的工作需求的其他资源。在该示例中,运行在平台708上的节点B是可用来满足应用700的应用简表规定的平台708的工作需求。一旦为应用700定位了新节点,SAMA就可以引导作业路由器,以将应用从节点A重新引导到节点B,并开始监视节点B的性能。尽管本示例的描述是参考将应用从一个平台上的一个节点移动到另一平台上的另一节点上,但将要理解的是,应用可以从相同平台中的一个资源节点移动到另一资源节点,或者可以从一个群集的资源节点移动到另一群集的资源节点。现在参考图8,所描述的框图阐述了根据本发明的方法、系统和程序,通过重新配置应用的工作行为来调节资源使用的另一种方法。如所述,应用700包括多个独立的处理模块A-N。模块A-N可以由单个资源或者多个资源进行处理。此外,取决于模块所需要的资源大小,可以跨多个资源处理单个模块。特别是,在应用700的简表中,优选地为每个模块规定关闭优先级。在该示例中,应用700的模块A、B和N在网格环境中的一个或者多个节点上执行。网格环境仅仅能够提供应用700的次最佳性能。因此,SAMA确定应用700的模块是否可以被关闭,从而应用700的若干部分可以继续工作,而不必关闭整个应用。在该示例中,向模块B分配最高关闭优先级。SAMA可以确定该最高关闭优先级的模块所消耗的资源到了应该关闭该模块的程度。SAMA可以发送指令到运行模块B的一个或多个节点以关闭该模块。如果在关闭模块B后性能仍然保持在次最佳,则SAMA可以发送指令以关闭额外的模块。现在参考图9A-9B,例示了通过工作在次最佳条件下的网格环境中的应用来调节网格资源的使用的过程和程序的高级别逻辑流程图。如所述,过程开始于框900,然后前进到框902。框902描述了对是否接收到作业请求的确定。如果未接收到作业请求,则过程在框902重复。如果接收到作业请求,则过程进入到框904。框904描述检索通过发出作业请求的应用所调用的至少一个应用的应用简表。接着,框905描述根据应用简表和网格策略来调度资源。其后,框906描述将该作业提交到所选择的网格资源,并且过程进入框907。框907阐述了监视运行应用的资源的网格性能。其后,框908描述了对于在与应用简表进行比较时是否检测到应用的次最佳条件的确定。如果没有检测到次最佳条件,则过程返回框907。如果检测到次最佳条件,则过程进入框910。框910描述了搜索其他节点以重新定位应用,以满足来自应用简表的对于应用正在运行的特定平台的应用工作需求。接着,框912描述了对于重新定位的节点是否可用的确定。该确定可以首先需要基于网格策略来确定哪些资源对于应用是可用的。然后,可以做出哪些可用资源满足为支持可用资源的平台所规定的应用简表的工作需求的确定。如果重新定位节点可用,则框920描述将应用重新定位在重新定位节点,并在应用被调用时过程返回框907。如果重新定位节点不可用,则过程进入到框914。框914描述了分析应用的简表以确定应用的第一优先级模块。接着,框916描述了对于SAMA是否应该关闭模块的确定。特别是,SAMA可以确定关闭模块是否将释放足够的资源以增加应用的整体性能。此外,网格策略和额外应用简表信息可以控制SAMA是否决定关闭模块。如果SAMA不应该关闭模块,则过程进入到框932,这将进一步进行描述。如果SAMA应该关闭模块,则过程进入框918。框918描述了发送XML消息到运行应用的模块,其中该消息包括对重新配置应用的认证和授权。将要理解的是,可以实现其他事务协议。接着,框922描述了对于是否接收到模块已经关闭的确认的确定。如果没有接收到该确认,则过程在框922重复一段时间。如果接收到该确认,则过程进入到框924。框924描述了基于资源性能来重新评估网格状态。接着,框926描述了对于是否需要附加步骤来重新配置应用的确认。特别是,如果在关闭一个模块之后应用继续工作在次最佳条件下,则应用可能需要附加的重新配置。如果需要附加步骤,则过程进入框932,这将进一步进行描述。如果不需要附加步骤,则过程进入到框928。框928描述了允许应用通过降级后的模块来运行。接着,框930描述了通过降级后的级别来更新可用应用的清单,然后所述过程结束。如前所述,所述过程可以进入到框932。框932描述了对于应用在降级后的状态下是否仍然可以工作的确定。如果应用无法继续工作,则所述过程进入到框936。框936描述了向请求者警告错误信息,并且所述过程结束。可替换地,如果应用仍然可以工作,则所述过程进入到框934。框934描述了分析应用简表,以确定应用的下一优先级模块,并且所述过程进入到框916。现在参考图10,描述了用于在网格环境中处理状态请求的过程和程序的高级别逻辑流程图。如所述,过程开始于框1000,然后进入到框1002。框1002描述了接收到请求,以预先确定用于应用的资源充足性。接着,框1004描述检查服务清单数据库以找到当前的资源充足性。可以发送监视请求到潜在受影响的资源,以确定当前的资源可用性。最后,框1006描述了返回资源充足性的XML状态请求响应,并且所述过程结束。尽管已经参考优选实施例具体地示出并描述了本发明,但本领域技术人员将要理解,可以在形式上和细节上进行各种改变而不会背离本发明的精神和范围。特别是,重要的是要注意,尽管本发明的描述集中于工作在网格应用、服务、代理和控制器的语境中的发明,但是一般而言,本发明还可以应用于普通Web服务的语境中和分布式体系结构中。权利要求1.一种用于在次最佳网格环境中维持应用工作的方法,包括将应用提交到网格环境中的多个资源节点中的至少一个资源节点;监视所述至少一个资源节点的性能状态;将所述性能状态与在所述应用正工作在所述至少一个资源节点时所规定的工作需求进行比较;以及响应于所述性能状态不满足所述工作需求,调节对所述至少一个资源节点的所述应用的使用,使得在所述网格环境中出现次最佳条件时所述应用继续工作。2.如权利要求1所述的用于在次最佳网格环境中维持应用工作的方法,其中,调节对所述至少一个资源节点的所述应用的使用还包括在所述网格环境中的所述多个资源节点中定位至少一个其他资源节点,所述至少一个其他资源节点满足当所述应用正在所述至少一个其他资源节点上工作时为所述应用规定的所述工作需要;以及将所述应用重新定位在所述网格环境中的所述至少一个其他资源节点上。3.如权利要求1所述的用于在次最佳网格环境中维持应用工作的方法,其中,调节对所述至少一个资源节点的所述应用的使用还包括标识将要关闭的所述应用的第一模块;以及向所述至少一个资源节点发送消息来关闭所述第一模块。4.如权利要求3所述的用于在次最佳网格环境中维持应用工作的方法,其中,标识将要关闭的所述应用的第一模块还包括搜索所述应用的应用简表以标识所述第一模块,其中,所述应用简表定义了所述第一模块并确定所述第一模块的优先级。5.如权利要求3所述的用于在次最佳网格环境中维持应用工作的方法,还包括确定所述应用在没有所述第一模块时是否能够继续工作;以及响应于对于所述应用在没有所述第一模块时不能继续工作的确定,向请求所述应用的客户端系统返回所述应用的错误消息;以及响应于对于所述应用在没有所述第一模块时能够继续工作的确定,确定如果在关闭所述第一模块后所述性能状态不满足所述工作需求,那么下一个模块是否应该被标识为将要关闭。6.如权利要求1所述的用于在次最佳网格环境中维持应用工作的方法,其中,所述至少一个资源节点工作在规定了所述工作请求的至少一个平台上。7.如权利要求1所述的用于在次最佳网格环境中维持应用工作的方法,还包括响应于接收到所述应用的作业请求,访问所述应用的简表,其中,所述简表为其上分布有所述多个资源节点的多个平台规定所述应用的所述工作需求。8.如权利要求7所述的用于在次最佳网格环境中维持应用工作的方法,其中,所述应用的所述简表还包括所述应用的多个属性的XML表示,以及当在所述多个平台中的每一个上工作时所述应用的性能范围。9.如权利要求1所述的用于在次最佳网格环境中维持应用工作的方法,还包括响应于接收到所述应用的作业请求,访问所述应用的简表,其中,所述简表规定了所述应用的至少一个模块,以及用于在调节对所述至少一个资源节点的所述使用时关闭所述至少一个模块的优先级。10.如权利要求9所述的用于在次最佳网格环境中维持应用工作的方法,其中,所述应用的所述简表还包括所述应用的多个属性的XML表示,以及用于在关闭所述至少一个模块时所述应用实现的性能范围。11.如权利要求1所述的用于在次最佳网格环境中维持应用工作的方法,其中,所述应用是工作在所述网格环境中的独立应用、服务、代理和控制器中的一个。12.一种用于在次最佳网格环境中维持应用工作的系统,包括网格管理控制器,用于控制工作在网格环境中可控的多个资源中的至少一个资源节点上的应用的路由;监视装置,用于监视所述至少一个资源节点的性能状态;比较装置,用于将所述性能状态与在所述应用正工作在所述至少一个资源节点时所规定的工作需求进行比较;以及调节装置,用于响应于所述性能状态不满足所述工作需求,调节对所述至少一个资源节点的所述应用的使用。13.如权利要求12所述的用于在次最佳网格环境中维持应用工作的系统,其中,所述调节装置还包括用于在所述网格环境中的所述多个资源节点中定位至少一个其他资源节点的装置,所述至少一个其他资源节点满足当所述应用正在所述至少一个其他资源节点上工作时为所述应用规定的所述工作需要;以及用于将所述应用重新路由到所述网格环境中的所述至少一个其他资源节点的装置。14.如权利要求12所述的用于在次最佳网格环境中维持应用工作的系统,其中,所述调节装置还包括用于标识将要关闭的所述应用的第一模块的装置;以及用于向所述至少一个资源节点发送消息以关闭所述第一模块的装置。15.如权利要求14所述的用于在次最佳网格环境中维持应用工作的系统,其中,所述用于标识将要关闭的所述应用的第一模块的装置还包括所述应用的简表,其中所述应用简表定义了所述第一模块并确定所述第一模块的优先级;以及用于搜索所述应用简表以标识所述第一模块的装置。16.如权利要求14所述的用于在次最佳网格环境中维持应用工作的系统,还包括用于确定所述应用在没有所述第一模块时是否能够继续工作的装置;以及用于响应于关于所述应用在没有所述第一模块时不能继续工作的确定,向请求所述应用的客户端系统返回所述应用的错误消息;以及用于响应于关于所述应用在没有所述第一模块时能够继续工作的确定,确定如果在关闭所述第一模块后所述性能状态不满足所述工作需求,那么下一个模块是否应该被标识为将要关闭的装置。17.如权利要求12所述的用于在次最佳网格环境中维持应用工作的系统,还包括用于响应于接收到所述应用的作业请求,访问所述应用的简表的装置,其中,所述简表为其上分布有所述多个资源节点的多个平台规定所述应用的所述工作需求。18.如权利要求17所述的用于在次最佳网格环境中维持应用工作的系统,其中,所述应用的所述简表还包括所述应用的多个属性的XML表示,以及当在所述多个平台中的每一个上工作时所述应用的性能范围。19.如权利要求12所述的用于在次最佳网格环境中维持应用工作的系统,还包括用于响应于接收到所述应用的作业请求,访问所述应用的简表的装置,其中,所述简表规定所述应用的至少一个模块,以及用于在调节对所述至少一个资源节点的所述使用时关闭所述至少一个模块的优先级。20.如权利要求19所述的用于在最佳网格环境中维持应用工作的系统,其中,所述应用的所述简表还包括所述应用的多个属性的XML表示,以及在关闭所述至少一个模块时所述应用实现的性能范围。21.如权利要求12所述的用于在次最佳网格环境中维持应用工作的系统,其中,所述应用是工作在所述网格环境中的独立应用、服务、代理和控制器中的一个。22.一种计算机程序,包括适于执行如权利要求1到权利要求11中任意一个所述的步骤的计算机程序代码工具。全文摘要提供了一种用于维持次最佳网格环境中的应用工作的方法、系统和程序。应用简表表述跨多个异构资源平台的应用的工作要求,以及表述应用的模块关闭的优先级,从而在检测到应用的次最佳条件时可以调节应用对资源的使用。所述应用被提交给网格环境中的多个资源节点中的至少一个资源节点。随后,服务可用性管理代理监视所述至少一个资源节点的性能状态。所述服务可用性管理代理将所述性能状态与应用简表中为所述至少一个资源节点的平台规定的工作要求进行比较。如果所述性能状态不满足所述工作要求,则所述服务可用性管理代理根据所述应用简表来调节所述应用对资源节点的使用,使得在网格环境中出现次最佳条件时所述应用继续工作。文档编号G06F9/46GK1902588SQ200480040314公开日2007年1月24日申请日期2004年12月16日优先权日2004年1月14日发明者V·V·迪卢奥福奥,C·费伦斯泰因,R·A·汗密尔顿二世,J·约瑟夫申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1