




已阅读5页,还剩43页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
w e b 服务的变更影响分析工具研究 摘要 w 曲服务技术的问世,以w e b 服务来构建系统的理念已深入人心。w e b 服 务具有良好的开放性、互操作性及语言平台无关性等优点,成为解决异构系统 集成的首选。但是由于单个w e b 服务功能单一,需要把w e b 服务组合起来才 能实现某个应用。目前,通过b p e l 4 w s 规范编写的业务流程组合w 曲服务成 为主流方法。 随着w 曲服务的广泛使用,w 曲服务之间的依赖关系也越来越复杂。然而 需求的变更会直接导致软件的变更,而软件变更将会影响软件的质量。因此需要 对w 曲服务之间的依赖关系、w e b 服务变更影响范围、w e b 服务变更影响程度 进行研究,进而为软件变更和回归测试提供参考依据。 本文研究了w e b 服务依赖关系,提出了w e b 服务依赖关系处理模型以及 设计了w e b 服务变更影响分析算法,主要内容有:介绍了w e b 服务技术, 并对b p e l 4 w s 组合w e b 服务进行了研究;在b p e l 4 w s 组合w e b 服务的基 础上研究了w e b 服务之间的依赖关系,将w 曲服务依赖关系分为子集依赖、 父集依赖、相互依赖、回路依赖,并给出它们的形式化定义;提出1 r n d f 、 2 r n d f 、3 r n d f 三个w e b 服务依赖关系范式,并依此范式提出w e b 服务依赖 关系处理模型,以规范处理w e b 服务依赖关系,模型包括w e b 服务集合、w e b 服务依赖关系、依赖关系检测、依赖关系处理:为了度量w e b 服务依赖影响 程度,依w 曲服务的特点,引入工作量计算方式的、b 服务依赖因子:设 计了w 曲服务变更影响分析算法w i a a ,及w 曲服务变更影响分析工具,该工 具可以对b p e l 4 w s 建立的w 曲服务应用,进行变更影响分析。实验结果表明, 此工具分析结果对指导w 曲服务变更具有一定的参考价值。 关键词:w e b 服务;b p e l 4 w s ;w e b 服务变更;影响分析 r e s e a r c ho fw e bs e r v i c ec h a n g ei m p a c ta n a l y s i st 0 0 l a b s t r a c t w i t ht h ea d v e n to fw e bs e r v i c e st e c h n 0 1 0 9 y ,u s i n gw e bs e r v i c e st ob u i l dt h e s y s t e mc o n c e p th a sb e c o m ef i r m l yr o o t e d t h eg o o do p e n n e s s , c o o p e r a t i o na n d i n d e p e n d e n c eo ns o f t w a r ea n do sm a k ew e bs e r v i c et h eo p t i m a lt e c h n i q u ei n s e t t l i n gi n t e g r a t i o no fh e t e r o g e n e o u ss y s t e m a sas i n g l ew e bs e r v i c eh a sl i m i t e d f u n c t i o n s ,w en e e dc o m p o s ew e bs e r v i c et oa c h i e v eo n ea p p l i c a t i o n n o w ,u s i n g b u s i n e s sp r o c e s sw r i t t e nb yb p e l 4 w sh a sb e e nam a i nw a yt oc o m p o s ew r e b s e r v i c e w i t ht h ew i d e s p r e a du s eo fw e bs e r v i c e ,d e p e n d e n c yb e t w e e nw e bs e r v i c e si s m o r ea n dm o r ec o m p l e x t h ed e m a n dc h a n g e sm a yd i r e c t l yl e a dt h es o f t w a r e c h a n g e s t h es o f t w a r ec h a n g ew i l la f f e c tt h eq u a l i t yo f t h es o f t w a r e t h e r e f b r e ,w e n e e dt os t u d yt h ei m p a c to ft h ec h a n g e so fw e bs e r v i c es o f t w a r e ,a n a l y z et h es c o p e a n ds t r e n g t ho f 、e bs e r v i c ec h a n g e s ,a n dp r o v i d ear e f e r e n c ef o rt h ew e bs e r v i c e c h a n g e sa n dr e g r e s s i o nt e s t i n g t h i sd i s s e r t a t i o nr e s e a r c h e st h er e l a t i o n s h i po fw e bs e r v i c e s ,p r e s e n t st h ew e b s e r v i c ed e p e n d e n c yn o r m a lf o r m ,a n dd e s i g n st h ea r i t h m e t i co fa 芏l a l y s i st h ei m p a c t o fc h a n g i n gw e bs e r v i c e f i r s t ,d e s c r i b e sw e bs e r v i c e ,a n dr e s e a r c h e so nw e b s e r v i c ec o m p o s e db yb p e l 4 w s s e c o n d ,a n a l y z e st h ed e p e n d e n c ya m o n gw e b s e r v i c e s w e bs e r v i c ed e p e n d e n c yi n c l u d e sc h i l dd e p e n d e n c y ,f a r t h e rd e p e n d e n c y , m u t u a ld e p e n d e n c ya n d1 0 0 pd e p e n d e n c y a n dt h o s ed e f i n i t i o n sa r eg i v e n t h i r d , p r o p o s e st h en o r m a lf o r mo fw e bs e r v i c ed e p e n d e n c yw h i c hi n c l u d e s 1r n d f , 2 r n d fa n d3 r n d f ,t h e np r o p o s e sm o d e lo fw e bs e r v i c ed e p e n d e n c yr e l a t i o n s b a s e dt h ef o r m t h a ti st on o r m a l i z et h ed e p e n d e n c er e l a t i o n s ,a n di n c l u d e sw e b s e r v i c es e t ,w e bs e r v i c er e l a t i o n s h i p ,w e bs e r v i c er e l a t i o n s h i pd e t e c t i n ga n dw e b s e r v i c er e l a t i o n s h i ph a n d l e r f o u r t h ,i no r d e rt oq u a n t i f yt h ed e g r e eo ft h ei m p a c t b e t w e e nw e bs e r v i c e s ,t h ed e p e n d e n c yg e n ei si n t r o d u c e dt h a tr e c a l c u l a t e db y w o r kd o n e l a s t ,d e s i g n st h ei m p a c ta s s e s s m e n ta l g o r i t h mo ft h ew r e bs e r v i c e c h a n g e s b a s e do n t h ea l g o r i t h m ,ap i l o tw e bs e r v i c ec h a n g ei m p a c ta n a l y s i st o o li s p r e s e n t e d t h i sc a na n a l y z ea 、e bs e r v i c ea p p l i c a t i o nb u i l tb yb p e l 4 w s e x p e r i m e n t a lr e s u l t ss h o wt h e r eh a sg u i d i n gv a l u eo fw e bs e r v i c ec h a n g ei nt h i s t o o 】 k e yw o r d s :w e bs e r v i c e ;b e e l 4 w s ;w e bs e r v i c ec h a n g e ;i m p a c ta n a l y s i s i i 图表清单 2 1w e b 服务架构7 2 2w e b 服务技术体系结构1 0 3 1w e b 服务子集依赖1 6 3 2w e b 服务父集依赖关系一1 6 3 3 存在w 曲服务子集依赖关系1 7 3 4w e b 服务回路依赖1 8 3 5w e b 服务依赖关系处理模型1 9 3 6w e b 服务依赖有向图2 0 3 7 检测w e b 服务回路依赖2 1 3 8w e b 服务依赖关系2 2 3 9w e b 服务之间依赖关系2 4 4 1w e b 服务变更处理流程3 2 4 2w e b 服务依赖关系分析一3 2 4 3w e b 服务变更影响分析工具功能结构3 3 4 4b p e l 4 w s 导入3 5 4 j 5w e b 服务变更事申请3 5 4 6w c b 服务变更初审3 6 4 7w e b 服务变更复审3 6 4 8w e b 服务变更影响分析3 7 3 1w 2 直接依赖与间接依赖2 2 3 2w l 与w 2 依赖因子2 4 3 3w e b 服务依赖矩阵2 5 3 4w l 影响范围及程度2 5 3 5w e b 服务各个阶段工作量矩阵2 8 3 6w j 服务( 内部) 各个阶段时问与成本2 8 3 7w i 服务( 外部) 各个阶段时间与成本2 8 4 8w l 变更影响分析3 7 v i 图图图图图图图图图图图图图图图图图图图表表表表表表表表 独创性声明 本人声明所呈交的学位论文是本人在导师指导下进行的研究工作及取得的研究成 果。据我所知,除了文中特别加以标注和致谢的地方外,论文中不包含其他人已经发表 或撰写过的研究成果,也不包含为获得金g 墨王些太堂 或其他教育机构的学位或 证书而使用过的材料。与我一同工作的同志对本研究所做的任何贡献均已在论文中作了 明确的说明并表示谢意。 学位论文作者虢鄙斌 签字嗍泖年中月厉日 学位论文版权使用授权书 本学位论文作者完全了解佥目巴王些太堂有关保留、使用学位论文的规定,有权保 留并向国家有关部门或机构送交论文的复印件和磁盘,允许论文被查阅和借阅。本人授 权金月巴王些太堂可以将学位论文的全部或部分内容编入有关数据库进行检索,可以采 用影印、缩印或扫描等复制手段保存、汇编学位论文。 ( 保密的学位论文在解密后适用本授权二岛) 学位论文作者签名:哿斌 签字日期:剜年争月历日 学位论文作者毕业后去向: 工作单位: 通讯地址: 导师签名 签字日期 电话: 邮编: 日 致谢 2 年多的时间,弹指一挥间。想想入学典礼仿佛就在昨天。在此期间各位 老师和同学都给予我最大的关心和帮助,我会把他们永远放在我心里的一个角 落。 在这里我首先要感谢我的导师李心科,我有幸加入1 2 1 0 实验室学习。他渊 博的知识、严谨的治学态度、实事求是的科研作风深深的影响着我。他经常幽 默风趣,深入浅出地与我们探讨研究问题,在此过程中我们快乐地学习。不仅 是在学习中,他还为我指明了,毕业后的工作方向,职业发展,清除了我心中 的纠结。我相信这些都会使我在未来的学习和工作中受益匪浅。再次感谢李老 师对论文的悉心指导,论文的每一个阶段中都含有李老师的大量的心血。 感谢1 2 1 0 实验室的师弟师妹们和已经毕业的师兄师姐们,我们共同学习的 2 年多的时光,给我留下了美好的记忆。特别要感谢张青清同学对我论文的仔 细校对。 我还要感谢我的父母、姐姐,他们无时不刻地关心着我,支持着我,鼓励 着我,我才能一步一步的完成学业和克服各种困难。希望他们永远平安健康。 最后,衷心地感谢评阅、评审、出席论文答辩会的各位老师和专家们在百 忙之中给予的悉心指导。 郭 斌 2 0 1 0 年3 月 第一章绪论 1 1 研究背景 结构化的软件开发思想于上世纪6 0 年代末到8 0 年代初占主导地位。函数 复用是其对应的复杂层次,将变化放置于参数中,通过此种方式来适应需求的 变化。到上世纪8 0 年代,面向对象的软件开发思想慢慢发展起来,时至今日面 向对象开发思想已经成为经典。它通过类的封装,实现信息隐蔽和数据抽象, 利用类的继承和包含的特性,提高了程序代码的复用程度。后来出现的一系列 技术,几乎都采用了面向对象的思考方式来构建软件系统。但是面向对象软件 开发对应的复用层次仍然停留在代码层面上,由于粒度不大,还没有完全达到 高复用和使软件具备动态适应外界环境变化和需求变化的程度。因此,为了解 决此问题,并随着w e b 服务模式逐渐兴起,将软件模块开发成构件,将其发布 在i n t e r n e t 上供用户调用的w e b 服务模式已经被人们广泛认可与使用。 w e b 服务是建立可互操作的分布式应用程序的新平台。为了实现不同平台 环境的互操作性,w e b 服务的平台采用可扩展的标记语言( e x t e n s i v em a r k u p l a n g u a g e ,简称x m l ) 【,便于在不同的编程语言、不同的平台和不同的组件 模型之间进行沟通。用w s d l ( w 曲s e r v i c e sd e s c r i p t i o nl a n g u a g e ,服务描述 语言) 【2 】描述w e b 服务,用户可以得到足够的信息调用这个w e b 服务。此外, s o a p ( s i m p l eo b j e c ta c c e s sp r o t o c o l ,简单对象访问协议) 【3 j 等提供了标准的 r p c ( r e m o t ep r o c e d u r ec a l lp r o t o c o l ,远程过程调用协议) 调用w e b 服务【引。 然而,据预测全球对软件的总体需求将在下一个十年中以数量级的速度增 长,希望用户一次性地确定需求,是不现实的。目前客户在开发过程中提出新 的需求或者变更需求的现象已经是司空见惯了,所以需求变更是不可能完全被 避免的。因此在软件开发过程中的特点就是:“唯一不变的就是变更”p 】。然而 需求的变更影响的结果往往就是需要对软件进行调整和变更。 随着i n t e r n e t 的快速发展,i n t e r n e t 逐渐成为软件的主流运行环境之后,人 们甚至希望随时随地的,利用任何终端访问软件系统。网络的动态性和开放性 使得客户需求与网络资源变化更加频繁,导致需要对软件演化的必要性和复杂 性进一步加强。 近几年,软件测试技术的迅速发展,使软件测试技术已经形成了一套较完 整的理论体系和测试方法,测试用例的产生方法都逐渐完善。然而,新的面向 服务技术、w 曲服务开发方法和b p e l 4 w s ( b u s i n e s sp r o c e s se x e c u t i o nl a n g u a g e f o rw 曲s e r v i c e s ,w 曲服务业务流程执行语言) 【6 】组合w e b 服务的出现,使软 件测试人员与开发人员也要面临同样挑战。一方面,w 曲服务技术为软件开发 提供了更好的软件体系结构,从而可以提高软件可维护性和代码的重用性,人 l 们认为广泛使用的w 曲服务的开发方法,是解决软件危机的一个新兴技术;另 一方面,由于w e b 服务之间错综复杂的调用关系的特点,也需要对w e b 服务 系统像面向对象软件系统一样,对每一次变更,都进行变更影响分析,从而指 导软件演化和测试。 1 2 课题来源 软件变更是软件工程的热点问题之,组合w 曲服务是构建软件系统的新 方式。大量文献,需求变更管理,面向对象变更12 1 ,面向方面变更【1 3 】iw e b 服务的发展【14 1 ,w e b 服务组合与基于w 曲服务的工作流【1 5 - 3 3 】,表明了w 曲 服务变更分析的重要性,本文为自拟项目。 1 3 国内外现状 面向对象语言迅速发展,它已经成为了公认的经典语言,最近几年的热门 研究的一直是对面向对象语言变更影响分析。h a r o l d 和r o t h e r m e l 在面向对象 环境,将修改影响分析技术运用其中。他们构造了程序代码的类依赖图算法, 将控制依赖和数据存储于程序依赖图中。研究当一个程序中类发生某种更改, 利用依赖图的算法可以分析出与源类构成多态、继承、封装和动态绑定的关系 的子类,以及使用该类的应用程序。 1 9 9 8 年,d hb a e 、y rk w o n 、y kj a n e 和h sc h a e 介绍一种在类层次上的 修改影响分析方法。它与其它的方法不一样,此方法是基于类防火墙。它使用 成员函数来进行测试分析,并得出面向对象各种特征相关的变更影响,例如函 数成员、数据成员、类和继承关系的修改类型。使用成员依赖图模型描述类中 成员之间的依赖关系,并且将其中成员依赖分为数据依赖和控制依赖。具体的 步骤有:先分析类成员,并创建成员依赖图,然后根据成员依赖图来分析函数 成员、数据成员、类与类的依赖关系以及类与类继承关系,如果其中一个类被 修改,那么修改所影响的部分就可以被算法分析并显示出来。 2 0 0 1 年,f r a n kt i p 和b a r b a r aq r y d e r 认为修改影响分析是一系列程序代 码变更修改在语义上的影响,并提供参考反馈信息。这种分析可以用来确定修 改变更后的测试用例与回归测试,避免全局测试,节约测试成本。并且,如果 一个测试失败了,将鉴别出被修改的子集,同时可以将修改子集与没有受到影 响的测试用例组合在一起。为了分析方法的简单化和易扩展化,他们使用类、 域、方法和相互关系作为分析修改影响的原子单位。并且使用图来分析面向对 象中的各种复杂关系。 而近几年国内外几乎都是分析面向对象变更。相比于面向对象变更影响分 析关注于代码层面,w 曲服务变更影响分析相对要简单很多,w 曲服务没有面 向对象复杂的封装、继承、多态等特性,并且w e b 服务也是粗粒度的,因此, 分析w 曲服务变更影响不会继续关注代码层面上。但是随着w e b 服务的广泛 2 使用,w e b 服务之间的关系也存在一定的复杂度。然而基于w e b 服务的变更影 响分析研究还很少。 1 4 论文研究的内容与意义 1 4 1 论文研究的内容 本文在广泛阅读国内外关于w e b 服务、w 曲服务组合、需求管理、需求变 更影响分析、软件项目、面向对象变更影响分析文献后,综合分析了w e b 服务、 w e b 服务组合、w e b 服务变更影响分析的研究现状,在此基础上研究了w e b 服 务变更影响分析,主要研究内容包括以下5 个方面: w e b 服务依赖关系的研究,w 曲服务之间的依赖关系也是变更影响分析 难点,也是确定w e b 服务变更影响范围的关键所在。本文首先对w e b 服务之 间的依赖关系进行了分析与归纳。提出w 曲服务关系范式,并在此基础上 提出一个w 曲服务依赖关系处理模型,用来规范w e b 服务之间的依赖关系。 提出w e b 服务依赖因子,用它来度量w e b 服务变更时存在依赖关系的w 曲 服务之间的影响程度,并给出依赖因子计算方法,对w 曲服务之间的影响进行 了量化。提出w e b 服务变更影响分析算法,从成本和工作量的层面对w 曲 服务变更影响进行分析。设计了基于w 曲服务变更分析工具,详细阐述了该 工具各组成部分,并对w 曲服务变更影响分析结果作了初步的分析。 1 4 2 论文研究的意义 与面向对象变更相比,w 曲服务是粗粒度的。w 曲服务之间没有面向对象 复杂的封装、继承和多态的特性,看起来w e b 服务的变更要比面向对象的变更 要简单的多,w 曲服务之间只存在调用与被调用的关系。 然而随着w e b 服务与i n t e r n e t 技术的发展,人们能更容易地查询到符合需 求的w e b 服务,也能更容易地使用w e b 服务,因此人们也开始在越来越多使 用w 曲服务这种方式来构建项目系统。但是随着w e b 使用的增加,w 曲服务 之间关系也越来越复杂。无论以何种方式构建的系统,都需要面对软件需求变 更对软件系统的冲击,w 曲服务构建的软件系统也必须要面对变更所带来的挑 战。 一旦系统中的w e b 服务发生变更,本文也需要像面向对象变更一样,能够 定量分析出变更影响的范围与变更影响的强度,也能为w e b 服务系统提供维护 依据,指导变更后的回归测试。因此研究w e b 服务变更影响分析具有很强的现 实意义。 1 5 论文的组织结构 本文共分为五章,内容概要如下: 第一章,介绍本文的研究背景和研究意义,概述了w e b 服务变更影响分析 3 在w e b 服务软件项目中重要意义,同时分析和提出本文的主要研究工作。 第二章,介绍了w e b 服务的概念和特点,w e b 服务组合技术,b p e l 4 w s 语 言规范。 第三章,在分析了w 曲服务的依赖关系的基础上,给出w e b 服务依赖关 系的定义、类型、性质;归纳总结并提出w e b 服务依赖关系范式,创建依赖关 系处理模型;w 曲服务依赖因子的定义、量化处理、w 曲服务变更影响分析算 法。 第四章,介绍了w 曲服务变更影响分析工具的实现,并将w e b 服务变更 影响分析算法加至此工具中,最后在此工具中,用实验来验证w e b 服务变更影 响分析算法。 第五章,总结并指出下一步工作。 4 第二章w e b 服务与w e b 服务组合 2 1w e b 服务技术 2 1 1w e b 服务的提出 随着w e b 应用的不断发展,人们发现w e b 应用和传统桌面应用( 如企业 内部系统等) 不易进行信息与数据之间的共享,不得不重复地将数据搬迁复制 于在w e b 应用和传统桌面应用之间,以达到w e b 应用与传统应用之间的信息 数据共享。但是交互能力差的共享方式,已经成为了w 曲应用进入工作流系统 应用的障碍。人们利用计算机应用就是为了满足自动化的需求,如果在自动化 流程中介入过多的人工流程,必然会降低工作效率与积极性。 i n t e r n e t 的发展为开发新服务,挖掘新客户提供了各种机会。然而如何将这 些应用快捷的、低廉的使用,从而组合并实现跨企业的商务应用系统的连接。 这是开发人员需要面对的挑战。各个w 曲应用的部署平台、语言、通讯协议、 对外交换的数据格式等环境存在差异,如何解决这些差异所带来的高代价的系 统集成已经成为了亟待解决的关键问题。在早些年,诸如传统的分布式组件技 术,d c o m ( d i s t r i b u t e dc o m p u t e ro b j e c tm o d e l ,分布式组件对象模型) ,c o r b a ( c o m m o no b j e c tr e q u e s tb r o k e ra r c h i t e c t u r e ,公共对象请求代理体系结构) , j a v ar m i ( j a v ar e m o t em e t h o di n v o c a t i o n ,j a v a 远程方法调用) 等也能实现在 w e b 上的远程调用组件,但其采用的都是私有协议,即企业内部自己定义的协 议,往往只有自己才能解析和使用,给w e b 远程调用带来了难度。导致平台依 赖性较大、跨平台交互能力差,只能在系统内部或者相同的系统结构间进行通 信。例如c o r b a 需要每个连接点都使用o r b ( o b j e c tr e q u e s tb r o k e r ,对象请 求代理程序) ;使用d c o m 的每个连接点都必须是w i n d o w s 系统平台;使用 r m i 的每个连接点都必须是j a v a 语言编写的程序才能互相通信。这都使这些技 术受到了极大的限制,不利于应用的开放性,阻碍了w e b 应用的广泛使用。 为了解决以上问题,于是出现了x m l 技术。基于x m l 技术的w e b 服务 针对此问题提供了较好的解决方案。x m l 就像英语一样,成为各国通用的、都 能被大家理解的流行语言。w 曲服务最大的优势就是在现有的各种异构平台的 基础上构建一个通用的与平台无关、语言无关的技术层。各种不同平台之上的 w e b 应用,都可以在这个技术层来实现彼此间的连接和集成。因此,可以看出 w e b 服务与传统w e b 应用技术是有区别的:w e b 应用只是解决了如何让人们能 在w e b 发布应用,用户可以使用w e b 应用所提供的服务,而w e b 服务则是要 解决如何让计算机系统使用w e b 应用所提供的服务。 2 1 2w e b 服务的概念 w e b 服务就是一个应用程序,它向外界暴露出一个能够通过w e b 进行调用 的开放的a p i ( o p e na p i ) 【引。即w e b 服务是能够用编程的方法在任何地方通 过w 曲来调用想要调用的应用程序。 在不同的角度,w e b 服务有以下3 种定义: w 曲服务,通常是指用于架构w e b 服务的整体技术框架。w e b 服务是用 基于标准的w s d l 语言描述的,可以通过w s d l 得到w e b 服务的具体信息。 它包含了w e b 服务交互所需要的所有信息细节,如消息格式、传输协议和位置。 w e b 服务通过标准的w 曲协议( 如s o a p ) ,包装了操作的接口,这样可以通 过标准化的x m l 消息传递机制s o a p 来访问这些可编程访问的w e b 组件。 2 0 0 2 年1 月,在美国旧金山召开了“新一代w 曲服务”会议,得到的 较为一致的看法:w 曲服务应是一种基于组件的软件平台,是面向服务的 i n t e r n e t 应用。通过对w e b 服务的构建,人们可以得到一个可编程的i n t e r n e t 。 w 3 c 作为w 曲技术的开拓者,认为w e b 服务是一种软件开发协议 ( u d d i ,s a o p ,w s d l ) ,由此可将i n t e m e t 及其各种表现形式( 如w e b ,i n t r a n e t 和e x t r a n e t ) 变成一种可编程的信息沟通平台。 综合以上定义,可以概括得出w 曲服务实现了将软件作为服务的理念,软 件可以与数据一样被共享,人们将w e b 服务发布出去,用户可以方便的、开放 的共享这些服务。w e b 服务也是一个可互操作的,分布式应用程序的新平台, w 曲服务提供了在松耦合,可缩放的和非特定平台的平台环境下交换信息一种 的能力,信息交换都采用标准的协议( h t t p 、x m l 、s o a p 和w s d l ) 。w e b 服务是一种“自包含、自描述、组件化的应用程序 。可以用任何编程语言,在 任何的平台上开发w 曲服务,只要通过h t t p ,x m l ,s o a p 和w s d l 就可以 使用这些w e b 服务。如前一章w e b 服务与w e b 应用的区别,w e b 服务是为应 用程序的使用而提供服务的,而不是为最终用户使用准备的,这样第三方可以 查找w 曲服务并将其整合到自己的应用程序中,或者组合w e b 服务来实现新 的应用。这种新的方式,提供了一种开发应用解决方案的新途径:开发人员不 需要在系统中设计开发所需要的具体功能,只需在网络上查找符合自己需求的 w e b 服务,向w e b 服务地址( 即u r l 资源) 发送请求以执行某种操作即可。 第三方不用关心服务的实现过程及细节。这样节约了应用开发的时间成本与提 供了开发效率。i n t e r n e t 的迅速发展将更积极地推动w e b 服务快速的实现信息 共享和复用。 w 曲服务提供了松耦合的,完成应用之间相互操作的,在i n t e r n e t 环境下 的技术框架,w e b 服务架构与传统分布式技术有所不同。该架构主要包括3 个 主体:服务请求者,服务提供者和u d d i ( u n i v e r s a ld e s c r i p t i o nd i s c o v e r ya n d i n t e g r a t i o n ,统一描述、发现和集成协议) 。它们对应的三个主要操作是服务查 6 找、服务绑定、服务发布。如图2 1 所示。 图2 1w e b 服务架构 目前各大标准化组织和著名厂商,如i b m 、微软等,已经围绕w e b 服务发 布、查找、绑定过程指定了相关的标准规范。其中主要包括以下4 个规范:x m l 、 w s d l 、u d d i 、s o a p 。 w e b 服务是一种能够广泛部署在i n t e m e t i n t r a n e t 上的新型的组件对象, w e b 服务利用开放标准和共同的基础设施来进行对象的描述、发现和访问,它 优点和应用范围【7 】如下: 防火墙和代理兼容性。 自动h t t p 鉴别。 通过s s l 实现加密通信侧。 h t t p l 1 持久连接。 开放的标准协议规范。 以编程方式访问。 松散的耦合性和良好的封装性。 高度的可集成能力和互操作性。 便捷的软件发行方式和商务集成。 能应用于软件的重用。 2 1 3x m l x m l 即e x t e n s i v em a r k u pl a n g u a g e 的缩写【l 】,即可扩展标记语言。x m l 规范是w 3 c 制定的文本标记语言规范。它与h t m l 一样,都是s g m l ( s t a n d a r d g e n e r a l i z e dm a r k u pl a n g u a g e ,标准通用标记语言) 。x m l 是i n t e r n e t 环境中跨 平台的,依赖与内容的技术,它是当前描述结构化信息最有力的工具,是一种 简单的数据存储语言,使用一系列间的标记描述数据,并且这些标记可以用简 单的方式建立。 x m l 具有如下的特点及优点: 自描述。x m l 是一种标记语言,可以由标记来标识内容,并有自描述的 特点。 可扩展性。x m l 是一种可扩展的标记语言,用户可以定义自己的标记, 并以此来表达自己的数据,具有强大的可扩展性。 本地计算。x m l 解析器可以读取x m l 数据,并可将它递交给本地应用 程序进行下一步的查看或处理,也可以由使用x m l 对象模型进行处理。 内容和显示分离。x m l 文档只负责描述数据本身,而与数据相关的显示 任务则由另外的处理程序来完成,将内容和显示两者分离开来。 图形化数据视图。依上一个特性,传递到桌面的数据可以根据用户的喜 好和配置等因素,选择不同视图方式将数据呈现给用户。 数据集成。使用x m l 可以描述和集成不同格式的数据,使其能够与其 它应用程序进行交互。 x m l 主要由以下相关技术规范组成: 文档模式技术:d t d ( d o c u m e n tt y p ed e n n i t i o n ,文档类型定义) 和x m l s c h e m a 是x m l 文档的模式,用来对x m l 文档的逻辑结构进行定义。x m l 文 档的模式规定了x m l 文档中的元素、属性、元素和元素以及元素和属性之间 的关系。d t d 源于s g m l ,x m ls c h e m a 采用x m l 语法,专门为定义x m l 文 档的模式而设计的。 文档样式技术:依上面提到的x m l 的内容显示分离特点,c s s ( c a s c a d i n g s t y l es h e e t s ,级联样式表) 和x l s ( e x t e n s i b l es t y l es h e e tl a n g u a g e ,可扩展样 式表语言) 用来定义x m l 文档的显示样式的。其中,c s s 与h t m l 一并出现 和产生的,c s s 在不改变源文档结构的前提下,控制x m l 文档的显示。而x s l 是专门为x m l 设计的,它不仅用来显示x m l 文档,而且可以将一个x m l 文 档转化为另一个x m l 文档。 文档查询技术:w 3 c 推荐的x m l 文档的查询语言是x q u e r y l o 。x q u e r y 起源于q u i l t 的x m l 查询语言,借鉴了x p a t h1 o 、x q l 、x m l q l 、s q l 和 o q l 等语言的优点。 文档解析技术:文档解析是指对x m l 文档的内容和结构进行访问和分 析。主流的文档解析技术包括d o m ( d o c u m e n to b j e c tm o d e l ,文档对象模型) 和s a x ( s i m p l ea p if o rx m l ) 。d o m 优点是它是一种对平台和语言中立的接 口,它的缺点是它是基于x m l 文档在内存中的树状结构,如果要使用它来解 析x m l ,则需要将整个x m l 文档以树状结构装入内存所引起的巨大开销。而 s a x 使用事件驱动来x m l 解析,则并不要求将整个x m l 文档一起装入内存, 节约了内存的开销。 文档链接技术:x m l 的链接功能比h t m l 更强大,它使用的是x l i n k ( x m ll i n k i n gl a n g u a g e ) ,w 3 c 主导使用x l i n k 定义x m l 链接的语法。x l i n k 显式的指定了资源或部分资源之间的关系。在x l i n k 中,并不涉及标示不同类 型数据位置的方法,需要依靠不同的机制来标识想要链接的资源( 例如u r l ) 。 8 w 3 c 后来又推出了另一种x p p i n t e r ( x m lp o i n t e rl a n g u a g e ) 的机制来构造x m l 文档的内部结构。使用它,可以链接到一个具体的对象上去,如一个网页、网 页的一部分、网页中的一个元素甚至是网页中某行的某几个字。 文档定位技术:x p a t h ( x m lp a t hl a n g u a g e ) 是一种用于x s l t ( x s l t r a n s f o r m a t i o n s ) 和x p o i n t e r 中对x m l 文档各个部分进行定位的语言。它是 x s l t 和x p o i n t e r 一种定位语法,用它可以来定位x m l 文件的各个部分。 2 1 4w s d l w s d l 是w e bs e r v i c e sd e s c r i p t i o nl a n g u a g e 的缩写【2 1 ,即w e b 服务描述语 言。它是描述w 曲服务和说明如何与w e b 服务通信的x m l 语言。本质上w s d l 就是这样一个基于x m l 的语言,用于描述w e b 服务及其函数、参数和返回值。 因为是基于x m l 的,所以w s d l 的优点是,它既是机器可阅读的,又是人可 阅读的。些最新的开发工具既能根据w 曲服务生成w s d l 文档,又能导入 w s d l 文档,生成调用相应w e b 服务的代码。 w s d l 文件包含以下元素: t y p e :用来定义使用某种语法( 如x m l 模式) 的数据类型定义( 如s t r i n g 、 i n t ) 。m e s s a g e :要传递的数据。p a r t :消息参数。o p e r a t i o n :服务支持 的操作的抽象描述。p o r t t y p e i n t e r f a c e :一个或多个端点支持的操作的抽象 集。b i n d i n g :特定端口类型的具体协议和数据格式规范。p o r t e n d p o i n t : 绑定和网络地址的组合。s e r v i c e :相关端点的集合,包括其关联的接口、操 作、消息等。 2 1 5u d d i u d d i 是u n i v e r s a ld e s c r i p t i o nd i s c o v e r ya n di n t e g r a t i o n 的缩写,即统一描 述、发现和集成协议【3 4 】。在2 0 0 0 年由a r r i b a ,i b m ,m i c r o s o f t 和其他3 3 家公 司创立u d d i 。u d d i 注册中心提供了以一种有效的方式来浏览的,发现w e b 服务以及它们之间的相互作用的机制。 u d d i 是一个广泛的,开放的行业计划,人们在一个全球的注册体系架构 中共享信息。u d d i 使企业应用软件方便地发现合适的w e b 服务,并与其实施 电子化的商业贸易( 免费或收费模式) 的一种基础系统构筑模块。u d d i 真正 实现了w 曲服务信息访问的“一次注册,到处发布 。 u d d i 商业注册是u d d i 的核心组件,同样它也是使用x m l 这个强大的描 述文档来描述企业及其提供的w e b 服务。u d d i 所提供的信息包含三个部分: 白页( w h i t ep a g e ) :包括了地址、联系方法和已知的企业标识。 黄页( y e l l o wp a g e ) :包括了基于标准分类法的行业类别。 绿页( g r e e np a g e ) :包括了关于该企业所提供的w 曲服务的技术信息, 其形式可能是一些指向文件或u r l 的指针,而这些文件或u r l 是为服务发现 9 机制服务的。 2 1 6s o a p s o a p 是s i m p l eo b j e c ta c c e s sp 亡o t o c o l 的缩写【3 1 ,即简单对象访问协议。 s o a p 利用x m l 来完成w 曲服务的调用与结果反馈。s o a p 使用基于t c p i p 的h t t p 、s m t p 、f t p 等应用层协议,这可以使它轻松地穿越防火墙,并且与 最大程度的兼容了现有的通讯技术。s o a p 是一种轻量的、简单的、基于x m l 的协议,它被设计成在w 曲上交换结构化的和固化的信息。 s o a p 包括以下3 个部分: s o a p 封装:它定义了一个表示框架,该框架描述了消息中的内容,发送 者、接受者、处理者、处理操作的类型。处理操作类型有必需的、可选的。 s o a p 编码规则:它定义了一种序列化的数据编码机制,用于交换应用 程序所定义的数据类型的实例。 s o a pr p c 表示:它定义了用于表示远程过程调用和应答的协定。 s o a p 消息基本上是从客户端到服务端的单
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年飞机系统试题及答案
- 2025年闸门运行工(高级)职业技能考试题及答案
- XJJT 096-2018 农村厕所粪污处理技术规程
- 免疫治疗公平性研究-洞察及研究
- 安财管理学考试题及答案
- 阿克苏兵团公务员考试题及答案
- 出差人员工作绩效评价与激励合同
- 工程机械运输合同含设备拆解、运输及重组服务
- 酒店管理权转让及经营合同范本
- 2025公务员选拔面试题及答案
- 第08讲+建议信(复习课件)(全国适用)2026年高考英语一轮复习讲练测
- 政务大模型安全治理框架
- 2024广东省产业园区发展白皮书-部分1
- 2025年国家网络安全宣传周网络安全知识考核试题
- 2025四川蜀道建筑科技有限公司招聘16人备考练习题库及答案解析
- 生态视角下陕南乡村人居环境适老化设计初步研究
- 2025秋部编版(2024)八年级上册语文上课课件 第三单元 阅读综合实践
- 借车给他人免责协议书
- 任务一切中断时的接发列车办法授课颜保凡课件
- 情侣合伙开店合同范例
- 保护性约束技术操作流程
评论
0/150
提交评论