本文概述了 XML Web Service 对于开发人员的价值,同时还介绍了 SOAP、WSDL 和 UDDI......
作者:佚名 来源:Microsoft 2007年11月17日
关键字: 软件
安全性如何?
通常,刚接触 SOAP 的用户提出的第一个问题就是 SOAP 如何解决安全性问题。在其早期开发阶段,SOAP 被看作是基于 HTTP 的协议,所以认为 HTTP 的安全性对于 SOAP 已经足够了。毕竟目前有数以千计的 Web 应用程序都在使用 HTTP 安全性,所以这对于 SOAP 确实已经足够。因此,当前的 SOAP 标准假定安全性属于传输问题,而并不作为安全性问题处理。
当 SOAP 扩展至更为通用的协议,并运行于众多传输之上时,安全性问题就变得突出了。例如,HTTP 提供若干种方法对进行 SOAP 调用的用户进行身份验证,但是当消息从 HTTP 路由到 SMTP 传输时,怎样传播该身份标识呢?SOAP 是作为构造块协议进行设计的,所以幸运的是,已经有了相应的规范以基于 SOAP 为 Web 服务提供额外的安全保护功能。WS-Security 规范(英文)定义了一套完整的加密系统,而 WS-License 规范(英文)定义了相应的技术,以保证调用者的身份标识,并确保只有授权用户才可以使用 Web 服务。
WSDL
WSDL (Web Services Description Language) 表示 Web 服务说明语言。在本文中,我们可以认为 WSDL 文件是一个 XML 文档,用于说明一组 SOAP 消息以及如何交换这些消息。换句话说,WSDL 对于 SOAP 的作用就象 IDL 对于 CORBA 或 COM 的作用。由于 WSDL 是 XML 文档,因此很容易进行阅读和编辑;但大多数情况下,它由软件生成和使用。
要查看 WSDL 的值,可以假设您要调用由您的一位业务伙伴提供的 SOAP 方法。您可以要求对方提供一些 SOAP 消息示例,然后编写您的应用程序以生成并使用与示例类似的消息,但这样很容易出错。例如,您可能看到一个 2837 的客户 ID,并假设它为整数,而实际上它是一个字符串。WSDL 通过明确的表示法指定请求消息必须包含的内容以及响应消息的样式。
WSDL 文件用于说明消息格式的表示法以 XML 架构标准为基础,这意味着它与编程语言无关,而且以标准为基础,因此适用于说明可从不同平台、以不同编程语言访问的 XML Web Service 接口。除说明消息内容外,WSDL 还定义了服务的位置,以及使用什么通信协议与服务进行通信。也就是说,WSDL 文件定义了编写使用 XML Web Service 的程序所需的全部内容。有几种工具可以读取 WSDL 文件,并生成与 XML Web Service 通信所需的代码。其中一些最强大的工具可在 Microsoft Visual Studio? .NET 中找到。
当前,许多 SOAP 工具包都包括从现有程序接口生成 WSDL 文件的工具,但却几乎没有直接用于编写 WSDL 的工具,而且 WSDL 的工具支持也很不完整。但不久就会出现编写 WSDL 文件的工具,接着还会有生成代理和存根的工具(与 COM IDL 工具很相似),这些工具将成为多数 SOAP 实现方案的一部分。到那时,WSDL 将成为创建 XML Web Service 的 SOAP 接口的首选方法。
这里有一个非常好的 WSDL 说明(英文),您还可以在 http://www.w3.org/TR/wsdl(英文)找到 WSDL 规范。