简单对象访问协议

简单对象访问协议(Simple Object Access Protocol, SOAP)

使用 XML 进行系统通信

简单对象访问协议(Simple Object Access Protocol, SOAP)允许您使用 XML 在通过低层 Internet 协议连接的系统之间进行通信。它为通过网络消息传输的 XML 信息提供了标准的信封,并为这类消息体提供了可选的约定。了解 SOAP 的历史,以及它与 Web 服务、面向服务架构(SOA)和具象状态传输(Representational State Transfer,REST)之间的关系。

投稿者: W3C

2007 年 8 月 28 日

简单对象访问协议(Simple Object Access Protocol, SOAP)允许您使用 XML 在通过低层 Internet 协议连接的系统之间进行通信。它为通过网络消息传输的 XML 信息提供了标准的信封,并为这类消息体提供了可选的约定。了解 SOAP 的历史,以及它与 Web 服务、面向服务架构(SOA)和具象状态传输(Representational State Transfer,REST)之间的关系。

SOAP [W3C 推荐标准](尽管使用大写,但已经成为正式的名词而不再是缩写词了)协议允许您使用 XML 在通过低层 Internet 协议连接的系统之间进行通信。很多人认为 SOAP 是 XML Web 服务的基础,这是一组用来管理和组织使用 XML 数据格式和 Internet 通信协议连接的系统之间交互的技术。SOAP 最初是在数量不多、临时拼凑的个人之间开发的,这些人来自各种不同的公司,其中包括 IBM。之所以能够得到迅速普及,是因为它提供了与早期对 XML 消息的研究成果相似的功能,并且有更牢固的架构和更多的商业支持。SOAP 开发被提交到 World Wide Web Consortium (W3C),后者开发了 SOAP 1.2,进行了大量架构改善,同时也做了很多有争议的折衷。SOAP 协议定义了 XML 信封格式,其中可以包含伪 XML 载荷(SOAP 实际载荷被限制使用 XML 的全部功能,这一点存在很大争议)。

XML Web 服务与一个更泛化的概念面向服务架构(SOA)紧密相关,但是所有这些概念都没有强制使用 SOAP(尽管常常被误解)。很多人提倡在 HTTP 之上直接交换原始 XML 文档,这种方法在 Representational State Transfer (REST) 的名义下得到了一些人的提倡。REST 是其架构师之一 Roy Fielding 为一种 Web 架构风格所起的名字。REST 风格的 Web 服务鼓吹者抱怨 SOAP 过于复杂,不利于 XML 有效载荷,并且没有充分利用 Web 的基本功能。通过将关注点从 SOAP 的远程过程调用(remote procedure call,RPC)源头转移到称为实文档(document-literal)样式的 SOAP,SOAP 拥护者已经着手解决这些问题。在 RPC 样式中,传输数据被编组为使用特殊 XML 有效载荷格式(称为 SOAP 编码)的离散数据类型。在实文档样式中,XML 有效载荷由更自然的 XML 格式组成,通常更具描述性,并且更易于人阅读。

SOAP 体系

建立在 SOAP 基础之上的大量标准并不属于这个规范的范围。以下资源提供了有关这些标准的信息:

仍然被广泛使用的 SOAP 先驱是 XML Remote Procedure Calls (XML-RPC) [社区规范]。XML-RPC 定义了使用 XML 编码并通过 HTTP 通信的过程调用。之所以流行至今是因为它的简单性(其完整规范打印出来也不过十页纸),并且多数语言和应用程序框架都具有标准的或现成的 XML-RPC 实现。它确实有些明显的不足,包括原始的数据类型化和缺乏字符编码支持(这对 XML 使用来说是个令人吃惊的缺陷)。

参考资料

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值