08-Web服務(wù)實(shí)用技術(shù)(Web服務(wù)實(shí)現(xiàn)技術(shù))_第1頁
08-Web服務(wù)實(shí)用技術(shù)(Web服務(wù)實(shí)現(xiàn)技術(shù))_第2頁
08-Web服務(wù)實(shí)用技術(shù)(Web服務(wù)實(shí)現(xiàn)技術(shù))_第3頁
08-Web服務(wù)實(shí)用技術(shù)(Web服務(wù)實(shí)現(xiàn)技術(shù))_第4頁
08-Web服務(wù)實(shí)用技術(shù)(Web服務(wù)實(shí)現(xiàn)技術(shù))_第5頁
已閱讀5頁,還剩36頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、Web效力適用技術(shù)主講:李偉剛liweigang西北工業(yè)大學(xué)軟件與微電子學(xué)院.第八章 Web效力實(shí)現(xiàn)技術(shù).主要內(nèi)容Web效力開發(fā)方法Web效力運(yùn)轉(zhuǎn)環(huán)境AXIS基于AXIS的Web效力開發(fā).第一節(jié) Web效力開發(fā)方法.Two ApproachesServer ImplementationService InterfaceWSDLe.g. EJB/Java Class to WSDLe.g. WSDL contract as the interface & message descriptionServer InterfaceService ImplementationWSDLBottom UpT

2、op Down.Web 效力開發(fā)生命周期開發(fā)開發(fā)和測試 Web 效力實(shí)現(xiàn)、定義效力接口描畫和定義效力實(shí)現(xiàn)描畫。經(jīng)過創(chuàng)建新的 Web 效力、把現(xiàn)有的運(yùn)用程序變成 Web 效力由其它 Web 效力和運(yùn)用程序組成新的 Web 效力提供 Web 效力的實(shí)現(xiàn)。部署向效力懇求者或效力注冊中心發(fā)布效力接口和效力實(shí)現(xiàn)的定義Web 效力的可執(zhí)行文件部署到執(zhí)行環(huán)境運(yùn)轉(zhuǎn)調(diào)用 Web 效力Web 效力完全部署、可操作并且效力提供者可以經(jīng)過網(wǎng)絡(luò)訪問效力管理繼續(xù)的管理和運(yùn)營 Web 效力運(yùn)用程序。平安性、可用性、性能、效力質(zhì)量和業(yè)務(wù)流程.構(gòu)建Web Service1.編寫代碼2.打包以便布署3.布署到運(yùn)用效力器4.創(chuàng)建W

3、SDL描畫 5. 發(fā)布描畫6. 發(fā)現(xiàn)-經(jīng)過UDDI7. 綁定、調(diào)用.訪問Web Service1. 開發(fā)新運(yùn)用2. 查詢UDDI3. 定位Web效力、下載其描畫4. 根據(jù)描畫創(chuàng)建Java client proxy 5. 在運(yùn)用中編寫調(diào)用Java client proxy methods 代碼6. 測試運(yùn)用7. Java client proxy經(jīng)過SOAP調(diào)用Web service methods.第二節(jié) Web效力運(yùn)轉(zhuǎn)環(huán)境.Web Service Runtime1. 提交懇求(參數(shù))給運(yùn)用效力器, 效力器調(diào)用Java servlet.2. Servlet調(diào)用本地Java proxy方法,pr

4、oxy調(diào)用SOAP客戶端運(yùn)轉(zhuǎn)3. SOAP客戶端發(fā)送HTTP懇求方法、參數(shù)給提供者.4. SOAP servlet預(yù)備方法和參數(shù),instantiates效力bean,調(diào)用效力方法5.訪問legacy資源6. SOAP servlet前往結(jié)果給懇求者SOAP client.7. SOAP client前往結(jié)果給Java proxy.8.servlet把結(jié)果放在一個data bean中,dispatch查詢結(jié)果的JSP9. JSP發(fā)送HTML給用戶,頁面中包含有效力前往的結(jié)果.第三節(jié) AXIS.Axis IntroductionAxis是Apache組織推出的Web效力引擎Axis本質(zhì)上就是一個

5、Web效力引擎,提供創(chuàng)建效力器端、客戶端和網(wǎng)關(guān)SOAP操作的根本框架。但Axis還包括:一個獨(dú)立的Web Service效力器。一個嵌入Servlet引擎Tomcat的效力器。支持WSDL。提供轉(zhuǎn)化WSDL為Java類的工具。提供例子程序。提供TCP/IP數(shù)據(jù)包監(jiān)視工具。.Axis2體系構(gòu)造AXIS 對象模型AXIs Object Model,AXIOM是 Apache Axis2 的 XML 對象模型內(nèi)核層包含引擎、模塊和部署框架一切其他組件都在內(nèi)核之上的層中各種傳輸協(xié)議如 和 SMTP和數(shù)據(jù)綁定在 XML 和 Java 代碼之間進(jìn)展轉(zhuǎn)換并不在中心中,由于它們是可插入的,因此提供了很大的靈敏

6、性一切其他相關(guān)技術(shù)如 Java API for XML Web Services (JAX-WS)都在 Axis2 之上的層次中 .AXIOMAXIOM是一個 XML 對象模型,設(shè)計(jì)用于提高 XML 處置期間的內(nèi)存運(yùn)用率和性能,基于 Pull 解析經(jīng)過運(yùn)用 Streaming API for XML (StAX) Pull 解析器,AXIOM可以控制解析過程,以提供延遲構(gòu)建支持StAX經(jīng)過提供一種基于事件迭代器(Iterator)的API讓程序員去控制xml文檔解析過程程序遍歷這個事件迭代器去處置每一個解析事件,解析事件可以看做是程序拉出來的,也就是程序促使解析器產(chǎn)生一個解析事件然后處置該事件

7、,之后又促使解析器產(chǎn)生下一個解析事件,如此循環(huán)直到碰到文檔終了符SAX也是基于事件處置xml文檔,但卻是用推方式解析,解析器解析完好個xml文檔后,才產(chǎn)生解析事件,然后推給程序去處置這些事件DOM采用的方式是將整個xml文檔映射到一顆內(nèi)存樹,這樣就可以很容易地得到父節(jié)點(diǎn)和子結(jié)點(diǎn)以及兄弟節(jié)點(diǎn)的數(shù)據(jù),但假設(shè)文檔很大,將會嚴(yán)重影響性能延遲構(gòu)建是指 AXIOM 不完全構(gòu)建XML對象模型,而是基于用戶的需求構(gòu)建 .AXIOM續(xù)例子:從 XML 輸入流中獲得第一個人的 元素值 XML文檔 Dihini Himahansi Female Colombo, Sri Lanka - Object model i

8、s being built only up to this point Thushari Damayanthi Female Elpitiya, Sri Lanka .AXIOM續(xù)優(yōu)勢盡能夠僅運(yùn)用能滿足用戶的需求的內(nèi)存假設(shè)用戶希望訪問較大的文檔中前面的數(shù)個字節(jié)或數(shù)千字節(jié),那么延遲構(gòu)建功能將改善該運(yùn)用程序的內(nèi)存需求情況可以從任何元素獲得 StAX 事件,而不論能否完好構(gòu)建了對象模型 運(yùn)用案例:當(dāng) Axis2 作為中介傳送時,假設(shè)需求僅讀取 SOAP 音訊的 Header,AXIOM 將防止其讀取整個 SOAP 音訊,使其具有很高的內(nèi)存效率當(dāng) Web 效力實(shí)現(xiàn)可以直接運(yùn)用 StAX 事件時,由于采

9、用了 AXIOM,Web 效力所需的內(nèi)存非常小 .AXIOM續(xù)AXIOM 內(nèi)置了音訊傳輸優(yōu)化機(jī)制Message Transfer Optimization Mechanism,MTOM支持對于 AXIOM 體系構(gòu)造,可以經(jīng)過實(shí)現(xiàn) AXIOM 接口并將其插入到 Axis2 中來執(zhí)行本人的對象模型AXIOM 提供了構(gòu)建于根底 AXIOM API 之上的 SOAP 接口 可以運(yùn)用 envelope.getHeaders 和 envelope.getBody 之類的便利方法查看 SOAP .可擴(kuò)展音訊傳送引擎Axis2 是一個純 SOAP 處置器,并不依賴于任何 Java 特定的規(guī)范 引擎經(jīng)過傳輸協(xié)議

10、接納到音訊后,將調(diào)用之前注冊的一系列攔截器稱為處置程序處置程序通常處置 SOAP Header 內(nèi)的信息,也可以同時對音訊的其他部分進(jìn)展處置 隨后會將音訊傳送給音訊接納者普通將此音訊傳送給效力實(shí)現(xiàn)類進(jìn)展處置 .可擴(kuò)展音訊傳送引擎 續(xù)Axis2 的管道模型 Axis2 引擎的傳入音訊會經(jīng)過“In管道。一切傳出音訊都會經(jīng)過“Out管道經(jīng)過組合運(yùn)用不同數(shù)量的 In 和 Out 管道,Axis2 可以處置任何 MEPMessage Exchange Pattern階段每個 Axis2 管道內(nèi)部被邏輯劃分為名為階段 (Phase) 的區(qū)域按特定的方式對這些階段進(jìn)展命名,以表示在該階段對音訊的處置方式這些

11、階段都會有用途,特別是嘗試部署新處置程序時,由于我們可以指定處置程序需求在哪個階段中執(zhí)行 .可擴(kuò)展音訊傳送引擎 續(xù)上下文層次構(gòu)造 Axis2 環(huán)境需求在不同的級別保管信息例如,整個引擎公用的信息應(yīng)該在系統(tǒng)級別進(jìn)展維護(hù),而音訊級別的信息應(yīng)該保管在音訊級別。有些信息是動態(tài)的,而有些信息是靜態(tài)的為了處置這些不同的需求,Axis2 提供了上下文層次構(gòu)造來在不同級別維護(hù)信息 .可擴(kuò)展音訊傳送引擎 續(xù)調(diào)度 傳入 Axis2 引擎的每條音訊都以特定效力和操作為目的。標(biāo)識此效力/操作組合的過程稱為調(diào)度,Axis2 引擎提供了進(jìn)展此任務(wù)的四種根本方法: 基于懇求 URI 進(jìn)展調(diào)度 傳輸信息:可以將 SOAPAc

12、tion Header 用于確定效力和操作WS-Addressing Header:假設(shè)傳入音訊包含 WS-Addressing Header,也可以將其用于進(jìn)展調(diào)度 假設(shè) SOAP 主體的第一個子項(xiàng)的 QName 是運(yùn)用 RPC 規(guī)那么定義的,那么也可以運(yùn)用此稱號 .可插入模塊體系構(gòu)造模塊為效力器提供了一個擴(kuò)展機(jī)制Axis2 中的每個模塊都包含一組相關(guān)的處置程序.可插入模塊體系構(gòu)造續(xù)模塊的類型Sandesha2 模塊:提供 WS-Reliable Messaging 支持 WS-Addressing 模塊:為 Axis2 提供 WS-Addressing 支持 Rampart 和 Rahas

13、 模塊:提供 WS-SX平安相關(guān)規(guī)范支持 Kandula 模塊:提供 WS-AT 支持 Savan 模塊:提供 WS-Eventing 支持 .可插入模塊體系構(gòu)造續(xù)模塊的級別系統(tǒng)級別:模塊將影響整個系統(tǒng),此模塊中的處置程序?qū)⑦\(yùn)用于傳入系統(tǒng)的一切消 效力級別:此模塊中的處置程序?qū)⑦\(yùn)用于以特定效力為目的的音訊。這些處置程序應(yīng)該一直部署在調(diào)度階段后操作級別:此模塊中的處置程序?qū)⑦\(yùn)用于以特定操作為目的的音訊。這些處置程序應(yīng)該一直部署在調(diào)度階段后.改良的部署模型Axis2 如今支持將效力熱部署到 Axis2 引擎中熱部署效力應(yīng)該存檔為 ZIP 文件,且在文件名中運(yùn)用 .aarAxis2 存檔,Axis2

14、 archive作為擴(kuò)展名 效力存檔包含以下信息: 效力實(shí)現(xiàn)類 Services.xml 文件描畫其運(yùn)用的音訊接納者、所需的任何模塊和可用的操作 可選依賴庫打包在 lib 文件夾內(nèi) .其他特性新客戶機(jī) API 可插入數(shù)據(jù)綁定 REST 支持 REpresentational State Transfer,REST WSDL 2.0 支持:Axis2 如今支持 WSDL 2.0。我們在最近進(jìn)展的互操作性研討會中勝利地進(jìn)展了初始互操作性測試。 工具支持:Axis2 隨附了 WSDL2Java 和 Java2WSDL 工具,同時提供了與 Axis2 協(xié)同任務(wù)的 Eclipse 插件各種傳輸協(xié)議支持:

15、 Axis2 支持 、SMTP、TCP 和 JMSSpring 支持:Axis2 內(nèi)置了 Spring 效力支持。您可以編寫 Spring Bean,然后方便地運(yùn)用 Axis2 將其作為 Web 效力公開WS-Policy 集成:Axis2 完全支持 WS-Policy,該規(guī)范已集成到了引擎的中心中.第四節(jié) 基于AXIS的Web效力開發(fā).Publishing and Consuming Web Services with AxisTomcatAXIS*.jws?wsdlClient SideJava Class*.jws*.jws?wsdlwsdlJava2WSDLwsdlAXISJava C

16、lass*.javawsdlWSDL2Java.Invoking a SOAP Service with AxisTomcatAXISSOAP RequestSOAP RequestSOAP ReplyXercesSOAP ReplyAXISXercesClient Side Web ServiceReplyRPCInvokeReplyServer Side Web Service.Axis效力器端部署的三種方式Java源程序直接發(fā)布*.jws經(jīng)過編寫wsdd文件部署。經(jīng)過生成的Skelton類在效力器上部署.Axis客戶端調(diào)用Web效力的三種方式動態(tài)調(diào)用接口模型動態(tài)代理模型靜態(tài)存根模型.動態(tài)

17、調(diào)用接口模型利用RPC中的Call類對象來實(shí)現(xiàn)對遠(yuǎn)程效力的調(diào)用和訪問的一種模型,其中心在于Call對象的實(shí)現(xiàn)。對每個Web效力的每一個遠(yuǎn)程方法調(diào)用,DII模型都要生成一個新的Call對象,并可以根據(jù)該效力的WSDL文檔描畫對Call對象進(jìn)展配置,最終利用Call對象實(shí)現(xiàn)該遠(yuǎn)程方法的調(diào)用。 .動態(tài)代理模型利用java反射reflection機(jī)制中Proxy類對象來實(shí)現(xiàn)對遠(yuǎn)程效力的調(diào)用和訪問的一種模型,其中心在于與Proxy對象相關(guān)聯(lián)的InvocationHandler的實(shí)現(xiàn)。對于每個不同的Web效力,客戶端運(yùn)用程序都需求在運(yùn)轉(zhuǎn)時訪問效力的WSDL文檔,生成一個效力的本地對象Service,然后由該對象根據(jù)WSDL文檔相應(yīng)描畫PortName獲得接口的對應(yīng)動態(tài)代理對象,利用生成的動態(tài)代理對象來訪問遠(yuǎn)程接口的一切操作;.動態(tài)代理模型動態(tài)代理的類構(gòu)造 .靜態(tài)存根模型利用Stub類對象來實(shí)現(xiàn)對遠(yuǎn)程效力的調(diào)用和訪問的一種模型,其中心在于Stub對象的實(shí)現(xiàn)。要實(shí)現(xiàn)遠(yuǎn)程效力的訪問,客戶端必需獲得存根stub,生成存根的一個實(shí)例對象,對該對象進(jìn)展必要的配置及類型轉(zhuǎn)換,最后利用配置好的靜態(tài)存根對象實(shí)例調(diào)用遠(yuǎn)程操作獲得Web效力結(jié)果;.靜態(tài)存根模型靜態(tài)存根的類構(gòu)造 .靜態(tài)存根模型創(chuàng)建存根對象:客戶端運(yùn)用程序可以直接創(chuàng)建靜態(tài)存根實(shí)現(xiàn)類的實(shí)例對象;或者經(jīng)過Service.ge

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論