分享
 
 
 

理解SOAP (一)介绍、SOAP 版本、

王朝other·作者佚名  2006-01-08
窄屏简体版  字體: |||超大  

日期:2003-03

适用于:全局XML Web 服务架构(GXA)

远程过程调用(RPC)

SOAP 1.1 SOAP 1.2 规范

传输协议:TCP, HTTP, SMTP, 和 MSMQ

Microsoft® .NET Web Services Enhancements 1.0 SP1

XML Schema

摘要

SOAP在分布异构环境中提供一种简单,可扩展,和丰富的XML消息框架(messaging framework), 对定义高层的应用协议提供更强的互操作性(interoperability).

内容

介绍

SOAP 版本

消息框架

扩展性

处理模型

协议绑定

HTTP 绑定

RPC 与编码

SOAP 样式

总结

介绍

在昨天SOAP好像只不过是一种清洁产品。现在大多数开发者无法理解没有尖括号的信息(can't hear the word without seeing angle brackets.译注:我理解成现在数据大多以XML表现)。SOAP最初代表" 简单对象访问协议"。如果你几年以前问人询问SOAP的意思,他们会或许说“在internet上与DCOM 和 Corba (如 RPC 调用)做类似工作”。它的原作者们承认他们集中于“对象访问”然后返回,随着时间发展,使SOAP服务于更广泛的应用变得合乎需要。因此,规范的焦点迅速从对象移向通用XML消息框架。

焦点的变化在缩写词SOAP的字母’O’上产生了一个细微的问题。有趣的是,SOAP1.2工作组仍保留(迄今) SOAP这个名字(它太应用的太普遍,很难改变它), 但是决定依靠(against)清楚地说明来避免误解开发者。最新的SOAP1.2规范中正式的SOAP定义,甚至没有涉及对象:

SOAP是一种在分散,分布环境中用来交换结构化信息的轻量级协议。SOAP使用XML 技术来定义一个可扩展的消息框架,这个消息框架提供了一个能在多种下层(underlying)协议上进行交换的消息构造。框架被设计成独立于任何特定的编程模型和其他实现的具体语义。

现在,这个定义真正的描叙了SOAP的实质。SOAP定义了一个方法来将XML消息从A点传送到B点(见图1)。这是靠SOAP提供了一个基于XML的消息框架,它有以下几个特点:

① 可扩展(extensible)

② 能使用多种下层网络协议

③ 独立于编程模型

现在来依次讨论这三个特点的更多细节。

图1.简单SOAP消息

首先,SOAP的关键是可扩展性(extensibility)。当SOAP代表一些东西的时候,“S”意为“简单(Simple)”。如果有一件事我们能从web上学到,那就是简单(Simplicity)总能争取(wins over)效率或工业纯度(technical purity)。而且当互操作性处于得失攸关(at stake)时,简单就是绝对的需要。SOAP缺乏多种分布式系统的特点,如安全、路径选择和命名一些可靠性,印证了SOAP保持了最初设计目标――简单。SOAP定义了一个通信框架来允许这些特点作为分层扩展加进来(to be added down the road as layered extensions)。Microsoft 、IBM 和其他软件商正积极着手于一套通用的SOAP扩展, 它将增加大多数开发者期望的一些特点。初始阶段作为全局XML Web 服务架构(GXA)而涉及。Microsoft已经发布一个GXA规范的参考实现, 并称为Microsoft® .NET Web Services Enhancements 1.0 SP1。

其次,SOAP能够基于任何传送协议使用,例如TCP,HTTP,SMTP甚至MSMQ(参阅图1)。不过,为了保持互操作性需要定义标准协议绑定来略述(outline)适合每个环境的规定(rule)。SOAP规范提供一个灵活的框架来定义任意的协议绑定,而且,因为HTTP协议已被广泛使用,现在已经明确定义了一个HTTP协议的绑定。

第三,SOAP允许任何编程模型并且并不依赖RPC。实际上,大多数开发者直接将SOAP等同于在分布式对象上使用RPC调用(因为最初SOAP是关于“访问对象”),基本的SOAP模型象MSMQ一样更近似于传统消息系统。SOAP定义了一个单独处理的单向消息模型。你可以将多条消息合并成一个整体信息进行交换。图1 说明了一条简单的发送者接收不到response的单向消息,不过,接收者可以把response发回给发送人(参阅图2)。SOAP允许任意数量的消息交换模式(message exchange patterns -MEPs), 每个消息交换模式的request/response仅仅只有一个。其他例子包括solicit/reponse( 和request/reponse相反),通知,和长时间运行的点对点会话(peer-to-peer conversations)。

图2. Request/response 消息交换模式

开发者经常将request/response与RPC相混淆,而实际上它们非常不同。RPC使用请求/反应,但是请求/反应不一定是RPC必需的。RPC是允许开发者与方法调用合作的一种编程模型。RPC需要一个方法签名到SOAP消息的转换。由于RPC的普及性,SOAP略述了一个以SOAP来使用RPC的协定(见下文的RPC 和编码这一部分)。

有了这三大特征,SOAP消息框架就能在异构的环境中方便的发送XML消息了,而互操作性在这些异构的环境中早就是一个挑战了。

SOAP 版本

从最初发布SOAP规范对今天的广泛实现的SOAP1.1,很多东西已经改变,从小的细节到主要的思想变化。SOAP1.1被提交到W3C,并在2000年5月返回作为备忘录(note)发布。 "W3C 备忘录(Note)"状态使得 SOAP 1.1 仅仅是一个好的想法,因为它还没有通过W3C的严格程序,在这个程序中它会最终达到实现的“建议书(Recommendation)”状态 。虽然如此,现在在如此广泛的大或小的应用提供商支持下,SOAP1.1仍然被认为为实际上的标准。

W3C使用SOAP1.1建议书作为原本(seed)来让一个新的XML 协议工作组负责生成下一个SOAP版本, 目前命名为SOAP1.2。在目前,SOAP1.2是"候选建议书",这表明它在实现阶段内而且离完成不远。 一旦SOAP1.2 成为"建议书" ,它可能会迅速得到应用提供商的支持。

在SOAP1.2 实现之后,应用提供商会为向后兼容而继续支持SOAP1.1。SOAP版本化(versioning)是基于XML 命名空间。SOAP 1.1对应于http://schemas.xmlsoap.org/soap/envelope 命名空间,而SOAP 1.2对应于http://www.w3.org/2002/12/soap-envelope 命名空间(尽管在它成为建议书时会有改变)。

参阅表格1来快速参考每个命名空间的名字和规范的位置。在整个余下的文章中,我们将覆盖SOAP中最重要的地方。在两个版本的广泛的变更列表中检查当前的SOAP 1.2规范。

表1.SOAP版本信息

SOAP 1.1

命名空间名字

http://schemas.xmlsoap.org/soap/envelope/

规范位置

http://www.w3.org/TR/SOAP/

SOAP 1.2

命名空间名字

http://www.w3.org/2002/12/soap-envelope

规范位置

http://www.w3.org/TR/soap12-part0/ (原始)

http://www.w3.org/TR/soap12-part1/

http://www.w3.org/TR/soap12-part2/

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有