开始之前
本教程面向使用 Web 服务构建应用程序的开发人员。随着 Web 服务越来越流行,开发人员常常需要创建用于协调多个 Web 服务的程序,以处理业务流程。本文重点关注于 WS-BPEL,它是一个很重要的标准,为这一问题提供了可靠的解决方案,并且成为开发人员常见的选择。
为了完成本教程的学习,您应该对简单对象访问协议 (SOAP) 以及相关的技术(如 WSDL)有基本的了解。要更好地了解这些内容,可以阅读本系列文章的前五部分教程,特别是第 1 部分和第 2 部分。
本系列教程以假想的报社 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 部分介绍了团队为了访问这些刚提供了安全保护的服务需要进行哪些更改。
第 6 部分提供了关于构建和验证可互操作的 Web 服务的内容。报社的员工希望能够获得尽可能多的读者,所以他们决定分析他们的 Web 服务,以确保任何想要使用这些 Web 服务的人都能轻松地使用它们。
第 7 部分将介绍 Web 服务业务流程执行语言 (WS-BPEL),并描述了如何通过协调单个服务,使用该语言创建复杂的应用程序。
在 Web 服务教程系列文章的第 7 部分中,我们发现 Daily Moon 的员工努力地构建这样的应用程序,以使得从客户那里接收分类广告的流程实现自动化。Daily Moon 与某家银行有业务关系,并且员工很希望拥有接收分类广告并且自动地将付款存放入到银行的应用程序。幸运的是,这家与员工有工作联系的银行拥有能用于实现这种存款业务的 Web 服务。员工对这一问题进行研究,并且决定尝试使用 WS-BPEL 以将他们的内部分类广告 Web 服务与银行的 Web 服务紧密联系在一起。有了这两种服务,员工就可以为想象中的业务流程建模,并且构建处理它的应用程序。
本教程向您介绍了关于构建用于协调现有的 Web 服务的复杂应用程序的内容。按这种方式组合 Web 服务,您可以快速地使用大量实用工具程序来构建应用程序。Web 服务的特点是易于发现并易于使用,要构建功能强大的新应用程序,很自然地就会与 Web 服务联系起来。
本教程中所使用的代码并不专门针对任何特定的编程语言或者环境。本教程提供的示例与本教程系列所使用的示例相同。为了完成这些示例的学习,您需要安装下面的软件:
Java 2 Standard Edition 1.4.2 或者更高版本,与您在本教程中构建的服务和客户机一样,所有这些工具都是基于 Java 的。
Apache Axis2 version 1.0,Axis2 是一种功能齐全的 SOAP 工具包,它提供了多种 Web 服务 API(包括 SOAP 和 WSDL)的实现。当涉及到 Web 服务的开发时,像 Axis2 这样的工具包是非常有用的。对于其他编程语言和环境,也存在一些功能范围类似的工具包。Apache 的 Axis 项目有很长的历史,它起源于一项名为 SOAP4J 的 IBM 项目。
Apache Geronimo 或者另一种应用服务器,本系列教程中使用了 Apache Geronimo J2EE 服务器(即 IBM WebSphere® Community Edition 服务器的基础)。您可以使用其他应用服务器来代替,但 Geronimo 是一种简单的、轻量级的、并且可以免费获得的应用服务器,所以对于迅速构建和运行,它是一个很好的选择。
BPWS4J version 2.1,这是 IBM 提供的 BPEL 运行时,它使得您能够运行使用 WS-BPEL 所编写的流程。BPWS4J 的试用期为 90 天。