【delphi开源代码栏目提醒】:网学会员为需要delphi开源代码的朋友们搜集整理了基于SOAP的数据交换中间件的研究与应用 - 硕士论文相关资料,希望对各位网友有所帮助!
武汉理工大学 硕士学位
论文基于SOAP的数据交换中间件的研究与应用 级别:硕士 专业:计算机科学与技术 指导教师:熊前兴 20100501 武汉理T大学硕十学位
论文 摘要 由于111tem训Intrallet应用的各种语言拥有简单,开发迅速的优点, 远远短于传统开发工具的研发时间,因此导致了各种丌发语言层出不穷。
正是如此,繁多的语言使得在不同平台上采用不同语言实现的系统之间集成相当困难。
虽然大多数企业在内部已经实现了信息化,但是由于独自开发,无法和其他企业进行交流,如果该企业想重用其它企业已实现的某些功能时,没有一套可以摆脱开发语言、开发平台的限制来重用其他企业已开发功能的机制。
虽然CORBA、JavaBean、EJB等中间件的问世可以在一定程度上解决系 统集成的问题,但是各个组件都有自身的特点和限制,并没有注重和其它组件之间的沟通,因此各个组件内部的实现机制并不相同,虽然能解决某些系统的集成和重用问题,但是没有提供一种完全统一的、完全摆脱平台和语言束缚的集成方案,针对这一迫切需求,W曲Service应运而生。
SoAP是实现W曲SeⅣice的业界标准,SoAP采用的传输协议最 初为H订P后来相继采用SMTP等协议,sOAP标准定义了统一的数据表示形式和数据封包规则,采用XML作为信息载体,并且严格定义了封包结构,是实现w|ebService的最佳方案。
本文首先探讨了与W曲SeⅣice相关的技术,重点介绍了XML、SOAP和wsDL。
并结合实际项目,采用JaVa语言开发的项目一长江航道养护费征收系统的查询船舶信息
代码文件作为Web服务部署到SOAP的发布平台上,而后分别在Java和Delphi开发环境下编写的湖北省港航规费系统的船舶信息
查询模块中调用已发布的可以被重用的服务,从而无需重新编写业务逻辑
代码,提高了开发效率。
并在此基础上提出了采用压缩算法来改进传输效率的方案,最终实现了不同开发平台、不同开发语言之间的逻辑功能的重用以及数据的交换并达到了预期效果。
关键词:W曲Service,XML,SOAP,WSDL 武汉理:r入学硕十学位
论文 Abstract Asthe111temet/Intranetapplications1anguagesaresimplean dcanbedeVelopedrapidly’aV撕etyofdeVelopmenttoolsandnews田ptinglanguagesbecomemoreandmore. ItisbecauseoftheprogressofIntelllet/In仃anetistoofast,t heinte野ationofdi£陆e11tIanguagesondiff.er铷tplatfo彻sandsyStemsisdi疗icuJtt0achieve.WhilemostcompanieshaVeachieVedin-houseinfomationinte伊ation,ithasnocommunicationwithotherbusiness.IfthecompaIlywantstoreusesome允nctionswhichothercompanieshaVeimplem朗ted,thereisnoreusemechallismwhichgetsridofdevelopm%tlanguageandplatfonll. Althou曲middIewaresuchasCoRBA,JavaBean andEJBcansolvesomesysteminte黟ationissues,eachcomponenthasitsowncharact甜sticsandlimitations.Sothetramtionalcomponentc锄notproVidea如llyinte铲ated,completely矗.eef}omtheinte黟atedplatf.omlandlangIlageplaIlforthisurgentrequir锄ent.Inviewofthissitllation,W曲Service锄erg酣. SOAPisaIlindustryst狮dardtorealizeW曲SeⅣice.ItusesHTTPas thetransportprotocolanduseXMLaSaninfornlationcaI—er.Besidestllis,SOAPdefinesaunif-omdatar印resentation锄ddatapacket11lles. ThisthesisfirStlydiscussesthetechnoIogyassociatedwithth eW曲SerVice,suchasXML,SoAPandWSDL.Combinedwithpra“calprojects,usingtheshipinfo瑚ationresearchmodule、妇ichisincludedinJaValanguagedeVelopmeIltproject—theY|觚gtzeRiVerCh锄elfbesLeVyingSyst锄asaW曲servicetod印loyontotheSoAPplatf.orm,Ⅱlencompilecodeintwodi仃打ellt1柚guages(JaVaandDEPHI)syst锄sdeVelopmelltofHuBeiProVinceWaterRouteFeesLeVyingSysteIntocallmeservicewhichcanbereused.Finally,adoptacompressionalgorithmtoimpmvethetrallsmissione币ciellcy. BasedonthetheoryaIldcombinedwiththeactualproject,final lyrealizethereuseoflo舀c如nctionandtheeXchallgeofdata.Keywords:WebService’XML,SoAP,WSDL 独创性声明 本人声明,所呈交的
论文是本人在导师指导下进行的研究工作及取得的研究成果。
尽我所知,除了文中特别加以标注和致谢的地方外,
论文中不包含其他人已经发表或撰写过的研究成果,也不包含为获得武汉理工大学或其它教育机构的学位或证书而使用过的材料。
与我一同工作的同志对本研究所做的任何贡献均已在
论文中作了明确的说明并表示了谢意。
学位
论文使用授权书 本人完全了解武汉理工大学有关保留、使用学位
论文的规定,即:学校有权保留并向国家有关部门或机构送交
论文的复印件和电子版,允许
论文被查阅和借阅。
本人授权武汉理工大学可以将本学位
论文的全部内容编入有关数据库进行检索,可以采用影印、缩印或其他复制手段保存或汇编本学位
论文。
同时授权经武汉理工大学认可的国家有关机构或
论文数据库使用或收录本学位
论文,并向社会公众提供信息服务。
(保密的
论文在解密后应遵守此规定) 研究生 : (签名) 彩坷导师(签、 日期:矽庐‘ 武汉理,J:大学硕十学位
论文 第1章引言1.1选题背景及意义 伴随
计算机信息技术的迅猛发展和信息化的普及推广,很多企业已经实现了以本单位为独立结构的信息电子化,但在企业外部以宏观来看,每个企业的应用系统可能在平台部署、开发语言选择、通讯协议等方面采取了不同的方式,互为独立不相容的个体。
正式由于w曲的发展过于快速,因此也导致了使用不同的实现技术的系统和平台之间集成棘手的问题。
信息融合的需求与日俱增,为了使企业的整体效益能有显著提高,越来越多的企业迫切需要与其他异构应用进行集成或进行数据的共享与交换。
W曲Service技术正是能够解决这一问题的最佳方案。
w曲SerVice是一种基于wEB的中间件技术,它向外界暴露出一个能够被调用的接口,客户能够用编程的方法通过W曲来调用这个应用接口提供的服务【21。
W曲Service的三种核心技术是WSDL(全称为W曲ServiceDes嘶ptionLanguage)、SOAP(全称为SimpleObjectAccessPmtoc01)和XML(全称为ExtendedMarkedLanguage)…。
其中SOAP是webservice应用中最关键的技术。
传统组件如DCOM、CORBA等在技术上已经同臻成熟,在一些应用领域内也被广泛采用,但是在W曲应用集成中也会遇到阻碍。
因为每一个组件的开发商都希望所有厂商都使用这个组件模型,而不注重和其他组件模型之间的沟通和统一,但这种想法在信息繁杂的时代显然是不可能成为现实的,反而却为W曲真正意义上的集成增加了难度【2J。
除此之外传统组件也存在一些不足: 1)异构系统、异构平台的互关联
问题。
为了实现功能的重用,提高整体开发效率,存在许多应用需要重用运行在其它异构平台上的应用程序,或和其它平台异构系统进行集成并进行数据交换。
在以往该功能的实现通常都是依靠特殊的方法,如文件传输机制或仅在某些情况被采用的应用程序接口等来完成的【2】。
CORBA尽管可以被不同的操作平台所支持,但是自身的实现较复杂,开发它的应用程序需要在环境中的每个处理端节点都运行相同的该产品【3】。
DCoM技术只适用于在微软操作平台上的集成实施,如果要与其它平台或丌发语言集成则需要借助第三方的支持。
武汉理r1:人学硕士学位
论文 而W曲service是与平台、组件模型和编程语言相独立的。
只要通过W曲SerVice,客户端和服务器就可以自由的用通用的HTTP协议进行通信,不去考虑两个端点的平台和编程语言的差异。
2)通讯模式。
DCoM和CoRBA更能胜任于服务器之间的通讯,并不能完美的支持客户端与服务器之间的
通讯【4】。
3)防火墙。
应用系统为了安全性得到保障,都在系统外围部署了防火墙对信息进行过滤。
一般防火墙只允许HTrP包通过,传统的组件模型虽然采用不同方法解决和防火墙协作的问题,但是都无法提供一个统一的方案且实现也有一定困难【4J。
SOAP客户端的请求消息是依靠HTTP负责传送的,HTTP协议确保客户端发出的SOAP信息可以顺利穿过所有企业外围防火墙,从而实现在不同逻辑端点间的信息交换。
由于W曲Service中的SOAP规范规定不管是在任何开发平台或操作系统中都使用XML语法标准对信息进行封装,并且数据封装包必须符合SOAP包所定义的固定的结构12】【41。
因此soAP的数据封装包可以被所有的组件模型、开发工具、
程序语言和应用系统解释,造就了SOAP与开发平台、操做系统无关、能与任何组件协作开发高效的W曲应用系统的优良特性,无疑使SOAP技术成为实现系统集成和数据共享的首选。
基于SoAP的数据交换中间件旨在解决不同系统之间的功能重用和应用集成问题,是对所有异构系统的协作提出的一种通用的解决方案,也可以称为企业应用集成的中间件解决
方案。
基于SoAP的数据交换中间件为一个SOAPRPC服务提供平台,它不阐述对具体业务的实现,而是提供一种可以将不同企业中的信息系统集成起来的方案,进而构建一个统一的高效的服务平台【2】。
SoAP的目的并不是取代原有的各种组件模型,而是结合和集成使用这些组件模型建立的分布式应用系统来建立更加完善的服判引。
本课题旨在提出一个基于SOAP的数据交换共享平台,运用该平台来发布服务,使得不同平台的系统可以通过基于规范的、标准的SOAPRPc模型相互
通信,实现不同企业应用问的功能重用和信息共享。
1.2国内外研究现状 火狐推出了解析XML和XSLT(包括CSS)机制。
MoFo同样也可以很好的执行XSLT,MoFo也发布了用于XML解析的Expat,并支持XML的层次化显 2 武汉理工人学硕:}:学位
论文示。
网景公司自从版本八以后也开始引进使用MoFo的引擎,因此它水到渠成的继承了MoFo的对XML/XSU’支持的优点。
Intenlet浏览器继版本六以后也开始支持XML、N锄espace、xSLT、XPath以及CSS等技术。
同时很多知名技术提供商相继推出了自己的W曲Service产品,欧洲最大的sOA经营商so脚areAG公司研制了Broker数据交换中间件,可以很好的实现以SOAP信息作为封包进行RPC调用【引。
全球最大的企业管理经营商SAP公司发布的基于CPI.C的RFC是一种以xML作为信息载体的远程访问机制,通过XML和Business连接器很大程度上简化了系统间通讯的编程工作并且I强C允许系统远程调用。
全球领先的保险服务业软件公司FIS公司也基于SOAP开发了与RFC功能同型的Business连接器。
W曲Se删ce目前在国内的应用也同趋成熟,无论是解决方案供应商、平台供应商还是服务提供商都纷纷在自己的平台以及服务中加入w曲Service支持机制。
近几年很多国内公司都已在数据交换平台方面取得显著成就,方正数码公司提出了忽略地域、部门的限制,将不同业务系统间的逻辑功能数据进行整合和转换的信息交换平台,它的信息的载体是xML文件并以SOAP规则定义的消息结构进行信息表达、存储及传输f6】。
SOAP作为w曲Service中的关键技术已日臻成熟,同时采用W3CSchema定制的标准来对数据类型进行严格的定义,并相继推出了实现SOAP技术的
开源服务平台…,例如:Apache发布的ApacheSOAP和ApacheAXIS等。
SOAP的出现,使得XML更加备受瞩目,具有代表的是W3C最先成立了一个专门从事XML协议的标准制定
工作小组。
到目前W曲SeⅣice应用中关键的xML技术作为一种网络通用标准,已经成为了无法替代的数据交换的标准接口IlJ。
XML语言将成为世人皆知的“世界语”。
13
论文工作
论文着重分析了在企业应用集成中数据交换中间件的重要性和实现的意义,设计并实现了基于SOAP的数据交换中间件,提出了一套可行的可应用于企业应用集成的中问件方案,并已经取得成功应用。
论文工作具体包括以下内容: 1)在本文的第2章中探讨W曲SerVice的三种关键技术,WSDI胂,曲服务描述语言:用于描述发布的服务,包括服务的功能,互通需要的参数信息和返 3 武汉理+r:人学硕士学位
论文回的结果的信息等、SOAP/简单的对象访问协议:严格定义了信息的封装规则、XML/可扩展的标记语言:能够承载传递的信息和返回的信息。
SOAP技术是以xML形式提供了一个可在不同平台间交换信息的方法,是W曲Service关键技术,本文在第三章将重点介绍SoAP消息交换机制,并给出了在Http和RPC中使用SOAP的模型。
2)基于SoAP的数据交换中间件的设计 在本文的第4章将结合项目需求对中间件的实现做概要的设计,包括系统的需求分析的、系统的体系结构、系统的设计步骤和
系统的选型。
长江航养费征收系统于2007年开发完毕,并已成功投入应用,系统主要是实现长江航道局对全长江流域上过往船只的收费和管理。
湖北港航规费征稽二期系统(C/S模式)是湖北省港航局对湖北境内长江和支流上船舶进行管理的应用软件,于2008年开发完毕。
两个系统业务不同但某些功能相似,如船舶明细查询、黑名单管理等,后者的船舶数据可以借鉴前者的数据,通过基于SOAP的中间件的实现使后者能够共享前者的相关数据和业务逻辑,从而大大减少了开发时间,提高了开发效率。
湖北港航征稽系统(B/S模式)是根据客户的改进需求研发的用于试运行的系统,该系统业务功能和湖北港航规费征稽系统(C/s模式)大体一致,只是根据需求的变动,减少了一部分业务逻辑增加了一部分网络通讯功能。
该B/S模式系统同样可以通过SOAP中间件,重用长江航养护费征收系统某些可以借鉴的功能,实现数据和逻辑的共享。
3)基于SOAP的数据交换中间件的实现 在本文的第5章中,将进行具体的实现工作,主要包括编写用于发布的服务
代码,编写部署描述符进行服务的部署,客户端调用服务
代码的编写等。
基于soAP的数据交换中间件的实现依靠服务器端和客户端相互合作,服务器端为客户端提供可以重用的服务,客户端访问服务器端部署的服务而无需编写重复的业务逻辑
代码。
本
论文拟采用ApachesoAP/Axis作为发布服务器,通过部署将长江航养 费征收系统的某些可以重用的功能封装成服务发布到服务器上。
湖北港航规费征稽二期系统模拟客户端进行服务的调用,从而实现数据和业务逻辑的共享。
4)SoAPMeSsage的压缩技术 在本文的最后部分将探讨对数据传输的改进和展望。
主要是在中间件系统初步实现的基础上探讨如何利用SOAPMessage的压缩技术来减少数据传输量 4 武汉理T大学硕十学位
论文提高传输效率并探讨采用何种具体的压缩算法来
压缩数据。
在soAP信息进行数据传输时,实际上是对文本信息的传输,而文本信息传输容量是很庞大的。
对SoAPMessage进行压缩,可以将原文本压缩到原容量的二十多个百分点。
通过压缩,传递信息量减少了,soAPMeSsage在
网络上传输则需要更少的时间,是提高传输效率的最有效方法,具体的实现方法将在第五章给出。
武汉理T大学硕士学位
论文 第2章WebSen,ice技术 这一章将介绍W曲Service的有关内容,重点探讨W曲SeⅣice中的几个关键技术,可扩展标记语言(xML/ExtendedMarkedLanguage)、简单对象访问协议(SOAP/SimpleObjectAccessProtoc01)和W曲服务描述语言(WSDI/WebserviceDes嘶ptionLanguage)【8】o2.1XME2.1.1XML语法 XML被译为可扩展标汜语言并被W3C所认证,它和HTML同为标准通用标记语言的一个简化子集【引。
但XML并非HTML的改进版本,而是与HTML各就其职,相得益彰。
XML主要用于描述数据结构和存储数据内容,形式灵活,用户可以自定义自己的XML元素,并且X】ⅥL已成为业界的可扩展的通用标准,而HTML的职责是如何显示数据给终端。
通过一个简单的并且包含所有xML基本元素的xML文档实例来说明XML的语法,文档内容如图2.1: 图2.1XML文档实例图 6 武汉理-【人学硕士学位
论文 XML文档是由XML声明和XML主体元素两个部分组成的,一般XML声明作为XML文档的可选部分放在XML文档中第一行【31。
除了第一行的声明以外XML
文档结构类似一种树结构。
这棵树从根部开始,以树的数据结构形式扩展到树的最底端。
所有元素均可拥有文本内容和属性。
父元素拥有多个子元素,相同层级上的子元素互称为兄弟。
(1)XML声明 图2.1第一行是XML声明的表示方式。
声明元素中的属性版本和编码分别说明了)(ML的版本(1.0)和所使用的编码的属性。
(2)XML主体 1)XML元素 XML元素指的是从开始标签到结束标签之间并包含开始结束标签的内容。
XML
文档必须包含一个根元素,该元素是所有其他元素的父元素【3】o元素还可以以元素、文本或者两者的混合物作为其子元素,元素也可以拥有属性,例如book的cate90ry属性,bookstore、author、title都是元素,bookstore、book都拥有子元素。
有的元素则仅包含文本信息没有子元素。
2)XML元素标签 表示元素的成对出现的o</>称为标签,开始结束标签之间内容以及括号内的字符称为XML元素【31,◇内的字符代表元素名称并可以附加一些属性并且所有xML元素都须开始标签和关闭标签成对匹配。
声明不属于XML本身的组成部分,因此是唯一一个不需要关闭标签的特殊情况。
除此之外XML的所有标记都必须是完全嵌套且xML标签对相同字母的大小写视为不同的字符。
3)XML属性 属性包含在开始标签中并对该元素的特征进行描述,该信息旨在提供该元素的额外信息通常不属于数据的组成部分。
属性定义在开始标记的尖括号内,格式为属性名称后加上等号和属性值。
如有多个属性则属性彼此之间用空格分开,XML语法规则规定属性值必须用引号包含【3】。
<bookcategoD,=¨宰木’’>中book代表元素名称,catego巧为book元素的属性,幸木为categow属性的值,具体情况下可以用具体值取代。
由于对于同一个属性无法取得多个值、属性无法直观的以树结构显示、属性只能修改不易扩展并难以阅读和维护,但是这些弊端都可以通过将属性转换为元素来弥补,所以尽量在描述数据时使用元素而仅采用属性来提供与数据无关的附加信息【8】。
7 武汉理‘r人学硕士学位
论文 4)XML命名空间 XML命名空间是为了解决XML文档中属性名、元素名命名冲突的问题而提出的。
XML命名空间的指定放置于根元素的开始标签之中,语法格式如下: 空间URI是一串可以标示因特网资源的字符串,n锄espace-pre fix是针对声明命名空间URI起的简化名称。
最常用的URI是网络上的与IP地址对应的域名。
当一个命名空间出现在某个元素的开始标签中时,那么该元素中的所有带有相同前缀的子元素都会与该命名空间相关联。
具体使用方式是采用两个用冒号分开的符号来命名,即第一个符号代表特定命名空间的命名空间前缀,第二个符号代表属性或元素的名字,例如zgy:n锄e和wXh:n锄e,虽然名称相同,但是数据属于不同的命名空间,因此归类为不同的元素或属性。
2.1.2XMLSchema XML规范了数据用何种结构表示,但它没有定义一套标准用于表示数据的统一类型,更无从谈起对这套数据类型提出拓展方案。
由于不同类型的系统对同一种类型的数据的底层存储机制不同,所以会出现对同一类型的数据表示的字长不同,这会为系统的互操作性造成一定困难,所以要有一套对多种系统制定的统一的转化方案,即将不同的数据表示转化为同一种标准势在必行。
提供了校验机制的DTD在对数据类型的支持上存在不支持命名空间,不支持约束的定义等局限性。
XMLSch锄a与DTD相比机制更加完善,它支持命名空间、定义数据约束也灵活自如,并且XML文档标准的定义也是依托于XML语法。
因此XMLSch锄a文档规则可以被机器读取,相比之需要专门的
软件来处理的DTD则相形见绌。
因此W3C果断推行了XMLSch锄a用来代替DTD【9】。
数据类型XsD是XMLSchema定义的一套通用标准的类型,针对该类型也给出了一套扩展规则【101。
当开发者使用某种语言来实现一个w曲Service时,为了更好的实现与其他系统的互通,所有数据类型都会被统一转换为XsD类型。
XMLSch锄a包括的几种基本结构如下: 武汉理一〔大学硕+学位
论文 简单类型定义Simple,工如eDefinit ion 复杂类型定义Co衅-1ex’工讳eDe丘niti on 属性声明A啦ributeDeclaratio n 元素声明ElementDeclaratio n 模型组定义ModelGrDupDefiniti on 注解的声明NotationDeclarati on 图2—2是)(】ⅥLSchema文档部分内容: 图2—2XMLSchema文档 以上表示了一个元素number的声明,一个属性age的声明和一个复杂类型phone的定义。
2.1.3XML的特点 远程协助电子商务等基于WEB的新兴领域的大规模兴起造就了传统的资源更为复杂多样化的特点,最为典型的需求是对不同平台、不同格式的数据进行数据集成和数据转换等,需求的递增系统资源的同趋庞大使得异构系统的集成面临更大的挑战瞵】。
然而传统的HTML可扩展性差而不易于维护修改并且更趋向于显示内容而不是承载数据,因此针对以上问题不能提供一个的很好的解决途径。
而XML具有可扩展性和平台无关性,因此理所当然被选为各种应用程序之间进行数据传输的最
常用的形式并且在信息存储和描述领域已成为佼佼者。
1)XML实现数据和HTML的剥离 XML更倾向于传输和存储数据,关注的是数据的内容,是可扩展的动态的。
而HTML更倾向于显示数据,关注的是数据的外观,是被预定义不可扩展的静 9 武汉理‘I:入学硕十学位
论文态的。
如果你需要在HTML文档中显示动态数据,那么每当数据内容或显示格式根据需要不断改变时将随之花费大量的时间来编辑静态HTML以满足变动的需求。
通过XML数据能够存储在独立的文件中,这样界面
设计人员就可以专注于进行布局的设计,修改数据和维护界面分工开来并确保修改底层数据不会对界面的维护造成任何影响pJ。
2)XML使数据共享更为简单 不同的计算机系统中,数据的底层存储格式不尽相同。
不同系统间数据的共享需要共用统一存储模式的数据,为了达到兼容就必须对数据格式进行转换,转换过程将会很大程度上降低共享效率【17】。
煳L数据是以独立于软件和硬件的纯文本格式进行存储,因此用xML表述数据可以使不同平台不同应用程序共享数据变得更加容易【3J。
3)xML使数据传输更为便捷 通过XML可以在很多通讯协议上轻松地进行数据传送。
目前的很多通信协议都支持对)(】ⅥL文本格式的传送,在传送过程前无需对XML进行转换处理,这一特性极大的降低了xML数据传输的复杂性【18】。
4)XML独立于平台 系统的升级或版本的改变无疑要对大量的数据进行转换,不兼容的数据经常会导致系统无法正确运行。
xML数据以独立于平台任何系统都支持的文本格式存储,对于新的操作系统、新应用程序都不会造成冲突【m】。
5)XML的可扩展性 ⅪvIL并不是预先定义好且用户只能使用但不能自己设计的语言,而是允许用户在不同的文件中定义自己设计的标记并可以用来对其它语言进行描述的语言,任何信息任何规则都可以转化为XML文件进行表达。
而HTML是一种标记格式和语法都预先定义好的标记语言,它定义的符号只能用来表达格式而不能用来表示语义内容13J。
总之,XML与HTML各就其职,完美结合,从而弥补了各自的不足。
2.2SOAP技术 SOAP是W曲Service应用中的关键技术。
SOAP为异构系统的集成和逻辑的重用提供了一套简单通用的信息交换机制。
SOAP可以集成底层实现完全不同难以互相沟通的组.