基于组件的网格中间件互交互方法

文档序号:6460267阅读:155来源:国知局
专利名称:基于组件的网格中间件互交互方法
技术领域
基于组件的网格中间件互交互方法属于分布式技术与系统领域,尤其涉及高性能网格计算技术领域。

背景技术
现代科学研究中人们求解问题的领域在不断扩大,问题的复杂程度、规模都在不断扩大,尤其是高端科技领域,如高能物理,生物信息学等。解决这些问题所需要的计算能力也在大幅度提高。单独的PC或者工作站已经不能满足计算需求。随着计算机和网络技术的迅猛发展,很多组织和科研单位都拥有计算能力很强的超级计算机,如集群、并行计算机等。但这些机器往往因为只是孤立的为本单位服务而没有充分发挥作用,在大部分时间处于空闲状态。因此,打破地域的限制,协同使用在网络上广泛分布的各类资源已成为新的要求。网格技术的提出和发展正是为了满足上述这种要求,其目标是实现网格虚拟环境上异构资源的共享和协同工作,消除信息孤岛和资源孤岛。
为了能方便透明的访问网格资源,不同的学术研究组织和公司开发了许多网格中间件。中间件是介于网络层和应用层之间的软件层,它能提供辨识、确认、授权、目录和安全等服务。中间件不仅仅实现互连,还要实现应用之间的互操作。它是基于分布式处理的软件,最突出的特点是其网络通信功能。网格中间件还应具有如下特点满足大量应用的需要;运行于多种硬件和操作系统平台;支持分布式计算,提供跨网络、硬件和操作系统平台的透明性的应用或服务的交互;支持标准的协议;支持标准的接口。
然而,在今天的网格领域,不同的应用根据自己的需要开发自己的网格中间件,一些通用中间件之间也缺乏一个统一的标准。不同中间件之间无法互交互,网格中间件的不统一在一定程度上造成了更大的信息孤岛。为了消除这种由网格中间件所带来的信息孤岛,不同网格中间件之间的互交互变得越来越重要。互交互包括两层含义语法上的互交互——不同的中间件根据一个统一的标准来互相交换信息;语义上的互交互——不同的中间件将交换的信息进行解析,理解并适用这些信息。
要达到语法和语义的互交互存在许多的难点和问题 ·缺乏一个统一的网格标准。到目前为止,网格界没有一个统一的标准。即使提出了一些标准,如OGSA,JSDL,但是这些标准并没有被所有的网格团体所接受。当前的网格中间件并没有完全支持这些标准。
·网格实现的多样性。即使有了诸如OGSA和JSDL的标准,这些标准的实现没有一个统一的规范。不同的网格中间件对同一个标准的实现是不同的。
·缺乏一个通用的解决方案。目前的网格互交互解决方案都是针对特定的网格中间件提出的。这种方法虽然在一定程度上解决了网格中间件的互交互,但是并不是一个通用的方法。比如,UNICORE和Globus合作,让用UNICORE和Globus构建的网格能够互通,但是如果出现新的网格中间件需要和原有的系统交互,那么需要重新设计原有的系统使其能够兼容新的中间件。
由于存在上述难点,工业界和学术界都花了很大的人力物力研究网格的互交互问题。欧盟UNICORE项目和美国Globus项目合作,设计一个能够使UNICORE和Globus互相交互的网格互交互框架,著名网格中间件Condor也实现了和OGSA的互交互,还有诸如ALiEn-EDG,WorldGrid等项目。但是这些网格互交互项目都是对特定的两个或多个网格中间件实现互交互。目前所有这些项目的做法都是在自己的网格中间件中加入需要互交互的其他网格中间件的驱动程序,通过这种方式来实现互交互。这种互交互的实现方式存在这显而易见的缺点。当有新的网格中间件出现时,所有的已有的网格中间件都需要实现原有系统和新中间件交互的驱动模块,同时新的中间件也需要实现对现有中间件的交互模块。这并不是一个通用的解决互交互的方法。
Grid Component Model(GCM)是一个轻量级的易于开发网格应用的组件模型。GCM将Fractal组件模型作为基础。GCM将接口与实现分离,实现了高可扩展性。一个标准的GCM组件模型包含 ·内容组件内容是由组件控制器控制的一个抽象实体。一个组件的内容由子组件和子组件的绑定构成。他是一个递归的结构。
·控制器控制器包含了组件的各种控制功能。组件的控制器可以对组件执行任何控制操作。
·服务端接口接收操作指令的组件接口。
·客户端接口发出操作指令的组件接口。
·功能接口组件的功能接口实现组件的具体功能。
·控制接口非功能方面的任何接口称之为控制接口。
GCM的组件模型规范了两类组件子组件和复合组件。子组件是一个单独的功能模块,提供特定的功能,给出规范化的接口,供其他模块调用。复合组件本身并不实现任何功能,复合组件用一个或多个子组件组合起来,提供一个完整的组件运行流程。
图1给出了一个GCM组件的实例。GCM是一个基于组件的模型,从图1的例子中可以看出,GCM具有如下特点 ·支持反射GCM同时支持反省和请求机制。
·层次结构网格应用通常由很多不同程序组成。每一个程序又由更小的程序单元组成。这是一个多层次的递归的结构。GCM是一个高度层次化的模型。
·模型的可扩展性GCM模型允许新的特性的加入。使得GCM模型是一个可扩展的模型。
·自适应性GCM模型对于网格和其所面对的组件结构是一种自适应的模型。
针对不同网格中间件互交互的重点和难点,我们提出了基于组件的方案,实现了一个不同网格中间件互交互的一个通用的、可扩展、高性能的方法。


发明内容
本发明的目的在于提供一种对于所有网格中间件都适用的网格互交互方法,以消除由于不同网格中间件无法互通而形成的信息孤岛问题。本方法与现有的网格中间件互交互方法不同,它并不从某个或者某几个网格中间件出发来解决问题,而是首先将网格划分为三层的基本结构,然后抽象出所有网格中间件的必要功能模块,将网格中最基本的、通用的模块组件化,通过组件来实现所有网格的互交互。
本发明的核心在于采用了Grid Component Model(GCM)组件模型来实现不同网格中间件之间的互交互。GCM是一种轻型的动态的组件模型,利用GCM来实现网格核心模块的组件化能得到较高的性能。
所述方法是在网格上依照如下步骤实现的 步骤(1),把网格划分为以下三层基本结构 资源层,由许多计算节点和存储节点构成; 核心模块层,建立在所述资源层之上,由许多计算单元和存储单元构成,所述计算单元和存储单元是物理资源的抽象; 网格管理层,至少它包含作业管理器和工作流引擎,建立在所述核心模块层之上,为网格应用服务; 步骤(2),利用网格组件模型GCM把所述网格管理层按以下步骤进行组件化; 步骤(2.1),把所述网格管理层抽象化为下述四个模块执行模块、数据模块、信息模块和安全模块,构成一个网格中间件,其中, 执行模块,是所述网格中间件的核心,它负责网格作业的部署、执行、调度以及生命周期管理,同时还监控和协调不同的网格作业; 数据模块,为网格管理所有的数据,为用户提供一个统一的视图,执行以下操作 存储管理,把所有的数据资源虚拟化为一个磁盘,同时提供最基本的文件操作; 数据运行,用户上传网格作业需要的输入数据,下载网格作业的结果数据; 信息模块,掌控整个网格资源,其中包括物理资源和网格提供给用户的服务资源,采用可扩展标记语言XML来表示资源; 安全模块,采用网格安全框架GSI进行网格认证; 步骤(2.2),按以下步骤把所述执行模块、数据模块、信息模块和安全模块用所述GCM网格组件模型包装为子组件 步骤(2.2.1),把所述四个模块各自组件化为子组件; 步骤(2.2.2),执行模块组件化后的对外统一接口用操作描述的方式表示为传入需要执行的命令、从虚拟数据空间取得需执行的文件、填入网格任务各个参数,其中包括输入的文件、执行的网格任务、得到的网格任务的状态,以及从虚拟数据空间得到的执行结果; 步骤(2.2.3),数据模块组件化后的对外统一接口用操作描述的方式表示为从本地上传文件到虚拟数据空间、从虚拟数据空间下载文件到本地、以所述XML形式返回所有网格文件、在虚拟数据空间创建一个目录、删除虚拟数据空间的文件、以及删除虚拟数据空间的目录; 步骤(2.2.4),信息模块组件化后的对外统一接口用操作描述的方式表示为注册一个新添加的网格资源,以及浏览网格中已存在的资源; 步骤(2.2.5),安全模块组件化后的对外统一接口是用户验证接口; 步骤(3),按一下步骤把步骤(2)所得到的子组件进行组合,形成一个复合组件,以便每个组件调用不同网格中间件对应的执行、数据、信息和安全子组件,以实现不同网格中间件之间的互通; 步骤(3.1),用户调用安全组件通过GSI安全体系进行网格验证; 步骤(3.2),用户查询网格的信息组件,得到可用的网格资源; 步骤(3.3),用户调用数据组件,把所需的输入文件上传到网格虚拟数据空间中; 步骤(3.4),用户上传应该执行的文件,填入网格任务所需要的参数; 步骤(3.5),用户调用执行组件执行网格任务; 步骤(3.6),用户通过执行组件得到任务的状态; 步骤(3.7),任务执行结束,用户取得输出文件。
本发明的优点在于通用性,本发明中所提出的基于组件的互交互方法不是针对某一个或者某几个网格中间件适用,而是对所有网格中间件都通用的方法;可扩展性,当有新的网格中间件出现时,该方法也能很好的适应新的中间件,能使原有的中间件和新中间件方便的交互;动态性,对于每一个网格作业的执行,该方法可以调用到多个不同网格中的网格资源;高性能,由于本方法采用的是GCM组件模型,该组件的轻量级特性,使得由组件带来的开销降低到最小,从而保持网格原有的高性能。



图1GCM组件模型实例 图2网格的三层模型 图3利用GCM在CGSP,GT4,EGEE gLite上执行的组件化的网格作业 图4网格作业多网格平台下的执行 图5网格作业在本发明下的执行流程 图6实例-DNA序列比对
具体实施例方式 从GCM的特点中可以看出,GCM作为不同网格中间件互通的组件模型是非常合适的。这是因为,针对在前文中提到的不同网格中间件互交互所遇到的难点,将GCM作为互交互组件模型,都能解决 1)GCM本身可以被当作是一种使用网格资源、部署网格作业、执行和控制网格应用的协议。同时,GCM提供了一些附加的功能,例如生命周期管理,接口管理; 2)解决网格实现的多样性,当今的一般做法是为每个网格系统编写与其交互的网格系统的驱动程序来实现不同网格中间件的互通。GCM有一个统一的接口集。不同网格之间可以通过调用这个统一的接口集来实现互通; 3)从网格的层次来看,GCM是部署在所有网格之上的。所有的网格系统可以抽象为一些核心模块,GCM将这些核心模块组件化。因此,GCM是部署在所有网格系统之上的,对于现存的网格系统不需要做任何改动; 以上三点保证了在不改变现在有网格环境和中间件的基础上,使用GCM组件模型来实现不同网格中间件的互通。同时GCM是动态部署的,这更增加了网格应用的灵活性。而且GCM本身是轻量级的组件模型,由GCM带来的对网格系统性能的影响可以降到最低。
虽然网格中间件各不相同,遵守着各自的规范和标准,也有着各自不同的实现。但是总的来说,目前所有的网格中间件可以抽象为四大模块执行模块、数据模块、信息模块和安全模块,和三个层次网格管理层、核心模块层和资源层。
经过对现有所有网格系统的调研,我们可以从中抽象出网格中间件的最核心的四个模块。以下介绍的四个模块是现今所有网格中间件都具有的核心模块,一个系统如果具有了这四个模块就能完成网格的基本功能。
1.执行模块 执行模块是整个网格中间件的核心。负责网格作业的部署、执行、调度以及生命周期管理。同时执行模块还需要监控和协调不同的网格作业。
2.数据模块 任何作业的执行都离不开输入数据和输出数据。对于网格作业来说,输入输出的数据量相当大。数据模块就是为网格管理所有的数据。网格是一个异构的、动态的环境。网格数据管理和传统的数据管理不同,需要处理数据的透明化、虚拟化等问题,以提供给用户一个统一的视图。
数据管理包括两方面的基本功能 ·存储管理将所有异构的底层网格资源统一管理,使之成为一个统一的资源。存储管理功能将成千上万个数据资源虚拟化为一个磁盘,从用户的角度来看,看到的是一个容量极大的数据资源。存储管理类似于操作系统的文件系统功能,它提供最基本的文件操作。
·数据运输上传/下载数据是网格作业执行的关键步骤。网格用户通过数据运输功能上传网格作业所需要的输入数据,网格作业下载输入数据,当作业执行完成时,网格作业将输出数据通过数据运输上传到网格系统中,用户可以再次通过数据运输下载输出结果以供科学研究分析。
3.信息模块 信息模块完成资源发现的功能。这里所说的资源包括物理资源和网格可以提供给用户的服务。物理资源又包括计算资源和存储资源。信息模块掌控着整个网格中的资源,对网格的正常运行起着至关重要的作用。不同网格中间件的信息模块的整合的难点在于,不同的网格中间件有着各自不同的资源表示方式。有一些中间件使用URL来表示一个资源,有的使用XML文档来表示资源。由于XML是一种可扩展的标记语言,为了适应现有的网格中间件,同时能够满足未来的需求,本发明采用了基于XML文档资源的表示方式 4.安全模块 现有的网格中间件大多采用GSI(Grid Security Infrastructure)安全框架。GSI框架是多种现有的安全技术的整合。
整个网格除了这四个核心模块外,还有底层的网格资源(包括物理资源和服务),还有上层的管理模块。所以一个典型的网格系统可以分为一个三层的系统,如图2所示。
1.资源层资源层由成千上万个计算节点和存储节点构成; 2.核心模块层核心模块层是建立在资源层基础之上的,由许多计算单元和存储单元构成。这里所说的计算单元和存储单元是物理资源的抽象; 3.网格管理层诸如作业管理器、工作流引擎等。这一层主要建立在核心模块层之上,为网格应用提供更为方便和强大个功能; 这三层可以分别使用GCM组件模型进行组件化,来实现网格中间件的互交互。
1.资源层互交互将所有计算节点和数据节点分别组件化为计算组件和数据组件。这相当于在每个网格资源上包装了一层,使不同的网格资源具有统一的使用方式。这样,任何一个网格应用都可以通过这个统一的使用方式使用由不同网格中间件构建的网格系统。这是一种最灵活的模式。
2.核心模块层互交互将网格的核心模块组件化。这一层比资源层抽象级别高,主要是将网格的计算单元和存储单元组件化。
3.网格管理层互交互在核心模块层之上是网格管理层。网格管理层的抽象级别比核心模块层更高。在这一层进行组件化能最大程度的发挥不同网格中间件的特点。
由不同层次的组件化来实现的网格中间件之间的互通各有优劣。本发明是针对网格管理层使用GCM组件模型进行网格核心模块的组件化,以实现不同网格中间件之间的互通。这种方法有着诸多优点。首先,这种方法具有很大的灵活性。它可以充分利用GCM和各个不同网格中间件的优点。网格开发者可以使用GCM中的控制器来控制各种不同的组件,同时他们可以从不同特性的网格中间件中扬长避短。例如,CGSP的数据模块提供一个虚拟的数据管理模块,这是Globus Toolkit的GridFTP所不具备的。一个网格应用可以在Globus Toolkit的计算单元上进行计算,同时利用CGSP方便的虚拟化存储功能来实现数据的虚拟输入输出。同时,对网格核心模块的组件化实现的网格中间件的互通,还可以对不同网格起到扬长避短的作用。例如,一个生物信息学的网格,作业调度器采用的调度策略对生物信息学应用具有很好的效果,如果这个网格被用作其他用途,这种调度方法可能会得到很差的结果。对核心模块的组件化避开了上层网格管理层的调度策略,可以根据具体的应用来配置调度策略。从而得到很高的性能。
本发明将网格三层模型中的网格管理层进行组件化,利用GCM组件模型将网格的执行模块、数据模块、信息模块以及安全模块包装为组件,每个组件可以调用不同网格中间件对应的执行、数据、信息和安全模块,以实现不同网格中间件之间的互通。
组件化过程为 1.将一个通用的网格中间件的网格管理层抽象为前文所述的网格四大核心模块。
2.将网格四大核心模块组件化为子组件。组件化后的每个模块需要暴露标准的接口,不同的中间件的四个核心模块组件化后都具有统一的接口。以下是四个模块组件化的具体细节以及所需要暴露的标准接口。
·执行模块的组件化 执行模块负责一个网格任务的执行、任务状态的查询、提供任务合适的参数以及得到返回结果等。所以将不同网格中间件的执行模块组件化后,执行组件统一的接口为 表1执行组件的统一接口 ·数据模块的组件化 数据模块负责网格数据管理子系统,需要为用户提供虚拟化的存储,每个用户有自己的目录和文件。用户能够上传、下载文件,创建虚拟文件夹,查询文件及目录,删除文件和目录等。不同网格中间件的数据模块组件化后,数据组件统一接口为 表2数据组件的统一接口 ·信息模块的组件化 信息模块掌控整个网格资源(物理资源和服务)。信息模块必须提供资源的注册和查询功能。不同网格中间件的信息模块组件化后,信息组件统一接口为 表3信息组件的统一接口 ·安全模块的组件化 安全模块控制用户验证。不同网格中间件的安全模块组件化后,安全组件统一接口为 表4安全组件的统一接口 3.根据网格应用将不同的子组件组合为复合组件。
4.将整个复合组件部署、执行。
图3中一个网格作业通过组件化后的网格核心模块,分别调用了ChinaGrid SupportPlatform(CGSP),Globus Too]kit 4(GT4)以及EGEE gLite的网格模块,实现了不同网格间的互通。
将网格核心模块组件化后就可以将整个网格应用每个步骤所调用到的原子组件进行组合,形成一个复合组件。然后将整个复合组件部署执行。
对于一个典型的网格作业来说,要经历如下步骤 1.用户调用安全组件通过网格的验证。
2.查询网格信息组件,得到可用的网格资源。
3.调用数据组件,将所需要的输入文件上传到网格虚拟数据空间中。
4.上传可执行文件。
5.填入所有参数。
6.调用执行组件执行网格任务。
7.通过执行组件得到任务的状态。
8.任务执行结束,取得输出文件。
图4显示了一个网格作业的执行流程。通过图4可以清楚的看到,我们的方法将执行流程中所有的一切都看做组件(子组件和复合组件)。因为每一个组件是相互独立的,执行组件、数据组件、信息组件和安全组件都相互独立互补干扰,这些组件可以调用不同网格中间件的相应的核心模块,从而实现了一个作业的不同部分在不同的网格中间件上执行,通过GCM组件模型实现了不同网格中间件的互交互。
图5给出了一个网格作业在本发明下的执行流程,表5结合前文中列出的各个核心模块的接口,描述了该流程。
表5网格作业执行流程描述 硬件环境1GHz CPU,512M内存,1G硬盘,10M网络带宽 软件环境Linux Red Hat F3系统,Java SDK 1.5-04环境 使用本发明主要分两步根据网格应用确定需要的网格组件和部署、执行。
根据具体的网格应用的流程确定需要调用的子组件的个数。将各个子组件根据具体的网格应用流程组合起来,形成一个复合组件。将组合好的复合网格组件按照GCM的规范要求部署执行。
下面以一个生物信息学中DNA序列比对的例子来说明互交互的方法。整个流程如下用户通过安全组件到网格系统验证身份,当通过身份验证以后,用户可以通过信息组件来获得网格中的可用资源,然后用户通过数据组件获得所需要比对的DNA序列的原始文件,DNA序列比对是一个并行过程,分为两条路同时进行。第一条路,执行组件调用CAP3应用程序(该程序是生物信息学程序,以下提到的Tigr,Blast也是生物信息学程序),然后将CAP3处理过的输出文件通过数据组件传到虚拟数据空间,执行组件调用Blast并将刚才的输出文件作为输入,最后再调用数据组件将Blast的结果传到虚拟数据空间。另一条路也是如此,不同的是,一开始调用的不是CAP3,而是Tigr。整个流程需要一个安全组件,一个信息组件,五个数据组件和四个执行组件。每个组件调用的是不同的网格中间件中的模块。将这些原子组件根据该应用的流程组合成复合组件,如图6。然后,将组合的复合组件根据GCM的规范要求部署执行。
权利要求
1.基于组件的网格中间件互交互方法,其特征在于,所述方法是在网格上依照如下步骤实现的
步骤(1),把网格划分为以下三层基本结构
资源层,由许多计算节点和存储节点构成;
核心模块层,建立在所述资源层之上,由许多计算单元和存储单元构成,所述计算单元和存储单元是物理资源的抽象;
网格管理层,至少它包含作业管理器和工作流引擎,建立在所述核心模块层之上,为网格应用服务;
步骤(2),利用网格组件模型GCM把所述网格管理层按以下步骤进行组件化;
步骤(2.1),把所述网格管理层抽象化为下述四个模块执行模块、数据模块、信息模块和安全模块,构成一个网格中间件,其中,
执行模块,是所述网格中间件的核心,它负责网格作业的部署、执行、调度以及生命周期管理,同时还监控和协调不同的网格作业;
数据模块,为网格管理所有的数据,为用户提供一个统一的视图,执行以下操作
存储管理,把所有的数据资源虚拟化为一个磁盘,同时提供最基本的文件操作;
数据运行,用户上传网格作业需要的输入数据,下载网格作业的结果数据;
信息模块,掌控整个网格资源,其中包括物理资源和网格提供给用户的服务资源,采用可扩展标记语言XML来表示资源;
安全模块,采用网格安全框架GSI进行网格认证;
步骤(2.2),按以下步骤把所述执行模块、数据模块、信息模块和安全模块用所述GCM网格组件模型包装为子组件
步骤(2.2.1),把所述四个模块各自组件化为子组件;
步骤(2.2.2),执行模块组件化后的对外统一接口用操作描述的方式表示为传入需要执行的命令、从虚拟数据空间取得需执行的文件、填入网格任务各个参数,其中包括输入的文件、执行的网格任务、得到的网格任务的状态,以及从虚拟数据空间得到的执行结果;
步骤(2.2.3),数据模块组件化后的对外统一接口用操作描述的方式表示为从本地上传文件到虚拟数据空间、从虚拟数据空间下载文件到本地、以所述XML形式返回所有网格文件、在虚拟数据空间创建一个目录、删除虚拟数据空间的文件、以及删除虚拟数据空间的目录;
步骤(2.2.4),信息模块组件化后的对外统一接口用操作描述的方式表示为注册一个新添加的网格资源,以及浏览网格中已存在的资源;
步骤(2.2.5),安全模块组件化后的对外统一接口是用户验证接口;
步骤(3),按一下步骤把步骤(2)所得到的子组件进行组合,形成一个复合组件,以便每个组件调用不同网格中间件对应的执行、数据、信息和安全子组件,以实现不同网格中间件之间的互通;
步骤(3.1),用户调用安全组件通过GSI安全体系进行网格验证;
步骤(3.2),用户查询网格的信息组件,得到可用的网格资源;
步骤(3.3),用户调用数据组件,把所需的输入文件上传到网格虚拟数据空间中;
步骤(3.4),用户上传应该执行的文件,填入网格任务所需要的参数;
步骤(3.5),用户调用执行组件执行网格任务;
步骤(3.6),用户通过执行组件得到任务的状态;
步骤(3.7),任务执行结束,用户取得输出文件。
全文摘要
基于组件的网格中间件互交互方法属于高性能网格计算技术领域,其特征在于,依次含有以下步骤把网格分为资源层、核心模块层和网格管理层;把网格管理层分为执行、数据、信息和安全四个模块;利用网格组件模型GCM把所述四个模块组件化为子组件;再把所得到的各个子组件进行组合,形成一个复合组件,以便各子组件能调用不同网格中间件所对应的执行、数据、信息和安全子组件,以实现不同网格中间件之间的互交互。本发明具有通用性强、可扩展性好、可调用多个不同网格中的网格资源来执行网格作业、组件的开销小、不影响网格原有的高性能的优点。
文档编号G06F9/46GK101226491SQ200810057410
公开日2008年7月23日 申请日期2008年2月1日 优先权日2008年2月1日
发明者郑纬民, 武永卫, 黄炜元 申请人:清华大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1