国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費(fèi)電子書(shū)等14項(xiàng)超值服

開(kāi)通VIP
WebService
一、關(guān)于SOA(面向服務(wù)架構(gòu))思想
1、關(guān)于協(xié)議
2、SOA 的誕生
SOA(Service-Oriented Architecture)面向服務(wù)架構(gòu)是一種思想,它將應(yīng)用程序的不同功能單元通過(guò)中立的契約(獨(dú)立于硬件平臺(tái)、操作系統(tǒng)和編程語(yǔ)言)聯(lián)系起來(lái),使得各種形式的功能單元更好的集成。目前來(lái)說(shuō),WebService 是SOA 的一種較好的實(shí)現(xiàn)方WebService 采用HTTP 作為傳輸協(xié)議,SOAP(Simple Object Access Protocol)作為傳輸消息的格式。但WebService 并不是完全符合SOA 的概念,因?yàn)镾OAP 協(xié)議是WebService 的特有協(xié)議,并未符合SOA 的傳輸協(xié)議透明化的要求。SOAP 是一種應(yīng)用協(xié)議,早期應(yīng)用于RPC 的實(shí)現(xiàn),傳輸協(xié)議可以依賴于HTTP、SMTP 等。SOA 的產(chǎn)生共經(jīng)歷了如下過(guò)程:
通常采用SOA 的系統(tǒng)叫做服務(wù)總線(BUS),結(jié)構(gòu)如下圖所示:
二、JAVA 三種WebService 規(guī)范,分別是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 服務(wù)規(guī)范JAX-RPC(Java API For
XML-Remote Procedure Call)目前已經(jīng)被JAX-WS 規(guī)范取代,JAX-WS 是JAX-RPC 的演進(jìn)版本,但JAX-WS 并不完全向后兼容JAX-RPC,二者最大的區(qū)別就是RPC/encoded 樣式的WSDL,JAX-WS 已經(jīng)不提供這種支持。JAX-RPC 的API 從JAVA EE5 開(kāi)始已經(jīng)移除,如果你使用J2EE1.4,其API 位于javax.xml.rpc.*包。JAX-WS(JSR 224)規(guī)范的API 位于javax.xml.ws.*包,其中大部分都是注解,提供API 操作Web 服務(wù)(通常在客戶端使用的較多,由于客戶端可以借助SDK 生成,因此這個(gè)包中的API 我們較少會(huì)直接使用)。WS-MetaData(JSR 181)是JAX-WS 的依賴規(guī)范,其API 位于javax.jws.*包,使用注解配置公開(kāi)的Web 服務(wù)的相關(guān)信息和配置SOAP 消息的相關(guān)信息。
(2.)JAXM&SAAJ:
JAXM(JAVA API For XML Message)主要定義了包含了發(fā)送和接收消息所需的API,相當(dāng)于Web 服務(wù)的服務(wù)器端,其API 位于javax.messaging.*包,它是JAVA EE 的可選包,因此你需要單獨(dú)下載。SAAJ(SOAP With Attachment API For Java,JSR 67)是與JAXM 搭配使用的API,為構(gòu)建SOAP 包和解析SOAP 包提供了重要的支持,支持附件傳輸,它在服務(wù)器端、客戶端都需要使用。這里還要提到的是SAAJ 規(guī)范,其API 位于javax.xml.soap.*包。JAXM&SAAJ 與JAX-WS 都是基于SOAP 的Web 服務(wù),相比之下JAXM&SAAJ 暴漏了SOAP更多的底層細(xì)節(jié),編碼比較麻煩,而JAX-WS 更加抽象,隱藏了更多的細(xì)節(jié),更加面向?qū)ο?,?shí)現(xiàn)起來(lái)你基本上不需要關(guān)心SOAP 的任何細(xì)節(jié)。那么如果你想控制SOAP 消息的更多細(xì)節(jié),可以使用JAXM&SAAJ,2012年版本為1.3。
(3.)JAX-RS:
JAX-RS 是JAVA 針對(duì)REST(Representation State Transfer)風(fēng)格制定的一套Web 服務(wù)規(guī)范,由于推出的較晚,該規(guī)范(JSR 311,目前JAX-RS 的版本為1.0)并未隨JDK1.6 一起發(fā)行,你需要到JCP 上單獨(dú)下載JAX-RS 規(guī)范的接口,其API 位于javax.ws.rs.*包。
這里的JAX-WS 和JAX-RS 規(guī)范我們采用Apache CXF 作為實(shí)現(xiàn),CXF 是Objectweb Celtix和Codehaus XFire 合并而成。CXF 的核心是org.apache.cxf.Bus(總線),類似于Spring 的ApplicationContext,Bus 由BusFactory 創(chuàng)建,默認(rèn)是SpringBusFactory 類,可見(jiàn)默認(rèn)CXF是依賴于Spring 的,Bus 都有一個(gè)ID,默認(rèn)的BUS 的ID 是cxf。你要注意的是Apache CXF2.2 的發(fā)行包中的jar 你如果直接全部放到lib 目錄,那么你必須使用JDK1.6,否則會(huì)報(bào)JAX-WS 版本不一致的問(wèn)題。對(duì)于JAXM&SAAJ 規(guī)范我們采用JDK 中自帶的默認(rèn)實(shí)現(xiàn)。

 

三、幾種Web Service框架的基本概念介紹

1、JWS

JWS是Java語(yǔ)言對(duì)WebService服務(wù)的一種實(shí)現(xiàn),用來(lái)開(kāi)發(fā)和發(fā)布服務(wù)。而從服務(wù)本身的角度來(lái)看JWS服務(wù)是沒(méi)有語(yǔ)言界限的。但是Java語(yǔ)言為Java開(kāi)發(fā)者提供便捷發(fā)布和調(diào)用WebService服務(wù)的一種途徑。

2、Axis2
Axis2是Apache下的一個(gè)重量級(jí)WebService框架,準(zhǔn)確說(shuō)它是一個(gè)Web Services / SOAP / WSDL 的引擎,是WebService框架的集大成者,它能不但能制作和發(fā)布WebService,而且可以生成Java和其他語(yǔ)言版WebService客戶端和服務(wù)端代碼。這是它的優(yōu)勢(shì)所在。但是,這也不可避免的導(dǎo)致了Axis2的復(fù)雜性,使用過(guò)的開(kāi)發(fā)者都知道,它所依賴的包數(shù)量和大小都是很驚人的,打包部署發(fā)布都比較麻煩,不能很好的與現(xiàn)有應(yīng)用整合為一體。但是如果你要開(kāi)發(fā)Java之外別的語(yǔ)言客戶端,Axis2提供的豐富工具將是你不二的選擇。Axis2的開(kāi)發(fā)方式類似一個(gè)小型的應(yīng)用服務(wù)器,Axis2的開(kāi)發(fā)包要以WAR的形式部署到Servlet容器中,比如Tomcat,通過(guò)這些容器可以對(duì)工作中的Web Service進(jìn)行很好的監(jiān)控和管理。Axis2的Web administrion模塊可以讓我們動(dòng)態(tài)的配置Axis2.一個(gè)新的服務(wù)可以上載,激活,使之失效,修改web服務(wù)的參數(shù)。管理UI也可以管理一個(gè)或者多個(gè)處于運(yùn)行狀態(tài)的服務(wù)。這種界面化管理方式的一個(gè)弊端是所有在運(yùn)行時(shí)修改的參數(shù)沒(méi)有辦法保存,因?yàn)樵谥貑?dòng)之后,你所做的修改就會(huì)全部失效。Axis2允許自己作為獨(dú)立的應(yīng)用來(lái)發(fā)布Web Service,并提供了大量的功能和一個(gè)很好的模型,這個(gè)模型可以通過(guò)它本身的架構(gòu)(modular architecture)不斷添加新的功能。有些開(kāi)發(fā)人員認(rèn)為這種方式對(duì)于他們的需求太過(guò)于繁瑣,從而會(huì)更喜歡CXF。
3、XFire
XFire是一個(gè)高性能的WebService框架,在Java6之前,它的知名度甚至超過(guò)了Apache的Axis2,XFire的優(yōu)點(diǎn)是開(kāi)發(fā)方便,與現(xiàn)有的Web整合很好,可以融為一體,并且開(kāi)發(fā)也很方便。但是對(duì)Java之外的語(yǔ)言,沒(méi)有提供相關(guān)的代碼工具。XFire后來(lái)被Apache收購(gòu)了,原因是它太優(yōu)秀了,收購(gòu)后,隨著Java6 JWS的興起,開(kāi)源的WebService引擎已經(jīng)不再被看好,漸漸的都敗落了。
4、CXF
Apache CXF = Celtix + XFire,Apache CXF 的前身叫 Apache CeltiXfire。CXF 繼承了 Celtix 和 XFire 兩大開(kāi)源項(xiàng)目的精華,提供了對(duì) JAX-WS 全面的支持,并且提供了多種 Binding 、DataBinding、Transport 以及各種 Format 的支持,并且可以根據(jù)實(shí)際項(xiàng)目的需要,采用代碼優(yōu)先(Code First)或者 WSDL 優(yōu)先(WSDL First)來(lái)輕松地實(shí)現(xiàn) Web Services 的發(fā)布和使用。Apache CXF已經(jīng)是一個(gè)正式的Apache頂級(jí)項(xiàng)目。CXF支持多種協(xié)議,如:SOAP、XML/HTTP、RESTful HTTP 、 CORBA ,并且可以在多種傳輸協(xié)議上運(yùn)行,比如:HTTP、JMS 、 JBI。CXF可以與Spring進(jìn)行無(wú)縫集成。CXF 框架是一種基于 Servlet 技術(shù)的 SOA 應(yīng)用開(kāi)發(fā)框架,要正常運(yùn)行基于 CXF 應(yīng)用框架開(kāi)發(fā)的企業(yè)應(yīng)用,除了 CXF 框架本身之外,還需要 JDK 和 Servlet 容器的支持。CXF不但是一個(gè)優(yōu)秀的Web Services / SOAP / WSDL 引擎,也是一個(gè)不錯(cuò)的ESB總線,為SOA的實(shí)施提供了一種選擇方案,當(dāng)然他不是最好的,它僅僅實(shí)現(xiàn)了SOA架構(gòu)的一部分。CXF更注重開(kāi)發(fā)人員的工效(ergonomics)和嵌入能力(embeddability)。大多數(shù)都可以通過(guò)配置API來(lái)完成,替代了比較繁瑣的XML配置文件, Spring的集成性經(jīng)常的被提及,CXF支持Spring2.0和CXF's API和Spring的配置文件可以非常好的對(duì)應(yīng)。
注:對(duì)于Axis2與CXF之間的關(guān)系,一個(gè)是Axis2出現(xiàn)的時(shí)間較早,而CXF的追趕速度快。
以上幾種框架的總結(jié):
a:目前開(kāi)發(fā)Web Service的幾個(gè)框架,分別為Axis,axis2,Xfire,CXF以及JWS(也就是前面所述的JAX-WS,這是Java6發(fā)布所提供的對(duì)Web Service服務(wù)的一種實(shí)現(xiàn)。)
b:Axis與XFire已隨著技術(shù)不斷的更替慢慢落幕,都已不再更新。
c:以axis2與cxf所最為常用,目前也只有axis2和cxf官方有更新。
d:從使用場(chǎng)景來(lái)說(shuō),如果你需要多語(yǔ)言的支持,你應(yīng)該選擇AXIS2。如果你需要把你的實(shí)現(xiàn)側(cè)重JAVA并希望和Spring集成,CXF就是更好的選擇。

 

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)
打開(kāi)APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
Java開(kāi)發(fā)中經(jīng)常使用到的幾種WebService技術(shù)實(shí)現(xiàn)方案
IBM developerWorks 中國(guó) : Java Web 服務(wù)專題
WebService框架JWS、Axis2、XFire、CXF的區(qū)別
spring-boot(十)webservice配置
Web Service
與Java Web Service相關(guān)的若干概念(JAX-WS,JAX-RS)
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服