摘 要:利用网格基础中间件GT3 (Globus Toolkit 3. x)进行网格服务设计时代码工作量大,且调试过程不清晰,而在所有的网格服务或同一类型的服务中都有着一些共同的实现模块和操作步骤,对这些部分用模型和模板来实现将减少重复的工作量。所以文中在开放源码的开发工具Eclip se平台上实现了基于GT3开发网格服务的流程,该实现的最大目标就是代码自动化生成,达到终极编程的目的。采用的思想是MDA,并给出了GBuilder平台下用MDA方法实现网
摘 要:利用网格基础中间件GT3 (Globus Toolkit 3. x)进行网格服务设计时代码工作量大,且调试过程不清晰,而在所有的网格服务或同一类型的服务中都有着一些共同的实现模块和操作步骤,对这些部分用模型和模板来实现将减少重复的工作量。所以文中在开放源码的开发工具Eclip se平台上实现了基于GT3开发网格服务的流程,该实现的最大目标就是代码自动化生成,达到终极编程的目的。采用的思想是MDA,并给出了GBuilder平台下用MDA方法实现网格服务工作流的设计框架。
引 言随着现代高科技的发展,以网络为基础的科学活动环境已经成为当前国内外研究的热点和前沿领域,已经引起各国政府、科研部门和业界的极大关注。当前网格计算的研究内容主要围绕以下几个方面展开: (1) 底层支撑软件的研究,目前有代表性的有Globus Toolkit; (2) 利用底层支撑软件的大规模应用; (3) 利于网格快速开发应用和部署的辅助软件,例如IBM网格计算工具包; (4) 其他研究性的辅助软件:网格计算的仿真工具如GridSim等。但是有利于网格快速开发应用和部署的辅助软件目前可见的成果并不多,各个研究者在开发网格应用的时候不得不花费大量的时间在安装、配置、调试等方面,甚至利用像Globus Toolkit这种工具搭建一个小型的网格计算实验环境都不是一件容易的事情,所以成为构建Gbuilder平台的初衷, 其概念模型如图1 所示。Gbuilder就是一种网格计算辅助开发和部署的软件,其主要目标是利用先进的软件技术开发一个适合于各种网格计算工具箱的、提供网格应用建模、调试、部署和测试功能的通用的辅助的软件平台。该平台的目的有以下几点: (1) 最大化的降低开发网格应用的难度; (2) 通过模型和配置使新应用从示范和典型应用中获利; (3) 通过软件组件接口技术上层应用对工具箱的依赖,例如可以平滑的用新的Toolkit代替原来的Globus Toolkit,从而保护现有的投资。
MDA方法的工作原理和实现MDA的概念和原理模型驱动体系结构MDA是OMG (对象管理组织)于2001年7月发布的一种基于模型的体系结构,可以说MDA的初衷是为了解决软件互操作、可移植性和可重用性等问题。MDA中的基本概念有模型、抽象、求精、视图、缩放和平台。(1) 模型是对系统的一部分结构、功能或行为的描述; ( 2) 抽象:在一个客观系统中可以挖掘出无穷多的细节,一个系统的任何规约都只是从一个特定的角度描述了这个系统的某个层面,都是对这个客观系统的某种程度上的抽象; (3) 视图:这种特定的角度(或者说抽象程度)就是视图; (4) 求精就是现实化; (5) 缩/放:从抽象模型中的一个对象(关系)到求精模型中的多个对象(关系)的过程称为放,反之称为缩; (6) 平台:独立于软硬件环境的一种新型开发环境,该平台将模型分成平台独立模型(PIM)和平台相关模型( PSM) ,实现了系统的功能描述和系统在特定平台上的实现分离开。PIM是对系统的功能和结构的抽象描述,PSM是在特定的目标平台上对系统的功能求精过程,但不是等同于具体与平台相关的计算机语言,而是生成模型语言。
OMG规定了4种PIM和PSM之间的映射,(1) P IM→P IM:要求进一步对P IM模型的功能增强、求精和过滤,将分析模型映射成设计模型P IM;(2) P IM→PSM:将平台无关的设计模型映射到平台相关的实现模型; ( 3) PSM→PSM:同( 1)一样是对PSM模型的求精; (4) PSM→P IM是(2)的逆变换,从不同的PSM中提取与平台无关的模型或关联模型。开发平台目前有很多,所以模型驱动的企业计算也很多,它们如何实现和体现MDA思想,最主要考虑的是PIM和PSM之间的映射,如图2所示。从图2中可见,MDA一方面能够创建出机器可读的PSM和高度抽象的P IM,这些模型独立于任何具体的实际开发技术,以OMG提供的标准化方式来编写和储存对应的模型,这些标准具体是基于UML、MOF、XM I、CWM和CORBA等标准框架;另一方面,由P IM到PSM的一对多映射关系可知这些模型可以被重复访问,并被自动转化为纲要( Schema) 、代码框架(Code Skeleton) 、测试工具、集成化代码以及各种平台的部署描述形式。
MDA建模和模型映射技术是MDA的核心,支持这两个技术的对象模型有元对象设施(MetaObject Facility,MOF)的M
0- M
3等4 层元模型元素、统一建模语言(Uni