通常,刚接触 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 规范。 UDDI 通用发现、说明和集成 (UDDI) 是 Web 服务的黄页。与传统黄页一样,您可以搜索提供所需服务的公司,阅读以了解所提供的服务,然后与某人联系以获得更多信息。当然,您也可以提供 Web 服务而不在 UDDI 中注册,就象在地下室开展业务,依靠的是口头吆喝;但是如果您希望拓展市场,则需要 UDDI 以便能被客户发现。 UDDI 目录条目是介绍所提供的业务和服务的 XML 文件。UDDI 目录条目包括三个部分。“白页”介绍提供服务的公司:名称、地址、联系方式等等;“黄页”包括基于标准分类法(例如 North American Industry Classification System 和 Standard Industrial Classification)的行业类别;“绿页”详细介绍了访问服务的接口,以便用户能够编写应用程序以使用 Web 服务。服务的定义是通过一个称为类型模型(或 tModel)的 UDDI 文档来完成的。多数情况下,tModel 包含一个 WSDL 文件,用于说明访问 XML Web Service 的 SOAP 接口,但是 tModel 非常灵活,可以说明几乎所有类型的服务。 UDDI 目录还包含若干种方法,可用于搜索构建您的应用程序所需的服务。例如,您可以搜索特定地理位置的服务提供商或者搜索特定的业务类型。之后,UDDI 目录将提供信息、联系方式、链接和技术数据,以便您确定能满足需要的服务。 UDDI 允许您查找提供所需的 Web 服务的公司。如果您已经知道要与谁进行业务合作,但尚不了解它还能提供哪些服务,这时该如何处理呢?WS-Inspection 规范(英文)允许您浏览特定服务器上提供的 XML Web Service 的集合,从中查找所需的服务。 有关 UDDI 的详细信息,请访问 http://www.uddi.org/about.html(英文)。 其他内容 |