XML Web services 连网格式
本主题专门介绍一项旧有技术。现在应通过使用以下链接来创建 XML Web 服务和 XML Web 服务客户端: Windows Communication Foundation.
DCOM 等二进制协议包括一个驻留在专有通信协议之上的方法请求层。这类协议不适合创建通用的 XML Web services。然而,这不会阻止您在 XML Web services 方案中使用这类协议,但使用这类协议的缺点是它们依赖于其基础系统的特定体系结构,因而限制了潜在客户端的范围。
或者,您可以构造使用一个或更多开放式协议(如 HTTP 和 SOAP 协议的组合)的 XML Web services。支持不同的协议所必需的基础结构各不相同。
XML Web services 不限于提供远程过程调用 (RPC) 访问。还可以生成 XML Web services,用来交换采购订单和发票等结构化信息,以及用于自动化和连接内部及外部业务流程。
HTTP-GET 和 HTTP-POST
HTTP-GET 和 HTTP-POST 是标准协议,它们使用 HTTP(超文本传输协议)谓词对参数进行编码并将参数作为名称/值对传递,还使用关联的请求语义。每个协议都包括一系列 HTTP 请求标头,HTTP 请求标头及其他一些信息定义客户端向服务器请求哪些内容,哪个服务器用一系列 HTTP 响应标头和所请求的数据进行响应(如果成功)。
HTTP-GET 使用 MIME 类型 application/x-www-form-urlencoded(将追加到处理请求的服务器的 URL 中)以 URL 编码文本的形式传递其参数。URL 编码是一种字符编码形式,可确保传递的参数中包含一致性文本,例如将空格编码为 %20。追加的参数也称为查询字符串。
与 HTTP-GET 类似,HTTP-POST 参数也是 URL 编码的。但是,名称/值对是在实际的 HTTP 请求消息内部传递的,而不是作为 URL 的一部分进行传递。
SOAP
SOAP 是一种简单的基于 XML 的轻量协议,用于在 Web 上交换结构化信息和类型信息。SOAP 的总体设计目标是使其尽量简单,并提供最低限度的功能。该协议定义一个不包含应用程序或传输语义的消息传递框架。因此,该协议是模块化的且高度可扩展。
通过在标准传输协议之上传输,SOAP 可以使用 Internet 的现有开放式体系结构,并且容易被能够支持最基本的 Internet 标准的任意系统所接受。可以将支持符合 SOAP 的 XML Web services 所必需的基础结构看作是一种非常简单且强大的基础结构,因为它向 Internet 的现有基础结构添加相对较少的内容,但仍然有助于对用 SOAP 生成的服务进行通用访问。
SOAP 协议规范包括四个主要部分。第一部分定义用于封装数据的必需的可扩展信封。SOAP 信封定义 SOAP 消息,是 SOAP 消息处理程序之间的基本交换单位。这是该规范中唯一的一个必需部分。
SOAP 协议规范的第二部分定义了可选的数据编码规则和一个统一模型,数据编码规则用来表示应用程序定义的数据和有向图,统一模型用来序列化非语法数据模型。
第三部分定义 RPC 样式(请求/响应)消息交换模式。每个 SOAP 消息都是单向传输。虽然 SOAP 的根位于 RPC 中,但它并不局限于成为一种请求/响应机制。XML Web services 通常组合 SOAP 消息以实现这类模式,但对于 SOAP 而言消息交换模式并不是必需的,并且这一部分规范也是可选的。
规范的第四部分定义 SOAP 与 HTTP 之间的绑定。但是,这部分也是可选的。可以将 SOAP 与任何可以传输 SOAP 信封的传输协议或机制结合使用,其中包括 SMTP、FTP,甚至还包括软盘。
有关 SOAP 规范,请参见 W3C 网站 (http://www.w3.org/TR/ soap)。