




已阅读5页,还剩42页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
西安邮电学院西安邮电学院 毕毕 业业 设设 计(论计(论 文)文) 题 目:简单对象访问协议 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 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 4指导教师审阅意见 本课题要求能比较深刻的理解 soap 协议和 web service 等内容基本概 念能应用 soap 协议具体化的理解 web service。 该生已对本课题有了一定的理解和学习。同意开题。 指导教师指导教师(签字): 2010 年 3 月 18 日 说明: 本报告必须由承担毕业论文(设计)课题任务的学生在毕业论文(设计) 正式 开始的第 1 周周五之前独立撰写完成,并交指导教师审阅。 西西安安邮邮电电学学院院毕毕业业设设计计 (论论文文)成成绩绩评评定定表表 学生姓名性别学号 专 业班 级 网络 0604 课题名称简单对象访问协议 soap 原理及抓包分析 课题 类型 其他难 度 适 中 毕业设计 (论文)时 间 2010 年年 3 月月 8 日日6 月月 11 日日 指导教师 (职称:) 课题任务 完成情况 论 文 12.495 (千字); 设计、计算说 明书 (千字); 图纸 (张); 其它 (含附 件): 指导教师意 见 分项得分:开题调研论证 分; 课题质量(论文内容) 分; 创新 分; 论文撰写(规范) 分; 学习态度 分; 外文翻译 分 指导教师审阅成绩: 指导教师(签字): 年 月 日 评 阅 教 师 意 见 分项得分:选题 分; 开题调研论证 分; 课题质量(论文内容) 分; 创新 分; 论文撰写(规范) 分; 外文翻译 分 评阅成绩: 评阅教师(签字): 年 月 日 验 收 小 组 意 见 分项得分:准备情况 分; 毕业设计(论文)质量 分; (操作)回答问题 分 验收成绩: 验收教师(组长)(签字): 年 月 日 答 辩 小 组 意 见 分项得分:准备情况 分; 陈述情况 分; 回答问题 分; 仪表 分 答辩成绩: 答辩小组组长(签字): 年 月 日 成绩计算方法 (填写本系实用比例) 指导教师成绩 () 评阅成绩 () 验收成绩 () 答辩成绩 () 学生实得成绩(百分制) 指导教师成绩 评阅成绩 验收成绩 答辩成绩 总评 答 辩 委 员 会 意 见 毕业论文(设计)总评成绩(等级): 院答辩委员会主任(签字): 院(签章) 年 月 日 备 注 西安邮电学院毕业论文(设计)成绩评定表(续表) 目录目录 摘要i abstract.ii 1 引言.1 2 概论.2 2.1 web service简介 2 2.2 ws 的体系结构 3 2.3 web服务.4 3 soap 协议.6 3.1 soap 协议6 3.2 soap 消息7 3.3 soap=rpc+http+xml8 3.4 xml 和 html 的差异 .9 3.5 soap 的前景10 4 soap 协议结构.11 4.1 soap 协议简介11 4.2 soap 协议结构及语法规则12 4.3 soap 消息的基本结构12 5 soap 协议的应用.14 5.1 soap 和 wsdl.14 5.2 soap 体系结构14 5.3 soap 请求响应机制16 5.4 soap 模式与实现20 6 soap 抓包分析实验.25 7 结论 .29 致谢.30 参考文献 .31 i 摘摘 要要 soap(simple object access protocol) ,它是一种标准消息传递协议,通常 是 web service 的事实标准。 soap 规范描述了四个主要的构件.使用信封形式的封装数据和路由路径的格 式化规范,传输或是绑定协议,编码规则,rpc 调用机制 . 信封定义一个为描述 消息内容的规范,这个消息有一种轮流排队处理的含义.协议绑定能够使用低级 别的 http 协议传递 soap 消息提供一个一般的机制.编码规则提够一种规范为 了映射各种各样应用数据到基于标签表现的 tag。最后 rpc 机制提够了一种表 示远程调用和他们返回值的方法。 网络中,不管你的 web service 是用什么工具,什么语言写出来的,只要你 用 soap 协议通过 http 来调用它,总体结构都一致。通常,你用你自己喜欢的 语言(如 vb 6 或者 vb.net)来构建你的 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 ii abstract 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 vb.net) to build your web service, then use the soap toolkit or. nets 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 post request, sent to the web server. web server then forwards the requests to the web service request processor. the role of the request processor is parsing the soap request received, call the web service, 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. bbs.bitscn.com china webmaster forum keywords: rfc,web service,http,wsdl 简单对象访问协议 soap 原理及抓包分析 1 1 引言 随着计算机技术的不断发展,现代企业面临的环境越来越复杂,其信息系统 大多数为多平台、多系统的复杂系统。这就要求今天的企业解决方案具有广泛的 兼容能力,可以支持不同的系统平台、数据格式和多种连接方式,要求在 internet 环境下,实现系统是松散耦合的、跨平台的,与语言无关的,与特定接口无关的, 而且要提供对 web 应用程序的可靠访问。 随着异种计算环境的不断增加,各种系统间的互操作性就愈显得必要,要求 系统能够无缝地进行通信和共享数据,从而在 internet 环境下,消除巨大的信息 孤岛,实现信息共享、进行数据交换,达到信息的一致性。web services 希望实 现不同的系统之间能够用“软件-软件对话“的方式相互调用,打破了软件应用、网 站和各种设备之间的格格不入的状态,实现“基于 web 无缝集成“的目标。 web 服务是我们能够对因特网或网络上的一个对象进行远程调用 rpc(remote procedure call) 。web 服务使用中性平台标准(例如:http 和 xml) ,这使我们可以对客户完全隐藏执行任务的细节,客户只需要知道这个服 务的 url 或方法调用使用的数据类型,而不需要知道该任务到底是一个在 linux 上运行的还是一个在 windows 上运行的用 java 编程的 asp.net 服务。 本论文中所研究的就是网络中 soap 协议的应用,主要是更深刻的理解 soap 协议在网络中客户端和服务器端进行通信,信息交流的过程中如何实现, 相对于其他协议有哪些优点。而对于 web 服务来讲,soap 协议又有何独特的意 义。 简单对象访问协议 soap 原理及抓包分析 2 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 例子,其请求几乎瞬间即可被满足,请求 和响应是同一个方法调用的不同组成部分。另外一个例子是指定货物高校配送线 路的服务。其中,商店发出的请求中包含递送的目的地,服务经过处理后确定成 简单对象访问协议 soap 原理及抓包分析 3 本最低的配送线路。返回响应的时间取决于线路的复杂程度,因此有可能发送和 相应的操作与请求分开进行。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 简单对象访问协议 soap 原理及抓包分析 4 描述信息,用 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 并不能满足要求的情况。 简单对象访问协议 soap 原理及抓包分析 5 web 的服务器软件成为 web 服务器软件,这种为了通过 http 进行交换的 后台程序也称为 httpd(http daemon) 。如表 2-1 表 2-1 web 服务器软件 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 服务器软 件之一 简单对象访问协议 soap 原理及抓包分析 6 3 soap 协议 3.1 soap 协议 随着计算机技术的不断发展,现代企业面临的环境越来越复杂,其信息系统 大多数为多平台、多系统的复杂系统。这就要求今天的企业解决方案具有广泛的 兼容能力,可以支持不同的系统平台、数据格式和多种连接方式,要求在 internet 环境下,实现系统是松散耦合的、跨平台的,与语言无关的,与特定接 口无关的,而且要提供对 web 应用程序的可靠访问。 随着异种计算环境的不断增加,各种系统间的互操作性就愈显得必要,要求 系统能够无缝地进行通信和共享数据,从而在 internet 环境下,消除巨大的信息 孤岛,实现信息共享、进行数据交换,达到信息的一致性。web services 希望实 现不同的系统之间能够用“软件-软件对话“的方式相互调用,打破了软件应用、网 站和各种设备之间的格格不入的状态,实现“基于 web 无缝集成“的目标。 今年四月份的时候,w3c 联盟召开了第一次 web 服务专题研讨会,目的为 探索 w3c 应向哪个方向发展才能实现新兴的 web 服务架构的标准化,期间提 出了一个“web 服务堆栈“的构想,如下图,从图中可以看出,soap 在 web 服 务堆栈中作为用于 xml 消息传递的一种非常普遍的协议,发挥着十分重要的作 用。 图 3-1 soap 在 web 服务堆栈中的作用 简单对象访问协议 soap 原理及抓包分析 7 3.2 soap 消息 1第一个例子阐明了 soap 中一个简单的通信信息,包括了两个不是 soap 定义而是应用程序定义的元素:头块元素 alertcontrol 和体块元素 alert。头块元素 包括两个参数:priority 和 expires。体块元素包括的是实际传送的信息。 图 3-2 soap 中一个简单的通信信息 2soap 通信与底层的不同协议和不同的交换格式有关,下面的例子 soap 使用 http 作为底层通信协议,从而可以很好的使用 request/response 机制来传送 信息。 soap/http 请求包括一个 getlasttradeprice 的块元素,该请求携带一个 字符串参数和 ticker 符号,在 soap 应答中返回一个浮点数。xml 名域用来区分 soap 标志符和应用程序特定的标志符。 图 3-3 使用 http 作为底通信协议 3. 例 3 展示的是 stockquote soap 服务信息,是对例 2 的请求作出的一条 应答消息。 简单对象访问协议 soap 原理及抓包分析 8 图 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 执 简单对象访问协议 soap 原理及抓包分析 9 行过程是类似的,但是用 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 可以获得应用之间的相应信息,提供终端的多项处理要求,也能被 简单对象访问协议 soap 原理及抓包分析 10 其他的解析器和工具所使用,在现阶段, xml 可以转化成相应的 html,来 适应当前浏览器的需求。 xml 工具 xml 如果有一个好的编辑器就能够减少很多麻烦 3.5 soap 的前景 w3c 于 2000 年 5 月 8 日发表了 simple object access protocol (soap) 1.1 版 本,具体规范发布在下列站点上( /tr/soap/)。又与今年 7 月 9 号推出了 soap version 1.2 版本的建议草案,具体规范发布在下列站点上( /tr/soap12/)。编写 soap version 1.1 版本的工作小组的成员 包括: developmentor, international business machines corporation, lotus development corporation, microsoft, userland software。 soap 的推出是令人兴奋的。可以相信,随着网络服务的的不断发展,它将 极大的改变我们的思考模式和开发模式。现在,已有许多大公司着手支持 soap 的开发,去年 ibm 公司 和 microsoft 公司 都发行了实现 soap 的第一批版本。 ibm 公司启动了 apache soap 项目计划,微软最近又推出了 soaptoolkit2.0 的 正式版,主要包括如下的一些特征:soap 的高层接口和低层接口,消息对象接 口,完全支持 wsdl 1.1 标准,支持用户自定义类型映射,并且提供了丰富和完 整的开发文档以及应用实例。而且,两家公司正在互操作性方面努力研究。可以 乐观的估计,不用多久,soap 互操作性的时代就将来临。 与 soap 相关的一些标准: http 1.0 or greater( /protocols/http/ietf-http-ext) the core w3c xml recommendation ( /tr/1998/rec-xml-19980210) w3c xml namespace recommendation( /tr/rec-xml- names). xml schema( /tr/xmlschema-1/) 简单对象访问协议 soap 原理及抓包分析 11 4 soap 协议结构 4.1 soap 协议简介 soap 以 xml 形式提供了一个简单、轻量的用于在分散或分布环境中交换 结构化和类型信息的机制。soap 本身并没有定义任何应用程序语义,如编程模 型或特定语义的实现;实际上它通过提供一个有标准组件的包模型和在模块中编 码数据的机制,定义了一个简单的表示应用程序语义的机制。这使 soap 能够被 用于从消息传递到 rpc 的各种系统。 简单对象访问协议( soap,simple object access protocol)是一种轻量的、 简单的、基于 xml 的协议,它被设计成在 web 上交换结构化的和固化的 信息。 soap 可以和现存的许多因特网协议和格式结合使用,包括超文本传输 协议( http) ,简单邮件传输协议( smtp) ,多用途网际邮件扩充协议 (mime) 。它还支持从消息系统到远程过程调用( rpc)等大量的应用程序。 soap 包括三个部分: soap 封装:它定义了一个框架 , 该框架描述了消息中的内容是什么,谁 应当处理它以及它是可选的还是必须的。 soap 编码规则:它定义了一种序列化的机制,用于交换应用程序所定义 的数据类型的实例。 soap rpc 表示:它定义了用于表示远程过程调用和应答的协定。 虽然这三个部分都作为 soap 的一部分,作为一个整体定义的,但他们在功 能上是相交的、彼此独立的。特别的,信封和编码规则是被定义在不同的 xml 命名空间(namespace)中,这样使得定义更加简单。 soap 消息基本上是从发送端到接收端的单向传输,但它们常常结合起来 执行类似于请求 / 应答的模式。所有的 soap 消息都使用 xml 编码。一 条 soap 消息就是一个包含有一个必需的 soap 的封装包,一个可选的 soap 标头和一个必需的 soap 体块的 xml 文档。 把 soap 绑定到 http 提供了同时利用 soap 的样式和分散的灵活性 的特点以及 http 的丰富的特征库的优点。在 http 上传送 soap 并不是 说 soap 会覆盖现有的 http 语义,而是 http 上的 soap 语义会自然 的映射到 http 语义。在使用 http 作为协议绑定的场合中, rpc 请求映 射到 http 请求上,而 rpc 应答映射到 http 应答。然而,在 rpc 上使 简单对象访问协议 soap 原理及抓包分析 12 用 soap 并不仅限于 http 协议绑定。 soap 也可以绑定到 tcp 和 udp 协议上。 4.2 soap 协议结构及语法规则 4.2.1 协议结构 soap 消息格式: soap 标头 目前主要在 web 服务中运用。 soapaction web 编码中常见,协议开始起始意思,常见于编码启始句。 4.2.2 语法规则 这里是一些重要的语法规则: soap 消息必须用 xml 来编码 soap 消息必须使用 soap envelope 命名空间 soap 消息不能包含 dtd 引用 soap 消息不能包含 xml 处理指令 4.3 soap 消息的基本结构 . . 简单对象访问协议 soap 原理及抓包分析 13 . . . . soap 消息交换模型 soap 消息从发送方到接收方是单向传送,但正如上面显示的,soap 消息 经常以请求/应答的方式实现。soap 实现可以通过开发特定网络系统的特性来优 化。例如,http 绑定使 soap 应答消息以 http 应答的方式传输,并使用同一 个连接返回请求。不管 soap 被绑定到哪个协议,soap 消息采用所谓的”消息路 径“发送,这使在终节点之外的中间节点可以处理消息。一个接收 soap 消息的 soap 应用程序必须按顺序执行以下的动作来处理消息:识别应用程序想要的 soap 消息的所有部分检验应用程序是否支持第一步中识别的消息中所有必需部 分并处理它。如果不支持,则丢弃消息。在不影响处理结果的情况下,处理器可 能忽略第一步中识别出的可选部分。如果这个 soap 应用程序不是这个消息的最 终目的地,则在转发消息之前删除第一步中识别出来的所有部分。为了正确处理 一条消息或者消息的一部分,soap 处理器需要理解:所用的交换方式(单向, 请求/应答,多路发送等等) ,这种方式下接收者的任务,rpc 机制(如果有的话) 的使用,数据的表现方法或编码,还有其它必需的语义。尽管属性(比如 soap encodingstyle, )可以用于描述一个消息的某些方面,但这个规范并不强制所有的 接收方也必须有同样的属性并取同样的属性值。举个例子,某一特定的应用可能 知道一个元素表示一条遵循约定的 rpc 请求,但是另外一些应用可能认为指向该 元素的所有消息都用单向传输,而不是类似请求应答模式。 (交互双方的 soap 消息并不一定要遵循同样的格式设定,而只需要以一种 双方可理解的格式交换信息就可以了) 简单对象访问协议 soap 原理及抓包分析 14 5 soap 协议的应用 简单对象访问协议(soap
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 区房屋出租合同书
- 合作育苗协议合同
- Module 3Unit 2教学设计-2024-2025学年外研版八年级英语上册
- 公司吸收合并合同协议书
- 员工薪酬福利考核规定计划
- 提升演讲与表达能力的计划
- 引入顾客反馈改进生产计划
- 图书馆开放日活动的策划思路计划
- 开展团队建设活动的安排计划
- 小班心理健康教育的重要性计划
- 《国际政治学》课件
- 栏杆计算书完整版本
- 人教版年五年级信息技术下册期中试卷(含答案)
- 农村土地延包确权实施方案
- PVC聚氯乙烯教学课件
- 视频监控维保项目投标方案(技术标)
- 工伤与职业病赔偿
- 市政工程(道路)课件
- 中考英语题型六选五课件
- 2022年睾丸肿瘤诊断治疗指南
- 变压器铁芯(夹件)接地电流试验
评论
0/150
提交评论