WebService开发.doc
文本预览下载声明
WebService开发
WebService的开发方法和传统的OOAD有很大的不同,这主要是因为WebService考虑问题的粒度是服务级,而面向对象方法通常是对象级的。本章介绍了主流的WebService开发和运行支持环境,并且介绍了WebService的几种开发方法。最后介绍了AXIS环境下WebService的开发实践。
J2EE WebService构架J2EE1.4起提供了WebService总框架,在这个总的框架下,包含了以下的技术和框架:
WebService for J2EE
JAX-RPC
SAAJ
JAXR
EJB2.1
Connector Architecture
下面分别介绍这些技术或框架。
WebService for J2EE
WebService for J2EE是J2EE平台下WebService总的构架规范,它义了在J2EEJ2EE应用程序服务器中如何支持WebService。具体地说,WebService for J2EE定义了客户端模型、服务端模型、部署模型WSDL绑定和安全相关规范,从而使WebService客户机和实现可以从一个J2EE供应商实现移植到另一个J2EE供应商实现。WebService for J2EE基于JAX-RPC(JSR101)进行构建,以提供客户机编程模型。该客户机模型允许WebService客户机(Java的或非Java的,在J2EE之中或在J2EE之外)访问部署在支持JSR109的J2EE应用程序服务器中的WebService。它还允许J2EE组件通过使用J2EE编程模型调用WebService(Java的或非Java的,在J2EE之中或在J2EE之外)。在此框架下,服务端可以有两种选择:
基于Servlet的服务端点:通过JAX-RPC实现,由Servlet容器提供运行环境;
基于无状态会话Bean的服务端点:必须遵循EJB2.1规范,由EJB容器提供运行环境。
JAX-RPC
JAX-RPC是J2EE1.4平台中WebService的核心技术,JAX-RPC是一种远程调用类似于RMI;规定了JAX-RPC的运行环境;
定义了XML数据类型到Java类型的映射方法;
定义了WSDL到Java之间的映射;
定义了JAX-RPC客户端编程模型(Stub接口、动态代理、动态调用);
定义了基于Servlet的服务端点模型;
定义了SOAP消息Handler框架;
提供了复杂Java数据库类型映射的扩展框架。
JAX-RPC的客户端可以是基于J2SE、J2EE或者J2ME的运行环境,服务端是Servlet或者EJB容器。WSDL不仅描述了WebService,同时在JAX-RPC客户端调用服务端的端点时起了重要的作用。JAX-RPC的互操作性如图所示。服务端和客户端通过SOAP来进行通信,SOAP以HTTP作为底层的传输协议。
SAAJ
SAAJ从JAXM1.0划分出来,原JAXM1.0被划分为JAXM1.1和SAAJ1.1。SAAJ包含了创建和读取遵循SOAP1.1规范的以及带附件的SOAP消息的API,也包含了发送和接收请求/响应模型的SOAP消息。
SAAJ不仅可以被JAX-RPC使用,也可以被JAXM等WebService技术使用。它是一组通用的、处理SOAP消息的API。
JAXR
JAXR是和服务注册、发布相关的标准API。由于当前WebService注册提供者比较多,要想在J2EE平台中使用这些注册服务,为每个注册服务都开发一个单独的API,显然是不现实的,JAXR为注册服务进行了多层抽象,使得在J2EE平台中操作当今的或者将来的WebService注册中心成为可能。JAXR支持三种注册服务类型:JAXR Pluggable Provider、Registry-specific JAXR Provider、JAXR Bridge Provider(支持UDDI Registry和ebXML Registry/Repository等)。
JAXR规范为JAXR的实现定义了有两种级别的支持,分别是:
Level0:用于支持UDDI注册;
Level1:用于支持ebXML注册。
JAXR的互操作性通过JAXR API,注册浏览器、J2EE组件和桌面应用可以访问UDDI、ebXML等注册服务中心。需要注意的是,JAXR并不是一个新的注册规范,它只是访问原有的注册中心的一个编程接口。
EJB2.1
EJB2.1规范对WebService提供了支持,定义了无状态会话Bean可以作为WebService端点模型。这样,在J2EE平台中,有两种WebService端点:基于Servlet的和基于无状态会话Bean的。用EJB作为WebServic
显示全部