




已阅读5页,还剩51页未读, 继续免费阅读
(计算机科学与技术专业论文)基于soap的数据交换中间件的研究与应用.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
武汉理t 大学硕十学位论文 摘要 由于1 1 1 t e m 训i n t r a l l e t 应用的各种语言拥有简单,开发迅速的优点,远远短 于传统开发工具的研发时间,因此导致了各种丌发语言层出不穷。 正是如此,繁多的语言使得在不同平台上采用不同语言实现的系统之间集成 相当困难。虽然大多数企业在内部已经实现了信息化,但是由于独自开发,无法 和其他企业进行交流,如果该企业想重用其它企业已实现的某些功能时,没有 一套可以摆脱开发语言、开发平台的限制来重用其他企业已开发功能的机制。 虽然c o r b a 、j a v a b e a n 、e j b 等中间件的问世可以在一定程度上解决系统 集成的问题,但是各个组件都有自身的特点和限制,并没有注重和其它组件之 间的沟通,因此各个组件内部的实现机制并不相同,虽然能解决某些系统的集 成和重用问题,但是没有提供一种完全统一的、完全摆脱平台和语言束缚的集 成方案,针对这一迫切需求,w 曲s e r v i c e 应运而生。 s o a p 是实现w 曲s e i c e 的业界标准,s o a p 采用的传输协议最初为h 订p 后来相继采用s m t p 等协议,s o a p 标准定义了统一的数据表示形式和数据封包 规则,采用x m l 作为信息载体,并且严格定义了封包结构,是实现w | e bs e r v i c e 的最佳方案。 本文首先探讨了与w 曲s e i c e 相关的技术,重点介绍了x m l 、s o a p 和 w s d l 。并结合实际项目,采用j a v a 语言开发的项目一长江航道养护费征收系 统的查询船舶信息代码文件作为w e b 服务部署到s o a p 的发布平台上,而后分 别在j a v a 和d e l p h i 开发环境下编写的湖北省港航规费系统的船舶信息查询模块 中调用已发布的可以被重用的服务,从而无需重新编写业务逻辑代码,提高了 开发效率。并在此基础上提出了采用压缩算法来改进传输效率的方案,最终实 现了不同开发平台、不同开发语言之间的逻辑功能的重用以及数据的交换并达 到了预期效果。 关键词:w 曲s e r v i c e ,x m l ,s o a p ,w s d l 武汉理:r 入学硕十学位论文 a b s t r a c t a st h e1 1 1 t e m e t i n t r a n e ta p p l i c a t i o n s1 a n g u a g e sa r es i m p l ea n dc a nb ed e v e l o p e d r a p i d l y av 撕e t yo fd e v e l o p m e n tt o o l sa n dn e ws 田p t i n gl a n g u a g e sb e c o m em o r ea n d m o r e i ti sb e c a u s eo ft h ep r o g r e s so fi n t e l l l e t i n 仃a n e ti st o of a s t ,t h ei n t e 野a t i o no f d i 陆e 1 1 ti a n g u a g e so nd i f f e r 铷tp l a t f o 彻sa n ds y s t e m si sd i 疗i c u j tt 0a c h i e v e w h i l e m o s t c o m p a n i e s h a v ea c h i e v e di n - h o u s ei n f o m a t i o n i n t e 伊a t i o n , i th a sn o c o m m u n i c a t i o nw i t ho t h e rb u s i n e s s i ft h ec o m p a i l yw a n t st or e u s es o m e 允n c t i o n s w h i c ho t h e rc o m p a n i e sh a v ei m p l e m 朗t e d ,t h e r ei sn or e u s em e c h a l l i s mw h i c hg e t s r i do fd e v e l o p m tl a n g u a g ea n dp l a t f o n l l a l t h o u 曲m i d d i e w a r es u c ha sc o r b a ,j a v a b e a na n de j bc a ns o l v es o m e s y s t e mi n t e 黟a t i o ni s s u e s ,e a c hc o m p o n e n th a si t so w nc h a r a c t 甜s t i c sa n dl i m i t a t i o n s s ot h et r a m t i o n a lc o m p o n e n tc 锄n o tp r o v i d ea 如l l yi n t e 铲a t e d ,c o m p l e t e l y 矗e ef o m t h ei n t e 黟a t e dp l a t f o m la n dl a n g i l a g ep l a i lf o rt h i su r g e n tr e q u i r 锄e n t i nv i e wo ft h i s s i t l l a t i o n ,w 曲s e r v i c e 锄e r g 酣 s o a pi sa i li n d u s t r ys t 狮d a r dt or e a l i z ew 曲s e i c e i tu s e sh t t pa st h e t r a n s p o r tp r o t o c o la n du s ex m l a sa ni n f o r n l a t i o nc a i e r b e s i d e st l l i s ,s o a pd e f i n e s au n i f - o md a t ar 印r e s e n t a t i o n 锄dd a t ap a c k e t1 1 l l e s t h i st h e s i sf i r s t l yd i s c u s s e st h et e c h n o i o g ya s s o c i a t e dw i t ht h ew 曲s e r v i c e , s u c ha sx m l ,s o a pa n dw s d l c o m b i n e dw i t hp r a “c a lp r o j e c t s ,u s i n gt h es h i p i n f o 瑚a t i o nr e s e a r c hm o d u l e 、妇i c hi si n c l u d e di nj a v al a n g u a g ed e v e l o p m e i l tp r o j e c t t h ey | 觚g t z er i v e rc h 锄e lf b e sl e v y i n gs y s t 锄a saw 曲s e r v i c et od 印l o yo n t ot h e s o a pp l a t f o r m ,l e nc o m p i l ec o d ei nt w od i 仃打e l l t1 柚g u a g e s ( j a v aa n dd e p h i ) s y s t 锄sd e v e l o p m e l l to fh u b e ip r o v i n c ew a t e rr o u t ef e e sl e v y i n gs y s t e i nt oc a l l m es e r v i c ew h i c hc a nb er e u s e d f i n a l l y ,a d o p tac o m p r e s s i o na l g o r i t h mt oi m p m v e t h et r a l l s m i s s i o ne 币c i e l l c y b a s e do nt h et h e o r ya i l dc o m b i n e dw i t ht h ea c t u a lp r o j e c t ,f i n a l l yr e a l i z et h e r e u s eo fl o 舀c 如n c t i o na n dt h ee x c h a l l g eo fd a t a k e y w o r d s :w e bs e r v i c e x m l ,s o a p ,w s d l 独创性声明 本人声明,所呈交的论文是本人在导师指导下进行的研究工作及 取得的研究成果。尽我所知,除了文中特别加以标注和致谢的地方外, 论文中不包含其他人已经发表或撰写过的研究成果,也不包含为获得 武汉理工大学或其它教育机构的学位或证书而使用过的材料。与我一 同工作的同志对本研究所做的任何贡献均已在论文中作了明确的说 明并表示了谢意。 学位论文使用授权书 本人完全了解武汉理工大学有关保留、使用学位论文的规定,即: 学校有权保留并向国家有关部门或机构送交论文的复印件和电子版, 允许论文被查阅和借阅。本人授权武汉理工大学可以将本学位论文的 全部内容编入有关数据库进行检索,可以采用影印、缩印或其他复制 手段保存或汇编本学位论文。同时授权经武汉理工大学认可的国家有 关机构或论文数据库使用或收录本学位论文,并向社会公众提供信息 服务。 ( 保密的论文在解密后应遵守此规定) 研究生( 签名) :彩坷 导师( 签、日期:矽庐 武汉理,j :大学硕十学位论文 1 1 选题背景及意义 第1 章引言 伴随计算机信息技术的迅猛发展和信息化的普及推广,很多企业已经实现 了以本单位为独立结构的信息电子化,但在企业外部以宏观来看,每个企业的 应用系统可能在平台部署、开发语言选择、通讯协议等方面采取了不同的方式, 互为独立不相容的个体。正式由于w 曲的发展过于快速,因此也导致了使用不 同的实现技术的系统和平台之间集成棘手的问题。信息融合的需求与日俱增, 为了使企业的整体效益能有显著提高,越来越多的企业迫切需要与其他异构应 用进行集成或进行数据的共享与交换。w 曲s e r v i c e 技术正是能够解决这一问题 的最佳方案。 w 曲s e r v i c e 是一种基于w e b 的中间件技术,它向外界暴露出一个能够被调 用的接口,客户能够用编程的方法通过w 曲来调用这个应用接口提供的服务【2 1 。w 曲 s e r v i c e 的三种核心技术是w s d l ( 全称为w 曲s e r v i c ed e s 嘶p t i o nl a n g u a g e ) 、 s o a p ( 全称为s i m p l eo b j e c ta c c e s sp m t o c 0 1 ) 和x m l ( 全称为e x t e n d e dm a r k e d l a n g u a g e ) 。其中s o a p 是w e bs e r v i c e 应用中最关键的技术。 传统组件如d c o m 、c o r b a 等在技术上已经同臻成熟,在一些应用领域内 也被广泛采用,但是在w 曲应用集成中也会遇到阻碍。因为每一个组件的开发 商都希望所有厂商都使用这个组件模型,而不注重和其他组件模型之间的沟通 和统一,但这种想法在信息繁杂的时代显然是不可能成为现实的,反而却为w 曲 真正意义上的集成增加了难度【2 j 。除此之外传统组件也存在一些不足: 1 ) 异构系统、异构平台的互关联问题。为了实现功能的重用,提高整体开 发效率,存在许多应用需要重用运行在其它异构平台上的应用程序,或和其它 平台异构系统进行集成并进行数据交换。在以往该功能的实现通常都是依靠特殊 的方法,如文件传输机制或仅在某些情况被采用的应用程序接口等来完成的【2 】。 c o r b a 尽管可以被不同的操作平台所支持,但是自身的实现较复杂,开发它的 应用程序需要在环境中的每个处理端节点都运行相同的该产品【3 】。d c o m 技术 只适用于在微软操作平台上的集成实施,如果要与其它平台或丌发语言集成则 需要借助第三方的支持。 武汉理r 1 :人学硕士学位论文 而w 曲s e r v i c e 是与平台、组件模型和编程语言相独立的。只要通过w 曲 s e r v i c e ,客户端和服务器就可以自由的用通用的h t t p 协议进行通信,不去考 虑两个端点的平台和编程语言的差异。 2 ) 通讯模式。d c o m 和c o r b a 更能胜任于服务器之间的通讯,并不能完 美的支持客户端与服务器之间的通讯【4 】。 3 ) 防火墙。应用系统为了安全性得到保障,都在系统外围部署了防火墙对 信息进行过滤。一般防火墙只允许h t r p 包通过,传统的组件模型虽然采用不 同方法解决和防火墙协作的问题,但是都无法提供一个统一的方案且实现也有 一定困难【4 j 。s o a p 客户端的请求消息是依靠h t t p 负责传送的,h t t p 协议确 保客户端发出的s o a p 信息可以顺利穿过所有企业外围防火墙,从而实现在不 同逻辑端点间的信息交换。 由于w 曲s e r v i c e 中的s o a p 规范规定不管是在任何开发平台或操作系统中 都使用x m l 语法标准对信息进行封装,并且数据封装包必须符合s o a p 包所定 义的固定的结构1 2 】【4 1 。因此s o a p 的数据封装包可以被所有的组件模型、开发工 具、程序语言和应用系统解释,造就了s o a p 与开发平台、操做系统无关、能 与任何组件协作开发高效的w 曲应用系统的优良特性,无疑使s o a p 技术成为 实现系统集成和数据共享的首选。 基于s o a p 的数据交换中间件旨在解决不同系统之间的功能重用和应用集 成问题,是对所有异构系统的协作提出的一种通用的解决方案,也可以称为企 业应用集成的中间件解决方案。基于s o a p 的数据交换中间件为一个s o a p r p c 服务提供平台,它不阐述对具体业务的实现,而是提供一种可以将不同企业中 的信息系统集成起来的方案,进而构建一个统一的高效的服务平台【2 】。 s o a p 的目的并不是取代原有的各种组件模型,而是结合和集成使用这些组 件模型建立的分布式应用系统来建立更加完善的服判引。 本课题旨在提出一个基于s o a p 的数据交换共享平台,运用该平台来发布 服务,使得不同平台的系统可以通过基于规范的、标准的s o a pr p c 模型相互 通信,实现不同企业应用问的功能重用和信息共享。 1 2 国内外研究现状 火狐推出了解析x m l 和x s l t ( 包括c s s ) 机制。m o f o 同样也可以很好的 执行x s l t ,m o f o 也发布了用于x m l 解析的e x p a t ,并支持x m l 的层次化显 2 武汉理工人学硕: :学位论文 示。网景公司自从版本八以后也开始引进使用m o f o 的引擎,因此它水到渠成的 继承了m o f o 的对x m l x s u 支持的优点。i n t e n l e t 浏览器继版本六以后也开始 支持x m l 、n 锄e s p a c e 、x s l t 、x p a t h 以及c s s 等技术。 同时很多知名技术提供商相继推出了自己的w 曲s e r v i c e 产品,欧洲最大的 s o a 经营商s o 脚a r ea g 公司研制了b r o k e r 数据交换中间件,可以很好的实现 以s o a p 信息作为封包进行r p c 调用【引。全球最大的企业管理经营商s a p 公司 发布的基于c p i c 的r f c 是一种以x m l 作为信息载体的远程访问机制,通过 x m l 和b u s i n e s s 连接器很大程度上简化了系统间通讯的编程工作并且i 强c 允许 系统远程调用。全球领先的保险服务业软件公司f i s 公司也基于s o a p 开发了 与r f c 功能同型的b u s i n e s s 连接器。 w 曲s e 删c e 目前在国内的应用也同趋成熟,无论是解决方案供应商、平台 供应商还是服务提供商都纷纷在自己的平台以及服务中加入w 曲s e r v i c e 支持机 制。近几年很多国内公司都已在数据交换平台方面取得显著成就,方正数码公 司提出了忽略地域、部门的限制,将不同业务系统间的逻辑功能数据进行整合 和转换的信息交换平台,它的信息的载体是x m l 文件并以s o a p 规则定义的消 息结构进行信息表达、存储及传输f 6 】。 s o a p 作为w 曲s e r v i c e 中的关键技术已日臻成熟,同时采用w 3 cs c h e m a 定制的标准来对数据类型进行严格的定义,并相继推出了实现s o a p 技术的开 源服务平台,例如:a p a c h e 发布的a p a c h es o a p 和a p a c h ea x i s 等。 s o a p 的出现,使得x m l 更加备受瞩目,具有代表的是w 3 c 最先成立了 一个专门从事x m l 协议的标准制定工作小组。到目前w 曲s e i c e 应用中关键 的x m l 技术作为一种网络通用标准,已经成为了无法替代的数据交换的标准接 口i lj 。x m l 语言将成为世人皆知的“世界语”。 13 论文工作 论文着重分析了在企业应用集成中数据交换中间件的重要性和实现的意 义,设计并实现了基于s o a p 的数据交换中间件,提出了一套可行的可应用于 企业应用集成的中问件方案,并已经取得成功应用。 论文工作具体包括以下内容: 1 ) 在本文的第2 章中探讨w 曲s e r v i c e 的三种关键技术,w s d i 胂,曲服务 描述语言:用于描述发布的服务,包括服务的功能,互通需要的参数信息和返 3 武汉理+ r :人学硕士学位论文 回的结果的信息等、s o a p 简单的对象访问协议:严格定义了信息的封装规则、 x m l 可扩展的标记语言:能够承载传递的信息和返回的信息。s o a p 技术是以 x m l 形式提供了一个可在不同平台间交换信息的方法,是w 曲s e r v i c e 关键技 术,本文在第三章将重点介绍s o a p 消息交换机制,并给出了在h t t p 和r p c 中 使用s o a p 的模型。 2 ) 基于s o a p 的数据交换中间件的设计 在本文的第4 章将结合项目需求对中间件的实现做概要的设计,包括系统 的需求分析的、系统的体系结构、系统的设计步骤和系统的选型。 长江航养费征收系统于2 0 0 7 年开发完毕,并已成功投入应用,系统主要是 实现长江航道局对全长江流域上过往船只的收费和管理。湖北港航规费征稽二 期系统( c s 模式) 是湖北省港航局对湖北境内长江和支流上船舶进行管理的应 用软件,于2 0 0 8 年开发完毕。两个系统业务不同但某些功能相似,如船舶明细 查询、黑名单管理等,后者的船舶数据可以借鉴前者的数据,通过基于s o a p 的中间件的实现使后者能够共享前者的相关数据和业务逻辑,从而大大减少了 开发时间,提高了开发效率。 湖北港航征稽系统( b s 模式) 是根据客户的改进需求研发的用于试运行的 系统,该系统业务功能和湖北港航规费征稽系统( c s 模式) 大体一致,只是根 据需求的变动,减少了一部分业务逻辑增加了一部分网络通讯功能。该b s 模 式系统同样可以通过s o a p 中间件,重用长江航养护费征收系统某些可以借鉴 的功能,实现数据和逻辑的共享。 3 ) 基于s o a p 的数据交换中间件的实现 在本文的第5 章中,将进行具体的实现工作,主要包括编写用于发布的服 务代码,编写部署描述符进行服务的部署,客户端调用服务代码的编写等。 基于s o a p 的数据交换中间件的实现依靠服务器端和客户端相互合作,服 务器端为客户端提供可以重用的服务,客户端访问服务器端部署的服务而无需 编写重复的业务逻辑代码。 本论文拟采用a p a c h es o a p a x i s 作为发布服务器,通过部署将长江航养费 征收系统的某些可以重用的功能封装成服务发布到服务器上。湖北港航规费征 稽二期系统模拟客户端进行服务的调用,从而实现数据和业务逻辑的共享。 4 ) s o a pm e s s a g e 的压缩技术 在本文的最后部分将探讨对数据传输的改进和展望。主要是在中间件系统 初步实现的基础上探讨如何利用s o a pm e s s a g e 的压缩技术来减少数据传输量 4 武汉理t 大学硕十学位论文 提高传输效率并探讨采用何种具体的压缩算法来压缩数据。在s o a p 信息进行 数据传输时,实际上是对文本信息的传输,而文本信息传输容量是很庞大的。 对s o a pm e s s a g e 进行压缩,可以将原文本压缩到原容量的二十多个百分点。通 过压缩,传递信息量减少了,s o a pm e s s a g e 在网络上传输则需要更少的时间, 是提高传输效率的最有效方法,具体的实现方法将在第五章给出。 武汉理t 大学硕士学位论文 第2 章w e bs e n ,i c e 技术 这一章将介绍w 曲s e r v i c e 的有关内容,重点探讨w 曲s e i c e 中的几个关 键技术,可扩展标记语言( x m l e x t e n d e dm a r k e dl a n g u a g e ) 、简单对象访问协 议( 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 0 1 ) 和w 曲服务描述语言( w s d i w e b s e r v i c ed e s 嘶p t i o nl a n g u a g e ) 【8 】o 2 1x m e 2 1 1x m l 语法 x m l 被译为可扩展标汜语言并被w 3 c 所认证,它和h t m l 同为标准通用 标记语言的一个简化子集【引。但x m l 并非h t m l 的改进版本,而是与h t m l 各就其职,相得益彰。x m l 主要用于描述数据结构和存储数据内容,形式灵活, 用户可以自定义自己的x m l 元素,并且x 】l 已成为业界的可扩展的通用标准, 而h t m l 的职责是如何显示数据给终端。 通过一个简单的并且包含所有x m l 基本元素的x m l 文档实例来说明x m l 的语法,文档内容如图2 1 : 图2 1x m l 文档实例图 6 武汉理- 【人学硕士学位论文 x m l 文档是由x m l 声明和x m l 主体元素两个部分组成的,一般x m l 声 明作为x m l 文档的可选部分放在x m l 文档中第一行【3 1 。除了第一行的声明以 外x m l 文档结构类似一种树结构。这棵树从根部开始,以树的数据结构形式扩 展到树的最底端。所有元素均可拥有文本内容和属性。父元素拥有多个子元素, 相同层级上的子元素互称为兄弟。 ( 1 ) x m l 声明 图2 1 第一行是x m l 声明的表示方式。声明元素中的属性版本和编码分别 说明了) ( m l 的版本( 1 0 ) 和所使用的编码的属性。 ( 2 ) x m l 主体 1 ) x m l 元素 x m l 元素指的是从开始标签到结束标签之间并包含开始结束标签的内容。 x m l 文档必须包含一个根元素,该元素是所有其他元素的父元素【3 】o 元素 还可以以元素、文本或者两者的混合物作为其子元素,元素也可以拥有属性, 例如b o o k 的c a t e 9 0 r y 属性,b o o k s t o r e 、a u t h o r 、t i t l e 都是元素,b o o k s t o r e 、b o o k 都拥有子元素。有的元素则仅包含文本信息没有子元素。 2 ) x m l 元素标签 表示元素的成对出现的o 称为标签,开始结束标签之间内容以及括号内 的字符称为x m l 元素【3 1 ,内的字符代表元素名称并可以附加一些属性并且所 有x m l 元素都须开始标签和关闭标签成对匹配。声明不属于x m l 本身的组成 部分,因此是唯一一个不需要关闭标签的特殊情况。除此之外x m l 的所有标记 都必须是完全嵌套且x m l 标签对相同字母的大小写视为不同的字符。 3 ) x m l 属性 属性包含在开始标签中并对该元素的特征进行描述,该信息旨在提供该元 素的额外信息通常不属于数据的组成部分。属性定义在开始标记的尖括号内, 格式为属性名称后加上等号和属性值。如有多个属性则属性彼此之间用空格分 开,x m l 语法规则规定属性值必须用引号包含【3 】。 中b o o k 代表元素名称,c a t e g o 巧为b o o k 元素的属性, 幸木为c a t e g o w 属性的值,具体情况下可以用具体值取代。 由于对于同一个属性无法取得多个值、属性无法直观的以树结构显示、属 性只能修改不易扩展并难以阅读和维护,但是这些弊端都可以通过将属性转换 为元素来弥补,所以尽量在描述数据时使用元素而仅采用属性来提供与数据无 关的附加信息【8 】。 7 武汉理r 人学硕士学位论文 4 ) x m l 命名空间 x m l 命名空间是为了解决x m l 文档中属性名、元素名命名冲突的问题而 提出的。x m l 命名空间的指定放置于根元素的开始标签之中,语法格式如下: 空间u r i 是一串可以标示因特网资源的字符串,n 锄e s p a c e - p r e f i x 是针对声 明命名空间u r i 起的简化名称。最常用的u r i 是网络上的与i p 地址对应的域 名。当一个命名空间出现在某个元素的开始标签中时,那么该元素中的所有带 有相同前缀的子元素都会与该命名空间相关联。具体使用方式是采用两个用冒 号分开的符号来命名,即第一个符号代表特定命名空间的命名空间前缀,第二 个符号代表属性或元素的名字,例如z g y :n 锄e 和w x h :n 锄e ,虽然名称相同,但 是数据属于不同的命名空间,因此归类为不同的元素或属性。 2 1 2x m ls c h e m a x m l 规范了数据用何种结构表示,但它没有定义一套标准用于表示数据的 统一类型,更无从谈起对这套数据类型提出拓展方案。由于不同类型的系统对 同一种类型的数据的底层存储机制不同,所以会出现对同一类型的数据表示的 字长不同,这会为系统的互操作性造成一定困难,所以要有一套对多种系统制 定的统一的转化方案,即将不同的数据表示转化为同一种标准势在必行。 提供了校验机制的d t d 在对数据类型的支持上存在不支持命名空间,不支 持约束的定义等局限性。x m ls c h 锄a 与d t d 相比机制更加完善,它支持命名 空间、定义数据约束也灵活自如,并且x m l 文档标准的定义也是依托于x m l 语法。因此x m ls c h 锄a 文档规则可以被机器读取,相比之需要专门的软件来 处理的d t d 则相形见绌。因此w 3 c 果断推行了x m ls c h 锄a 用来代替d t d 【9 】。 数据类型x s d 是x m ls c h e m a 定义的一套通用标准的类型,针对该类型也 给出了一套扩展规则【1 0 1 。当开发者使用某种语言来实现一个w 曲s e r v i c e 时,为 了更好的实现与其他系统的互通,所有数据类型都会被统一转换为x s d 类型。 x m ls c h 锄a 包括的几种基本结构如下: 武汉理一 大学硕+ 学位论文 简单类型定义 s i m p l e ,工如ed e f i n i t i o n 复杂类型定义 c o 衅- 1 e x 工讳ed e 丘n i t i o n 属性声明 a 啦r i b u t ed ec l a r a t i o n 元素声明 e l e m e n td e c l a r a t i o n 模型组定义 m o d e lg r d u pd e f i n i t i o n 注解的声明 n o t a t i o nd e c l a r a t i o n 图2 2 是) ( 】ls c h e m a 文档部分内容: 图2 2x m l s c h e m a 文档 以上表示了一个元素n u m b e r 的声明,一个属性a g e 的声明和一个复杂类型 p h o n e 的定义。 2 1 3x m l 的特点 远程协助电子商务等基于w e b 的新兴领域的大规模兴起造就了传统的资源 更为复杂多样化的特点,最为典型的需求是对不同平台、不同格式的数据进行 数据集成和数据转换等,需求的递增系统资源的同趋庞大使得异构系统的集成 面临更大的挑战瞵】。然而传统的h t m l 可扩展性差而不易于维护修改并且更趋 向于显示内容而不是承载数据,因此针对以上问题不能提供一个的很好的解决 途径。而x m l 具有可扩展性和平台无关性,因此理所当然被选为各种应用程序 之间进行数据传输的最常用的形式并且在信息存储和描述领域已成为佼佼者。 1 ) x m l 实现数据和h t m l 的剥离 x m l 更倾向于传输和存储数据,关注的是数据的内容,是可扩展的动态的。 而h t m l 更倾向于显示数据,关注的是数据的外观,是被预定义不可扩展的静 9 武汉理i :入学硕十学位论文 态的。如果你需要在h t m l 文档中显示动态数据,那么每当数据内容或显示格 式根据需要不断改变时将随之花费大量的时间来编辑静态h t m l 以满足变动的 需求。通过x m l 数据能够存储在独立的文件中,这样界面设计人员就可以专注 于进行布局的设计,修改数据和维护界面分工开来并确保修改底层数据不会对 界面的维护造成任何影响p j 。 2 ) x m l 使数据共享更为简单 不同的计算机系统中,数据的底层存储格式不尽相同。不同系统间数据的 共享需要共用统一存储模式的数据,为了达到兼容就必须对数据格式进行转换, 转换过程将会很大程度上降低共享效率【1 7 】。煳l 数据是以独立于软件和硬件的 纯文本格式进行存储,因此用x m l 表述数据可以使不同平台不同应用程序共享 数据变得更加容易【3 j 。 3 ) x m l 使数据传输更为便捷 通过x m l 可以在很多通讯协议上轻松地进行数据传送。目前的很多通信协 议都支持对) ( 】l 文本格式的传送,在传送过程前无需对x m l 进行转换处理, 这一特性极大的降低了x m l 数据传输的复杂性【1 8 】。 4 ) x m l 独立于平台 系统的升级或版本的改变无疑要对大量的数据进行转换,不兼容的数据经 常会导致系统无法正确运行。x m l 数据以独立于平台任何系统都支持的文本格 式存储,对于新的操作系统、新应用程序都不会造成冲突【m 】。 5 ) x m l 的可扩展性 v i l 并不是预先定义好且用户只能使用但不能自己设计的语言,而是允许 用户在不同的文件中定义自己设计的标记并可以用来对其它语言进行描述的语 言,任何信息任何规则都可以转化为x m l 文件进行表达。而h t m l 是一种标 记格式和语法都预先定义好的标记语言,它定义的符号只能用来表达格式而不 能用来表示语义内容1 3 j 。 总之,x m l 与h t m l 各就其职,完美结合,从而弥补了各自的不足。 2 2s o a p 技术 s o a p 是w 曲s e r v i c e 应用中的关键技术。s o a p 为异构系统的集成和逻辑 的重用提供了一套简单通用的信息交换机制。s o a p 可以集成底层实现完全不同 难以互相沟通的组件模型,除此之外各种程序语言、开发工具也相继提供了支 l o 武汉理 大学硕士学位论文 持s o a p 的接口,因此各种开发平台也不断加入到集成范围之内,如图2 3 显示 了所有平台和组件对s o a p 的支持: p r c j k j 椭应用程序 w 协d o w s 应用程序 。、n 八 c o m d c o mc o r b a 0 萝- ” 么_ s 自m c er j - 。夕小- j s p ,s 阶d 既 i a s p ,i s a p i e j b 图2 3各种组件模型和开发平台集成在一起 由于s o a p 中用x m l 作为传输信息的载体,s o a p 通过h t r p 、简单邮件 传输等网络上常用的通信管道不费吹灰之力。并且s o a p 的传送协议可以轻松 穿越防火墙,同时协议附带的s s l 和s m i m e 等加密机制为s o a p 的信息传输 提供了安全保障2 6 1 。s o a p 规范主要包括三个部分:s o a p 消息结构、s o a p 数据封装编码规则和s o a pr p c 服务【1 2 】。s o a pr p c 服务是本次设计使用的传 输模型,将在第三章单独讲解。 2 2 1s o a p 消息结构 一切s o a p 消息的表示形式都必须符合x m l 结构规则。消息的表述必须包 含一个且仅一个s o a p 封套和一个信息体。s o a p 消息的框架格式必须遵守以 s o a p 封套为根元素,以一个信息体( 包括s o a ph e a d e r 和s o a pb o d y ) 为该 根元素子元素的规则【1 6 】。本小节先对消息的总体结构进行介绍,然后分别介绍 结构中的具体元素。 s o a p 消息结构如图2 - 4 : 武汉理工人学硕士学位论文 图2 4s o a p 消息结构图 包含具体s o a p 消息的x m l 文档实例如图2 5 : 2 2 1 1s o a pe n v e l o p e 本小节介绍包含s o a p 消息的l 文档的根元素e n v e l o p e ,并在后续小 节对e n v e l o p e 中的子元素一一说明。 e n v e l o p e 元素是用来套封s o a p 消息的x m l 文档中的最顶层元素。s o a p 消息中所有的部分都必须出现在e n v e l o p e 元素罩,被编码为子元素。一个s o a p 消息有且必需仅有一个e n v e l o p e 元素。名称空间的声明和额外的属性指定可以 作为e n v e l o p e 元素的属性出现并且该元素所有子元素和属性本身必须由名称空 1 2 武汉理工大学硕士学位论文 问限定。在实例中s o a pe n v e l o p e 对两个命名空间进行了声明:s o a p 信封的名 称空间标识为h 婶:s c h e i l l a s x m l s o a p o 叫s o a p 明v e l o p e ,s o a p 编码规则的名 称空间指定为h 卸:s c h 锄a s x m l s o a p o 叫s o a p e i l c o d i n 【1 7 】。 e n v e l o p e 根元素所包含的子元素以及子元素的用途和特性见下表2 1 : 表2 1e n v e l o p e 子元素说明 缈 元素名称序元素名用途是否强制语法规贼及特征 “ : 琵。 称 , 出理 。 。 锄 h e a d e r 用于传递额外或自定义否 必须是e n v e l o pe 元素的第个 的信息子元素 b o d y 用于封装向服务器发送 日 如果没有h 既d e r 元素,则b o d y 正 的请求、服务器返回的 必须是e n _ 卵1 叩e 元素的第个 请求或服务器返回的错子元素 误信息 b o 衄 f a u l t 向s o a p 的发送方传回否s o a p 规范定义的唯一一个 话误信息 b o d y 元素项,如有错误则作为 b o d y 的直接子元素强制出现 f a u 垃f a u l t c o d e 返回错误代码 日 必须作为f 批元素的子元素疋 f i a u l t s t 血g 返回错误信息 目 必须作为f a m t 元素的子元素疋 角u h a c t o r返回产生错误的来源 否如错误来源是消息最终目的地, 则缸脏c t o r 可以不出现 d e 【a i l 提供b o d y 发生错误的 否 如请求信息中与b o d y 元素有关 有关信息部分出现错误,则必须强制出现 下面将对这些元素分别进行介绍。 2 2 1 2s o a ph e a d e r s o a ph e a d e r 元素是时有出现的,根据情况选择性规准。如果它被强制出现, 就必须以h e a d e r 命名并且一定要是e n v e l o p e 根元素的头一个直接子元素。 s o a ph e a d e r 用来提供在消息传输中用于路由、事务处理等操作有关的附加 信息的,s o a ph e a d e r 具有可扩展性,它允许在b o d v 元素包含的语义之外对其 它自定义类型的信息进行描述。s o a p 的a c t o r 全局属性指明了处理h e a d e r 元素 的接收者,s o a p 的e l l c o d i n g s t y l e 属性用于指定序列化和反序列化的编码规则, 武汉理丁大学硕士学位论文 s o a p 的m u s t u n d 蜘d 全局属性用来指示接收者是否必须处理该h e a d e r 元素。 2 2 1 3s o a pb o d y s o a pb o d y 元素是强制性出现的且必须作为s o a pe n v e l o p e 元素的一个直 接子元素出现。如果有h e a d e r 元素,它必须紧跟在s o a ph e a d e r 元素之后,否 则就必须是e n v e l o p e 根元素的头一个直接子元素。 s o a pb o d y 可以装载s o a p 请求或响应的信息且b o d y 所有直接子元素必须 与某个命名空间相关联l l 刿。 s o a pb o d y 可以承载三种类型的信息,请求信息,正常返回信息和错误信 息,具体描述如下: s o a p 远程调用的请求信息:当b o d y 元素封装请求信息时,b o d y 的第一个 子元素必须是以要调用的方法名称作为标记名称的一个独立元素,而在此子元 素之中将要调用方法的参数信息封装为该子元素的子元素。此外以方法名称命 名的元素必须与某个名称空间相关联。以方法名称命名元素之内的参数子元素 的名称要和调用的方法的参数名称一致。 s o a p 服务器正确处理后返回的信息:当s o a p 服务器接受了客户端的 s o a p 请求并且处理完成之后,就会把运算的结果以s o a p 封包的形式返回给客 户端。s o a p 服务器返回结果的封包规则和一般s o a p 封包一样,返回的结果也 位于b o d y 元素之后的头一个直接子元素,而且这个独立元素的标记名称格式为 “调用方法名称和r e s p 0 1 1 s e ”。方法的返回值封装在一对 吲诧t i l h l 标记中。 s o a p 发生的错误:当s o a p 服务器在处理s o a p 请求期问发生错误时, s o a p 会根据发生的错误的种类来决定返回什么类型的错误封包,而返回的错误 是s o a p 中唯一预定义的元素f a u l t 具体规则将在下一节介绍。例如:客户端无 法在有限时间内定位到s o a p 服务器,那么会收到h 丌p 返回的超时反馈信息; s o a p 服务器在运算时发生错误等,那么s o a p 服务器便会封装s o a p 错误封包 返回给客户端,错误封包中的信息可以使发送者知道错误发生的原因和错误的 相关描述【2 。 2 2 1 4s o a pf a u l t s o a p 只预定义了唯一的f a u l t 元素,用来告知s o a p 消息的发送方哪里发 生了错误。s o a pf a u l t 元素当处理过程错误出现时最多只能出现一次并且必须 1 4 武汉理【:人学硕士学位论文 作为b o d y 元素的直接子元素出现。f a u l t 元素又包含了如下的四个子元素: 1 ) f a u l tc o d e 元素,该元素强制出现且目的是提供了一个可以被处理过程解 析理解的错误指示,常用的错误代码主要有v 打s i o n m i s m a t c h :说明与s o a p e n v e l o p 相关联的名称空间无法被识别;m u s t u n d e r s t a i l d :它出现的前提是s o a p h e a d e r 元素的m u s t u n d e r s t a n d 属性设黄为一,即强制命令接受者必须理解并处 理h e a d e r 元素包含的所有信息,但实际中有某个属性是不可理解的或者是与某 个属性关联的语义不能被解析;c 1 i e n t :说明主要错误在客户端,类如该消息没 有包含适当的或者必要的信息、格式化s o a p 消息出错等,客户端应该对该消 息做适当更改,否则再次发送该消息也无济于事;s e r 、,e r :说明错误主要与服务 端的状态有关而与接受消息的内容无关,意味着如果想获得正确结果可以将不 能处理的消息在稍晚的时候不做修改再次发送【2 5 1 。 2 ) f a u l ts t r i n g 元素,强制出现且必须作为f a u l t 的子元素形式出现。提供一 个与错误代码c 0 d e 元素对应的可被更好理解的错误描述【2 5 】。 3 ) f a u l ta c t o r 元素,这个元素是可选出现且如出现必须作为f a u l t 的子元素 出现,该信息可以将错误很好的定位到具体系统,如果错误来源于消息的最终 目的地,该元素就为可选出现 2 引。
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025云南省大理州洱源县消防救援局招聘政府专职消防员(4人)笔试模拟试题及答案解析
- 2025浙江湖州雷博医院管理有限公司招聘1人考试参考题库附答案解析
- 2025重庆铜梁区铜梁区小林镇公益性岗位招聘3人公告考试参考题库附答案解析
- 2025贵州遵义市应急救援大队有限责任公司招聘10人笔试参考题库附答案解析
- 2025年崇左市中小学教师公开招聘(第三批)动态及温馨提醒考试备考试题及答案解析
- 2025广东中山市东凤镇公安分局大厨招聘1人笔试模拟试题及答案解析
- 2025年漯河市中心医院(高水平医院) 第二批公开招聘工作人员28人笔试备考试题及答案解析
- 2025秋季国家超级计算天津中心招聘笔试参考题库附答案解析
- 2025秋季河南洛阳市航空实验学校小学部招聘教师考试参考题库附答案解析
- 2025四川长虹民生物流股份有限公司招聘质量主管岗位1人笔试参考题库附答案解析
- 民族文化宫2024年度面向应届毕业生和社会人员公开招聘笔试模拟试题及参考答案详解一套
- (完整版)钢结构厂房施工组织设计(含土建)
- 水饺加盟合同协议
- 加强师德师风建设学校师德师风警示教育讲座培训课件
- 被动关节运动
- 妇科急腹症ppt课件
- CRC的职责PPT课件
- 瓦斯发电安全生产管理规范.docx
- 小学音乐雪花飞舞-课件ppt课件
- 《护理学基础》《基础护理》课程说课稿
- 悬浮抱杆立塔施工措施
评论
0/150
提交评论