一种用于网格计算的模型驱动方法

文档序号:6639379阅读:294来源:国知局
专利名称:一种用于网格计算的模型驱动方法
技术领域
本发明是一种新型的网格计算平台开发方法,并在此平台的基础上给出了开发应用的拓扑结构。主要用于实现网格计算的快速开发,提高模型的重用性。解决了网格计算应用开发的周期长、可视化操作差等缺点。
背景技术
网格技术是随着Web技术的发展而出现的一种新兴技术,它较好的适应了Internet的特点,能充分实现资源的共享和任务之间的协作完成。目前,网格环境中有许多计算资源被闲置,如何充分利用这些资源,一方面需要构建网格的计算基础设施,同时还需要有好的网格应用开发支撑平台。尽管GT3(GlobusToolkit 3.x,Globus工具箱3)已经为网格应用开发提供了功能支持,所有的网格服务遵循OGSA(Open Grid Service Architecture,开放网格服务)/OGSI(OpenGrid Service Infrastructure,开放网格服务基础),但是在开发速度和可视化方面还存在着不足。
由于模型驱动方法(MDA)有着诸多优点,它在电子商务、移动计算和分布式计算等方面都有较好的应用前景,对模型驱动开发方法的研究正成为学术界和工业界的热点之一。模型驱动开发方法的关键技术包括平台独立模型PIM(Platform-independent model)的建立、平台相关模型PSM(Platform-sepecificmodel)的建立、模型的可视化操作和代码的自动生成。而可视化显示和代码自动生成是影响网格技术广泛使用的重要因素之一,因此研究网格计算平台下的模型驱动开发方法具有重要意义。
网格计算平台的模型驱动开发过程主要包括三个方面(1)网格计算平台体系结构的设计(2)基于MVC(Model-View-Control,模型-视图-控制)体系的MDA设计流程(3)基于网格计算平台的应用开发流程。目前对前两个方面的研究已经实现,可以通过设计的网格计算平台从一个网格服务从接口定义到客户端的请求自动完成;也可以通过自动生成网格服务的可视化显示,在显示模型上通过点击操作自动生成网格服务流程中需要的代码,同时对生成的代码进行修改,完成模型间的相互协作,达到整个网格服务流程的一致性。当前国内外对模型驱动方法的研究主要是基于J2EE的Bean模型来进行软件开发的,关于网格计算平台进行模型驱动还是尝试阶段,在设计过程中对于PIM和PSM分别是通过IBM公司的Eclipse平台中增加平台建模框架EMF(Eclipse Modeling Framework)和GEF(Graphical Editing Framework,图形编辑框架)插件来实现的。

发明内容
技术问题本发明的目的是提供一种可视化用于网格计算的模型驱动方法,来解决网格计算服务基于GT3的开发速度慢和操作烦琐的问题,与过去使用的开台软件开发方法不同,本方法是一种通过建立模型来驱动生成代码的方法,通过使用本发明提出的方法可以达到快速发布一个网格服务的目的。
技术方案本发明的方法是一种模型驱动的软件开发方法,通过使用GT3开发网格服务和结合IBM公司研发的开源项目Eclipse的使用而提出的,其目标是通过开源项目中的平台建模框架EMF(Eclipse建模框架)/GEF(图形编辑框架)插件来完成网格服务的可视化编程和代码的模型驱动生成。
以下为本发明中对应的中英文术语


一、体系结构图1给出了网格计算平台(Gbuilder)的设计体系结构,它的功能部件包括命令控制器、解释器、模型驱动器、创建工厂、插件管理器、适配工厂/适配器、图形用户接口、策略集、模型库和配置集。
下面我们给出几个主要部分的具体说明模型驱动器模型驱动器的概念借鉴了模型驱动的开发(MDA)的概念,通过模型至少是预先定义的一些模型允许用户完成基于模型的网格应用开发,模型驱动器用来处理这些模型,一个简单的模型驱动器的实现是基于状态机和组合模式两种设计模式,我们采用组合模式,将EMF插件提供的模型和GEF插件提供的可视化图形编辑结合起来。根据网格的应用类型我们将网格计算分为数据密集、任务密集、普遍共享等几种形式,并将模型安装这些形式进行分类从而方便最终用户的使用。
适配工厂/适配器适配工厂/适配器是对客户应用的封装,当然如果通过自动生成,组件可以跨过适配工厂直接调用API(Application Program Interface,应用程序接口),当然,增加效率的同时牺牲了可扩展性,因为并不知道被调用的Toolkit(工具箱)会提供怎样的API,适配工厂/适配器通过定义满足通用框架的API来适配具体的Toolkit从而可以使得Toolkit对用户透明,对未支持的API,直接返回异常,初步的API定义,我们参照OGSA(Open Grid ServicesArchitecture,开放网格服务框架)和Globus Toolkit来进行。
图形用户接口良好的用户接口是开发符合用户需求的软件的一个很重要的方面,通过增加图形用户接口的数量和质量可以大大提供最终用户的体验。我们的图形用户接口将基于Eclipse的JFace/VE等来开发,其基本面是基于SWT的。
二、网格计算平台GBuilder的实现与应用方案1、GT3实现网格服务流程通过使用GT3来部署网格服务,得到网格服务的基本执行流程,如图2所示,包括网格服务客户端的请求发起和网格服务器端的服务发布。
主要工作流程1)网格服务器端流程步骤1设置与GT3相关的环境变量,并使开发的网格服务的客户和服务器端在同一目录下;步骤2安装Apache Axis,使%Java_home%/jre/lib下包括%Apache Axis%/lib下所有的*.jar文件;步骤3定义网格服务接口和服务实现的Java文件,对应后面的端口类型PortType;步骤4直接书写WSDL文件或通过step3定义的Java接口和实现文件来生成WSDL,生成*(如果是数学服务就命名为Math)Service.wsdl文件;步骤5利用JDK通过编译由step4生成的Java文件,得到服务器端的Stubs文件;步骤6将Stubs文件进行打包生成对应服务的Jar文件,进一步将Jar文件打包成Gar文件;步骤7部署由step1~step5生成的网格服务文件,向客户端提供唯一的GSH(=http∥IP_aPort/GSR(Grid Service Resource,网格服务资源),GridService Handle,网格服务句柄)。
2)网格客户端流程步骤1编写请求网格服务的客户端程序,同时设置GT3及相关的环境变量;步骤2编译客户端程序,生成客户端请求执行文件;步骤3执行该请求文件,向网格服务器端提供一个对应的GSH(http∥IP_cPort/Package);步骤4如果服务器端有相应的网格服务提供,则完成用户的任务,在客户端显示执行结果,反之,则提供一个报错消息;步骤5网格服务生命周期结束。
2、MDA方法实现网格服务流程网格平台的开发采用IBM公司提供的开放源码开发平台Eclipse3.1(中文版),该平台下的EMF插件和GEF插件为实现和体现MDA思想提供了诸多的方便。在网格计算平台(Gbuilder)中实现由模型到自动生成代码的过程①生成PIM模型—>②映射成PSM模型—>③自动生成代码,具体设计思想和实现中用到的技术如图3所示。网格计算平台的模型驱动设计过程采用典型的三层结构应用分析层、应用建模层和应用表示层。应用分析层通过对GT3工具包提供的网格服务流程思想,利用EMF插件方便快捷的建立网格计算平台的平台无关模型PIM;应用建模层主要利用现有的PIM与PSM之间的转换技术,结合GEF插件来设计出与具体应用平台相关的PSM模型;应用表示层将生成的PSM模型通过Xdoclet和Velocity代码生成引擎,在Eclipse开发平台中利用与系统无关的轻量级的图形显示功能SWT和Swing来进行流程的可视化设计。
主要工作流程步骤1将图2中左下角的模型模型基本元素,通过EMF插件进行PIM建模,对源文件采用UML类图来定义模型、执行模型采用UML事件来定义。实现时将这些基本元模型采用SWT设计成相应的可操作图标,放图标显示区里,支持用户的拖拉操作;1)EMF模型定义层通过XML、UML和Java来定义模型;2)EMF模型表示层将定义的模型转换为XMI、EMF Ecore和JavaAnnotation;3)EMF模型建立层生成EMF核心模型;4)EMF模型生成成通过EMF提供的EMF.Edit和EMF.Generate来编辑和生成PIM模型;步骤2将建立好的PIM模型通过GEF插件来生成可视化的界面,得到图2所示的网格服务工作流,在编辑区支持对PIM模型的连接、拖拉、建立和修改等操作,实现时采用GEF中Draw2D提供的PolylineConnection类来建立连接,其它操作都通过包org.eclipse.draw2d.widgets和org.eclipse.draw2d.widgets.event.*实现的;步骤3实现图标区PIM和编辑区PSM之间的同步操作;步骤4通过拖拉等可视化操作生成网格服务端和客户端的源文件,并自动调用Tomcat容器来部署网格服务;步骤5如果部署成功,则转到步骤6,反之则转到步骤1进行修改;步骤6通过客户端来调用服务器端提供的网格服务,如果成功,则一个网格服务生命周期结束,否则转到步骤4。
3、基于网格平台的应用开发拓扑结构如图4所示,在实现基于Gbuilder平台开发的网格应用拓扑结构分为服务请求层、服务注册/查找层和服务提供层三层体系结构,并且各层之间是通过SOAP(Simple Object Access Protocol,简单对象访问协议)相互通信的。
第一层服务请求层是网格环境下的客户提出的任务请求,他首先向服务中心提交的参数只是任务的描述集合。这里对每个任务可形式化表示为TK_c=<IP_A,GSH,Parameter>,其中IP_A为局域网环境下客户端的IP地址;GSH是实现该客户请求任务的网格服务提供地址;Parameter是一个集合,如对数学运算任务,可能是包括操作符和操作数,对图形填充包括边界点和填充区域;第二层服务注册查找层是客户和服务之间交互的中心环节,它有二方面的功能。
1)服务提供层向其提交相应的网格服务的GSH值和任务描述接口;2)服务请求层向其发出相应的网格服务GSH和任务描述。
第三层服务提供层由不同的虚拟组织构成,负责向服务中心自动提交其具有的网格服务对应的任务描述TK_s=<IP_A,GSH,Parameter>,如果客户请求层的TK_c中的GSH和Parameter两个参数与TK_s中的完全匹配就能满足要求并完成相应的任务,否则就说明还没有哪个虚拟组织VO可以提供客户的请求。
4、基于应用拓扑结构下的图形填充应用实现时序图在网格应用实现拓扑结构的基础上,我们在Gbuilder平台上进行了图形填充的实验,通过该实例来体现该平台在设计开发过程的优越性和网格计算的分布性及协作性。实验通过一个局域网内的N台(N=8)配置相同的机器组成一个虚拟组织、一个客户端程序和一个服务注册中心组成的实现环境。每个服务提供者分成两个服务子项,一个用于填充整个图形,另一个用于填充部分图形,并以不同的TK_s注册在注册中心。每个客户端提交服务请求后,由注册中心负责查找相应的与之TK_c相匹配的任务来响应,如果没有则返回相应的消息给客户并结束这次客户请求。所以,得到如图6所示的网格计算平台下的图形填充执行流程。
步骤21客户端向UDDI中心发送图形填充请求,同时各服务器端向UDDI中心发布服务;步骤22服务中心对客户请求的服务进行查找,最简单的查找方法就是遍历法,也可以考虑引入智能查找算法;步骤23对查找结果进行匹配判断,如果没有相应的请求服务,则跳转步骤27;步骤24如果匹配成功,则需进行任务分解,如果是部分填充,则将任务分配到虚拟组织下已注册该服务的服务器端,如果是全部填充,刚无需进行任务分解,直接找一台最优性能的机器完成该任务;步骤25服务器端进行图形的填充任务,客户端同步显示填充进度,让用户能实时了解任务的执行情况;步骤26当客户端图形填充完毕,说明这次的网格服务生命周期结束;步骤27向客户端提交“目前没有完成客户请求任务的服务端”的提示信息,并结束。
有益效果本发明方法提出了网格计算平台软件设计的新方法,主要用于解决网格服务流程的可视化实现问题,通过使用本发明提出的方法可以避免通过GT3开发网格服务的复杂性、可以提高设计方法的灵活性,可以有效的达到快捷部署一个网格服务的目的。模型驱动方法及其平台具有如下优点1)代码重用性高利用模型驱动开过,最主要的工作是建立PIM模型和PSM模型,其中PIM是跨平台的,与应用无关的,PSM是与平台相关的。所以对于建立好的PIM模型可以在任何平台上重复利用。
2)开发周期短模型驱动开发方法不同与传的过程化设计方法和模块化设计方法,它的主要工作在于给系统建模,建模可以利用现有的工具,这里采用的是EMF插件和GEF插件。一但模型建立好后,代码可以利用现有的代码生成引擎(如XDoclet和Velocity等)自动生成。
3)网格服务流程的可视化实现;为网格开发中的一些源文件(服务器端的接口文件、实现文件和WSDD文件等)提供建立向导和编辑环境。
4)网格服务的快速部署和发布;当网格服务需要的源文件生成以后,将网格服务的部署容器(设计过程中采用Tomcat)可以通过按钮操作来启动、暂停、重启和停止。同时也可以通过按钮来自动将服务器端的源文件生成相应的Stubs文件。
5)支持网格应用的快速开发;开发网格平台的目标就是为了能更好的方便用户开发网格应用,为了能更好的体现该平台在应用开发上的优点,提出了一种通用的网格服务应用开发的拓扑结构,该结构采用典型的网格开发的三层C/S(Client/Server,客户/服务器)结构。


图1是网格计算平台软件Gbuilder的体系结构示意图。图中包括模型驱动器、适配工厂/适配器和图形用户接口等功能模块。
图2是通用网格服务客户端和服务器端的实现流程图。图中左下角一些基本元素为EMF建模对象。
图3是基于MVC体系的网格平台MDA方法实现流程图。表示本发明方法的流程示意图。
图4是网格平台的应用实现拓扑结构图。表示基于本发明的一个通用应用框架。
图5是网格平台下的图形填充实现时序图。表示基于本发明的一个具体应用实现流程。
图6为网格计算平台GBuilder的MDA实现流程图。
图7为基于网格计算平台GBuilder的网格应用开发流程图。
具体实施例方式
具体实施分成两部分完成,一部分是网格计算平台Gbuilder实现,另一部分是基于该平台的应用实现。
一.网格计算平台的MDA方法实现主要实现流程步骤1将图2中左下角的模型基本元素,通过EMF插件进行PIM建模,对源文件采用UML类图来定义模型、执行模型采用UML事件来定义。实现时将这些基本元模型采用SWT设计成相应的可操作图标,放图标显示区里,支持用户的拖拉操作;1)EMF模型定义层通过XML、UML和Java来定义模型;2)EMF模型表示层将定义的模型转换为XMI、EMF Ecore和JavaAnnotation;3)EMF模型建立层生成EMF核心模型;4)EMF模型生成成通过EMF提供的EMF.Edit和EMF.Generate来5)编辑和生成PIM模型;步骤2将建立好的PIM模型通过GEF插件来生成可视化的界面,得到图2所示的网格服务工作流,在编辑区支持对PIM模型的连接、拖拉、建立和修改等操作,实现时采用GEF中Draw2D提供的PolylineConnection类来建立连接,其它操作都通过包org.eclipse.draw2d.widgets和org.eclipse.draw2d.widgets.event.*实现的;步骤3实现图标区PIM和编辑区PSM之间的同步操作;步骤4通过拖拉等可视化操作生成网格服务端和客户端的源文件,并自动调用Tomcat容器来部署网格服务;步骤5如果部署成功,则转到步骤6,反之则转到步骤1进行修改;步骤6通过客户端来调用服务器端提供的网格服务,如果成功,则一个网格服务生命周期结束,否则转到步骤4。
二.网格计算的应用实现框架实现基于Gbuilder平台开发的网格应用拓扑结构分为服务请求层、服务注册/查找层和服务提供层三层体系结构,并且各层之间是通过SOAP(SimpleObject Access Protocol,简单对象访问协议)相互通信的。
第一层服务请求层是网格环境下的客户提出的任务请求,他首先向服务中心提交的参数只是任务的描述集合。这里对每个任务可形式化表示为TK_c=<IP_A,GSH,Parameter>,其中IP_A为局域网环境下客户端的IP地址;GSH是实现该客户请求任务的网格服务提供地址;Parameter是一个集合,如对数学运算任务,可能是包括操作符和操作数,对图形填充包括边界点和填充区域;第二层服务注册查找层是客户和服务之间交互的中心环节,它有二方面的功能。
1)服务提供层向其提交相应的网格服务的GSH值和任务描述接口;2)服务请求层向其发出相应的网格服务GSH和任务描述。
第三层服务提供层由不同的虚拟组织构成,负责向服务中心自动提交其具有的网格服务对应的任务描述TK_s=<IP_A,GSH,Parameter>,如果客户请求层的TK_c中的GSH和Parameter两个参数与TK_s中的完全匹配就能满足要求并完成相应的任务,否则就说明还没有哪个虚拟组织VO可以提供客户的请求。
基于网格计算平台Gbuilder的应用实现流程为1).客户端向UDDI中心发送图形填充请求,同时各服务器端向UDDI中心发布服务,2).服务中心对客户请求的服务,采用遍历法或智能查找算法,3).对查找结果进行匹配判断,如果没有相应的请求服务,则跳转到7);4).如果匹配成功,则需进行任务分解,如果是部分填充,则将任务分配到虚拟组织下已注册该服务的服务器端,如果是全部填充,刚无需进行任务分解,直接找一台最优性能的机器完成该任务;5).服务器端进行图形的填充任务,客户端同步显示填充进度,让用户能实时了解任务的执行情况;6).当客户端图形填充完毕,说明这次的网格服务生命周期结束;7).向客户端提交“目前没有完成客户请求任务的服务端”的提示信息,并结束。
权利要求
1.一种用于网格计算的模型驱动方法,其特征在于该方法由网格计算平台的模型驱动方法和基于网格计算平台的应用方法组成,其中,网格计算平台的模型驱动方法实现步骤为步骤1).将网格服务客户端和服务器端的实现流程中的每一步看作是系统无关模型的一个基本元素,通过平台建模框架插件进行平台独立模型建模,对源文件采用统一建模语言类图来定义模型、执行模型采用统一建模语言事件来定义;实现时将这些基本元模型采用小部件工具集设计成相应的可操作图标,放图标显示区里,支持用户的拖拉操作;a)平台建模框架模型定义层通过可扩展建模语言、统一建模语言和瓜哇语言来定义模型;b)平台建模框架模型表示层将定义的模型转换为扩展建模语言建模接口、平台建模框架核心和瓜哇语言注释;c)平台建模框架模型建立层生成平台建模框架核心模型;d)平台建模框架模型生成通过平台建模框架提供的平台建模编辑框架和平台建模生成框架来编辑和生成平台独立模型;步骤2).将建立好的平台独立模型通过图形编辑框架插件来生成可视化的界面,得到网格服务工作流,在编辑区支持对平台独立模型的连接、拖拉、建立和修改等操作,实现时采用图形编辑框架中二维图形插件提供的对象联接类来建立连接,其它操作都通过小部件图形绘图包和小部件图形事件类实现的;步骤3).实现图标区平台独立模型和编辑区平台相关模型之间的同步操作;步骤4).通过拖拉等可视化操作生成网格服务端和客户端的源文件,并自动调用网格容器来部署网格服务;步骤5).如果部署成功,则转到步骤6),反之则转到步骤1)进行修改;步骤6).通过客户端来调用服务器端提供的网格服务,如果成功,则一个网格服务生命周期结束,否则转到步骤4);基于网格计算平台的应用实现流程为步骤21).客户端向通用描述发现调用中心发送图形填充请求,同时各服务器端向通用描述发现调用中心发布服务;步骤22).服务中心对客户请求的服务,采用遍历查找算法;步骤23).对查找结果进行匹配判断,如果没有相应的请求服务,则跳转到步骤27);步骤24).如果匹配成功,则需进行任务分解,如果是部分填充,则将任务分配到虚拟组织下已注册该服务的服务器端,如果是全部填充,刚无需进行任务分解,直接找一台最优性能的机器完成该任务;步骤25).服务器端进行图形的填充任务,客户端同步显示填充进度,让用户能实时了解任务的执行情况;步骤26).当客户端图形填充完毕,这次的网格服务生命周期结束;步骤27).向客户端提交“目前没有完成客户请求任务的服务端”的提示信息,并结束。
全文摘要
网格计算平台的模型驱动开发方法是继OOP(Object-Oriented Program,面向对象编程)开发思想之后提出的一种新的软件设计方法学,该方法目的是实现当前各种平台下的软件实现互操作和实现所开发的软件具有跨平台两大特性。网格计算正是在当前网络环境下实现异构环境下软硬件资源的共享和协作。该方法一方面可以方便网格用户开发网格计算,另一方面使开发的网格计算平台具有跨平台和互操作的优点。同时当前许多开源的软件为我们设计网格计算平台的模型驱动开发提供了便利,我们在设计过程中分成应用分析层、应用建模层和应用实现层的三层体系结构来设计网格计算平台的。
文档编号G06F9/44GK1731351SQ20051009403
公开日2006年2月8日 申请日期2005年8月26日 优先权日2005年8月26日
发明者王汝传, 季一木 申请人:南京邮电大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1