您的位置:首頁(yè) > 軟件資訊 > 編程技巧 > 網(wǎng)絡(luò)管理
來源:北大青鳥飛迅校區(qū)|發(fā)布時(shí)間:2013-04-28 14:05:57
引言
從根本上分析,Remoting實(shí)際上是一種企業(yè)分布式計(jì)算的組件。在同一服務(wù)器(Java虛擬機(jī))內(nèi)進(jìn)行調(diào)用的服務(wù)(或類)并不需要把自己暴露為一種遠(yuǎn)程服務(wù);但是,如果你需要與一個(gè)外部程序(在不同的服務(wù)器上或在一個(gè)不同的組織中)進(jìn)行通訊的話,那么,必須把它實(shí)現(xiàn)為一個(gè)遠(yuǎn)程服務(wù)。Spring框架為把業(yè)務(wù)類暴露為遠(yuǎn)程服務(wù)提供了一種獨(dú)特而靈活的方式。
Spring Remoting架構(gòu)的核心是服務(wù)對(duì)象,這些對(duì)象其實(shí)是一些POJO,也稱作Spring bean。Spring框架能夠把這些服務(wù)對(duì)象與基礎(chǔ)結(jié)構(gòu)細(xì)節(jié)(例如它們暴露為遠(yuǎn)程服務(wù)的方式)隔離開來;這樣以來,開發(fā)者就可以專注于實(shí)現(xiàn)服務(wù)對(duì)象的業(yè)務(wù)接口而不是牽涉到這些細(xì)節(jié)中去。
這個(gè)Remoting模型提供了對(duì)業(yè)務(wù)服務(wù)的遠(yuǎn)程抽象。它負(fù)責(zé)編排和反編排方法參數(shù)并且還負(fù)責(zé)處理服務(wù)方法中拋出的任何異常—使用未檢查的RemoteAccessException異常對(duì)它們進(jìn)行包裝。為了實(shí)現(xiàn)各種服務(wù),Spring使用了若干設(shè)計(jì)模式。例如,它使用代理設(shè)計(jì)模式把你對(duì)HTTP POST請(qǐng)求的調(diào)用翻譯成指向輸出服務(wù)的URL。
本文將著重探討如何使用Spring實(shí)現(xiàn)一個(gè)遠(yuǎn)程服務(wù)。也就是說,要展示使用Spring Remoting API把一個(gè)普通Java對(duì)象(POJO)轉(zhuǎn)化成一個(gè)遠(yuǎn)程服務(wù);這樣以來,外部程序就可以從其業(yè)務(wù)實(shí)現(xiàn)中調(diào)用該服務(wù)。該演示使用一個(gè)示例貸款處理應(yīng)用程序把一個(gè)業(yè)務(wù)服務(wù)實(shí)現(xiàn)為一個(gè)遠(yuǎn)程HTTP服務(wù)并且從一個(gè)測(cè)試客戶端調(diào)用該類中的業(yè)務(wù)方法。
Spring Remoting工作機(jī)制
在本節(jié)中,讓我們更為細(xì)致地分析Spring的Remoting工作機(jī)制。要把一個(gè)普通的Java類實(shí)現(xiàn)為一個(gè)遠(yuǎn)程服務(wù),需要提供如下一些內(nèi)容:
1.遠(yuǎn)程服務(wù)輸出器(exporter)—這些類用于創(chuàng)建為客戶端程序所調(diào)用的遠(yuǎn)程服務(wù)端點(diǎn)。服務(wù)導(dǎo)出器還管理任何用來查詢遠(yuǎn)程服務(wù)的注冊(cè)表。
2.代理工廠Bean—它們是用于創(chuàng)建代理的工廠類,客戶端能夠使用這些代理連接到遠(yuǎn)程服務(wù)。
3.HTTP Invoker—如前面所提及,Spring HTTP Invoker使用了一種Remoting模型,你可以使用這種模型實(shí)現(xiàn)跨HTTP的遠(yuǎn)程調(diào)用,同時(shí)使用Java串行化技術(shù)傳遞Java對(duì)象。這樣使得從一個(gè)普通Java類中實(shí)現(xiàn)一個(gè)遠(yuǎn)程服務(wù)容易得多了,并且允許你專注于遠(yuǎn)程服務(wù)的業(yè)務(wù)接口而不必親自考慮遠(yuǎn)程基礎(chǔ)結(jié)構(gòu)的實(shí)現(xiàn)細(xì)節(jié)。
該技術(shù)依賴于RMI Invoker的基礎(chǔ)結(jié)構(gòu),但是使用HTTP作為傳輸協(xié)議。
在客戶端方面,Spring HTTP Invoker提供兩種類型的客戶端:Java SE提供的標(biāo)準(zhǔn)API和Commons HttpClient API。默認(rèn)情況下,它使用的是HttpClient。
接下來,讓我們看一下Spring框架所支持的遠(yuǎn)程(Remoting)技術(shù)。
全程面授,不高薪都難
申請(qǐng)成功后,我們將在24小時(shí)內(nèi)與您聯(lián)系
招生熱線: 4008-0731-86 / 0731-82186801
學(xué)校地址: 長(zhǎng)沙市天心區(qū)團(tuán)結(jié)路6號(hào)
Copyright © 2006 | 湖南大計(jì)信息科技有限公司 版權(quán)所有
湘ICP備14017520號(hào)-3