指南:开发 Web 服务
主题
简介
RAD 6.0 提供了大量的工具来支持发现、创建、测试、部署和发布 Web 服务。它们允许基于最新的标准来开发 Web 服务,并支持部署到多个运行时环境中。这些工具还提供许多向导来支持和促进不同的开发方法。本文档描述了 RAD 6.0 提供的,用以开发 Web 服务的各种方法,并论述了与 Web Service 部署和互操作性级别选项相关的开发注意事项。
开发方法
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”。
自上而下开发法
自上而下开发法允许您采用 WSDL 文档中包含的某一 Web 服务的抽象定义,并为其生成具体的实施。(请注意:RAD 6.0 还提供创建 WSDL 文档的向导)。以下两种方法是支持的:
自下而上开发法
自下而上开发法的目标是将现有的应用程序组件或资源展示为 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 项目中创建
开发指南
以下各部分讲述与在 RAD 6.0 中开发 Web 服务相关的重要注意事项。它们基于您的 Web 服务的部署和符合 WS-I 要求来描述所提供的开发选项。
部署依赖关系
可用于创建 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 基本概要信息
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)
客户端代理注意事项
- 创建 Web 服务时,您可以选择生成的客户端代理有两种:
Java Bean 客户端代理允许您通过远程过程调用来调用 Web 服务方法。如果为客户端运行时环境选择了 IBM SOAP 或 Apache Axis 1.0,则只能在客户端 Web 项目中创建该代理。否则,对于 IBM WebSphere V6 客户端运行时环境,可在 Web、Java、EJB 或应用程序客户机项目中创建该代理。
此选项允许您为您要调用的 Web 服务的每个方法都创建 DB2 用户定义的功能(UDF)。它要求在数据库中安装有 DB2 Web 服务消费者 UDF 包和 DB2 XML Extender。该 UDF 创建并添加到数据库定义中时,将所有相关客户端工件都存储在某个 Web 项目中。
- 为 Web 服务和 Web 服务客户端选择一个不同的 EAR,以减少遇到运行时错误的可能性。请记住,客户端应为不同于 Web 服务的应用程序,Web 服务并不用于应用程序之间的通信。
资源
关于以下主题的更多信息,请参阅相应的链接。
|