简单对象访问协议SOAP原理及抓包分析

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

毕业设计(论文)题目:简单对象访问协议SOAP原理及抓包分析
院系:计算机学院
专业:网络工程
班级:网络0604
学生姓名:
导师姓名:职称:
起止时间:2010年03月08日至2010年06月11日
西安邮电学院
毕业设计(论文)任务书
学生姓名指导教师职称
院系计算机学院专业网络工程0604
题目简单对象访问协议SOAP原理及抓包分析
任务与要求
简单对象访问协议(SOAP,全写为Simple Object Access Protocol)是一种标准化的通讯规范,主要用于Web服务(web service)中。

SOAP的出现是为了简化网页服务器(Web Server)在从XML数据库中提取数据时,无需花时间去格式化页面,并能够让不同应用程序之间透过HTTP通讯协定,以XML格式互相交换彼此的数据,使其与编程语言、平台和硬件无关。

本课题在理解SOAP消息原理和格式的基础上,用tcp monitor工具抓包,对Web 服务交互中的SOAP消息进行分析。

具体要求:
1.理解Web服务;
2.掌握简单对象访问协议的格式;
3.掌握tcp monitor工具的使用方法
开始日2010年3月8日完成日期2010年6月11日
院长(签字) 2010 年 3 月12 日
西安邮电学院
毕业设计 (论文) 工作计划
学生姓名__ ___指导教师_ __ 职称__ ________
院系_____计算机学院______专业______网络工程____________ 题目___简单对象访问控制协议SOAP原理及抓包分析________ _______________________________________________________
工作进程
起止时间工作内容
3月8日--4月10日:Web服务基本概念理解
4月11日--5月1日:Web服务平台搭建
5月2日– 5月24日SOAP协议理解并分析
5月25日--6月5日:毕业论文书写
6月6日-- 6月11日:准备答辩
主要参考书目(资
Java 与SOAP. Robert Englander .中国电力出版社
1、配置较高的计算机1台。

(内存较大)
2、提供上网环境
每周一指导一次,其它时间有问题可以通过E-mail 解决。


主要参考书目(资料) 主要仪器设备及材料
论文(设计)过程中教师的指导安排
对计划的说明
西安邮电学院
毕业设计(论文)开题报告计算机学院网络工程专业 06 级 04 班
课题名称:简单对象访问协议SOAP原理及抓包分析
学生姓名:学号:
指导教师:
报告日期: 2010年3月16日
1.本课题所涉及的问题及应用现状综
本课题所涉及的问题:
1)理解Web服务,掌握其原理及简单对象访问协议(SOAP Simple Object Access Protocol)在其中所起的所用,工作过程;
2)掌握简单对象访问协议(SOAP)的格式;
3)掌握tcp monitor工具的使用方法,对Web服务中SOAP协议作用下所抓到的报文进行分析。

应用现状:
随着计算机技术的不断发展,现代企业面临的环境越来越复杂,其信息系统大多数为多平台、多系统的复杂系统。

这就要求企业解决方案具有广泛的兼容能力,可以支持不同的系统平台、数据格式和多种连接方式,要求在Internet环境下,系统是松散耦合的、跨平台的,与语言无关的,与特定接口无关的,而且要提供对Web应用程序的可靠访问。

随着异种计算环境的不断增加,各种系统间的互操作性就愈显得必要,要求系统能够无缝地进行通信和共享数据,从而在Internet环境下,消除巨大的信息孤岛,实现信息共享、进行数据交换,达到信息的一致性。

Web services希望实现不同的系统之间能够用"软件-软件对话"的方式相互调用,打破了软件应用、网站和各种设备之间的格格不入的状态,实现"基于WEB无缝集成"的目标。

W3C联盟召开的第一次Web服务专题研讨会,便是为了探索W3C应向哪个方向发展才能实现新兴的Web服务架构的标准化,其中SOAP在Web服务堆栈中作为用于XML 消息传递的一种非常普遍的协议,发挥着十分重要的作用。

IBM 公司启动了Apache SOAP 项目计划,微软又推出了SOAPtoolkit2.0的正式版,主要包括如下的一些特征:SOAP的高层接口和低层接口,消息对象接口,完全支持WSDL 1.1标准,支持用户自定义类型映射,并且提供了丰富和完整的开发文档以及应用实例。

而且,两家公司正在互操作性方面努力研究。

可以乐观的估计,不用多久,SOAP互操作性的时代就将来临。

2.本课题需要重点研究的关键问题、解决的思路及实现预期目标的可行性
分析
需重点研究的关键问题:
1)了解什么是Web服务,Web服务是怎样的过程;
2)在Web服务中SOAP协议的运行和发会的作用;
3)具体认识了解认识SOAP协议的格式,以便进行之后的抓包分析。

解决的思路:
1)通过参考互联网和书本上的有关Web服务的过程,以及相关的文献来了解Web服务;2)或者与同学互相交流相关自己研究课题的内容,以便补充自己了解的不足;
3)或者在与同学交流中也解决不了问题时同老师交流,来解决。

实现目标的可行性分析:
对SOAP协议在Web中的消息进行抓包分析,同时也是要先对Web服务的过程进行了解,并熟悉SOAP在Web中所起到的作用。

可以通过互联网、从图书馆借阅图书,与同学老师交流来对其进行了解,抓包分析可以在实验室中进行,应用tcp monitor来进行抓包分析,以便更系统和形象的了解整个Web服务过程中SOAP所起到的作用。

其中的重点还是在于对Web服务过程的掌握和SOAP的应用。

3.完成本课题的工作方案
工作方案:
1) 3月-4月查阅资料,对Web先进行基本的了解,同时了解SOAP在Web中应用的实例;
2) 4月-5月进行更深入的了解SOAP,此时要熟练掌握Web服务中SOAP怎么样运用,SOAP消息包的格式,并进行初步的抓包分析准备;
3) 5月开始就要深入的对SOAP消息包进行分析,更进一步的了解SOAP在Web服务中的工作流程,熟练掌握Web服务的工作过程及SOAP协议的原理;
4)以上进行在6月之前完毕,并开始准备毕业论文,进行毕业答辩。

4.指导教师审阅意见
本课题要求能比较深刻的理解SOAP协议和Web Service等内容基本概念能应用SOAP协议具体化的理解Web Service。

该生已对本课题有了一定的理解和学习。

同意开题。

指导教师(签字): 2010 年 3 月 18 日
说明:
本报告必须由承担毕业论文(设计)课题任务的学生在毕业论文(设计) 正式开始的第1周周五之前独立撰写完成,并交指导教师审阅。

西安邮电学院毕业设计(论文)成绩评定表
学生姓名性别学号专业班

网络0604
课题名称简单对象访问协议SOAP原理及抓包分析课题
类型其他难



毕业设计(论
文)时间2010 年3月8日
~6月11日指导教师(职称:)
课题任务完成情况论文12.495 (千字);设计、计算说明书(千字);图纸(张);其它(含附件):
指导教
师意见分项得分:开题调研论证分;课题质量(论文内容)分;创新分;
论文撰写(规范)分;学习态度分;外文翻译分
指导教师审阅成绩:指导教师(签字):年月日
评阅教师
意见分项得分:选题分;开题调研论证分;课题质量(论文内容)分;创新分;论文撰写(规范)分;外文翻译分
评阅成绩:评阅教师(签字):年月日





见分项得分:准备情况分;毕业设计(论文)质量分;(操作)回答问题分验收成绩:验收教师(组长)(签字):年月日






分项得分:准备情况分;陈述情况分;回答问题分;仪表分答辩成绩:答辩小组组长(签字):年月日成绩计算方法
(填写本系实用比例)
指导教师成绩(%) 评阅成绩(%) 验收成绩(%) 答辩成绩(%)学生实得成绩(百分制)
指导教师成绩评阅成绩验收成绩
答辩成绩总评





意见毕业论文(设计)总评成绩(等级):
院答辩委员会主任(签字):院(签章)
年月日


西安邮电学院毕业论文(设计)成绩评定表(续表)
目录
摘要 (I)
ABSTRACT..................................................................................................... I I
1 引言 (1)
2 概论 (2)
2.1W EB S ERVICE简介 (2)
2.2WS的体系结构 (3)
2.3W EB服务 (4)
3 SOAP协议 (6)
3.1SOAP协议 (6)
3.2SOAP消息 (7)
3.3SOAP=RPC+HTTP+XML (8)
3.4XML和HTML的差异 (9)
3.5SOAP的前景 (10)
4 SOAP协议结构 (11)
4.1SOAP协议简介 (11)
4.2SOAP协议结构及语法规则 (12)
4.3SOAP消息的基本结构 (12)
5 SOAP协议的应用 (14)
5.1SOAP和WSDL (14)
5.2SOAP体系结构 (14)
5.3SOAP请求响应机制 (16)
5.4SOAP模式与实现 (20)
6 SOAP抓包分析实验 (25)
7 结论 (29)
致谢 (30)
参考文献 (31)
SOAP(Simple Object Access Protocol),它是一种标准消息传递协议,通常是Web Service的事实标准。

SOAP规范描述了四个主要的构件.使用信封形式的封装数据和路由路径的格式化规范,传输或是绑定协议,编码规则,RPC调用机制 . 信封定义一个为描述消息内容的规范,这个消息有一种轮流排队处理的含义.协议绑定能够使用低级别的HTTP协议传递SOAP消息提供一个一般的机制.编码规则提够一种规范为了映射各种各样应用数据到基于标签表现的TAG。

最后RPC机制提够了一种表示远程调用和他们返回值的方法。

网络中,不管你的Web service是用什么工具,什么语言写出来的,只要你用SOAP协议通过HTTP来调用它,总体结构都一致。

通常,你用你自己喜欢的语言(如VB 6或者)来构建你的Web service,然后用SOAP Toolkit或者.NET 的内建支持来把它暴露给Web客户。

于是,任何语言,任何平台上的客户都可以阅读其WSDL文档,以调用这个Web service。

客户根据WSDL描述文档,会生成一个SOAP请求消息。

Web service都是放在Web服务器 (如IIS) 后面的,客户生成的SOAP请求会被嵌入在一个HTTP POST请求中,发送到Web服务器来。

Web服务器再把这些请求转发给Web service请求处理器。

请求处理器的作用在于,解析收到的SOAP请求,调用Web service,然后再生成相应的SOAP应答。

Web 服务器得到SOAP应答后,会再通过HTTP应答的方式把它送回到客户端。

关键字:RFC,Web Service,HTTP,WSDL
SOAP (Simple Object Access Protocol), which is a standard messaging protocol,communication.Is often the de facto standard Web Service.
SOAP specification describes four main components. Use the envelope forms of packaging and routing path data format specifications, transmission or binding agreement, coding rules, RPC call mechanism. Envelope to define a standard for describing the message content, the news There is a rotation queue processing means. protocol bindings to the HTTP protocol using low-level SOAP message passed to provide a general mechanism. encoding rules provide enough of a standard application for mapping data to a variety of labels based on the performance of TAG. Finally, a RPC mechanism to provide enough distance call and they said the method return value. Whether your Web service is what tools, what language to write out, as long as you use SOAP protocol via HTTP to call it, are consistent with the overall structure. Typically, you use your own preferred language (such as VB 6 or ) to build your Web service, then use the SOAP Toolkit or. NET's built-in support to expose it to the Web client. Thus, any language, any platform, customers can read the WSDL document to call the Web service. Customers under the WSDL description document, will generate a SOAP request message. Web service are on the Web server (such as IIS) later, the customer generates the SOAP request will be embedded in a HTTP o öNù[Ý‹"…v¹e _øv’N Œ(u
ÿSb4x†No öN”^(u 0Q•ÙzŒT TÍy¾‹ YKNô•…v<h<h NeQ…v¶r `
ÿž[°s" úWŽNW E B àe •Æ– b" …vîv h 0
W e b
g¡R/f bìNý€Yù[àVyrQ• bQ•Ü~ N…v N*Nù[aŒÛ LˆÜ
z Œ(uR P C ÿR e m o t e P r o c e d u then generate the appropriate SOAP response. Web server to get the SOAP response, will then respond by way of HTTP send it back to the client. China Webmaster Forum
KEYWORDS: RFC,Web Service,HTTP,WSDL
1 引言
随着计算机技术的不断发展,现代企业面临的环境越来越复杂,其信息系统大多数为多平台、多系统的复杂系统。

这就要求今天的企业解决方案具有广泛的兼容能力,可以支持不同的系统平台、数据格式和多种连接方式,要求在Internet 环境下,实现系统是松散耦合的、跨平台的,与语言无关的,与特定接口无关的,而且要提供对Web 应用程序的可靠访问。

随着异种计算环境的不断增加,各种系统间的互操作性就愈显得必要,要求系统能够无缝地进行通信和共享数据,从而在Internet 环境下,消除巨大的信息孤岛,实现信息共享、进行数据交换,达到信息的一致性。

Web services 希望实现不同的系统之间能够用"软件-软件对话"的方式相互调用,打破了软件应用、网站和各种设备之间的格格不入的状态,实现"基于WEB无缝集成"的目标。

Web服务是我们能够对因特网或网络上的一个对象进行远程调用RPC (Remote Procedure Call)。

Web服务使用中性平台标准(例如:HTTP和XML),这使我们可以对客户完全隐藏执行任务的细节,客户只需要知道这个服务的URL 或方法调用使用的数据类型,而不需要知道该任务到底是一个在Linux上运行的还是一个在Windows上运行的用Java编程的服务。

本论文中所研究的就是网络中SOAP协议的应用,主要是更深刻的理解SOAP 协议在网络中客户端和服务器端进行通信,信息交流的过程中如何实现,相对于其他协议有哪些优点。

而对于Web服务来讲,SOAP协议又有何独特的意义。

2 概论
2.1 Web Service简介
Web服务(Web Service)是基于XML和HTTPS的一种服务,其通信协议主要基于SOAP,服务的描述通过WSDL,通过UDDI来发现和获得服务的元数据。

Web service到底是什么;在什么情况下你应该使用Web service。

分布式应用程序和浏览器
研究一下当前的应用程序开发,你会发现一个绝对的倾向:人们开始偏爱基于浏览器的受客户应用程序。

这当然不是因为受客户能够提供更好的用户界面,而是因为它能够避免花在桌面应用程序发布上的高成本。

发布桌面应用程序成本很高,一半是因为应用程序安装和配置的问题,另一半是因为客户和服务器之间通信的问题。

传统的Windows富客户应用程序使用DCOM来与服务器进行通信和调用远程对象。

配置好DCOM使其在一个大型的网络中正常工作将是一个极富挑战性的工作,同时也是许多IT工程师的噩梦。

事实上,许多IT工程师宁愿忍受浏览器所带来的功能限制,也不愿在局域网上去运行一个DCOM。

在我看来,结果就是一个发布容易,但开发难度大而且用户界面极其受限的应用程序。

极端的说,就是你花了更多的资金和时间,却开发出从用户看来功能更弱的应用程序。

不信?问问你的会计师对新的基于浏览器的会计软件有什么想法:绝大多数商用程序用户希望使用更加友好的Windows用户界面。

关于客户端与服务器的通信问题,一个完美的解决方法是使用HTTP协议来通信。

这是因为任何运行Web浏览器的机器都在使用HTTP协议。

同时,当前许多防火墙也配置为只允许HTTP连接。

Web服务(Web Service WS)通常指通过Web提供的各种服务。

一个典型的WS过程是:一个业务应用通过使用HTTP的SOAP协议向某个指定URL上的一个服务发出请求,这个服务接受并且处理该请求后返回一个响应。

一个经常被引用的例子是股票报价服务,服务的请求是询问某股票的当前价格,服务的响应是该股票的价格。

这是最简单的WS例子,其请求几乎瞬间即可被满足,请求和响应是同一个方法调用的不同组成部分。

另外一个例子是指定货物高校配送线路的服务。

其中,商店发出的请求中包含递送的目的地,服务经过处理后确定成本最
低的配送线路。

返回响应的时间取决于线路的复杂程度,因此有可能发送和相应的操作与请求分开进行。

WS和WS的消费者通常都是交易者,这使得WS的主流是企业对企业(B2B)间的业务处理。

一个企业有可能使某些WS的提供者,同时又是其他WS的消费者。

例如:对于一个香料批发企业,当他使用WS核对香草豆是否有活的时候,其角色时WS的消费者;当他把不同卖主的价格提供给未来消费者的时候,其角色又是WS的提供者。

2.2 WS的体系结构
总的来说Web Service的体系结构由简单对象访问模型而来,把所有的应用实体都抽象成服务,包括三个角色和三种基本此操作:
三个角色如下:
服务提供者(Service Provide):从商务角度看,它是指服务的所有者,从体系结构上来看,它是指提供服务的平台。

服务请求者(Service Requester):从商务角度看,它是指需要请求特定功能的企业,从体系结构看,它是指查找和调用服务的客户端应用程序。

服务代理(Service Broker):它是指用来存储服务描述信息的信息仓库(Repository)。

它负责为服务提供方发布服务,为服务请求方查找服务,并且将获取服务的信息绑定给请求方。

三种基本操作如下:
发布(Publish):服务提供者需要将服务进行一定的描述并发布到注册服务器上。

在发布操作中,服务提供者需要通过注册服务器的神恩验证才能对服务描述信息进行发布和修改。

查找(Find):服务请求方根据注册服务器提供的规范接口发出查询请求,从而获取所需服务的相关信息。

在查找操作中,一般有两种查找模式。

一种是浏览模式(Browse Pattern),及服务请求方可以根据通用的分类标准来浏览或者通过一些关键词来搜索,逐步缩小查找的范围,直到找到满足需要的服务,其查找结果是一系列服务的集合。

另一种是直接获取模式(Drill Down Pattern),即通过惟一的关键词直接得到特定服务的描述信息,其查找结果是唯一的。

绑定(Bind):服务请求方通过分析从注册服务器中得到的服务绑定信息,例如服务访问路径、服务调用的参数、返回结果、传输协议、安全要求等,对自己的系统进行相应配置,进而可远程调用服务提供者所提供的服务。

对应上述三种操作,给出了三种标准如下:
SOAP(Simple Object Access Protocol,简单对象访问协议),它实现的是低层协议,定义了服务请求者和服务提供者之间的消息传输规范。

SOAP用XML描述
信息,用HTTP承贷消息。

SOAP包括四部分:一是封皮,定义了描述消息和如何处理消息的框架;二是表达应用程序定义的数据类型实例的编码规则(SOAP编码规则);三是SOAP RPC表示,定义远程过程调用和应答的协议;四是SOAP绑定(Bind),定义法如何使用底层传输协议进行SOAP消息的交换。

WSDL(Web Services Description Language,Web服务描述语言),它是Microsoft 公司的SDL(Services Description Language)、IBM公司的NASSL
(Network-Accessible Services Specification Language)合并后被W3C接纳所形成的标准。

WSDL为服务提供者提供以XML格式描述WS请求的标准格式,将网络服务描述为能够进行消息交换的通信端点的集合,以表达一个WS能做什么,它的位置在哪里,如何调用它等。

UDDI(Universal Discover、Description 、Integration 通用发现、描述、集成)它是在原有Microsoft提供的DISCO(Discription of Web Services)和IBM提出的。

2.3 Web服务
Web服务(Web Service)是基于XML和HTTPS的一种服务,其通信协议主要基于SOAP,服务的描述通过WSDL,通过UDDI来发现和获得服务的元数据。

Web服务是提供由HTML等语言描述的信息,Web浏览器是为了将这些信息提取出来在客户端运行的软件。

互联网是Web服务器的集合体。

从表面上看,Web service 就是一个应用程序,它向外界暴露出一个能够通过Web进行调用的API。

这就是说,你能够用编程的方法通过Web来调用这个应用程序。

我们把调用这个Web service 的应用程序叫做客户。

例如,你想创建一个Web service ,它的作用是返回当前的天气情况。

那么你可已建立一个ASP页面,它接受邮政编码作为查询字符串,然后返回一个由逗号隔开的字符串,包含了当前的气温和天气。

要调用这个ASP页面,客户端需要发送下面的这个HTTP GET 请求:
/weather.asp?zipcode=20171
Web service 更精确的解释:Web services是建立可互操作的分布式应用程序的新平台。

作为一个Windows程序员,你可能已经用COM或DCOM建立过基于组件的分布式应用程序。

COM是一个非常好的组件技术,但是我们也很容易举出COM并不能满足要求的情况。

Web的服务器软件成为Web服务器软件,这种为了通过HTTP进行交换的后台程序也称为HTTPd(HTTP daemon)。

如表2-1
表2-1Web服务器软件
Web服务器软件运行环境说明
IIS(Internet Information Serber)WindowsNT/2000 Serber
是在Windows系列网络
OS的NT或2000上运行
的Web服务器软件同OS
捆绑在一起或者实地安
装提供ASP环境的服务
器有增加的倾向
Apache 主要是UNIX系列的OS
(也有对应于
WindowsNT/2000/98/Me)
是以NCSA HTTPd的
1.3版本为基础,进行了
各种各样的功能扩展而
发布了的Web服务器软
件之一
3 SOAP协议
3.1 SOAP协议
随着计算机技术的不断发展,现代企业面临的环境越来越复杂,其信息系统大多数为多平台、多系统的复杂系统。

这就要求今天的企业解决方案具有广泛的兼容能力,可以支持不同的系统平台、数据格式和多种连接方式,要求在Internet 环境下,实现系统是松散耦合的、跨平台的,与语言无关的,与特定接口无关的,而且要提供对Web 应用程序的可靠访问。

随着异种计算环境的不断增加,各种系统间的互操作性就愈显得必要,要求系统能够无缝地进行通信和共享数据,从而在Internet 环境下,消除巨大的信息孤岛,实现信息共享、进行数据交换,达到信息的一致性。

Web services 希望实现不同的系统之间能够用"软件-软件对话"的方式相互调用,打破了软件应用、网站和各种设备之间的格格不入的状态,实现"基于WEB无缝集成"的目标。

今年四月份的时候,W3C联盟召开了第一次Web 服务专题研讨会,目的为探索W3C 应向哪个方向发展才能实现新兴的Web 服务架构的标准化,期间提出了一个"Web 服务堆栈"的构想,如下图,从图中可以看出,SOAP在WEB服务堆栈中作为用于XML 消息传递的一种非常普遍的协议,发挥着十分重要的作用。

图3-1 SOAP在WEB服务堆栈中的作用
3.2 SOAP消息
1.第一个例子阐明了SOAP中一个简单的通信信息,包括了两个不是SOAP 定义而是应用程序定义的元素:头块元素alertcontrol 和体块元素alert。

头块元素包括两个参数:priority 和expires。

体块元素包括的是实际传送的信息。

图3-2 SOAP中一个简单的通信信息
2.SOAP通信与底层的不同协议和不同的交换格式有关,下面的例子SOAP 使用HTTP作为底层通信协议,从而可以很好的使用request/response机制来传送信息。

SOAP/HTTP请求包括一个GetLastTradePrice的块元素,该请求携带一个字符串参数和ticker符号,在SOAP应答中返回一个浮点数。

XML名域用来区分SOAP标志符和应用程序特定的标志符。

图3-3 使用HTTP作为底通信协议
3. 例3 展示的是StockQuote SOAP服务信息,是对例2的请求作出的一条应答消息。

图3-4 对于请求作出的一条应答消息
3.3 SOAP=RPC+HTTP+XML
SOAP简单的理解,就是这样的一个开放协议SOAP=RPC+HTTP+XML:采用HTTP作为底层通讯协议;RPC作为一致性的调用途径,XML作为数据传送的格式,允许服务提供者和服务客户经过防火墙在INTERNET进行通讯交互。

RPC的描叙可能不大准确,因为SOAP一开始构思就是要实现平台与环境的无关性和独立性,每一个通过网络的远程调用都可以通过SOAP封装起来,包括DCE (Distributed Computing Environment )RPC CALLS,COM/DCOM CALLS, CORBA CALLS, JAVA CALLS,etc。

SOAP 使用HTTP 传送XML,尽管HTTP 不是有效率的通讯协议,而且XML 还需要额外的文件解析(parse),两者使得交易的速度大大低于其它方案。

但是XML 是一个开放、健全、有语义的讯息机制,而HTTP 是一个广泛又能避免许多关于防火墙的问题,从而使SOAP得到了广泛的应用。

但是如果效率对你来说很重要,那么你应该多考虑其它的方式,而不要用SOAP。

为了更好的理解SOAP, HTTP, XML如何工作的,不妨先考虑一下COM/DCOM的运行机制,DCOM处理网络协议的低层次的细节问题,如PROXY/STUB间的通讯,生命周期的管理,对象的标识。

在客户端与服务器端进行交互的时候,DCOM采用NDR(Network Data Representation)作为数据表示,它是低层次的与平台无关的数据表现形式。

DCOM是有效的,灵活的,但也是很复杂的。

而SOAP的一个主要优点就在于它的简单性,SOAP使用HTTP作为网络通讯协议,接受和传送数据参数时采用XML作为数据格式,从而代替了DCOM中的NDR格式,SOAP和DCOM执行
过程是类似的,但是用XML取代NDR作为编码表现形式,提供了更高层次上的抽象,与平台和环境无关。

客户端发送请求时,不管客户端是什么平台的,首先把请求转换成XML格式,SOAP网关可自动执行这个转换。

为了保证传送时参数,方法名,返回值的唯一性,SOAP协议使用了一个私有标记表,从而服务端的SOAP网关可以正确的解析,这有点类似于COM/DCOM中的桩(STUB)。

转化成XML格式后,SOAP终端名(远程调用方法名)及其他的一些协议标识信息被封装成HTTP请求,然后发送给服务器。

如果应用程序要求,服务器返回一个HTTP应答信息给客户端。

与通常对HTML页面的HTTP GET请求不同的是,此请求设置了一些HTTP HEADER,标识着一个SOAP服务激发,和HTTP包一起传送。

例如:对于一个询问股票价格的应用程序,服务器端具有组件提供某股票当前的价格,组件是COM或CORBA 在服务器上建立的。

客户端发送一个SOAP请求给服务器询问股票价格。

服务器依赖于服务器上的SOAP网关,使用内嵌的HTML对象调用合适的方法,然后把得到的价格通过SOAP应答传给客户端。

3.4 XML和HTML的差异
XML和HTML的不同可以归纳为3点:
1)XML扩展性比HTML强
XML(Extensible Markup Languages)是扩展标记语言的英语缩写,他可以创建个性化的标记语言,可以称之为元语言。

XML的标记语言可以自定义,这样可以提供更多的数据操作,而不像HTML一样,只能局限于按一定的格式在终端显示出来。

HTML的功能只有浏览器放入显示和打印,仅仅适合静态网页的要求。

2)XML的语法比HTML严格
由于XML的扩展性强,它需要稳定的基础规则来支持扩展。

它的严格规则为:
1、起始和结束的标签相匹配
2、嵌套标签不能相互嵌套
3、区分大小写
相对应XML的严格规则,HTML语言并没有规定标签的绝对位置,也不区分大小写,而这些全部由浏览器来完成识别和更正。

3)XML与HTML互补
XML可以获得应用之间的相应信息,提供终端的多项处理要求,也能被。

相关文档
最新文档