- 相關(guān)推薦
Java EE的Web服務(wù)體系結構
Web服務(wù)(Web Services)是目前程序設計領(lǐng)域中的一項新技術(shù),是一個(gè)嶄新的分布式計算模式,在不同系統平臺之間具有互操作性,通過(guò)因特網(wǎng),實(shí)現不同應用程序之間的遠程過(guò)程調用。下面小編為大家整理了關(guān)于Java EE的Web服務(wù)體系結構,一起來(lái)看看吧:
Web服務(wù)使用基于XML 的消息處理作為基本的數據通訊方式,消除使用不同組件模型、操作系統和編程語(yǔ)言的系統之間存在的差異,使異類(lèi)系統能夠作為單個(gè)計算網(wǎng)絡(luò )協(xié)同運行。開(kāi)發(fā)人員可以用象過(guò)去在創(chuàng )建分布式應用程序時(shí)使用組件一樣的方式創(chuàng )建將來(lái)自各種源的Web服務(wù)組合在一起的應用程序。
Web服務(wù)是建立在一些通用協(xié)議的基礎上,如HTTP,SOAP,XML,WSDL,UDDI等。這些協(xié)議在涉及到操作系統、對象模型和編程語(yǔ)言的選擇時(shí),沒(méi)有任何傾向,因此將會(huì )有很強的生命力。
商業(yè)功能性
重要的是要理解,商業(yè)機構不會(huì )選擇他們現有的基于J2EE應用程序,并把他們的EJB展示為Web服務(wù)的。雖然用Web服務(wù)平臺或目前市場(chǎng)上出售的工具在技術(shù)上是可行的,但是在商業(yè)上這樣做是沒(méi)有現實(shí)意義,因為商業(yè)不在組件中展示方法調用。
在商業(yè)上他們展示的是商業(yè)功能,這些功能會(huì )轉換成一系列執行該商業(yè)功能所需要的協(xié)調動(dòng)作。在即時(shí)返回服務(wù)消費者的響應中可能有也可能沒(méi)有結果,還可能需要幾天的時(shí)間才能完成。商業(yè)也需要通過(guò)多層開(kāi)發(fā)系統的功能性,需要記住幾個(gè)安全性等級和由不同的內部應用程序使用。
例如,假設有一個(gè)在因特網(wǎng)上售書(shū)的商業(yè)機構G,比方說(shuō),他們決定在因特網(wǎng)上把一項在線(xiàn)訂書(shū)服務(wù)展示為Web服務(wù)。當顧客下訂單的時(shí)候,訂單信息在商業(yè)企業(yè)G內部啟動(dòng)了一個(gè)交易過(guò)程。這個(gè)交易過(guò)程需要執行多項行動(dòng),例如,檢查圖書(shū)訂單的總量或執行一個(gè)財務(wù)事務(wù)處理過(guò)程。這涉及到顧客把錢(qián)劃到商業(yè)G賬上,最后,給運輸部門(mén)送一份消息,讓他們把書(shū)送給顧客。
從圖5中的J2EE系統功能圖可以看出,這個(gè)交易過(guò)程可能需要與各種EJB發(fā)生交互作用,而這反過(guò)來(lái)又與企業(yè)信息系統或跨機構的數據庫產(chǎn)生交互作用。在所有這些交易過(guò)程中,交易的完整性以及顧客想從認真企業(yè)級的交易過(guò)程中得到的任何其他標準都需要保存起來(lái)。
Web服務(wù)系統
Web服務(wù)系統類(lèi)似于J2EE中的容器(container)的概念。它給執行Web服務(wù)提供了一個(gè)運行時(shí)間環(huán)境。為了進(jìn)行討論的目的,完全可以說(shuō)在較高的級別上Web服務(wù)系統會(huì )包含一個(gè)Web服務(wù)運行時(shí)間環(huán)境,該運行時(shí)間環(huán)境能接受SOAP請求并把它們映射到對應的Java組件,即在商業(yè)功能性中共享的Java類(lèi)或EJB。同時(shí),從該商業(yè)過(guò)程中收集的所有結果都是可靠的,并被封裝在SOAP響應中,送回Web服務(wù)的客戶(hù)機。
Web服務(wù)器
Web服務(wù)器是從Web服務(wù)客戶(hù)機發(fā)出SOAP請求到服務(wù)提供者收到這個(gè)請求的過(guò)程中最主要的網(wǎng)關(guān)。Web服務(wù)器通過(guò)HTTP協(xié)議進(jìn)行通信,通常在端口80收聽(tīng)。因為SOAP消息需要在HTFP上傳輸,所以它很適合進(jìn)入我們的XML消息層和傳輸層。我們在圖5上應當注意到的一件重要事情是,事實(shí)上WSDL文件是存放在Web服務(wù)器上的,因為這樣它給服務(wù)的消費者提供了全球性的可訪(fǎng)問(wèn)機制,使他們能查閱WSDL技術(shù)規范。
因此,如果我們提供了一個(gè)在UDDI注冊表作為URL引用的WSDL文件的話(huà),服務(wù)消費者就可以很容易地通過(guò)URL找到該WSDL,并對它進(jìn)行轉換,以確定該機構支持的服務(wù)和服務(wù)的終端。
Web服務(wù)器還在整個(gè)系統中執行另外一種重要功能。這種功能會(huì )把適當的SOAP請求轉送到Web服務(wù)系統去。
Web服務(wù)客戶(hù)機
Web服務(wù)客戶(hù)機是Web服務(wù)的消費者。由于Web服務(wù)是不確定平臺的,因此用目前任何一種主流編程語(yǔ)言寫(xiě)成的客戶(hù)機都可以調用Web服務(wù)。例如,它可能是一個(gè)Java程序,一個(gè)Visual Basic程序或者一個(gè)C++程序。Web服務(wù)客戶(hù)機要做的第一步工作是查閱UDDI信息,查找能提供它感興趣的Web服務(wù)的商業(yè)。
從UDDI信息中重新得到WSDL URL引用,并從可公開(kāi)訪(fǎng)問(wèn)的URL下載WSDL文檔。通常,URL指的就是從圖5中的Web服務(wù)器。一旦得到了WSDL文件,服務(wù)消費者就有了調用該Web服務(wù)所需要的技術(shù)信息。技術(shù)信息我們指的是該Web服務(wù)中的方法。該方法需要的參數,該方法的數據類(lèi)型和終端信息?梢愿鶕⺈SDL文件產(chǎn)生SOAP客戶(hù)代碼,然后再把產(chǎn)生的SOAP客戶(hù)代碼嵌入到客戶(hù)機巾,以便調用該Web服務(wù)。
【Java EE的Web服務(wù)體系結構】相關(guān)文章:
j2ee與java web的區別09-19
Java Web開(kāi)發(fā)和J2EE的區別07-07
Java與Java web的區別08-10
J2EE的體系結構06-29
影響Java EE性能的因素10-05
j2ee與java的區別08-10
關(guān)于java-web的試卷06-25