已阅读5页,还剩64页未读, 继续免费阅读
(计算机软件与理论专业论文)面向方面的网格服务开发.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
面向方面的网格服务开发 计算机软件与理论黄楚伟 指导老师:李文军副教授 摘要 网格是近年来兴起的一个研究热点,被称为是下一代的互联网。网格计算是基于 网格的问题求解,当前的研究内容主要集中在底层支撑软件以及大规模的科学应 用,出现了一些重要的研究成果,如标准网格中间件g l o b u st o o l k i t 。目前,网 格技术的发展呈现出一种标准化的趋势,通过与w e b 服务的融合,正逐步走向 商业应用领域。然而缺乏方便快速的网格应用开发环境,阻碍了商业应用的推广。 另一方面g l o b u st o o l k i t 不断地推出新版本,导致网格应用的维护和迁移困难。 针对这些问题,本文在已有研究成果的基础上,综合了模型驱动开发与面向方面 编程等技术,提出了一个适合开发网格应用的框架,称之为模型驱动的方面框架 ( m d a f ) 。传统的模型驱动开发技术,虽然能够在模型层面上分离业务逻辑与 技术平台,但是到了代码层面,这些内容又纠缠在一起。本文利用面向方面编程 技术来弥补上述缺陷,使得与平台相关的代码能够被模块化。这样会带来队下的 一些好处: 1 开发人员只需集中精力解决业务模型的设计及其功能实现,框架会根据模型 来自动生成与网格平台相关的代码,从而简化了网格应用的开发过程。 2 无论是模型还是代码,都实现了业务逻辑与技术平台分离,使得业务逻辑具 有更好的可重用性,并能够很容易进行单元测试。同时在不影响业务逻辑的 情况下,能够方便地更改平台代码,从而具有良好的可移植性。 本文还详细地探讨了框架实现过程中的一些关键技术问题,并给出了原型系统的 设计方案和具体实现。本文最后利用该原型系统开发了一个全文检索服务,从而 验证了框架的有效性。 关键字:开放式网格服务基础设施,w e b 服务资源框架,模型驱动架构,面向方 面编程 a s p e c t - - o r i e n t e dg r i ds e r v i c e sd e v e l o p m e n t c o m p u t e rs o f t w a r ea n dt h e o r yh u a n gc h u w e i s u p e r v i s o r :l iw e n - j u n ,a s s o c i a t e dp r o f e s s o r a bs t r a c t g r i di se m e r g e da sah o tr e s e a r c ha r e ai nr e c e n ty e a r s ,w h i c hi sc o i l s i d e r e dt ob et h e n e x tg e n e r a t i o ni n t e r n e t g r i dc o m p u t i n gm e a n sp r o b l e m ss o l v i n gu s i n gt h eg r i d p r e s e n t l ym o s to ft h er e s e a r c h e sa r ef o c u so nt h ef u n d a m e n t a lf a c i l i t ya n dl a r g e s c a l e s c i e n t i f i ca p p l i c a t i o n s s o m eo fr e s e a r c h e se v e nb r i n gu pi n n o v a t i v er e s u l t s ,s u c ha s t h es t a n d a r dg r i dm i d d l e w a r eg 1 0 b u st o o l k i t n o w 研di sm o v i n gi t sw a yt o w a r d s b e i n gs t a n d a r d i z e d c o n v e r g i n gw i t hw e bs e r v i c e st e c h n o l o g ym a k e st h eg r i d a v a i l a b l ef o rc o m m e r c i a lu s e h o w e v e r , t h el a c ko fr a p i dd e v e l o p m e n te n v i r o n m e n t p r e v e n t st h eg r i dt e c h n 0 1 0 9 yf r o mw i d e l yc o m m e r c i a lu s e f u r t h e r m o r e ,t h eg l o b u s t o o l k i tk e e p so np u b l i s h i n gn e wv e r s i o nv e r yf r e q u e n t l y , w h i c hm a k e si td i f f i c u l tt o m a i n t a i no rm i g r a t et h e 研da p p f i c a t i o n s t oo v e r c o m et h e s ed i f f i c u l t i e s 。t h i sp a p e rp r o p o s e san e wm e t h o db a s e do nc u r r e n t r e s e a r c h e s w h i c hc o m b i n e sm o d e ld r i v e na r c h i t e c t u r ew i t ha s p e c to d e n t e d p r o g r a m m i n g t h ep a p e rp r e s e n t san e wf r a m e w o r kf o rt h ed e v e l o p m e n to fg r i d a p p l i c a t i o n w h i c hi sc a h e dm o d e ld r i v e na s p e c tf r a m e w o r k ( m d a f ) t h et r a d i t i o n a l m o d e ld r i v e nt e c h n o l o g yi sa b l et os e p a r a t et h eb u s i n e s st o g i cf r o mas p e c i f i c t e c h n o l o g yp l a t f o r i l la tm o d e ll e v e l ,b u tw h e ni tc o m e st ot h ec o d el e v e lt h e ya r e m i x e du pa g a i n t h i sp a p e ru s e sa s p e c to r i e n t e dp r o g r a m m i n gt oo v e r c o m et h i s l i m i t a t i o n w h i c hi sa b l et om o d u l a r i z ep l a t f o r ms p e c i f i cd e t a i l t h i sn e wa p p r o a c h h a sm a n yb e n e f i t s f i r s t l y , d e v e l o p e r sc a nf o c u so nt h ed e s i g na n di m p l e m e n t a t i o no f b u s i n e s sm o d e l ,a n dt h ef r a m e w o r kw i l la u t o m a t i c a l l yg e n e r a t ea l lt h ep l a t f o l r m s p e c i f i cc o d e s t h j sw i l ls i m p l i f yt h ed e v e l o p m e n tp r o c e s sa n di m p r o v ep r o d u c t i v i t y s e c o n d l y , b u s i n e s sl o g i ci ss e p a r a t ef r o mt h ep l a t f o r md e t a i la tm o d e la n da l s oc o d e l e v e l w h i c hm a k e si te a s yt ot e s ta n dr e u s et h eb u s i n e s sl o g i c w r ec a ne a s i l yc h a n g e t h ep l a t f o i nc o d e w h i c hm e a n sb e t t e rp o r t a b i l i t y n i sp a p e ra l s od i s c u s s e st h ek e y t e c h n o l o g i e sc o n c e r n e dw i t hf r a m e w o r ka n dp r e s e n t st h ed e s i g na n di m p l e m e n t a t i o n o ft h ep r o t o t y p es y s t e m a tl a s t ,t h i sp a p e rd e v e l o p saf u l lt e x ts e a r c he x a m p l ew i t h t h ep r o t o t y p et op r o v ei t sa v a i l a b i l i t y k e yw o r d s :o p e ng r i ds e r v i c e si n f r a s t r u c t u r e ( o g s i ) ,w e bs e r v i c e sr e s o u r c ef r a m e w o r k ( w s r d ,m o d e ld r i v e na r c h i t e c t u r e ( i d a ) ,a s p e c t - o r i e n t e dp r o g r a m m i n g ( a o p ) 硕士学位论文 丛1 立 弟l 覃 土上- - j - 日i j 吾 1 1 论文的研究背景 1 1 1 网格应用开发的复杂性 网格计算【m l 主要研究动态的、多机构的虚拟组织中协同资源共享与问题求解。 因而网格计算平台同样需要解决分布式计算所面临的一些问题,如异构资源的 定位、管理、通信、访问控制、故障恢复等等。并且在网格的环境下,这些问 题显得更加突出;因为网格关注的是高性能计算和大规模资源共享,而且资源 是动态变化的,可以随时地加入或退出虚拟组织。 这种复杂性使得长期以来,网格计算的研究与应用只停留在科研领域。为了改 变这种局面,2 0 0 2 年2 月,在加拿大多伦多市召开的全球网格论坛( g l o b a lg r i d f o r u m ,g g f ) 会议上,t ;i o b u s 项目组和i b m 共同倡议了一个全新的网格标准 “开放网格服务体系结柯”( o p e ng r i ds e r v i c e s a r c h i t e c t u r e ,o g s a ) 6 - 7 l ,它 把g l o b u s 标准和以商业应用为主的w e b 服务标准结合起来,统一以网格服务 的形式对外发布。o g s a 的诞生,标志着网格已经从学术界的象牙塔延伸到了 商业世界中,而且从封闭的环境走向开放的世界。然而在网格计算实现大规模 的商业应用之前,还有很多的问题需要解决。其中一个关键的问题是缺乏直观 易用的网格编程环境支持网格应用的快速开发。 开发人员要掌握网格平台的具体技术细节有一定的难度,同时由于缺乏集成开 发环境的支持,从开发到部署的每一个步骤都需要开发人员亲自解决,导致开 发效率十分低下。另外开发出来的模块由于和网格平台紧密耦合,无法脱离网 格平台进行单元测试,从而加大了测试的难度,使得软件质量难以保证。 硕士学位论文 a s p e c t - - o r i e n t e dg r i ds e r v i c e sd e v e l o p m e n t 1 1 2网格开发平台的不断演变 g l o b u s 项引8 l 由美国a r g o n n e 国家实验室、芝加哥大学、南加州大学等科研单 位共同研发,是目前国际上最有影响力的网格计算项目之一。g l o b u s 对信息安 全、资源管理、信息服务、数据管理以及应用开发环境等网格计算的关键理论 和技术进行了广泛的研究,开发出能在多种平台上运行的网格计算工具包软件 ( g l o b u st o o l k i t ) ,能够用来帮助规划和组建大型的网格试验和应用平台,开发 大型的网格应用程序。g l o b u st o o l k i t 是g l o b u s 最重要的实践成果,g l o b u s t o o l k i t 针对g l o b u s 项目中提出的各种协议,提供了一系列的服务、软件库、编 程接口( a p i ) 。目前g l o b u s t o o l k i t 已成为了事实上的网格标准,得到众多的软 件企业支持,同时已经有大量成功的网格应用项目。 然而从1 9 9 8 年发布第一个版本至今短短的几年内,g l o b u st o o l k i t 已经推出了4 个版本。每一个版本都包含了体系结构的重大转变,这意味着它们的编程接口 存在巨大的差异。另一方面,这些不同版本的工具所提供服务基本相同,其核 心组件都涵盖了资源管理、信息安全、信息发现、数据管理等领域。 开发平台的不断演变,导致网格应用的维护和移植困难。已有的网格应用不能 直接运行在新的平台上,同时不同平台的网格应用无法进行互操作。如果在新 的网格平台重新开发应用,将会使前期投资失去价值,而且还要做许多重复的 工作。此外,新技术本身也在不断变化( 网格正逐步与w e b 服务技术融合,而 w e b 服务也在不断地发展) ,因而还会存在兼容性的问题。这与网格所要达到的 目标:资源共享、协同问题求解是矛盾的。也就是说由于网格平台的缘故,我 们的资源被孤立起来,无法有效地实现共享。 1 1 3 问题的根源 上述问题归根结底是由于缺乏一种有效的网格服务开发手段和工具,而传统的 网格服务开发方式不能够有效地隔离平台特性,导致核心的业务逻辑代码与平 台服务调用交织在一起。这种紧密耦合的关系,使得业务模型被绑定到特定的 网格平台,从而无法在不同的网格平台之间进行移植,同时这些功能模块也不 能够脱离网格平台进行单元测试。 硕士学位论文 面向方面的网格服务开发 1 2 论文的研究思路 我们的目标是要提高网格应用的开发效率和可移植性,这与对象管理组织 ( o b j e c tm a n a g eg r o u p ,o m g ) 提出的模型驱动体系结构( m o d e ld r i v e n a r c h i t e c t u r e ,m d a ) 所要达到的目标是一致的。然而纯粹的m d a 实现存在一 定的局限性:虽然m d a 能够在模型层分离业务模型与具体的平台细节,但是 到了代码层,这些内容又相互交织在一起,使得代码难以测试、维护、重复利 用。 面向方面编程技术有助于解决代码混乱和代码分散的困境,从而能够在代码层 实现业务模型与平台实现的分离。这不但使代码更加模块化,具有更好的可重 用性,而且业务模型能够脱离平台进行单元测试,从而简化了测试过程。 因此,将模型驱动架构和面向方面编程结合起来,能够保持模型与代码的致 性,有效地实现业务模型与平台细节的分离,从而解决网格应用开发所面临的 困境。 此外,元数据也是一个关键的技术,它与面向方面编程结合起来,能够实现互 补,有利于形成更简单、更容易测试的面向对象应用程序。一方面,元数据进 一步扩充了面向方面语言的语义,并提高了方面代码的可重用性。元数据还能 在编织的过程中充当粘合剂,使得方面代码能够以一种即插即用的方式自动地 链接到系统当中。另一方面,面向方面编程技术则可以简化元数据的使用,并 将声明性的元数据转化成运行时的程序行为。 1 3国内外相关研究成果 德国m a r b u r g 大学的m a t t h e ws m i t h 等人【9 j 设计了一个代码生成工具用于简化 g l o b u st o o l k i t4 下的网格应用开发。该工具采用了元数据和代码生成相结合的 方式,其主要思想是在已有的代码基础上添加元数据( 例如在某个方法上添加 g r i d m e t h o d 标记表示该方法将作为网格接口_ 的一部分,而在某个属性上添加 g r i d a t t r i b u t e 标记表示该属性是网格资源的一个成员) ,然后将这些标记了元 数据的源代码交给一个代码生成工具来处理,生成与网格平台相关的代码和文 硕士学位论文 a s p e c t - - o r i e n t e dg r i ds e r v i c e sd e v e l o p m e n t 档,如网格服务的实现类,w s d l 接口描述文件,w s d d 部署描述文件等。该 工具还提供了配置文件用于指定代码生成过程中的一些选项,如带有元数据的 j a v a 类,命名空间( n a m e s p a c e ) 和j a v a 包名之间的映射,以及是否使用工厂 模式等等。 美国芝加哥大学的博士生b o r j as o t o m a y o r 主持了一个开放源代码项目g t 4 i d e ( 芝加哥大学参与了g l o b u s 项目的研究与开发,b o r j as o t o m a y o r 则编写了 g l o b u st o o l k i t3 0 和4 0 的电子教程i m l l j ,并于2 0 0 6 年1 月出版了g l o b u st o o l k i t 4 :p r o g r a m m i n gj a v as e r v i c e s 1 2 l ,这些都是最早的也是最全面的、介绍网格服务 编程的资料) 。g t 4 1 d e 项目于2 0 0 4 年底启动,目前最新的版本为0 2 5 。该项 目的前身g t 3 1 d e 则是在2 0 0 3 年底的时候启动。g t 4 i d e 的目标是要开发一个 基于e c l i p s e 平台的插件,提供一个开发环境来无缝地集成从编码到部署的整个 过程,从而简化网格服务的开发。g t 4 i d e 使得开发人员能够专注于网格服务 实现类的开发( 该实现类会调用网格平台的一些a p l ) ,而其它的接口描述文件, 配置和部署文件等可以通过i d e 来自动生成。 南京大学计算机软件新技术国家重点实验室王汝传教授等人承担了“网格计算 开发平台g b u i l d e r 研究”项引”】( 江苏省科技发展计划高技术研究项目) 。 g b u i l d e r 是一种网格计算辅助开发和部署的软件,其主要目标是利用先进的软 件技术开发一个适合于各种网格计算工具箱,并提供网格应用建模、调试、部 署和测试功能的通用辅助软件平台,最大限度地降低开发网格应用的难度,从 而加速网格应用的开发过程。与g t 3 1 d e 类似,g b u i l d e r 同样以插件的形式运 行在e c l i p s e 平台之上。所不同的是,g b u i l d e r 通过一组接i z l 和适配器( 负责调 用和封装网格计算中间件如g l o b u s 工具箱等) 隔离了上层应用对网格计算工具 箱的依赖,从而能够适应不同的工具箱,就像选择不同的j 2 e e 应用服务器一样 方便。 日本h o s e i 大学的s a c h i om i z u t a 和r u n h eh u a n g 在开源工具a n d r o m d a 的基础 上开发了一新的c a r t r i d g e ( a n d r o m d a 的插件) ,称之为a n d r o m d a g t 3 1 1 4 1 。 a n d r o m d a 是一个遵循模型驱动架构的代码生成框架( 其前身是u m l 2 e j b ) , 它从c a s e 工具中读入x m i 格式的u m l 模型,然后利用模板技术生成源代码 和其他组件。a n d r o m d a 具有良好的扩展能力,提供了一个称为c a r t r i d g e 的扩 展机制。一个c a r t r i d g e 通常由v e l o c i t y 模板文件,j a v a 类( 可选) 和部署描述 文件( a n d r o m d a c a r t r i d g e x m l ,将u m l 构造型映射到相应的模板文件) 组成。 该项目的主要工作是针对g t 3 平台( o g s i 规范) 开发一个新的c a r t r i d g e ,采 硕士学位论文面向方面的网格服务开发 用的是纯粹的模型驱动技术。而本文则是在模型驱动架构的基础上引入了面向 方面编程技术,并且针对的是g t 3 和g t 4 ( w s r f 规范) ,此外本文还实现了 一个基本的m d a 框架。 1 4 论文的主要创新点 论文提出了一个模型驱动开发与面向方面编程相结合的框架,并开发了一个简 单的原型系统,实现从模型到方面代码的自动映射。利用该框架,我们能够在 模型以及代码层次上实现业务逻辑与平台技术细节的分离,有效地解决网格应 用所面临的开发、测试、。移植等难题。 论文提出了将模型的辅助信息映射成标准的代码元数据的思路。通过p r o f i l e 机 制,我们能够对u m l 进行扩充,以便在建模阶段表达应用领域的概念。这些 概念将作为模型语义的辅助信息,指导模型变换以及代码生成。将这些辅助信 息映射成代码中的元数据,可用于进一步的代码生成以及运行时反射 ( r e f l e c t i o n ) ,并在方面代码的编织过程( w e a v i n g ) 中充当粘合剂。 一一1 5 论文工作的意义 1 5 1 有利于提高网格服务的可移植性 通过p r o f i l e 机制对u m l 进行扩充,我们能够在建模阶段描述网格平台的特性。 这些特性是不同网格平台所共有的,并且不包含任何具体的技术细节。当模型 建立好之后,代码生成工具能够自动地根据模型生成与网格平台相关的文件。 通过这种方式,我们有效地实现了应用模型与具体的技术实现的分离。 对于新的网格平台,我们只需要增加相应的代码生成模块,就能够将现有的网 格应用移植到新的平台之上。这些代码生成模块能够被特定平台的所有应用重 复使用。因而能够简化网格服务的移植工作,使得应用模型能够在多个平台进 行复用,从而有效地保护了已有的投资,并节约了成本。 硕士学位论文 a s p e c t - - o r i e n t e dg r i ds e r v i c e sd e v e l o p m e n t 1 5 2有利于简化网格服务的开发与测试 开发人员只需在建模阶段描述所需要的网格特性,而不需要了解具体的技术细 节;只需使用统一的建模工具,而不是多个网格平台。因而能够简化网格平台 的学习和开发过程,并提高软件生产率。 另一方面,面向方面编程技术能够很好地模块化平台特性,使得我们能够在代 码层次上,有效地分离应用模型与平台技术细节。因而系统的核心功能模块能 够脱离网格平台,被单独运行或重复利用,并能很方便地进行单元测试,从而 有效地保证软件质量。 1 5 3 研究思路可以应用到其他领域 虽然本文的切入点是网格服务,但是本文提出了一种解决平台移植问题的思路 将模型驱动开发与面向方面编程相结合,利用面向方面技术来描述平台相 关特性。这种思路同样可以运用到其它的中间件平台或者分布式计算环境中, 如c o r b a 、j 2 e e 、w e bs e r v i c e s 等。 1 6 论文的结构 论文结构安排如下: 第一章简要地介绍了论文的研究背景、相关研究成果、选题的意义以及论 文主要的研究工作。 第二章对论文所涉及的网格服务、模型驱动体系结构以及面向方面编程这 三大领域进行了综述。 第三章深入地分析了论文所涉及的一些关键技术问题。 第四章详细描述了模型驱动的面向方面框架( m d a f ) 的设计和实现。 第五章给出了m d a f 的一个具体应用实例。 第六章对论文工作进行了总结,并提出进一步的研究方向。 硕士学位论文 面向方面的网格服务开发 第2 章相关领域综述 2 1 网格服务 2 1 1 开放式网格服务基础设施 开放式网格服务基础设施( o p e ng r i ds e r v i c e si n f r a s t r u c t u r e ,o g s i ) d s i 是作为 o g s a 的核心规范提出来的,其1 0 版于2 0 0 3 年7 月正式发布。 o g s i 定义了一种被称为网格服务的实体的创建、管理和信息交换的机制。网格 服务简单来说就是一种遵循一系列特殊约定的w e b 服务,这些约定实际上是一 些定义了客户程序如何与网格服务进行交互的接口和行为。 lo g s i 的内容 o g s i 规范定义了客户程序如何发现、创建网格服务以及如何与网格服务进行交 互。具体分以下三个部分: ( 1 ) 说明了如何命名和引用网格服务实例。 ( 2 ) 指明了所有网格服务必须实现的基本的接口和相应行为。 ( 3 ) 其它与工厂和服务组( s e r v i c eg r o u p ) 相关的可选择实现的接口和行为。 网格服务实例句柄( g r i ds e r v i c ei n s t a n c eh a n d l e ,g s h ) 。该句柄唯一地标识了 网格服务实例,并在服务实例的整个生命周期中都是有效的。g s h 的形式通常 是标准的u r l ,但是句柄所携带的信息不足以使客户机与服务实例直接通信。 网格服务引用( g r i ds e r v i c er e f e r e n c e ,g s r ) 。客户机可以通过g s r 访问网格 服务,g s r 可以看作是指向特定网格服务实例的指针。g s r 的格式特定于客 户机用来与服务通信的绑定机制。例如在使用s o a p 绑定时g s r 就是w s d l 文档,而使用r m i i l o p 绑定时g s r 就会是i o r ( c o r b a 的可互操作对象引 用) 。g s r 的生存期是有限的,当期限过了之后就必须重新解释g s h 得到新的 g s r 进行调用。 硕士学位论文 a s p e c t - - o r i e n t e dg r i ds e r v i c e sd e v e l o p m e n t o g s i 针对网格服务定义了一套标准化的接口,主要包括:服务实例的创建、命 名和生命期管理,服务状态数据的声明和查询,服务数据的异步通知,服务实 例集合的表达和管理,以及一般的服务调用错误的处理等。 表2 - 1o g s i 的主要接口 端口类型操作 描述 g r i d s e r v i c ef i n d s e r v i c e d a t a 查询网格服务实例的各种信息。 s e t t e r m i n a t i o n 币m e 设置并获取网格服务实例的终止时间。 d e s t o r y 终止网格服务实例。 n o t i f i c a t i o n s o u r c e s u b s c r i b e t o n o t i f i c a t i o n t o p i c 向通知发送者订阅感兴趣的消息内容。 u n s u b s c r i b e t o n o t i f i c a t i o n t o p i c 取消订阅。 n o t i f i c a t i o n s i n kd e l i v e r n o t i f i c a t i o n实现通知消息的异步传输。 f a c t o r y c r e a t e s e r v i c e 创建新的网格服务实例。 h a n d l e m a pf i n d b y h a n d l e 返同与网格服务旬柄相关联的网格服 务实例。 2o g s i 对w e b 服务的扩展 o g s i 通过在以下两个方面引入接口和约定来扩展w r e b 服务: ( 1 ) w r e b 服务是持久的,而网格服务则需要具备动态和可能瞬变的特性。服务 实例会随着工作的分派、资源的配置与供给状况以及系统状态的变化而不 断地产生和销毁。因此,网格服务需要接口来管理实例的创建、销毁以及 生命周期。 ( 2 ) w r e b 服务是无状态的,而网格服务可以拥有与自身相关的属性和数据,称 为服务数据。 o g s i 扩展了w s d l 的模型,称之为g w s d l 。该模型的特点主要体现在: ( 1 ) 描述接口继承的能力 ( 2 ) 在接口定义中描述服务数据的能力 30 6 s i 存在的不足 o g s i 的实践表明尚存在以下不足: ( 1 ) o g s i 把繁杂的技术内容全部集中在一个规范中,没有清晰的功能划分,不 利于对各个部分的灵活运用和增量式扩展。许多接口和操作都与服务数据 相关,缺乏通用性。 7 ( 2 ) 不能很好的兼容现有的w e b 服务和x m l 工具。o g s i 为了对w s d l 进行 硕士学位论文面向方面的网格服务开发 扩展,大量使用了x m l s c h e m a 的一些高级特性,如通配符元素x s d :a n y , 造成可移植性差。 ( 3 ) o g s i 将具有状态的资源建模为w e b 服务,这种做法引起了“w r e b 服务没有 状态和实例”的争议,同时某些w e b 服务的实现不能适应网格服务的动态创 建和销毁。 2 1 2w e b 服务资源框架 2 0 0 4 年1 月由i b m 、g l o b u s 联盟和h p 共同提出w e b 服务资源框架( w e bs e r v i c e s r e s o u r c ef r a m e w o r k ,w s r f ) 1 1 6 j 和w e b 服务通知( w e bs e r v i c e sn o t i f i c a t i o n , w s n ) 作为对o g s i 的重构和发展【r ”,其目标是实现网格技术与w e b 服务的融 合l l 引。w s r f 规范是针对o g s i 规范的主要接口和操作来定义的,它基本上保 留了o g s i 中的所有功能,只是更改了某些语法( 例如,为了使用w e b 服务 寻址w s a d d r e s s i n g 而更改的语法) ,并且使用了不同的术语进行表达。 w s r f 推出的目的在于:定义一个通用、开放的架构,利用w e b 服务对具有状 态属性的资源进行存取,并且提供描述状态属性的机制,以及如何将该机制延 伸到w e b 服务中的方式。 w s r f 针对o g s i 的不足之处进行了相应的改进和完善,主要体现在以下几个 方面: ( 1 ) w s r f 把o g s i 的功能分解成一系列规范,这样就可以灵活地使用各个部分 ( 2 ) w s r f 使用w s d l1 1 定义o g s i 中的各项功能,避免对扩展工具的要求 ( 3 ) w s r f 明确地区分了服务以及服务所作用的有状态资源,使得w e b 服务不 具有状态信息 1w e b 服务资源 w s r f 采用了与o g s i 不同的定义方式:资源是有状态的,而服务是无状态的。 w s r f 把有状态的实体统称为有状态资源( s t a t e f u lr e s o u r c e ) ,有状态资源具有 特定的生命周期和一组状态数据,可以被一个或多个w e b 服务访问。 w e b 服务资源( w s r e s o u r c e ) 1 9 】是一组有状态的资源和与之进行交互的w e b 服务的组合。w s r e s o u r c e 具有以下的一些特点: ( 1 ) 资源的状态数据使用x m l 文档来描述,通过对x m l 文档的操作来访问资 源的状态。客户端通过w e b 服务接口来得到资源的x m l 文档,该文档用 硕士学位论文 a s p e c t - - o r i e n t e dg r i d s e r v i c e sd e v e l o p m e n t 来充当w e b 服务资源实际状态的视图或投影。 ( 2 _ ) 通过隐式资源模式( i m p l i e d r e s o u r c ep a t t e r n ) 来寻址和访问有状态资源。隐 式资源模式是一组关于w e b 服务技术( x m l , w s d l 和w s a d d r e s s i n g ) 的约定( c o n v e n t i o n ) ,这些约定使得资源的状态可以被定义,并与w e b 服 务的接口描述相关联,有状态资源被当作由w e b 服务所实现的消息交换处 理过程的隐式输入。在隐式资源模式中,有状态资源标识符被封装在端点 引用( e n d p o i n tr e f e r e n c e ,s o a p 消息头的一个结构) 中,用来识别在执行 w e b 服务消息交换的过程中所使用的有状态资源。对于客户端来说,不需 要了解有状态资源标识符的内容。 2w s r f 的内容 表2 2 w s r f 相关协议 协议描述 w s - r e s o u r c e p r o p e r t i e s 定义了w s r e s o u r c e 如何与w e b 服务的接口描述相关联,以及 检索、更改或删除w s r e s o u r c e 属性的消息交换过程 w s r e s o u r c e l i f e t i m e 定义了w s r e s o u r c e 的生命周期管理方法,包括创建,标识, 销毁。该规范提供了两种撤销w e b 服务资源的方式:立即的 ( i m m e d i a t e ) 和计划的( s c h e d u l e d ) 。 w s r e n e w a b l e r e f e r e n c e s 定义了一种机制| i = l 来更新已经失效的端点引用。 w s - s e r v i c e g r o u p 定义了一种方法,使得w e b 服务和w e b 服务资源可以为了某 。 - i 个领域的特定目的而聚集或组合在一起。 w s b a s e f a u l t 为基本故障定义了x m l s c h e m a 类型以及w e b 服务如何使h j 这 些故障类型的规则。 w s n o t i f i c a t i o n 虽然不属于w s r f 系列规范,但也是从o g s l 分离出来的,它 通过基于主题( t o p i c ) 的发布订阅模式定义了事件的订阅和通知机制。该规范 为事件通知定义了代理、发布者、订阅者和消费者等角色,提供了直接发布 ( w s b a s e n o t i f i c a t i o n ) 和代理发布( w s b r o k e r e d n o t i f i c a t i o n ) 两种模式,标准化了 发布、订阅和通知传递的w e b 服务消息交换,定义了用于分类和组织通知消息 的t o p i c s 和t o p i c s p a c e s 。 2 1 3o g s i 与w s r f 的比较 表2 3o g s i 的各项功能与w s r f 规范的映射关系 o g s iw s r f lll 硕士学位论文面向方面的网格服务开发 g r i ds e r v i c er e f e r e n c e w s - a d d r e s s i n ge n d p o i n tr e f e r e n c e g r i ds e r v i c eh a n d i e w s - a d d r e s s i n ge n d p o i n tr e f e r e n c e w s r e s o u r c e p r o p e r t i e s h a n d l e r e s o l v e rp o r t t y p ew s r e n e w a b l e r e f e r e n c e s s e r v i c ed a t ad e f t n i t i o n & a c c e s s w s - r e s o u r c e p r o p e r t i e s g r i d s e r v i c el i f e t i m em a n a g e m e n t w s - r e s o u r c e l i f e c y c l e n o t i f i c a t i o np o r t t y p e sw s n o t i f i c a t i o n f a c t o r yp o r t t y p e t r e a t e da sap a t t e r n s e r v i c e g r o u pp o r t t y p e sw s - s e r v i c e g r o u p b a s ef a u l tt y p ew s b a s e f a u l t s 两者的相同点体现在:它们的核心都是w e b 服务所缺少的关键功能:创建、使 用、查询、发现和管理有状态资源。虽然术语变了,但需求、概念和机制并没 有改变。o g s i 和w s r f 都定义了规范所要求的机制,并建立在o g s a 之上。 这些变化对o g s a 的影响很小。 两者的不同点体现在:w s r f 通过不同的结构模型来表达状态资源和w e b 服务, 使得资源和服务的关系变得更加灵活,同时兼容已有的w e b 服务标准和工具。 而o g s i 则采用同一种结构模型来表达资源和服务( g r i d s e r v i c e 接口) ,资源和 服务是一对一的关系,并且o g s i 对w s d l 进行了扩充,使用g w s d l 来描述 服务的接口。 2 2 模型驱动体系结构 中间件的不断发展以及难以形成统一的标准,使得新旧系统之间的集成或系统 的演化面临不同的实现技术,如何保证已有投资并驱动整个系统的技术升级成 为不可避免、但又难以解决的挑战。为此,o m g 于2 0 0 1 年7 月提出模型驱动 的体系结构( m o d e ld r i v e na r c h i t e c t u r e ,m d a ) 1 2 0 2 3 1 所谓模型驱动指的是使 用模型的方法来指导软件的分析、设计、构建、部署、维护等活动。m d a 的主 要目标是实现可移植性,互操作性,可重用性。 硕士学位论文 a s p e c t - - o r i e n t e dg r i ds e r v i c e sd e v e l o p m e n t 2 2 1m d a 的主要思想 m d a 的主要思想是将模型作为软件开发过程的核心制品,严格区分系统的功能 规约与实现的技术细节,从而将技术平台变化对系统的影响降低到最小程度, 极大地加强了应用模型和领域模型在整个软件生命周期中的复用。 m d a 按照模型的抽象级别,将模型分为两类: 1 平台独立模型( p l a t f o r mi n d e p e n d e n tm o d e l ,p i m ) ,它是描述系统功能和结 构的模型,不包括系统的实现平台上的技术细节。 2 平台相关模型( p l a t f o r md e p e n d e n tm o d e l ,p s m ) ,它是在特定技术平台上 描述系统的模型,依赖于该平台所提供的功能和服务,涉及系统在该平台 的实现细节。 所谓平台是指在特定的硬件技术下实现某种技术的基础结构,如u n i x 平台、 c o r b a 平台、j 2 e e 平台等等。平台通过接口和特定的使用模式向搭建在平台 之上的各种应用提供功能和服务,而这些平台上的应用则不需要关心平台所提 供的功能和服务是如何实现的。 m d a 将p i m 抽象出来,针对不同的实现技术平台制订多个映射规则,然后通 过这些映射规则及辅助工具将p i m 转换成p s m ,再将p s m 不断求精直至形成 最终代码。 一一一 2 2 2m d a 的优点 m d a 会带来如下的一些好处: 1 生产率和软件质量。m d a 将开发人员的注意力集中到开发p i m 上,转换规 则需要由高水平的软件架构师来完成,但只需定义一次。大量的开发人员 不需要设计和撰写平台相关的技术细节,从而减少了工作量。另一方面大 部分的框架代码自动地从模型中产生,开发人员仅需编写少量的代码,从 而能够保证代码质量。 2 可移植性。m d a 关注的是平台独立模型,通过定义转换规则,由工具实现 p i m 到p s m 的转换。 3 互操作性。从p i m 中生成的多个p s m 之间可能存在一定的关系,通过使用 工
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年秋季开学第一课家风家教主题三篇宣讲稿
- 2026年秋季大学班会课 考研与就业规划讨论
- 2026年秋季幼儿园心理健康课 学会表达自己的感受
- 2026事业单位工勤技能-湖南-湖南护理员一级(高级技师)历年参考题库含答案详解3套试卷
- 2026事业单位工勤技能-湖南-湖南下水道养护工三级(高级工)历年参考题库含答案详解3套试卷
- 2026事业单位工勤技能-湖北-湖北机械冷加工五级(初级工)历年参考题库含答案详解3套试卷
- 2026事业单位工勤技能-海南-海南印刷工五级(初级工)历年参考题库含答案详解3套试卷
- 2026事业单位工勤技能-浙江-浙江环境监测工一级(高级技师)历年参考题库含答案详解3套试卷
- 2026事业单位工勤技能-山西-山西水工闸门运行工一级(高级技师)历年参考题库含答案详解3套试卷
- 2026事业单位工勤技能-吉林-吉林计算机操作员三级(高级工)历年参考题库含答案详解3套试卷
- 2026年宿迁市城区招商发展有限公司招聘工作人员4人考试备考试题及答案详解
- 2026年数字安徽有限责任公司所属企业安徽数安系统集成有限公司第1批次社会招聘18人笔试备考试题及答案详解
- 临床常见实验室检查指标的解读
- 2026年新疆维吾尔自治区初中学业水平考试生物试卷真题(含答案详解)
- 2026书记员面试题目及答案
- 2026年度保密教育线上培训试题(附答案)
- 2026秋北师大版小学数学幼升小暑期30天每日练习卷
- 养鸡场成本核算与效益分析手册 (标准版)
- 2026年看护辅警人员笔试题库及答案参考
- 市级临床重点专科申报书(麻醉科)
- 私募股权投资基金投资房地产企业的风险解析与防范策略
评论
0/150
提交评论