畫出web服務(wù)的體系結(jié)構(gòu)_web是基于體系結(jié)構(gòu)_Java EE的Web服務(wù)原理和體系結(jié)構(gòu)(1)
本文關(guān)鍵詞:web服務(wù)體系結(jié)構(gòu),由筆耕文化傳播整理發(fā)布。
Web服務(wù)(Web Services)是目前程序設(shè)計領(lǐng)域中的一項新技術(shù),是一個嶄新的分布式計算模式,在不同系統(tǒng)平臺之間具有互操作性,通過因特網(wǎng),實現(xiàn)不同應(yīng)用程序之間的遠程過程調(diào)用。Web服務(wù)使用基于XML 的消息處理作為基本的數(shù)據(jù)通訊方式,消除使用不同組件模型、操作系統(tǒng)和編程語言的系統(tǒng)之間存在的差異,使異類系統(tǒng)能夠作為單個計算網(wǎng)絡(luò)協(xié)同運行。開發(fā)人員可以用象過去在創(chuàng)建分布式應(yīng)用程序時使用組件一樣的方式創(chuàng)建將來自各種源的Web服務(wù)組合在一起的應(yīng)用程序。 Web服務(wù)是建立在一些通用協(xié)議的基礎(chǔ)上,如HTTP,SOAP,,XML,WSDL,UDDI等。這些協(xié)議在涉及到操作系統(tǒng)、對象模型和編程語言的選擇時,沒有任何傾向,因此將會有很強的生命力。
J2EE的Web服務(wù)工作原理
1.J2EE的Web服務(wù)模型
大家知道,普通Web服務(wù)的系統(tǒng)架構(gòu)是面向服務(wù)的,服務(wù)的發(fā)布的發(fā)現(xiàn)是Web系統(tǒng)架構(gòu)中首先要解決的主要問題。在java編程環(huán)境下,Web 服務(wù)通過JAXR(java API for XML Registries)實現(xiàn)自身的發(fā)布?蛻羰褂猛瑯拥腏AXR API尋找服務(wù),使用JAX-RPC綁定和調(diào)用Web服務(wù)。如下圖1所示:
圖 1
2.J2EE在消息發(fā)送層(SOAP)和傳輸協(xié)議層(HTTP)的工作過程
用下圖2可以說明,在具有Web服務(wù)功能的應(yīng)用程序服務(wù)器上運行著一個標(biāo)準(zhǔn)的J2EE應(yīng)用程序。在圖中的左上角是Java,C++或C#客戶機,現(xiàn)在,這個應(yīng)用程序發(fā)出SOAP請求。該SOAP請求把Web服務(wù)操作封裝在一個XML有效載荷中,然后,通過HTTP協(xié)議傳送。在Web服務(wù)端,傳輸層繼續(xù)把該調(diào)用輸送劍SOAP服務(wù)端,然后,服務(wù)器就調(diào)用相應(yīng)的已經(jīng)展現(xiàn)為Web服務(wù)的J2EE功能。Web服務(wù)產(chǎn)生的任何響應(yīng)都會被再編碼成為一個SOAP響應(yīng),并通過HTTP協(xié)議傳輸回客戶機去。
圖 2
從圖2中可以清楚地看出,利用消息發(fā)送層(Messaging layer) (SOAP)和傳輸協(xié)議層(Transoort Network laver) (HTTP)就可以完成應(yīng)用程序內(nèi)部的通信。應(yīng)用程序內(nèi)部通信的問題通過一些銷售商的專有技術(shù)(例如CORBA和DCOM等)以前就已經(jīng)解決了。這些技術(shù)操作起來很麻煩,并且,也不能通過防火墻。因此,現(xiàn)在我們用SOAP,通過簡單的XML這個開放式的標(biāo)準(zhǔn),就可以有效地實現(xiàn)應(yīng)用程序內(nèi)部的通信,不會使自己鎖定在某個銷售商的專有機制上。
3.J2EE在消息發(fā)送層(SOAP)、傳輸協(xié)議層(HTTP)和Web服務(wù)描述(WSDL)的工作過程
圖3顯示的是對前面所介紹的Web服務(wù)模式的簡單擴展;在圖3中只需要在兩個應(yīng)用程序之間傳遞的SOAP消息之間存在著緊密的耦合,F(xiàn)在,有了一個附加的Web服務(wù)描述層,服務(wù)提供者就可以用建立和發(fā)行WSDL文檔的方法來描述他們的Web服務(wù)。WSDL文檔中不僅包含有該Web服務(wù)的抽象定義,而且也包含有實現(xiàn)(綁定)該Web服務(wù)的細節(jié)。這意味著服務(wù)的消費者(即例子中的客戶應(yīng)用程序)需要得到WSDL文檔,它不僅可以從這個文檔中得到包括Web服務(wù)的消息和數(shù)據(jù)類型的不同操作,而且還能夠重新得到該Web服務(wù)的終端(例如URL),SOAP消息可以在終端上交換。如果J2EE服務(wù)是通過SMTP消息展示功能的,那么WSDL文檔也會描述這一點。
圖 3
4.J2EE使用UDDI、WSDL和SOAP三種技術(shù)的工作過程
在圖4中假設(shè)服務(wù)提供者已經(jīng)決定把某項商業(yè)功能展示成Web服務(wù)。該Web服務(wù)駐留在一個基于Java的Web服務(wù)系統(tǒng)中。通過圖中的順序步驟看一下整個的工作機制。
圖 4
1)服務(wù)提供者的第一步是編寫WSDL文件。當(dāng)前市場上有好幾種工具,可以幫助我們用現(xiàn)有的對象定義產(chǎn)生出WSDL文件。然后,需要發(fā)布關(guān)于它自己的信息,把商業(yè)和這項Web服務(wù)的技術(shù)規(guī)范作為-個WSDL文件發(fā)布到中心UDDL注冊表。這樣,用寫WSDL文件的方法使得Web服務(wù)的描述占據(jù)了服務(wù)描述層。但是,在Web服務(wù)棧中我們看到,發(fā)布的商業(yè)信息和WSDL文件表現(xiàn)的是Web服務(wù)棧中的服務(wù)發(fā)布層。
2)服務(wù)消費者應(yīng)用程序可以發(fā)現(xiàn)它有興趣使用的Web服務(wù)。發(fā)現(xiàn)不僅涉及到要搜索商業(yè)和它的服務(wù),而且還要下載WSDL文件中所提到的技術(shù)規(guī)范。發(fā)現(xiàn)的步驟對應(yīng)于Web服務(wù)棧中的服務(wù)發(fā)現(xiàn)層。
3)最后,服務(wù)消費者應(yīng)用程序用WSDL文件來確定,為了與服務(wù)提供者的Web服務(wù)通信,需要傳送哪些消息,并且它還要決定綁定信息。為了達到這個目的,綁定信息就是HTTP上的SOAP。這個步驟對應(yīng)于Web服務(wù)棧中的XML消息和傳輸層。
1
內(nèi)容導(dǎo)航
第 1 頁:J2EE的Web服務(wù)工作原理 第 2 頁:J2EE的基本web服務(wù)體系結(jié)構(gòu)
原文:Java EE的Web服務(wù)原理和體系結(jié)構(gòu)(1) 返回開發(fā)首頁
本文關(guān)鍵詞:web服務(wù)體系結(jié)構(gòu),由筆耕文化傳播整理發(fā)布。
本文編號:92345
本文鏈接:http://sikaile.net/wenshubaike/shijiedaxue/92345.html