主题

简介 To top of page

RAD 6.0 提供了大量的工具来支持发现、创建、测试、部署和发布 Web 服务。它们允许基于最新的标准来开发 Web 服务,并支持部署到多个运行时环境中。这些工具还提供许多向导来支持和促进不同的开发方法。本文档描述了 RAD 6.0 提供的,用以开发 Web 服务的各种方法,并论述了与 Web Service 部署和互操作性级别选项相关的开发注意事项。

开发方法 To top of page

RAD 6.0 中的 Web Service 向导允许您使用自上而下的方法或自下而上的方法创建 Web 服务。自上而下法使您可以从一个 Web 服务描述语言(WSDL)文档开始,并生成可用于创建 Web 服务的框架 Java Bean 或框架 Enterprise JavaBean(EJB)。自下而上法允许您根据现有的 Java Bean、EJB、文档访问定义扩展程序(DADX)文件、统一资源定位符(URL)或 Web 服务部署描述符(ISD)文件创建 Web 服务。图 1 描绘了 RAD 6.0 提供的 Web 服务创建方法。

 

图 1 - RAD 6.0 Web 服务创建方法

在 Web 服务创建期间,该向导可以有选择地允许您:

  • 在使用 Web 服务浏览器工具创建 Web 服务后立即测试该 Web 服务。
  • 生成您可以在客户端应用程序中用于访问 Web 服务的客户端代理。
  • 使用通用测试客户机(UTC)工具或该工具生成的样本 JSP 应用程序测试客户端代理。
  • 使用 Web 服务浏览器工具将该 Web 服务发布到 Universal Description,Discovery and Integration(UDDI)注册表。

在 RAD 6.0 中开发的 Web 服务必须在 Web 或 EJB 项目中创建,并包含符合以下标准的工件:

  • Web 服务定义语言(WSDL)版本 1.1
  • 简单对象访问协议(SOAP)版本 1.1(包括 Apache SOAP 2.2 和 2.3 实施)
  • Universal Description,Discovery and Integration(UDDI)版本 2.0
  • Web 服务检查语言(WSIL)版本 1.0
  • 基于 Java API for XML 的远程过程调用(JAX-RPC),也称为 JSR-101
  • JSR-109 和 JSR-921(实施 Enterprise Web 服务)
  • Web 服务互操作性(WS-I)基本概要信息 1.0(可选符合标准)
  • WS-Security

关于这些主题的更多信息,请参阅“概念:Web Services for J2EE”。

自上而下开发法 To top of page

自上而下开发法允许您采用 WSDL 文档中包含的某一 Web 服务的抽象定义,并为其生成具体的实施。(请注意:RAD 6.0 还提供创建 WSDL 文档的向导)。以下两种方法是支持的:

  • 从 WSDL 文档创建一个框架 Java Bean

    您可以根据 WSDL 文档创建一个框架 Java Bean,并将其展示为一种 Web 服务。生成的 Java Bean 方法对应于 WSDL 文档中描述的操作,并包含您可以替换的普通实施。以下注意事项适用于此方法及其生成的工件:

    • 您可以输入一个 WSDL 文档的 URI,或者输入指向该 WSDL 文件的 WSIL 或 HTML 文档的 URI,作为 Web 服务的来源。
    • 该 WSDL 文件必须包含一个服务元素。您也可以(可选地)为产生的 Web 服务生成标准化 WSDL 引用(WSIL)文档。
    • 生成的 Web 服务必须在 Web 项目中创建。

 

  • 从 WSDL 文档创建框架 EJB

    与上面一种方法类似,此方法允许您根据 WSDL 文档创建框架无状态会话 EJB,并将其展示为一种 Web 服务。EJB 中的方法对应于 WSDL 文档中描述的操作,并包含您可以替换的普通实施。以下注意事项适用于此方法及其生成的工件:

    • 仅在您选择 IBM WebSphere V6 作为 Web 服务运行时环境时,才能使用此方法(请参阅“部署依赖关系”)
    • 您可以输入一个 WSDL 文档的 URI,或者输入指向该 WSDL 文件的 WSIL 或 HTML 文档的 URI,作为 Web 服务的来源。
    • 该 WSDL 文件必须包含一个服务元素。您也可以(可选地)为产生的 Web 服务生成标准化 WSDL 引用(WSIL)文档。
    • 生成的 Web 服务必须在 EJB 项目中创建。此外,创建一个 Router 项目以使该 Web 服务可通过 HTTP 传输接收请求(注意:此方法不支持 JMS 传输)。Router 项目可以是 Web 项目或 EJB 项目,且不能是包含该 Web 服务的同一项目,但必须处在包含 EAR 文件的同一项目中。

自下而上开发法 To top of page

自下而上开发法的目标是将现有的应用程序组件或资源展示为 Web 服务。下面讨论了各种方法。

  • 从 Java Bean 创建 Web 服务

    此方法允许您选择现有的 Java Bean,并将其方法展示为一种 Web 服务。生成的工件包括:

    • WSDL 文件:此文件描述了该 Web 服务,且文件扩展名为 .wsdl。您可以在三种 WSDL 风格之间选择(Document/Literal、RPC/Literal 和 RPC/Encoded)。关于每种选项的互操作性影响,请参阅“符合 WS-I 基本概要信息”。
    • 服务端点接口(SEI):此 Java 接口定义 Web 服务的方法。其文件名后缀为 _SEI。
    • Web 服务部署描述文件:webservices.xml 文件指定了该 Web 服务的实施和部署细节。
    • JAX-RPC 映射文件:这些文件定义该 Web 服务的 Java 元素如何对 WSDL 相互映射。
  •  

  • 从 EJB 创建 Web 服务

    您可以将无状态会话 Bean 的方法展示为一种 Web 服务。生成的工件类似于对 Java Bean 生成的工件,并包括一个 WSDL 文件、SEI、Web 服务部署描述符和 JAX-RPC 映射文件。以下注意事项适用于此方法及其生成的工件:

    • 生成的 Web 服务必须在 EJB 项目中创建。
    • 必须创建 Router 项目才能使该 Web 服务可从客户端接收请求。如果您在使用 SOAP over HTTP 作为您的传输方法,则创建 Router 项目作为 Web 项目。否则,如果客户端正在使用 SOAP over JMS,则将该项目创建为一个 EJB 项目(在这种情况下 JMS Router 作为 Message-Driven Bean 来实施)。Router 和 Web Service 项目不能相同,但必须包含在同一 EAR 文件中。
    • 如果您正在使用 SOAP over JMS 传输,则必须在您的服务器中配置 JMS 提供程序。您还将无法使用 Web 服务浏览器测试您的 Web 服务。

 

  • 从 DADX 文件创建 Web 服务

    此方法使您可以将通过 DB2 XML Extender 或常规 SQL 语句访问的 DB2 数据封装在 Web 服务中。通过 DB2 XML Extender 访问的数据包括使用文档访问定义(DAD)文档映射到 DB2 数据库的 XML 文档。该方法的起点是一个 DADX 文件,该文件指定如何使用由规则 SQL 语句定义的或在 DAD 文件中定义的一组操作来创建 Web 服务。生成的工件包括标准 WSDL 文件、SEI、Web 服务部署描述符和 JAX-RPC 映射文件。以下注意事项适用于此方法及其生成的工件:

    • 只有您选择 IBM SOAP 作为您的 Web 服务运行时环境,才可以使用此方法(请参阅“部署依赖关系”)。
    • 您可以(可选地)从一个或多个 SQL 语句、存储过程和 DAD 文件的组合生成 DAAD 文件。
    • DADX 文件应包含在一个 DADX 组中,该组定义了 JDBC 连接和该组内 DADX 文件之间共享的其它信息。
    • 生成的 Web 服务必须在 Web 项目中创建。

 

  • 从 URL 创建 Web 服务

    从其 URL,您可以创建一个 Web 服务,该服务直接访问远程服务器上运行的 Servlet。该向导允许您根据端口、操作和参数描述该 Servlet 的接口,并生成描述所产生的 Web 服务的 WSDL 文档。以下注意事项适用于此方法及其生成的工件:

    • 只有您选择 IBM SOAP 作为您的 Web 服务运行时环境,才可以使用此方法(请参阅“部署依赖关系”)。
    • 通常,端口对应于 URL 的域名/主机名部分,操作对应于 Servlet 环境根和 URI 部分,而参数对应于 Servlet 的输入参数。
    • 生成的 Web 服务必须在 Web 项目中创建。
    • 没有 Web 服务需要部署,因为它已经由该动态 URL 实施。
  •  

  • 从部署描述符(ISD)文件创建 Web 服务

    部署 Web 服务时,其配置和运行时属性是在 ISD 部署描述符文件中定义的。此文件提供关于应由 SOAP 运行时环境提供给客户端的服务的信息,例如,URI、方法、实施类(JavaBean 和 EJB)、串行器和反串行器。您可以使用这些提供的信息从 ISD 文件创建 Web 服务。这允许您封装现有的 Web 服务实施,并将它们作为新的 Web 服务重新部署,而不必重新指定它们的配置和映射信息。以下注意事项适用于此方法及其生成的工件:

    • 只有您选择 IBM SOAP 作为您的 Web 服务运行时环境,才可以使用此方法(请参阅“部署依赖关系”)。
    • 生成的 Web 服务必须在 Web 项目中创建

开发指南 To top of page

以下各部分讲述与在 RAD 6.0 中开发 Web 服务相关的重要注意事项。它们基于您的 Web 服务的部署和符合 WS-I 要求来描述所提供的开发选项。

部署依赖关系 To top of page

可用于创建 Web 服务的方法(自上而下和自下而上)取决于您要部署的运行时环境。RAD 6.0 支持以下 Web 服务运行时环境:

  • IBM WebSphere V6

    这是 RAD 6.0 中的缺省 Web 服务运行时环境和针对生产使用而推荐的运行时环境。它同时支持 JMS 和 HTTP 传输协议,从而允许 Web 服务客户机和服务器通过 HTTP 连接或 JMS 队列和主题相互通信。注意,如果将可通过 JMS 传输来访问某一 Web 服务,则必须将该 Web 服务作为 EJB 实施。

  • IBM SOAP

    IBM SOAP 运行时环境支持 Apache SOAP V 2.2 和 2.3 协议(请参阅“资源”),并且是 WebSphere Studio V5.0 和更早版本中支持的唯一 Web 服务运行时环境。仅应为了后向兼容而使用它。

  • Apache Axis 1.0

    此运行时环境支持 Apache Axis V1.0 SOAP 实施(请参阅“资源”)。由于潜在的 Web 服务互操作性问题,故不推荐用于生产(请参阅该工具的“帮助内容”中的“使用 Apache Axis 1.0 运行时环境的问题”)。

建议您选择 IBM WebSphere V5 运行时环境,除非您的部署目标特别需要您使用 Apache SOAP 或 Apache Axis 实施(如果是这样,请注意该工具的“Web 服务的局限”帮助内容中描述的相关局限)。表 1 总结了 RAD 6.0 为每种运行时环境支持的 Web 服务创建方法。

方法 IBM WebSphere V6 IBM SOAP Apache Axis 1.0
从 WSDL 文档创建框架 JavaBean
从 WSDL 文档创建框架 EJB
从 JavaBean 创建 Web 服务
从 EJB 创建 Web 服务
从 DADX 创建 Web 服务
从 URL 创建 Web 服务
从 Web 服务部署描述符(ISD)创建 Web 服务

表 1 - 运行时环境所支持的 Web 服务创建方法

符合 WS-I 基本概要信息 To top of page

Web 服务互操作性(WS-I)基本概要信息是 WS-I 组织发布的一组需求,以推动跨平台、操作系统和编程语言的 Web 服务互操作性。它定义了 Web 服务为符合 WS-I 而必须满足的 WSDL 和协议(SOAP/HTTP)通信量需求。RAD 6.0 包含可以用于验证 Web 服务是否符合 WS-I 基本概要信息 1.0 需求的验证工具。您可以在开发 Web 服务之前为工作区或项目设置一个 WS-I 符合级别(必需、建议或忽略(缺省)),或在其开发后运行这些验证工具。

建议您开发符合 WS-I 基本概要信息的 Web 服务。要确保这一点,则应遵循以下指南:

  • 对于 WSDL 样式,使用 Document/literal 或 RPC/literal(RPC/encoded 不符合 WS-I)
  • 使用 SOAP over HTTP 作为消息和传输协议(SOAP over JMS 不符合 WS-I)
  • 不要对该 Web 服务使用任何安全性选项(XML 数字签名和 XML 加密不符合 WS-I)

客户端代理注意事项 To top of page

  • 创建 Web 服务时,您可以选择生成的客户端代理有两种:
    • Java Bean 代理

    Java Bean 客户端代理允许您通过远程过程调用来调用 Web 服务方法。如果为客户端运行时环境选择了 IBM SOAP 或 Apache Axis 1.0,则只能在客户端 Web 项目中创建该代理。否则,对于 IBM WebSphere V6 客户端运行时环境,可在 Web、Java、EJB 或应用程序客户机项目中创建该代理。

    • Web 服务用户定义的功能

此选项允许您为您要调用的 Web 服务的每个方法都创建 DB2 用户定义的功能(UDF)。它要求在数据库中安装有 DB2 Web 服务消费者 UDF 包和 DB2 XML Extender。该 UDF 创建并添加到数据库定义中时,将所有相关客户端工件都存储在某个 Web 项目中。

  • 为 Web 服务和 Web 服务客户端选择一个不同的 EAR,以减少遇到运行时错误的可能性。请记住,客户端应为不同于 Web 服务的应用程序,Web 服务并不用于应用程序之间的通信。

资源 To top of page

关于以下主题的更多信息,请参阅相应的链接。

 

Rational Unified Process   2003.06.15