




已阅读5页,还剩47页未读, 继续免费阅读
(计算机软件与理论专业论文)基于gt30的网格服务开发和部署机制的研究.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
上海大学硕士学位论文 摘要 随着学术界对网格研究的进展和社会对网格服务需求的增长,如何把网格 与具体行业进行结合已经成为一个新的研究和开发方向。目前网格服务已经开始 了商业应用,m m ,o r a c l e 等公司已经在商业市场上销售网格服务整体解决方案 和网格服务开发工具。为了将网格服务推广到具体商业当中,相关研究人员需要 了解网格服务的基础结构和网格服务的开发与部署配置。 在本文中,我们在高层上从整体性描述了作为人们通常所说的术语g r i d s e r v i c e 的基础结构,以及作为网格中间件一g l o b u s 的总体结构和其内部的程序 调度运行机制。同时在底层上从技术人员的角度给出g l o b u s 3 0 上网格服务开发 与运行的技术实现路线,对服务中关键的操作在x m l 文档模式、高级服务w s d l 生成以及网格服务实现部分等几方面进行了详细的实现阐述。 本文比较详细地论述了上面的内容,并在它们的基础上,结合交通流理论的 相关知识,在g 1 0 b u s 3 0 为平台的网格环境下,以网格服务的形式实现了在双车 道公路上模拟多辆汽车随机进入车道以及加速、减速、改换车道等行驶情景,并 最终给出了图形显示。本文还对模拟服务的运行流程进行了描述,也讨论了在实 现模拟的过程当中遇到的问题并给出了对问题的解决方法。 关键词:网格,网格服务,交通流。 上海大学硕士学位论文 a b s t r a c t w i t ht h er e s e a r c hp r o g r e s so fg r i dt e c h n o l o g yi na c a d e m ea n dt h ei n c r e a s i n g r e q u i r e m e n to fg r i ds e r v i c ei ns o c i e t y ,t h a th o wt oa p p l yg r i dt e c h n o l o g yt oi n d u s t r y h a sb e c o m ean e wr e s e a r c ha n dd e v e l o p i n gw a y g r i ds e r v i c eh a sb e e n i n ga p p l i e do n c o m m e r c e s o m ec o m p a n i e s ,s u c ha sm m ,o r a c l e ,a r es e l l i n gm a c r o r e s o l v e n ta n d d e v e l o p i n gt o o lo fg r i ds e r v i c eo nm a r k e t i no r d e rt oe x t e n dg r i ds e r v i c et oc o n c r e t e b u s i n e s s ,r e s e a r c h e rs h o u l dm a s t e rt h eb a s i c s t r u e t u r eo f 鲥ds e r v i c ea n di t s d e v e l o p m e n ta n dd e p l o y m e n t i nt h ep a p e r ,w en o to n l yd e s c r i b et h eb a s i cs t r u c t u r eo fg r i ds e r v i c e ,t h ed e s i g n t h i n k i n ga n dr u n n i n gm e c h a n i s mo fg l o b u sf r o mh i 曲l a y e ri naw h o l e ,b u ta l s o i l l u m i n a t et h et e c h n i c a lr o u t eo f d e v e l o p i n ga n dr u n n i n go fg r i ds e r v i c eo ng l o b u s 3 0 f r o ml o wl a y e nt h ei m p o r t a n to p e r a t i o no fs e r v i c ei sg i v e nf r o mt h ed e s i g no fx m l s c h e m a ,t h ew s d ld o c u m e n tg e n e r a t i o na n dt h es e r v i c ei m p l e m e n t a t i o n ,e t c a sac o n c r e t ee x a m p l e ,w eu s e 鲥ds e r v i c et os i m u l a t et r a f f i cf l o wb a s e do n g l o b u s 3 0b yi n t e g r a t i n gw i t ht r a f f i cf l o wt h e o r y , i nt h es i m u l a t i o n ,w es h o ws o m e a c t i o no fc a r so nb i d i r e c t i o n a l r o a d w a yb yp i c t u r e ,i n c l u d i n ga c c e l e r a t i o n , d e c e l e r a t i o n 。l a n ec h a n g eo fc a r t h i sp a p e ra l s od e s c r i b e st h er u n n i n gp r o c e s so f a n a l o gs e r v i c e ,d i s c u s s e ss o m ep r o b l e m sm e e t i n gi nt h a tp r o c e s sa n dp o i n t so u tt h e w a y t os o l v et h o s ep r o b l e m s 。 k e y w o r d s :g r i d ,g r i ds e r v i c e ,t r a f f i cf l o w v i i 上海大学硕士学位论文 原创性声明 本人声明:所呈交的论文是本人在导师指导下进行的研究 工作除了文中特别加以标注和致谢的地方外,论文中不包含其他 人己发表或撰写过的研究成果参与同一工作的其他同志对本研究 所做的任何贡献均已在论文中作了明确的说明并表示了谢意 本论文使用授权说明 期! ! 墨! :? 本人完全了解上海大学有关保留、使用学位论文的规定,即:学校有权保 留论文及送交论文复印件,允许论文被查阅和借阅;学校可以公布论文的全部 或部分内容 ( 保密的论文在解密后应遵守此规定) 签名:啦翩签名:白兰塑帆 上海大学硕士学位论文 1 1 网格服务 第一章绪论 虚拟和组合服务的能力不能仅仅只依赖于一种标准的接口定义语言,还要求 标准的接口定义,以及相应的公共服务交互语义,没有这些就不可能建造出可互 操作,可重用的组件,例如不同的服务应当遵循相同的错误通知约定,这样服务 的使用者可以采取相同的方式处理来自服务的错误通知,而不用管它来自哪个服 务。 这些标准接口以及语义在o g s a ( o p e ng r i ds e r v i c e sa r c h i t e c t u r e ) 【m 1 中是由 开放网格服务基础结构( o g s i ( o p e l lg r i ds e r v i c e si n f r a s t r u c t u r e ) 【3 】) 提供的,通过 将w s d l ( w e bs e r v i c e d e s c r i p t i o n l a n g u a g e ) 接口描述和规范结合起来,o g s i 定 义了网格服务实体中的创建、命名、生命周期管理、监控、分组和在实体间交换 信息等机制。这些约定对分布式应用程序通常所要求的分布式长寿命状态提供了 可控制,容错,安全的管理。o g s i 还引入了标准的工厂和注册接口用于创建和 发现网格服务。下表是网格服务的主要接口。 程i t l i 喇恪嗽务空例的并朴陆息 乜摄一雌羁丰的内部伯翩,凡蛄 f i n d s b r v i c e d 日t o 蚋) c = f 雠个接i i 的信盥以幢与特 g r 甜s e 广v l c e 定帔务 盖的信息 站冒 褂刊刚懈8 1 t 井啦例的终1 1 s 日r r e r m i n o t j 埘1 可m e 时阀 d e s t r o y 终i l 时格呲莽啦例 撇捌感烬艇的汕息擞型审i i 岣窑毗 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 e明r 柚相火事f l 的通知扯地肯避 n o t i n c 3 t i or l s o u r c e n :镰让 u n s u b s c r i b e l b n o t i f i c a t i o n l b p i e墩消聋己 n o t i f l c b t l o n s i n ko s l i v e r n o t i f l c a t i o n# 书麓送消q r o g i s t e r s e r v i c e网格服务c j 榈的轼:盎汁册 r e g i s t r y u n r e g i s t s r s e r v i c e般消注册的嘲 蔷般势们情 f a c t o r yc t e o t e s o r v t c e创建耕的刚格h 碗务,唼例 f i n d b y p r i m a r y k e y 返川艇摧持定琏储刨琏朗h 备眦 口r i m e r y k e y 务柚+ 荫 撒销特定键埘刨北的h 格珊羿填 d e s t r o y b y p r i m a r y k e y 例 逛川与叫晰舭务f 瓶| n 暇最i 剐- q h a n d l e m a pf m d b y h a n d l e 鼾搬扮实例 1 2 本文组织结构 表l1 网格服务的接u 本文是针对网格服务基础结构特征的研究和o g s a 网格思想平台g t 3 o 【4 j 上海大学硕士学位论文 ( g l o b u st o o l k i t3 o ) 进行体系结构的分析。同时讨论了在g t 3 0 上如何进行网 格服务开发和部署机制,最后用网格服务实施交通流模拟来说明上述的研究。 文章的内容组织如下: 第二章网格服务基础结构和g t 3 0 的总体结构。 第三章网格服务的开发与部署配置。 第四章在g t 3 0 上用网格服务模拟交通流。 第五章交通流模拟在g t 3 0 容器中的运行。 第六章结论与展望。 上海大学硕士学位论丈 第二章网格服务基础结构和g t 3 0 的总体结构 2 1 网格服务基础结构 o g s a 通过标准接口和规范支持创建、终止、管理和调用有状态的短暂服务, 这些服务具有动态的、可管理的生命周期,是可命名、可管理的实体。在o g s a 内,一切都表示为个g r i d 服务,即一个遵循一套规范( 使用w s d l ”1 来表示) 的( 潜在短暂的) 服务,这些规范用于实现生命周期管理、发现特性、通知等目 的。g r i d 服务的实现可以指定本地平台设施的目标和现有i t 架构自身的整合。 可以对创建、注册、发现g r i d 服务的标准接口进行配置以构建多种形式的结构。 下面是网格服务基础结构的主要特征。 网格服务描述和实例在可以动态实例化服务的系统里,需要使用术语来 区分服务定义的说明和以运行形式存在的服务定义实例。囚此,o g s a 引入了网 格服务描述和网格服务实例这一相对概念作为分布式系统的组织原则。在基本 w e b 服务”1 模型中,假定服务的创建( 或销毁) 采用了超出w e b 服务标准本身所规 定的机制。但是,应用经常需要动态实例化一个新的短暂服务,如处理与特定活 动状态相关的管理和交互。当活动的状态不再需要时,相应服务可以销毁。服务 的瞬时性对服务如何创建,命名,使用和发现有重大的影响,一个直接结果就是 把网格服务定义和该定义的一个实例分开来,网格服务描述由定义网格服务接口 及相应语义的w s d l 扩展组成,网格服务实例是相应描述的一个可寻址的实例服 务,它可能是有状态的,也可能是瞬时的。这些概念提供了用于构建基于o g s a 分布式系统的基本构造组件:网格服务描述定义了接口和行为,而分稚式系统由 一系列实现了这些行为的网格服务实例组成。这些服务实例可以同系统中其他实 例分开,可以表现为同特定类型操作行为相关的状态。 服务状态、元数据和内省o g s i 定义了称之为服务数据的机制,可用于描 述元数据,以及与服务有关的状态数据,这些描述是服务描述的一部分,其他服 务实例可访问( 通过查询和订阅) 这些数据。这种用来访问服务实例公开状态的统 一机制支持内省、监控以及发现。客户端应用程序可以要求网格服务实例返回它 自己的描述信息,例如它实现的接口集、服务的期望结束时间,以及关于这个实 例当前状态的接口规范信息。标准w s d l 并没有将服务状态概念形式化。服务所封 装的任何状态都暗含在服务的实现和服务操作语义中并且服务接口中必须包含 对状态的访问操作。举个例子,如果第一个服务有内部状态元素a ,b 和c ,可以 对状态的访问操作。举个例子,如果第一个服务有内部状态元素a ,b 和c ,可以 上海大学硕士学位论文 t h ep o s t g r a d u a t et h e m so f s h a n g h a iu n i v e r s i t y 通过另外定义的g e t a ,g e t b 和g e t c 操作实现从外部访问这些状态。然而,如果需 要事务和连接操作语义,仅有这些操作是不够的。例如,如果要确定一个服务是 否同时拥有a ,b 某个值,或者向个含有多个值的服务进行询问。可以假设已经 定义了一个g e t a b 操作,但是这种类型的操作数量会随着状态的不同组合而不断 增长。 o g s i 通过两种方式来解决这些问题:其一,定义w s d l 扩展以便允许明确声明 同接口相关的公开状态( 服务数据) ;其二,定义访问接口状态的标准操作( 查询 和订阅) 。在服务描述中定义的每一个接口可以指定零个或多个服务数据 ( s e r v i c e d a t a e i e m e n t ,s d e ) ,它是一些命名的x m l 元素类型。并指定一些附加属 性用来规定同数据元素相关的操作,例如,怎样在一个实例的生命期中指定这些 属性。在一个服务描述接口中所定义的全部s d e 结合起来形成了一个逻辑x m l 文 档、这个文档与实现了该服务描述的每个服务实例相关。o g s i 定义了用以访问一 个实例的服务数据文档的标准操作。o g s i 还定义了标准操作,这些属性可附着在 s d e 中,用以传送与s d e 生命期相关的附加信息,这在将s d e 值传播到其他实体时 十分有用。s d e 可用来表示各种信息,包括一个网格服务实例的相对静态的特性 ( 如容量、位置、速度) :动态状态信息( 如空余空间、负载) ,错误状态信息,访 问控制策略和当前活动的传输。 命名和名字解析o g s i 为网格服务实例定义了二级的命名模式。一个实例 可能拥有一个或多个网格服务句柄。服务句柄是一种符合统一资源标识符( u r l ) 格式的名字,它用来表示服务实例,且是一种简单、抽象、长期存在的名字。句 柄可以由h a n d l e r e s o l v e r j 艮务映像到具体的但可能短暂的网格服务引用。网格服 务引用包含了协议绑定和端点的寻址信息。 由于网格服务是动态、有状态的,所以需要一种方法将动态创建的一个服 务实例与另外一个服务实例区分开来:例如可能需要使用这种信息与其他网格实 体通信,它是访问一个特定服务时所需要的信息:因此,需要为嗣格服务实例制 定一种命名规则。这个命名规则应当允许在网格服务的生命期内能够更新,而且 还要求命名规则不需要将服务实例固定映射到网络地址,因为那可能会使更新定 位一个服务实例非常困难,因为重新定位在故障恢复、负载均衡,以及由于规模 扩展原因而复制实现时都可能需要。o g s 为解决这些需求,定义了一种二级的 网格服务实例命名规则。该规则以简单、抽象、长寿命的的网格服务句柄( g r i d s e r v i c e h a n d l e ,g s h ) 为基础。网格服务句柄可以由旬柄解析服务映射到具体的 但可能短暂的网格服务引用。 网格服务句柄是全局惟一的名字,它将特定的网格服务实例与其他所有以前 存在过的、当前存在或将要出现的网格服务实侧区分开来( 如果个网格服务失 上海大学硕士学位论丈 t h ep o s t g r a d u a t et h e s i so f s h a n g h a iu n i v e r s i t y 败了并以原来的状态重新启动,那它还是相同的实例,仍可使用相同的g s h ) 。 g s h 使用统一资源标识符来表示。g s h 不携带与特定协议和实例相关的信息, 例如网络地址和支持的协议绑定。相反,这些信息和其他实例相关信息一起封装 进称为网格服务引用( g r i ds e r v i c er e f e r e n c e ,g s r ) 的抽象实体中。g s r 的格式和 内容依赖于底层的协议绑定,但是在s o a p 7 l 环境里,g s r 包含有 和 元素的w s d l 文档。g s h 是不可改变的,与g s h 不同,网格服务实例 的g s r 可以在它的生命周期内改变:g s r 可能有个明确的到期时间或者可能在一 个服务的生命周期内的任何时间失效。为了从更稳定的g s h 获得一个更新后的 g s r ,o g s i 定义了句柄解析机制。 服务生命期0 g s i 定义了管理网格服务实例生命期的机制,包括明确的销 毁和软状态生命周期管理功能,以及用来创建特定接口实例实现的网格服务工 厂。网格服务和普通的w e b 服务一个最大的区别基于下面的假定:网格服务可以 是短暂作为基础结构正常操作的一部分而创建的。这个假设有两个结沦:必须拥 有剖建新服务的机制,必须能够指定服务的生命期。 网格服务实例可自像任何w e b 服务一样来创建,也可以通过请求f a c t o r y 操 作,虽然在各种不同的接口里有各种领域特定的f a c t o r y 操作,但o g s i 定义了一 个标准、可扩展的f a c t o r y 接口来处理许多通用的、简单的网格服务创建。f a c t o r y 接口的c r e a t s e r v i c e 操作根据请求创建有指定接口的网格服务,并返回这个新服务 实例的g s h 和初始g s r 。它还需要将这个服务实例注嬲到句柄解车斤服务里。 短暂服务实例的引人带来了服务生命期的确定问题。也就是说,决定服务什 么时候能够或应该终止以便还原相关资源。在正常操作情况下,短暂服务实例的 创建是用来执行特定任务的,它可以在任务完成时终止,也可以由请求方明确地 终止或由请求方指定的特定服务来终止。然而,在分布式系统中,组件可能会出 现故障,消息可能会丢失。其后果之一是服务可能永远收不到所期望的明确终止 要求,从而造成不必要的资源消耗。o g s a 用软状态方法来解决这个问题。在这 个方法中,当创建网格服务实例时,实例将被赋予指定的生命期;这一初始的生 命期可以延长一个指定的时间段,这可以由客户端或另外一个代表客户的网格服 务发出明确请求来扩展。如果时间段就要过期,还没有收到客户对这个实例感兴 趣的重新声明,那么就由这个服务实例的运行环境或者由这个服务实例本身来终 止这个服务实例,释放相关资源。 故障类型0 g s i 为网格服务可能返回的所有故障消息定义了一种标准的基 础类型。通过拥有一套所有故障消息都包含的公共基础信息,可以使问题的确定 简化。基础类型中包括故障的起源和产生的时间、可读描述、可选的遗留故障代 码,以及可选的描述潜在出错原因的故障列表。 上海大学硕士学位论文 网格环境可能会要求能够自动地适应错误,从而要求能够返回错误信息( 在 程序设计语言里面称为异常) 。错误信息不仅含有与错误原因有关的信息,而且 还在它们的内容、语义以及传输方式上保持一致。因而,o g s i 定义了种通用 方法用于传输出操作产生的错误信息。这种通用方法的使用在o g s i 里面是一致 的,并且推荐在其他的o g s a 组件和应用里也使用这种通用方法。o g s i 错误模 型由一个标准x s d 类型,o g s h f a u l t t y p e 构成:它定义了两个必须的元素:产生错 误的服务和时间戳,以及一些可选元素。这些可选元素包括错误的文本描述、更 进一步描述错误底层原因的o g s l :f a u l t t y p e 元;素、错误码,以及一些用于传递任意 附加信息的扩展元素。x s d 类型将一个网格服务旬柄作为输入,然后返回一个 网格服务引用。在该操作里定义了一些错误,其中有i n v a l i d h a n d l e f a u l t n o r e f e r e n c e s a v a i l a b l e f a u l t 和r e d i r e c t i o n f a u l t ,r e d i r e c t i o n f a u l t 进行了 o g s i :f a u l o y p e 扩展,包含了一个到其他句柄解析器的引用。 服务组0 g s i 定义了表示和管理服务实例组的方法。这些机制可用于各种目 的,包含信息集的管理( 如注册器) 和集操作( 如组生命期管理) 。 接口s e r v i c e g r o u p ,s e r v i c e g r o u p e n t r y 和s e r v i c e g r o u p r e g i s t r a t i o n 与管 理服务实例组有关;服务组是一种网格服务它维护与一组网格服务实例相关的 信息。任何服务实例集都可以以这种方式组合,它们不需要有相同的接口、创建 者、生命期、目的或任何共同点。惟一的需求是有人要组合它们。 2 2g t 3 0 的总体结构 2 2 1g t 3 0 体系框架 下图2 1 描述了g t 3 0 的粗略架构。 图2 1g t 3 0 的架构 g t 3c o r e 就是通常所说的网格服务。 g t 3s e c u r i t ys e r v i c e s :安全是基于网格的应用中重要的因。g t 3s e c u r i t y s e r v i c e s 可以帮助限制访问网格服务,那样就只有经过审核的客户端才能使用网 格服务,除了通常的安全措施( 在w e bs e r v i c e 后面放一个防火墙等等) g t 3 还 提供了更多例如s s l 8 1 军x ,5 0 9 9 1 数据认证的安全技术。 g t 3b a s es e r v i c e s :这层实际上包含了整套很多有意义的服务具体如下 工作管理服务m a n a g e dj o bs e r v i c e :假设有一些特殊的操作可能会花上 上海大学硕士学位论文 几个小时甚至几天的时候来完成,人们不希望简单的坐在电脑面前等待结果出 来( 特别是当等了8 小时后,可能只会得到一个错误信息! ) 。人们希望能定期 的检查运算的过程,并且可以控制运算的过程( 暂停,停止等等) 这就是通常 所说的工作管理,这个工作管理服务允许像j o b 一样处理调用,有根据的管理 它们。 索引服务i n d e xs e r v i c e :客户可能知道需要满足特定要求的网格服务,但 却不知道这个网格服务的位置,w e bs e r v i c e 通过u d d i “来解决这个问题一样, g t 3 拥有自己的索引服务。 可靠的文件传输服务r e l i a b l ef i l et r a n s f e r ( r f t ) s e r v i c e :这个服务 允许在客户端与网格服务执行大型文件传输。可以把它作为文件发送更重要 的是r f t 保证了传输的可靠性。 g t 3 数据服务g t 3d a t as e r v i c e s :这层包括复制管理,这个功能在必需 处理大量数据的应用中很有用。当处理大量数据时,不需要关心完整的数据是 否都已经下载,只需要处理- - 4 , 部分数据,复制管理可以对使用的数据子集进 行跟踪。 o t h e rg r i ds e r v i c e s :其他非g t 3 服务运行在g t 3 体系结构的顶层。 2 2 2g t 3 0 软件体系框架 要讨论g l o b u s 工具箱中使用的软件框架,先要了解一下服务器端框架组 件,服务器端框架:图2 2 用图示说明了服务器端的组件。 上海大学硕士学位论文 t h ep o s t g r a d u a t et h e s i so fs h a n g h a iu n i v e r s i t y 图2 25 1 3 软件框架:服务器端体系结构组件 服务器端框架的主要体系结构组件包括: w e b 服务引擎:该引擎由a p a c h ea x i s 】框架软件提供,用于处理一般的 w e b 服务行为,s o a p 消息处理,j a x r p c t l2 j 处理程序处理和w e b 服务配置。 g l o b u s 容器框架:g t 3 提供了一个容器,它通过唯一的实例句柄、实例资 源库和生命周期管理( 包括服务激活钝化和软状态管理) 来管理有状态的w e b 服务。 目前,g t 3 将a p a c h ea x i s 用作其w e b 服务引擎,a p a c h ea x i s 在j 2 e ew e b 容器中运行并提供s o a p 消息侦听器( a x i ss e r v l e t ) ,它负责s o a p 请求响应 序列化和反序列化、j a x r p c 处理程序调用和网格服务配置。如图2 2 所示, g t 3 容器向a x i s 框架提供枢轴( p i v o t ) 处理程序来将请求消息传递给g l o b u s 容器。这个容器体系结构用于管理w e b 服务的状态性质以及这些服务的生命周 期。一旦服务工厂创建了网格服务实例,框架就为该实例创建唯一的网格服务 句柄( g s h ) ,然后向容器资源库注册该实例。该资源库拥有所有有状态的服务 实例由其它框架组件和处理程序与之连接来执行以下服务: 标识服务和调用方法:获取设置服务特性( 如实例g s h 和g s r ) 激活钝化服务:解析网格服务旬柄以引用服务并持久存储它 客户机端框架:图2 3 用图示说明了客户机端的组件。 图2 3 客户机端的组件 g l o b u s 使用标准的j a x r p c 客户机端编程模型和a x i s 客户机端框架网格 服务客户机,除了标准的j a x r p c 编程模型外,g l o b u s 还在客户机端上提供许 多助手类,以隐藏o g s i 客户机端编程模型的细节。 上海大学硕士学位论文 第三章网格服务的开发与部署配置 3 1o g s a 的网格服务开发观点 o g s a 描述并定义了基于w e b 服务的体系结构,这个体系结构由一组接i s l 及其关联的行为组成,用来方便在异构动态环境中共享分布式资源,o g s a 依赖 w s d l 中对服务的定义,w s d l 定义服务访问的参数及其类型网格服务是一 种特殊的w e b 服务,它提供一组遵守特定约定的定义明确的接口。这些接口解 决发现、动态服务创建、生命周期管理、通知和可管理性等方面的问题约定 解决命名和升级问题。 飘格骧务接口的语义 o g s a 定义了网格服务实例的语义:它是如何被刨建的、它是如何被命名 的、它的生命周期是如何被确定的以及如何与它进行通信等等。目前的网格应 用程序通常依赖本机操作系统作为它们的托管环,创建新的服务实例要涉及到 创建新的流程。在o g s a 上下文中,托管环境( 容器) 主要负责确保它支持的 服务遵守网格服务语义。这样,o g s a 就可以促进对容器组件接口的修改或 添加了。 o g s a 允许应用程序和用户创建瞬时服务、发现和确定可用服务的属性, o g s a f a c t o r y 、r e g i s t r y 、g r i d s e r v i c e 和h a n d l e m a p 接口支持创建瞬时服务实例, 并支持发现与实际的组织相关联的服务实例以及确定这些服务实例的特征。 强务能力 服务能力( s e r v i c ec a p a b i l i t y ) ( 组织提供的服务) 被当前的w e b 服务解决 方案广泛使用。网格服务能力也可能是计算资源、存储资源、潮络、程序、数 据库等等。网格服务的特征由它们提供的能力来确定网格服务实现一个或多 个接口,其中每个接口定义一组通过交换定义好的消息序列( 比如方法调用的 输入参数) 进行调用的操作。网格服务接口对应于w s d l 中的p o r t t y p e s 。 鞭务的敝本确定s 舞级 网格服务支持的p o r t t y p e s 集以及些与版本确定相关的额外信息在网格 服务的s e r v i e e t y p e 中被指定,后者是o g s a 定义的一个w s d l 可扩展性元 素复杂的分布式系统内的服务可以独立升级。因此,可以管理和表达服务问 的版本确定和兼容性,这样客户机就不仅可以发现特定的服务版本,还可以发 现与之兼容的服务。而且,不必打断客户机对服务的操作就可以对服务( 和运 上海大学硕士学位论文 t h ep o s t g r a d u a t et h e s i so f s h a n g h a iu n i v e r s i t y 行它们的托管环境) 进行升级。目前的w e b 服务规范中没有提供这种增强了的 功能。 敬、捩态( s o f t - s t a t e ) 管理 网格服务可以维护服务生命周期的内部状态( 以便把一个服务实例与另一 个提供相同接口的服务实例区分开) 。网格服务实例( g r i ds e r v i c bi n s t a n c e j 这 个术语指的是网格服务的某个特定的实例化。服务通过交换消息进行交互内 部状态的存在使得保证服务已经一次性收到一条完整的消息或根本没收到消息 这种能力变得很重要。在这个基础上,可以构建广泛的更高级别的操作语义, 在一个结合了瞬时的、有状态的服务实例的系统中,必须提供一些机制来使与 失败的操作有关的服务和状态恢复原状。 飘播酿务部署s 暇务洼聚 网格服务部署和发布使用简单对象访问协议( s i m p l eo b j e c ta c c e s s p r o t o c o l ,s o a p ) 的远程过程调用( r e m o t ep r o c e d u r ec a l l ,r p c ) s e r v l e t 和网 格服务的实际实现可以被部署到应用程序服务器上。所有的调用消息都将被 s o a p r p cs e r v l e t 捕获,它把这些消息路由到相应的网格服务。图3 1 是部署与 注册的示意图。 圈3 1 网格服务部署与发布示例的示意图 网格服务发布到w e b 殿务检查署亨( w e bs e r v i c e s i n s p e c t i o nl a n g u a g e ) ( w s i l ) 文档,w s i l 提供了对已存在的服务描述文档的引用进行聚集的方法( 这些文档 已经被用许多种格式编辑过了) 。然后这些检查文档在服务提供点处被提供,或 者通过可以放置在内容媒体( 比如h t m l ) 中的引用使其可用。 网格鼹务实钢的截建s 谴罱 用户应用程序在工厂上调用“创建网格服务( c r e a t eg r i ds e r v i c e ) ”请求, 请求创建一个新的服务实例并分配临时存储器以供这次计算之用。每个请求 上海大学硕士学位论文 t h ep o s t g r a d u a t et h e s i so f s h a n g h a iu n i v e r s i t y 都涉及到用户和相关工厂之间的相互认证,接着是请求授权。每个请求都成功, 结果是创建出了个带某个初始生命周期的网格服务实例。同时还给这个新创 建的网格服务实例提供了一个委托的代理凭证,该凭证允许这个实例代表用户 执行更多的远程操作。由于网格服务是动态的并且是有状态的,所以每个网格 服务实例都被分配了一个全局唯一的名称,即网格服务句柄( g r i ds e r v i c e h a n d l e ) ( g s h ) ,它把一个特定的网格服务实例与其他所有的网格服务实例区 分开来。用户应用程序生成对它创建的网格服务实例的定期k e e p a l i v e 请求,通 过提供网格服务规范中定义的接口的基于标准的、可定制的实现,大多数网格 行为对托管环境和应用程序代码都将是透明的。参考实现的另一个目标是例示 关键的0 g s a 概念来帮助规范实现者、托管环境提供者和服务提供者。该实现的 主要目的是提供一个框架,使得在网格环境中容易集成、开发和使用服务。 o g s a 开发i 其:g l o b u st o o l k i t g 1 0 b u st o o l k i t 建立在s o a p 、w s d l 等w e b 服务技术的基础之上,用来支 持分布式状态的管理;轻量级的检查和发现以及异步通知。所有的外部组件都 通过w s d l 接口描述公开,这些描述直接从g l o b u s 服务规范中派生出来。 g l o b u st o o l k i t 提供了一个g u i 框架来演示网格服务的动态性质。它告诉开 发者在服务变为可用时如何使用发现( d i s c o v e r y ) 和检查( i n s p e c t i o n ) 使用它 们。它知道如何从g s h 获取网格服务引用( g r i ds e r v i c er e f e r e n c e ,g s r ) ,还知 道如何把在g s r 中发现的w s d l 端口类型映射到一个g u i 面板。服务提供者可以 很容易地通过配置添加对新端口类型的支持。所有的g u i 面板实现都被给予一 个g s h 和一个缺省的g s r 端点以使服务调用支持某个特定的端口类型。 也可以使用g 1 0 b u s 提供的轻量级发现和检查能力按名称查询服务。g u i 框 架使所有的服务都自动成为查询和检查请求的目标。为网格编写的所有服务都 将公开个针对检查的w s d i 。文件和一组s e r v i c ed a t a 元素,这取决于提供了什 么服务。这意味着所有的o g s a 服务都将使用o g s a 服务浏览器,可以查看用 w s d l 描述的服务接口的详细信息。 客户机可以使用许多不同的模型来调用或启用网格服务。任何支持w s d l 的 工具都可能有自己的编程模型。当前实现支持的一个可能的模型是: 1 根据v s d l 定义生成一个代理。 2 从一个众所周知的注册中心中的服务( 该服务支持步骤1 中使用的端口 类型) 获取一个g s h 。 3 用g s h 的w s d l 选项调用h t t p g e t 来获得g s r 并解析端点u r l 。 4 向步骤1 中生成的代理传递在步骤3 中找到的端点u r l ,然后开始调用服 务。 上海大学硕士学位论文 如果绑定是s o a p 协议的话,也有可能使用现有的工具,比如w s t k 中的 w s d l 2 j a v a 生成s o a p 调用代理来调用网格服务。另一种方法是使用w e b 腰务 堀用棰梨i v s i f ( w e bs e r v i c e si n v o c a t i o nf r a m e w o r k ) 1 1 3 1 ( 来动态检测绑定协议 和构建适当的调用代码。使用w s i f 的免代理调用代码的输入可以包括w s d l 的 位置、方法名和这个方法的输入参数,绑定协议可以包括s o a p 、c o r b a 、d c o m 等。下图是服务调用的过程。 图3 2 网格服务调用过程 3 2g t 3 0 上网格服务开发部署 3 2 1g t 3 0 服务开发机制 g t 3 程序设计符合通常的分布式计算编程模型,即p r o x y s t u b 模型。它包 括服务端编程和客户端编程两个部分,服务端和客户端是弱耦合的。它们之问 的联系是通过w s d l 服务描述文件来完成的。服务提供者在开发服务时,必须 提供相应服务的w s d l 服务描述文件。在该文件中具体描述了服务的接口、服 务的调用方法以及服务调用同底层通信协议的绑定情况。客户端用户得到 w s d l 服务描述文件后,就可以根据该文件生成服务调用的s t u b ,并通过该s t u b 来完成对服务的调用。同时,以w s d l 文档为中心,也为上层服务调用与底层 通信协议的分离提供了可能。服务提供者可以提供多种服务调用与底层通信协 议绑定的方法。客户端可以在这些方法中选定一种绑定来完成服务调用。这种 绑定选择甚至可以延迟到服务调用时进行。下面在g t 3 0 中以m a t h 例子来进行 描述g t 3 服务程序设。m a t h 的功能很简单,当客户端调用服务器端服务时,指 定输入数字,服务器端服务收到该数值后,将把数字的运算结果发还给客户端。 3 2 2 服务端开发 服务端程序设计分为四个步骤: 提供一个服务接口:生成网格服务支持代码 实现服务:部署服务 1 提供服务接日 上海大学硕士学位论支 有两种方式可以用来提供网格服务的接口。一种方法是用j a v a 语言编写一 个接口,然后用工具生成w s d lp o t e t y p e 接口描述文件,以供用户远端的客户 调用,使用这种方法可以很容易、很方便的生成w s d l 文件,但也有缺点如一些 复杂的接口不是总能正确地转换为对应的w s d l 文件;一种方法是自己编写w s d l p o r t t y p e 接口文件。这种方法的优点是可以完全控制服务接口的描述,适合于编 写较复杂的服务,缺点是直接书写w s d l 对用户的要求要高,掌握起来难度要大。 定义j a v a 接口文件m a t h j a v a : p a c k a # 。g 讪1 3 c o r e 。”r y m p , i p b l i n t c r l h c em a m l p “1 1 c “( i n t 。) , l p u h “”u h 叽“帅) 。 l i 。? 篓篓二。一,一j 1i 廊。? m 1f :k * “。,”i ,口“一 “j 一_ - m ,- 这是用来生成w s d l p o t e t y p e 接口描述文件的j a v a 文件。这个接口有加、减、 返回结果三个方法,用来返回用户输入字符串。此接口文件放在 t u t o r i a l g t 3 t u t o r i a u c o r e f i r s t j i m p l 目录下。 这是用来生成w s d l p o t e t y p e 接口描述文件的j a v a 文件。 2 生戏两格疆务支持代码 这一步骤分为两步:生成w s d l 文件,生成s t u b 。 i ) 生成w s d l 文件: 在t u t o r i a l 目录下建立b u i l d p r o p e t i e s 文件,并添加以下代码: o g s a r o o 劬。酬g l o b u s g t 3 0 , 。、- 用来指明安装的g t 3 的目录。稍后的b u i l d x m l 文件中会使用到这个文件 在t u t o r i a l 目录下建立b u i l d x m l 文件,并添加以下代码: 在t u t o r i a l 目标下运行a n tg e n e r a t e w s d l ,会在 t u t o r i a l _ d i r b u i l d s c h e m a g t 3 t u t o r i a l c o r e f a c t o r y
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025秋统编版三年级(2024)新教材语文上册《手术台就是阵地》练习题及答案
- 编织品耐候性测试技术改进考核试卷及答案
- 稀土离子浮选回收工艺考核试卷及答案
- 兴趣点地理信息采集员5S管理考核试卷及答案
- 建筑五金制品制作工三级安全教育(公司级)考核试卷及答案
- 信息技术考试题及答案
- 服务心理学(第四版)课件 项目三 任务二 转变角色意识
- 马克思主义基本原理核心考点综合测试卷
- 银行押韵员面试题及答案
- 有机药学专业试题及答案
- 职工小家日常管理制度
- 开发基于多模态大模型的CST2差异化评课模型及其应用案例
- 客户公海池管理制度
- 2025至2030年中国稀土储氢材料行业市场全景评估及发展趋向研判报告
- “十五五”城镇住房发展规划
- 殡葬,自评报告
- 二+宁夏闽宁镇:昔日干沙滩今日金沙滩(教学设计)-【中职专用】高二语文上(高教版2023职业模块)
- 地勘单位保密管理制度
- 四川电网新建电源并网服务指南(2025年)
- 青鸟消防系统常见故障分析培训课件
- 资产收购居间协议书
评论
0/150
提交评论