在网格环境中部署平台相关应用的方法、系统和程序产品的制作方法

文档序号:6454113阅读:173来源:国知局
专利名称:在网格环境中部署平台相关应用的方法、系统和程序产品的制作方法
技术领域
一般而言,本发明涉及应用部署。具体地,本发明涉及一种用于在网 格环境中部署平台相关应用的方法、系统和程序产品。
背景技术
本申请在某些方面中涉及于2003年11月20日提交的、共同转让的已 出版美国申请No. US2003000718419,题目为"COMPUTERIZED SYSTEM, METHOD AND PROGRAM PRODUCT FOR MANAGING AN ENTERPRISE STORAGE SYSTEM"。
当今的通用web服务体系结构在单一^5出设施内提供多种服务。具有
共同需求的企业也集合到一起以便共享基础设施和业务过程。该方案的优 点在于,每个涉及方仅支付所涉及的整个费用的一部分。上述的美国已出 版专利申请公开了存储网M系结构,其通过"网^f匕"通用^5出设施内 的存储单元来优化存储使用。当选择文件共享位置时,这类结构不仅提供 冗余,而且考虑了基于性能的参数,诸如存储性能、用户需求等。
随着共享^i^出设施而出现的一个问题涉及平台相关应用的部署。网格
环境通常需要应用能够在任意平台下运行,以便为网络组件提供最佳负栽 均衡。同样地,纯Java(Java和所有基于Java的商标是Sun Microsystems 公司在美国、其它国家、或者二者中的商标)应用由于其所宣告的平台独 立性的原因,是用于在网格环境中运行的良好候选。不过,某些重要的Java 应用不得不将平台独立的代码与平台相关/特定的本地(native)调用相混 合。因此,这样的应用被认为是平台相关的,并且仅可以运行在与其本地 代码相兼容的平台上。在网格环境中运行平台相关的Java应用代表了附加
的挑战,因为所述应用强加了对于目标平台的选择上的局限性。 考虑到前述内容,存在克服上述缺陷的需要。

发明内容
一般而言,本发明的实施例提供了一种在网格环境中部署平台相关应 用的方法、系统和程序产品。具体而言,首先确定用于将平台相关应用部 署在网格环境中的其特定的"本地"平台上的充足资源是否存在。如果否, 则所述应用的平台相关部分被标识,以及所述应用被拆分成平台相关部分
和平台独立部分。此后,所述平台相关部分^L部署在其相应的本地平台上, 同时所述平台独立部分基于可用资源被部署在网格环境中的另 一平台上。 所述两个部分之间的互连接着可以被自动生成。这可以包括例如创建远程 方法调用门面(facade)接口,创建使能了远程方法调用的门面类,以及 建立用于所述笫 一平台的远程方法调用服务器。
本发明的第一方面提供了一种用于在网格环境中部署平台相关应用的 方法,包括标识所述平台相关应用的平台相关部分;将所述平台相关应 用拆分成平台相关部分和平台独立部分;把所述平台相关部^P署在第一 平台上,以及把所述平台独立部分部署在所述网格环境中的第二平台上; 以及生成所述平台相关部分和所述平台独立部分之间的互连。
本发明的第二方面提供了一种用于在网格环境中部署平台相关应用的 系统,包括用于确定在所述网格环境的第一平台上运行所述平台相关应 用的可用资源的系统;用于标识所述平台相关应用的平台相关部分的系统; 用于将所述平台相关应用拆分成平台相关部分和平台独立部分的系统;用 于把所述平台相关部分部署在第 一平台上,以;^把所述平台独立部分部署 在所述网格环境中的第二平台上的系统;以及用于生成所述平台相关部分 和所述平台独立部分之间的互连的系统。
本发明的第三方面提供了 一种存储在计算机可用媒体上用于在网格环 境中部署平台相关应用的程序产品,所述计算机可用媒体包括用于使得计 算机系统执行以下步骤的程序代码确定在所述网格环境的第一平台上运
行所述平台相关应用的可用资源;标识所述平台相关应用的平台相关部分; 将所述平台相关应用拆分成平台相关部分和平台独立部分;把所述平台相 关部分部署在第一平台上,以及把所述平台独立部分部署在所述网格环境 中的第二平台上;以及生成所述平台相关部分和所述平台独立部分之间的 互连。
本发明的第四方面提供了一种用于在网格环境中部署平台相关应用的 方法,包括提供计算机基础设施,其可操作用于标识所述平台相关应 用的平台相关部分;将所述平台相关应用拆分成平台相关部分和平台独立 部分;把所述平台相关部分部署在第一平台上,以及把所述平台独立部分 部署在所述网格环境中的第二平台上;以及生成所述平台相关部分和所述 平台独立部分之间的互连。
本发明的第五方面提供了一种以传播信号实现的用于在网格环境中部 署平台相关应用的计算机软件,所述计算机软件包括用于使得计算机系统 执行以下步骤的指令提供计算机基础设施,其可操作用于标识所述平 台相关应用的平台相关部分;将所述平台相关应用拆分成平台相关部分和 平台独立部分;把所述平台相关部分部署在第一平台上,以及把所述平台 独立部分部署在所述网格环境中的第二平台上;以及生成所述平台相关部 分和所述平台独立部分之间的互连。


将仅通过示例并参考附图来描述本发明的优选实施例,在附图中 图l描述了根据相关技术的网格环境。
图2描述了才艮据本发明优选实施例的用于确定用于应用的可用资源的 作业调度器。
图3描述了根据本发明优选实施例的平台相关应用的通用视图。 图4描述了根据本发明优选实施例的、被修改之后的图3的平台相关 应用的通用视图。
图5描述了根据本发明优选实施例的更具体的计算机化实现。
附图不必非要成比例。附图仅是示意性表示,而不是意在描绘本发明 实施例的特定参数。在附图中,相同标号表示相同单元。
具体实施例方式
现在参考图l,示出了网格环境IO。 一般而言,网格环境10允许用户 (诸如用户12)将文件或类似物存储在由管理服务18所管理的一个或多 个数据中心或者"存储单元"14A-B中。就此,网格环境10典型地在网络 上实现,所述网络诸如因特网、局域网(LAN)、广域网(WAN)、虚拟 专用网(VPN)等。同样地,在图1中所示的各种组件之间的通信可以在 客户端-服务器或者服务器-服务器环境中经由直接硬连线连接(例如串行 端口 )或者经由可利用有线线路和/或无线传输方法的任意组合的可寻址连 接来发生。所述组件可以利用传统的网络连通性,诸如令牌环、以太网、 WiFi、或者其它传统通信标准。此外,连通性可以由传统的基于TCP/IP 套接字的协议来提供。在此例中,所述组件可以利用因特网服务供应商来 建立连通性。应该理解,图1中示出的体系结构意在仅作为示意,而如本 领域技术人员来说显而易见地,可以实现其它变体。例如,任意数量的数 据中心14A-B可以朝L提供。
无论如何,在典型实施例中,用户12将通过经由在他/她的计算机系 统16 (例如个人计算机、工作站、膝上型计算机、手持设备等)上的应用 生成请求来存储文件。 一旦做出了请求,管理服务18将确定用于存储文件 的最优或适当的数据中心14A-B。此确定可以基于某些预定的性能参数而 做出。例如,可以基于用户身份、存储成本、特定用户需求、理想的单元 利用模式/均衡、安全性需求、存储单元可用性、冗余需求、以及网络优化 需求来^L出确定。由此,如果一个文件需要由一组用户访问,则该文件可 以被存储在对于所有这些用户(而不仅是请求存储的用户)最为中央的数 据中心14A-B中。此外,如果某个数据中心14A-B接近其容量,则文件可 能被存储在另一个(虽然较远的)数据中心14A-B,从而数据中心14A-B 的负栽可以保持均衡。
如图2所示,在现有的网格系统中,作业调度器20在应用级进行操作 (即,用于调度应用22在特定节点上运行,其中,应用需要在该节点上获 取所有所需资源)。作业调度器20典型地将4吏得应用执行延迟,直到所需 资源诸如在目标"本地"平台(例如,运行WIN32的节点1、运行LINUX 的节点2等等)上可用。
不过,如上所述,许多应用(诸如应用22)在某种程度上是平台相关 的。在网格环境中,当资源是有限的时候,这可能成为问题。在这样的情 形中,应用22可以被修改以便使能在任何可用平台上运行其平台独立部 分,与此同时平台相关部分(本地部分)在所需平台上运行,从而在该平 台上消耗最少的资源。
参考图3,平台相关应用22在其本地平台30上的部署,皮描述。特别 地,图3描述了整个Java应用22在平台30上的部署。图3中还示出了 Java虛拟机(JVM) 32、本地库34A-B、门面(facade) 36、 JNI层38。 如上所述,用于将应用22整个部署到其本地平台30的资源有时候存在短 缺。
为了解决此问题,可以根据图4实现一种技术。作业调度器20 (图2 ) 将首先确定是否存在用于将应用22部署到其本地平台30的充足资源。在 此示意性示例中,假定不存在充足资源,则应用22的平台相关部分22A 将被标识。所述标识可以通过参考应用22的元数据而做出。无论如何,应 用22将,皮拆分成平台相关部分22A和平台独立部分22B。这可以基于对 底层代码的分析从而确定哪些部分依赖于(或者不依赖于)特定平台来完 成。 一旦所述拆分已发生,则网4Mt业调度器20将把平台相关部分22A 部署在本地平台30上,以及基于可用资源把平台独立部分22B部署在网 格环境中的任意其它平台40上。特别地,网格作业调度器20将分析其它 平台的资源可用性,以及基于所述资源可用性来部署平台独立部分22B。
此外,在平台相关部分22A与平台独立部分22B之间的互连可以被自 动生成。这可以包括以下步骤(l)创建远程门面接口 42。每个门面方 法(其最初,皮用于访问本地方法)需要成为远程Java接口的方法。此需求
来自于远程地访问方法的需要。远程Java接口需要扩展标准的 java.rmi.Remote接口 。该应用将使用这些远程的Java接口来访问相应的 本地方法。(2)创建使能RMI的门面类。所有现有的专用门面类需要4皮 实现为使能RMI的,并且实现相应的远程Java接口。如果不是所有的门 面方法被包括在专用类中,则新的使能RMI的类需要被创建,以实现相应 的远程门面Java接口 。 ( 3)建立Java RMI服务器44。为了提供对门面 类的实例的远程访问,Java RMI服务器44需要被建立,并,皮部署在本地 平台上。JavaRMI服务器44将在出现请求时创建远程门面类的实例,将 它们注册到本地RMI注册表中,以及将远程Java接口返回到调用者。
如可见的,通过将平台相关代码从应用的其余部分中分离出来并使其 可以远程访问,Java应用代码成为平台独立的。本地对象库运4亍在其本地 平台中,并且它们经由远程访问API被访问。如进一步示出的,本发明的 典型实施例利用远程方法调用(RMI),但是应该理解,可以利用其它等 价物。
现在参考图5,示出了本发明优选实施例的计算机化实现100的更详 细的图。如所述,实现100包括部署在计算机M设施102内的计算机系 统104。这意在阐迷本发明的实施例可以被实现在网络环境(例如因特网、 广域网(WAN)、局域网(LAN)、虛拟专用网(VPN)等)内或者独 立计算机系统上。在前者的情形中,在整个网络中的通信可以经由多种类 型的通信链路的任意组合来发生。例如,通信链路可以包括可利用有线和/ 或无线传输方法的任意组合的可寻址连接。当经由因特网发生通信时,连 通性可以由传统的基于TCP/IP套接字的协议来提供,并且因特网服务供 应商可以被用于建立到因特网的连通性。此外,计算机^ 出设施102意在 阐述实现100的某些或所有组件可以由服务供应商进行部署、管理、服务 等,所述服务供应商在网格环境中部署应用。
如所示,计算机系统104包括处理单元106、存储器108、总线IIO、 输入/输出(1/0)接口112。此外,计算机系统104被示出为与外部I/O设 备/资源114和存储系统116进行通信。 一般而言,处理单元106执行计算
机程序代码,诸如应用部署系统120,其被存储在存储器108和/或存储系 统116中。当执行计算机程序代码时,处理单元106可以向/从存储器108、 存储系统116、和/或I/0接口 112写和/或读数据。总线110提供计算机系 统104中的各个组件之间的通信链路。外部设备114可以包括任意设备(例 如,键盘、点击设备、显示器等),其使用户能够与计算机系统104和/ 或任意设备(例如网卡、调制解调器等)相交互,所述任意i殳^f吏计算机 系统104能够与一个或多个其它计算机设备进行通信。
计算机J^4设施102仅示意了用于实现本发明实施例的各种类型的计 算机基础设施。例如,在一实施例中,计算机M设施102包括在网络上 进行通信以便执行本发明实施例中的各个过程步骤的两个或更多计算设备 (例如服务器群集)。而且,计算机系统104仅表示了可包括多种硬件组 合的多种可能的计算机系统。就此,在其它实施例中,计算机系统104可 以包括包括用于执行特定功能的硬件和/或计算机程序代码的任意专用的 计算制品、包括专用和通用硬件/软件的组合的任意计算制品等等。在每种 情形中,程序代码和硬件可以分别使用标准编程和工程技术来创建。另夕卜, 处理单元106可以包括单个处理单元,或者4皮分布于一个或多个位置中的 一个或多个处理单元中,例如在客户机和服务器上。类似地,存储器108 和/或存储系统116可以包括驻留于一个或多个物理位置上的各种类型的数 据存储和/或传W^体的任意组合。另外,1/0接口 112可以包括用于与一 个或多个外部i殳备114交换信息的任意系统。此外,应该理解,未在图5 中示出的一个或多个附加组件(例如系统软件、数学协处理单元等等)可 被包括在计算机系统104中。但是,如果计算机系统104包括手持设备或 类似物,则应该理解, 一个或多个外部设备114 (例如显示器)和/或存储 系统116可被包含在计算机系统104之内,而非如图所示出那样是外部的。
存储系统116可以是能够为本发明实施例中的信息、应用、元数据等 提供存储的任意类型的系统(例如数据库)。就此,存储系统116可以包 括诸如磁盘驱动器或光盘驱动器之类的一个或多个存^i殳备。在另一实施 例中,存储系统116包括例如分布于局域网(LAN)、广域网(WAN)或
存储区域网(SAN)(未示出)的数据。虽然没有示出,但是附加组件可 以被并入计算机系统104中,诸如高速緩冲存储器、通信系统、系统软件
在计算机系统104的存储器108中示出的是应用部署系统120 (作为 软件程序),其将用于提供本发明实施例的功能,并且其包括资源确定 系统122、部分标识系统124、应用拆分系统126、部^P署系统128、以 及互连系统130。这些系统执行以上概述的功能。特别地,资源确定系统 122将确定是否存在用于将应用22部署在其本地平台上的充足资源。如果 否,则部分标识系统124将标识应用20的平台相关部分22A。此后,应用 拆分系统126将把应用22拆分成平台相关部分22A和平台独立部分22B。 一旦以此方式被拆分,则部分部署系统128将把平台相关部分22A部署在 其相应的本地平台30上,以^于资源可用性把平台独立部分部署在网格 环境140中的另一平台40上。 一旦部分22A-B^f皮部署,互连系统130将 自动生成部分22A-B之间的互连。如上所述,这可以包括以下步骤(1) 创建远程门面接口 ; ( 2 )创建使能RMI的门面类;以及(3 )建立Java RMI 服务器。应该理解,应用部署系统120的某些或全部系统可以被实现为作 业调度器20 (图2 )。
尽管在此被示出和描述为在网格环境中部署应用的方法和系统,但是 应该理解本发明的实施例可以进一步提供可替代方案。例如, 一个实施 例提供包括用于使计算机^S^出设施能够在网格环境中部署应用的计算机 程序代码的计算机可读/可用媒体。就此,所述计算机可读/可用媒体包括实 现本发明实施例的各个过程步骤的每个步骤的程序代码。应该理解,术语 计算机可读媒体或计算机可用媒体包括一种或多种任意类型的、程序代码 的物理实施例。具体而言,计算机可读/可用:^体可以包括在一个或多个 便携式存储制品(例如光盘、磁盘、磁带等)上、在计算设备(诸如存储 器108 (图5 )和/或存储系统116 (图5 ),例如,固定磁盘、只读存储器、 随才/U^取存储器、高速緩冲存储器等)的一个或多个数据存储部分上、和/ 或作为
的数据信号(例如传播信号)实现的程序代码。
在再一实施例中,提供一种用于在网格环境中部署应用的计算机实现
方法。在此情形中,计算机M设施(诸如计算机J^出设施102 (图5)) 可以被提供,并且用于执行过程步骤的一个或多个系统可以被获得(例如 被创建、购买、使用、修改等)以及被部署在计算机基础设施上。就此, 系统的部署可以包括以下一个或多个(1)从计算机可读^^体在计算设备 (诸如计算机系统104 (图5))上安装程序代码;(2)将一个或多个计 算设备添加到计算机基础设施;以及(3)并入和/或修改计算机基础设施 的一个或多个现有系统,以使计算机J^出设施能够执行过程步骤。
如这里所使用的,应该理解,术语"程序代码"和"计算机程序代码" 是同义词,并且指的是以任意语言、代码或符号形式的一组指令的任何表 达法,所述指令意在使得具有信息处理能力的计算设备直接执行或者在如 下一个或两个步骤之后执行特定的功能,所述步骤为(a)转换为另一种语 言、代码或符号;和/或(b)以另一种物质的形式再现。就此,程序代码可以 被实现为以下的一个或多个应用/软件程序、组件软件/功能库、操作系统、 用于特定计算和/或I/O设备的基本I/O系统/驱动程序等等。
已经出于说明和描述的目的呈现了本发明的各方面的前述说明。其不 是意在穷尽性的或者把本发明限制为所公开的精确形式,并且#>显然,许 多修改和变型是可能的。对本领域技术人员来说显而易见的是,这些修改 和变型意在被包括在由权利要求所限定的本发明的范围之内。
权利要求
1. 一种用于在网格环境中部署平台相关应用的方法,包括标识所述平台相关应用的平台相关部分;将所述平台相关应用拆分成平台相关部分和平台独立部分;把所述平台相关部分部署在第一平台上,以及把所述平台独立部分部署在所述网格环境中的第二平台上;以及生成所述平台相关部分和所述平台独立部分之间的互连。
2. 根据权利要求l所述的方法,其中所述生成包括自动生成所述互连。
3. 根据权利要求l所述的方法,其中所述生成包括 创建远程方法调用门面接口 ; 创建使能了远程方法调用的门面类;以及建立用于所述第 一平台的远程方法调用服务器。
4. 根据权利要求l所述的方法,其中所述部署由网格作业调度器来执行。
5. 根据权利要求l所述的方法,进一步包括确定用于所述平台相关 应用的可用资源,其中如果不存在用于在所述第 一平台上运行所述平台相 关应用的充足资源,则所述平台相关应用被拆分。
6. 根据权利要求l所述的方法,其中所述第一平台专用于所述平台相 关部分,以及其中所述第二平台基于所述网格环境中的可用资源被选择。
7. —种用于在网格环境中部署平台相关应用的系统,包括用于确定在所述网格环境的第 一平台上运行所述平台相关应用的可用 资源的系统;用于标识所述平台相关应用的平台相关部分的系统;用于把所述平台相关部分部署在第一平台上,以及把所述平台独立部分部署在所述网格环境中的笫二平台上的系统;以及用于生成所述平台相关部分和所述平台独立部分之间的互连的系统。
8. 根据权利要求7所述的系统,其中所述用于生成的系统自动生成所 述互连。
9. 根据权利要求7所述的系统,其中所述用于生成的系统创建远程方 法调用门面接口,创建使能了远程方法调用的门面类,以及建立用于所述 第 一平台的远程方法调用服务器。
10. 根据权利要求7所述的系统,其中所述用于部署的系统包括网格 作业调度器。
11. 根据权利要求7所述的系统,其中如果所述用于确定的系统确定 不存在用于在所述第 一平台上运行所述平台相关应用的充足资源,则所述 平台相关应用被拆分。
12. 根据权利要求7所述的系统,其中所述第一平台专用于所述平台 相关部分,以及其中所述第二平台基于所述网格环境中的可用资源被选择。
13. —种存储在计算机可用媒体上用于在网格环境中部署平台相关应 用的程序产品,所述计算机可用^^体包括用于使得计算机系统执行以下步 骤的程序代码确定在所述网格环境的第一平台上运行所述平台相关应用的可用资源;标识所述平台相关应用的平台相关部分; 将所述平台相关应用拆分成平台相关部分和平台独立部分; 把所述平台相关部分部署在第一平台上,以及把所述平台独立部分部 署在所述网格环境中的第二平台上;以及生成所述平台相关部分和所述平台独立部分之间的互连。
14. 根据权利要求13所述的程序产品,其中所迷生成步骤包括自动 生成所述互连。
15. 根据权利要求13所述的程序产品,其中所述计算机可用媒体包括 用于使得计算机系统执行以下步骤的程序代码创建远程方法调用门面接口 ; 创建使能了远程方法调用的门面类;以及 建立用于所述第 一平台的远程方法调用J3良务器。
16. 根据权利要求13所述的程序产品,其中如果所述用于确定的系统 确定不存在用于在所述第 一平台上运行所述平台相关应用的充足资源,则 所述平台相关应用^皮拆分。
17. 根据权利要求13所述的程序产品,其中所述第一平台专用于所述平台相关部分,以及其中所述第二平台基于所述网格环境中的可用资源被 选择。
18. —种用于在网格环境中部署平台相关应用的方法,包括 提供计算机基础设施,其可操作用于标识所述平台相关应用的平台相关部分; 将所述平台相关应用拆分成平台相关部分和平台独立部分; 把所述平台相关部分部署在笫一平台上,以及把所述平台独立部分部 署在所述网格环境中的第二平台上;以及生成所述平台相关部分和所述平台独立部分之间的互连。
19. 根据权利要求18所述的方法,其中所述计算机基础设施可进一步 操作用于自动生成所述互连。
20. 根据权利要求18所述的方法,其中所述计算机I^出设施可进一步 操作用于创建远程方法调用门面接口 ; 创建使能了远程方法调用的门面类;以及 建立用于所述第 一平台的远程方法调用服务器。
21. 根据权利要求18所述的方法,其中所述计算机基础设施包括网格 作业调度器,用于部署所述平台相关部分和所述平台独立部分。
22. 根据权利要求18所述的方法,其中所述计算机l^l设施可进一步 操作用于确定用于所述平台相关应用的可用资源,其中如果不存在用于 在所述第 一平台上运行所述平台相关应用的充足资源,则所述应用被拆分。
23.根据权利要求18所述的方法,其中所述第一平台专用于所述平台 相关部分,以及其中所述第二平台基于所述网格环境中的可用资源被选择。
全文摘要
在本发明下,确定用于将平台相关应用部署在网格环境中的其特定的“本地”平台上的充足资源是否存在。如果否,则所述应用的平台相关部分被标识,以及所述应用被拆分成平台相关部分和平台独立部分。此后,所述平台相关部分被部署在其相应的本地平台上,同时所述平台独立部分基于可用资源被部署在网格环境中的另一平台上。所述两个部分之间的互连接着可以被自动生成。这可以包括例如创建远程方法调用门面接口,创建使能远程方法调用的门面类,以及建立用于所述第一平台的远程方法调用服务器。
文档编号G06F9/50GK101395582SQ200780007260
公开日2009年3月25日 申请日期2007年2月26日 优先权日2006年3月1日
发明者D·梅利克斯蒂安, G·格拉巴尼克, G·考夫曼, L·施沃茨, L·科扎科夫, Y·N·多加纳塔, 金文柱 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1