介绍
RAD 6.0 提供了大量的工具来支持发现、创建、测试、部署和发布 Web Service。它们允许基于最新的标准来开发 Web Service,并支持部署到多个运行时环境中。这些工具还提供许多向导来支持和促进不同的开发方法。本文档描述了
RAD 6.0 提供的,用以开发 Web Service 的各种方法,并论述了与 Web Service 部署和互操作性级别选项相关的开发注意事项。
开发方法
RAD 6.0 中的 Web Service 向导允许您使用自上而下的方法或自下而上的方法创建 Web Service。 自上而下法使您可以从一个 Web Service 描述语言(WSDL)文档开始,并生成可用于创建 Web
Service 的框架 Java Bean 或框架 Enterprise JavaBean(EJB)。自下而上法允许您根据现有的 Java Bean、EJB、文档访问定义扩展程序(DADX)文件、统一资源定位符(URL)或 Web
Service 部署描述符(ISD)文件创建 Web Service。图 1 描绘了 RAD 6.0 提供的 Web Service 创建方法。
图 1 - RAD 6.0 Web Service 的创建方法
在 Web Service 创建期间,该向导可以有选择地允许您:
-
在使用 Web Service 浏览器工具创建 Web Service 后立即测试该 Web Service。
-
生成您可以在客户端应用程序中用于访问 Web Service 的客户端代理。
-
使用通用测试客户机(UTC)工具或该工具生成的样本 JSP 应用程序测试客户端代理。
-
使用 Web Service 浏览器工具将该 Web Service 发布到 Universal Description,Discovery and Integration(UDDI)注册表。
在 RAD 6.0 中开发的 Web Service 必须在 Web 或 EJB 项目中创建,并包含符合以下标准的工作产品:
-
Web Service 定义语言(WSDL)版本 1.1
-
简单对象访问协议(SOAP)版本 1.1(包括 Apache SOAP 2.2 和 2.3 实施)
-
Universal Description,Discovery and Integration(UDDI)版本 2.0
-
Web Service 检查语言(WSIL)版本 1.0
-
基于 Java API for XML 的远程过程调用(JAX-RPC),也称为 JSR-101
-
JSR-109 和 JSR-921(实施 Enterprise Web Service)
-
Web Service 互操作性(WS-I)基本概要信息 1.0(可选符合标准)
-
WS-Security
关于这些主题的更多信息,请参阅“概念:Web Service for J2EE”。
自上而下开发法
自上而下开发法允许您采用 WSDL 文档中包含的某一 Web Service 的抽象定义,并为其生成具体的实施。(请注意:RAD 6.0 还提供创建 WSDL 文档的向导)。支持以下两种方法:
自下而上开发法
自下而上开发法的目标是将现有的应用程序组件或资源展示为 Web Service。下面讨论了各种方法。
-
从 URL 创建 Web Service
从 Web Service 的 URL,您可以创建它的 Web Service,该服务直接访问远程服务器上运行的 Servlet。该向导允许您根据端口、操作和参数描述该 Servlet 的接口,并生成描述所产生的 Web
Service 的 WSDL 文档。以下注意事项适用于此方法及其生成的工作产品:
-
只有您选择 IBM SOAP 作为您的 Web Service 运行时环境,才可以使用此方法(请参阅“部署依赖关系”)。
-
通常,端口对应于 URL 的域名/主机名部分,操作对应于 Servlet 环境根和 URI 部分,而参数对应于 Servlet 的输入参数。
-
生成的 Web Service 必须在 Web 项目中创建。
-
没有 Web Service 需要部署,因为它已经由该动态 URL 实施。
-
从部署描述符(ISD)文件创建 Web Service
部署 Web Service 时,其配置和运行时属性是在 ISD 部署描述符文件中定义的。此文件提供关于应由 SOAP 运行时环境提供给客户端的服务的信息,例如,URI、方法、实施类(JavaBean 和
EJB)、串行器和反串行器。您可以使用这些提供的信息从 ISD 文件创建 Web Service。 这允许您封装现有的 Web Service 实施,并将它们作为新的 Web Service
重新部署,而不必重新指定它们的配置和映射信息。以下注意事项适用于此方法及其生成的工作产品:
-
只有您选择 IBM SOAP 作为您的 Web Service 运行时环境,才可以使用此方法(请参阅“部署依赖关系”)。
-
生成的 Web Service 必须在 Web 项目中创建
开发指南
以下各部分讲述与在 RAD 6.0 中开发 Web Service 相关的重要注意事项。它们基于您的 Web Service 的部署和符合 WS-I 要求来描述所提供的开发选项。
部署依赖关系
可用于创建 Web Service 的方法(自上而下和自下而上)取决于您要部署的运行时环境。RAD 6.0 支持以下 Web Service 运行时环境:
-
IBM WebSphere V6
这是 RAD 6.0 中的缺省 Web Service 运行时环境和针对生产使用而推荐的运行时环境。它同时支持 JMS 和 HTTP 传输协议,从而允许 Web Service 客户机和服务器通过 HTTP 连接或 JMS
队列和主题相互通信。注意,如果要通过 JMS 传输来访问某一 Web Service,则必须将该 Web Service 作为 EJB 实施。
-
IBM SOAP
IBM SOAP 运行时环境支持 Apache SOAP V 2.2 和 2.3 协议(请参阅“资源”),并且是 WebSphere Studio V5.0 和更早版本中支持的唯一 Web Service
运行时环境。只在需要向后兼容时使用它。
-
Apache Axis 1.0
此运行时环境支持 Apache Axis V1.0 SOAP 实施(请参阅“资源”)。由于潜在的 Web Service 互操作性问题,故不推荐用于生产(请参阅该工具的“帮助内容”中的“使用 Apache Axis 1.0
运行时环境的问题”)。
建议您选择 IBM WebSphere V5 运行时环境,除非您的部署目标特别需要您使用 Apache SOAP 或 Apache Axis 实施(如果是这样,请注意该工具的“Web Service 的局限”帮助内容中描述的相关局限)。表
1 总结了 RAD 6.0 为每种运行时环境支持的 Web Service 创建方法。
方法
|
IBM WebSphere V6
|
IBM SOAP
|
Apache Axis 1.0
|
从 WSDL 文档创建框架 JavaBean
|
是
|
是
|
是
|
从 WSDL 文档创建框架 EJB
|
是
|
否
|
否
|
从 JavaBean 创建 Web Service
|
是
|
是
|
是
|
从 EJB 创建 Web Service
|
是
|
是
|
否
|
从 DADX 创建 Web Service
|
否
|
是
|
否
|
从 URL 创建 Web Service
|
否
|
是
|
否
|
从 Web Service 部署描述符(ISD)创建 Web Service
|
否
|
是
|
否
|
表 1 - 运行时环境所支持的 Web Service 创建方法
符合 WS-I 基本概要信息
Web Service 互操作性(WS-I)基本概要信息是 WS-I 组织发布的一组需求,以推动跨平台、操作系统和编程语言的 Web Service 互操作性。它定义了 Web Service 为符合 WS-I 而必须满足的 WSDL
和协议(SOAP/HTTP)通信量需求。RAD 6.0 包含可以用于验证 Web Service 是否符合 WS-I 基本概要信息 1.0 需求的验证工具。您可以在开发 Web Service 之前为工作空间或项目设置一个 WS-I
符合级别(必需、建议或忽略(缺省)),或在其开发后运行这些验证工具。
建议您开发符合 WS-I 基本概要信息的 Web Service。要确保这一点,则应遵循以下指南:
-
对于 WSDL 样式,使用 Document/literal 或 RPC/literal(RPC/encoded 不符合 WS-I)
-
使用 SOAP over HTTP 作为消息和传输协议(SOAP over JMS 不符合 WS-I)
-
不要对该 Web Service 使用任何安全性选项(XML 数字签名和 XML 加密不符合 WS-I)
客户端代理注意事项
-
创建 Web Service 时,您可以选择生成的客户端代理有两种:
Java Bean 客户端代理允许您通过远程过程调用来调用 Web Service 方法。如果为客户端运行时环境选择了 IBM SOAP 或 Apache Axis 1.0,则只能在客户端 Web 项目中创建该代理。 否则,对于
IBM WebSphere V6 客户端运行时环境,可在 Web、Java、EJB 或应用程序客户机项目中创建该代理。
此选项允许您为您要调用的 Web Service 的每个方法都创建 DB2 用户定义的功能(UDF)。它要求在数据库中安装有 DB2 Web Service 消费者 UDF 包和 DB2 XML Extender。该 UDF
创建并添加到数据库定义中,并且将所有相关客户端工作产品都存储在某个 Web 项目中。
-
为 Web Service 和 Web Service 客户端选择一个不同的 EAR,以减少遇到运行时错误的可能性。请记住,客户端应为不同于 Web Service 的应用程序,Web Service 并不用于应用程序之间的通信。
资源
关于以下主题的更多信息,请参阅相应的链接。
|