开始之前
在本教程中,我们将了解 Web 访问策略(Web Services Policy,WS-Policy)。此标准针对这样的开发人员:希望在环境中公开自己的服务,并使用定义允许这些 Web 服务如何与其他客户机和服务进行交互的策略。术语 WS-Policy 指定义治理(例如传输方法)和安全性(如加密级别)的框架。
要学习本教程的内容,您应该具有 SOAP 方面的基本知识,可以阅读本系列的第 1 部分对此进行了解(另外,还需要具备 XML 方面的基本知识)。SOAP 是独立于编程语言的。不过,本教程中的示例使用 Java™ 和 Apache Axis2 项目,但其中的概念适用于任何编程语言和环境。
本系列教程以假想的报社 Daily Moon 为例;为了提高在竞争激烈的环境中的生产力,其员工将使用各种 Web 服务来创建工作流系统,我们将在此过程中讲述各个 Web 服务基本概念。
第 1 部分比较简单,介绍了 Web 服务背后的基本概念,并演示如何使用 SOAP(以后要讨论的大部分内容的基础规范)来将 Classifieds Department 连接到内容管理系统。
第 2 部分进一步深入介绍了如何使用 Web 服务描述语言(Web Services Description Language,WSDL)定义 Web 服务产生的消息,从而使团队更方便地创建服务以及连接到服务的客户机。
在第 3 部分中,团队希望准备一系列服务,并希望能方便地查找这些服务。与此对应,统一描述、发现和集成(Universal Description, Discovery and Integration,UDDI)提供了可用服务的可搜索注册中心,以便使自己的服务为其他人所注意。
在第 4 部分中,Daily Moon 的发行人 Rudy 决定报社需要为访问其内部系统的 Web 服务制订更好的安全过程。
本文是第 5 部分,讨论 WS-Policy,我们将讨论团队为了访问这些刚提供了安全保护的服务需要进行哪些更改。
第 6 部分重点讨论互操作性,因为必须从单个系统访问来自几个不同实现的服务。第 6 部分还将讨论 WS-I 证书中涉及的要求和测试。
最后,第 7 部分将演示如何使用业务流程执行语言(Business Process Execution Language,WS-BPEL)来从各个服务创建复杂应用程序。
在本教程中,Daily Moon 报社团队使用 WS-Policy 规范来指定 Web 服务必须遵循的策略,以便使用公司的 Web 服务。
在本教程中,您将了解以下内容:
- 了解创建策略文档的语法,并了解如何创建自己的策略以及如何使用其他已经存在的断言。
- 了解可以如何使用基础 XML 构造的数学属性操作策略文档。
- 使用 Apache Neethi,该组件是 Axis2 提供的非完整 WS-Policy 实现,允许 Axis2 用户操作和组合策略文档。
- 了解如何将 WS-Policy 和 WSDL 一起使用,并了解如何编写要求端口符合所定义的策略的 WSDL。
开始前,您将需要一些工具。
本教程的大部分内容都是概念性的,但为了处理通过 Apache Neethi 来使用 WS-Policy 文档的代码,您将需要安装以下软件:
Java 2 Standard Edition 的 1.4.2 或更高版本——所有这些工具都是基于 Java 的,本教程中将要构建的服务和客户机也是如此。
Apache Neethi——Apache Neethi 是 Axis2 用于创建策略文档的运行时表示形式、以及对策略文档执行规范化、合并和求交操作的工具。