webService学习2----webService概述

 

一.Webservice概述java

       A.Webservice是什么?web

     Web Services 是一种构建应用程序的普通模型,并能在全部支持Internet通信的操做系统上实施运行。Web Services 令基于组件的开发和 Web 的结合达到最佳,基于组件的对象模型,如:Distributed Component Object Model(DCOM)、Remote Method Invocation(RMI),Internet Inter-Orb Protocol(IIOP)都已经发布了很长时间了,可是这些模型都依赖于特殊对象模型协议,而 Web Services 利用 SOAP 和 XML。对这些模型在通信方面做了进一步的扩展以消除特殊对象模型的障碍。Web Services 主要利用 HTTP 和 SOAP 协议使商业数据在 Web 上传输,SOAP经过 HTTP 调用商业对象执行远程功能调用,Web 用户可以使用 SOAP 和 HTTP经过 Web 调用的方法来调用远程对象。apache

      B.Webservice实现框架及工做原理。编程

      Webservice是SOA的一个标准实现,目前比较流行的Webservice实现框架有Xfire,Axis等,webservice用WSDL来描述接口,用SOAP来规范基于HTTP协议传输的数据格式,由于SOAP是基于XML的,XML有具备跨平台跨语言的特性,再加上HTTP协议能穿越防火墙,因此Webservice的具备跨平台跨语言的特性。服务器

      C.JAVA中的Web服务规范:框架

      JAVA 中共有三种WebService 规范,分别是JAXM&SAAJ、JAX-WS(JAX-RPC)、JAX-RS。编程语言

下面来分别简要的介绍一下这三个规范。学习

(1.)JAX-WS:编码

JAX-WS(Java API For XML-WebService),JDK1.6 自带的版本为JAX-WS2.1,其底层支持为JAXB。早期的基于SOAP 的JAVA 的Web 服务规范JAX-RPC(Java API ForXML-Remote Procedure Call)目前已经被JAX-WS 规范取代,JAX-WS 是JAX-RPC 的演进版本,但JAX-WS 并不彻底向后兼容JAX-RPC,两者最大的区别就是RPC/encoded 样式的WSDL,JAX-WS 已经不提供这种支持。JAX-RPC 的API 从JAVA EE5 开始已经移除,若是你使用J2EE1.4,其API 位于javax.xml.rpc.*包。JAX-WS(JSR 224)规范的API 位于javax.xml.ws.*包,其中大部分都是注解,提供API 操做Web 服务(一般在客户端使用的较多,因为客户端能够借助SDK 生成,所以这个包中的API 咱们较少会直接使用)。WS-MetaData(JSR 181)是JAX-WS 的依赖规范,其API 位于javax.jws.*包,使用注解配置公开的Web 服务的相关信息和配置SOAP 消息的相关信息。spa

(2.)JAXM&SAAJ:

JAXM(JAVA API For XML Message)主要定义了包含了发送和接收消息所需的API,至关于Web 服务的服务器端,其API 位于javax.messaging.*包,它是JAVA EE 的可选包,所以你须要单独下载。SAAJ(SOAP With Attachment API For Java,JSR 67)是与JAXM 搭配使用的API,为构建SOAP 包和解析SOAP 包提供了重要的支持,支持附件传输,它在服务器端、客户端都须要使用。这里还要提到的是SAAJ 规范,其API 位于javax.xml.soap.*包。JAXM&SAAJ 与JAX-WS 都是基于SOAP 的Web 服务,相比之下JAXM&SAAJ 暴漏了SOAP更多的底层细节,编码比较麻烦,而JAX-WS 更加抽象,隐藏了更多的细节,更加面向对象,实现起来你基本上不须要关心SOAP 的任何细节。那么若是你想控制SOAP 消息的更多细节,可使用JAXM&SAAJ,目前版本为1.3。

(3.)JAX-RS:

JAX-RS 是JAVA 针对REST(Representation State Transfer)风格制定的一套Web 服务规范,因为推出的较晚,该规范(JSR 311,目前JAX-RS 的版本为1.0)并未随JDK1.6 一块儿发行,你须要到JCP 上单独下载JAX-RS 规范的接口,其API 位于javax.ws.rs.*包。这里的JAX-WS 和JAX-RS 规范咱们采用Apache CXF 做为实现,CXF 是Objectweb Celtix和Codehaus XFire 合并而成。CXF 的核心是org.apache.cxf.Bus(总线),相似于Spring 的ApplicationContext,Bus 由BusFactory 建立,默认是SpringBusFactory 类,可见默认CXF是依赖于Spring 的,Bus 都有一个ID,默认的BUS 的ID 是cxf。你要注意的是Apache CXF2.2 的发行包中的jar 你若是直接所有放到lib 目录,那么你必须使用JDK1.6,不然会报JAX-WS 版本不一致的问题。对于JAXM&SAAJ 规范咱们采用JDK 中自带的默认实现。

二.Webservice相关名词

       AOP: 面向服务的体系结构(Service-Oriented Architecture,SOA)是一个组件模型,它将应用程序的不一样功能单元(称为服务)经过这些服务之间定义良好的接口和契约联系起来。接口是采用中立的方式进行定义的,它应该独立于实现服务的硬件平台、操做系统和 编程语言。这使得构建在各类这样的系统中的服务能够一种统一和通用的方式进行交互。WebService是AOP实现的一种方式。CORBA 是另外一种方式。

    SOAP:(Simple Object Access Protocol),简单对象访问协议。详细内容请阅读SOAP协议初级指南(1--9)。

    WSDL:webservice描述语言(webService Description Language),详细内容请阅读webservice学习1----WSDL。

    XML: Extensible Markup Language,可扩展标记语言,内容详情请阅读xml相关内容。

相关文章
相关标签/搜索