<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 495,  comments - 11,  trackbacks - 0

    ??? 可選實(shí)現(xiàn)技術(shù)

    ??? 當(dāng)然,在上面的原理中并沒(méi)有介紹到所有的java領(lǐng)域可選的遠(yuǎn)程通信協(xié)議了,例如還有EJB采用的ORMI、Spring自己定義的一個(gè)簡(jiǎn)單的Http Invoker等等。

    ??? 看完原理后我們?cè)賮?lái)看看目前java領(lǐng)域可用于實(shí)現(xiàn)遠(yuǎn)程通訊的框架或library,知名的有:JBoss-Remoting、Spring-Remoting、Hessian、Burlap、XFire(Axis)、ActiveMQ、Mina、Mule、EJB3等等,來(lái)對(duì)每種做個(gè)簡(jiǎn)單的介紹和評(píng)價(jià),其實(shí)呢,要做分布式服務(wù)框架,這些東西都是要有非常深刻的了解的,因?yàn)榉植际椒?wù)框架其實(shí)是包含了解決分布式領(lǐng)域以及應(yīng)用層面領(lǐng)域兩方面問(wèn)題的。

    ??? 當(dāng)然,你也可以自己根據(jù)遠(yuǎn)程網(wǎng)絡(luò)通信原理(transport protocol+Net IO)去實(shí)現(xiàn)自己的通訊框架或library.

    ??? 那么在了解這些遠(yuǎn)程通訊的框架或library時(shí),會(huì)帶著什么問(wèn)題去學(xué)習(xí)呢?

    ??? 1、是基于什么協(xié)議實(shí)現(xiàn)的?

    ??? 2、怎么發(fā)起請(qǐng)求?

    ??? 3、怎么將請(qǐng)求轉(zhuǎn)化為符合協(xié)議的格式的?

    ??? 4、使用什么傳輸協(xié)議傳輸?

    ??? 5、響應(yīng)端基于什么機(jī)制來(lái)接收請(qǐng)求?

    ??? 6、怎么將流還原為傳輸格式的?

    ??? 7、處理完畢后怎么回應(yīng)?

    ??? JBoss-Remoting

    ??? Jboss-remoting是由jboss編寫的一個(gè)java領(lǐng)域的遠(yuǎn)程通訊框架,基于此框架,可以很簡(jiǎn)單的實(shí)現(xiàn)基于多種傳輸協(xié)議的java對(duì)象的RPC.

    ??? 直接來(lái)回答問(wèn)題:

    ??? 1、是基于什么協(xié)議實(shí)現(xiàn)的?

    ??? JBoss-Remoting是個(gè)通訊框架,因此它支持多種協(xié)議方式的通信,例如tcp/ip+io方式、rmi方式、http+io方式等。

    ??? 2、怎么發(fā)起請(qǐng)求?

    ??? 在JBoss-Remoting中,只需將需要發(fā)起的請(qǐng)求參數(shù)對(duì)象傳入jboss-remoting的InvocationRequest對(duì)象即可,也可根據(jù)協(xié)議基于InvocationRequest封裝符合需求的InvocationRequest對(duì)象。

    ??? 3、怎么將請(qǐng)求轉(zhuǎn)化為符合協(xié)議的格式的?

    ??? JBoss-Remoting基于Java串行化機(jī)制或JBoss自己的串行化實(shí)現(xiàn)來(lái)將請(qǐng)求轉(zhuǎn)化為對(duì)象字節(jié)流。

    ??? 4、使用什么傳輸協(xié)議傳輸?

    ??? 支持多種傳輸協(xié)議,例如tcp/ip、http等。

    ??? 5、響應(yīng)端基于什么機(jī)制來(lái)接收請(qǐng)求?

    ??? 響應(yīng)端只需將自己的處理對(duì)象注冊(cè)到JBoss-Remoting提供的server端的Connector對(duì)象中即可。

    ??? 6、怎么將流還原為傳輸格式的?

    ??? JBoss-Remoting基于java串行化機(jī)制或jboss自己的串行化實(shí)現(xiàn)來(lái)將請(qǐng)求信息還原為java對(duì)象。

    ??? 7、處理完畢后怎么回應(yīng)?

    ??? 處理完畢后將結(jié)果對(duì)象直接返回即可,jboss-remoting會(huì)將此對(duì)象按照協(xié)議進(jìn)行序列化,返回至調(diào)用端。

    ??? 另外,jboss-remoting支持多種通信方式,例如同步/異步/單向通信等。

     ---------------------------------------------------------------------------------------------------------------------------

    ??? Spring-Remoting

    ??? Spring-remoting是Spring提供java領(lǐng)域的遠(yuǎn)程通訊框架,基于此框架,同樣也可以很簡(jiǎn)單的將普通的spring bean以某種遠(yuǎn)程協(xié)議的方式來(lái)發(fā)布,同樣也可以配置spring bean為遠(yuǎn)程調(diào)用的bean.

      1、是基于什么協(xié)議實(shí)現(xiàn)的?

      和JBoss-Remoting一樣,作為一個(gè)遠(yuǎn)程通訊的框架,Spring通過(guò)集成多種遠(yuǎn)程通訊的library,從而實(shí)現(xiàn)了對(duì)多種協(xié)議的支持,例如rmi、http+io、xml-rpc、binary-rpc等。

      2、怎么發(fā)起請(qǐng)求?

      在Spring中,由于其對(duì)于遠(yuǎn)程調(diào)用的bean采用的是proxy實(shí)現(xiàn),發(fā)起請(qǐng)求完全是通過(guò)服務(wù)接口調(diào)用的方式。

      3、怎么將請(qǐng)求轉(zhuǎn)化為符合協(xié)議的格式的?

      Spring按照協(xié)議方式將請(qǐng)求的對(duì)象信息轉(zhuǎn)化為流,例如Spring Http Invoker是基于Spring自己定義的一個(gè)協(xié)議來(lái)實(shí)現(xiàn)的,傳輸協(xié)議上采用的為http,請(qǐng)求信息是基于java串行化機(jī)制轉(zhuǎn)化為流進(jìn)行傳輸。

      4、使用什么傳輸協(xié)議傳輸?

      支持多種傳輸協(xié)議,例如rmi、http等等。

      5、響應(yīng)端基于什么機(jī)制來(lái)接收請(qǐng)求?

      響應(yīng)端遵循協(xié)議方式來(lái)接收請(qǐng)求,對(duì)于使用者而言,則只需通過(guò)spring的配置方式將普通的spring bean配置為響應(yīng)端或者說(shuō)提供服務(wù)端。

      6、怎么將流還原為傳輸格式的?

      按照協(xié)議方式來(lái)進(jìn)行還原。

      7、處理完畢后怎么回應(yīng)?

      處理完畢后直接返回即可,spring-remoting將根據(jù)協(xié)議方式來(lái)做相應(yīng)的序列化。

      -----------------------------------------------------------------------------------------------------------------------------

      Hessian

      Hessian是由caucho提供的一個(gè)基于binary-RPC實(shí)現(xiàn)的遠(yuǎn)程通訊library。

      1、是基于什么協(xié)議實(shí)現(xiàn)的?

      基于Binary-RPC協(xié)議實(shí)現(xiàn)。

      2、怎么發(fā)起請(qǐng)求?

      需通過(guò)Hessian本身提供的API來(lái)發(fā)起請(qǐng)求。

      3、怎么將請(qǐng)求轉(zhuǎn)化為符合協(xié)議的格式的?

      Hessian通過(guò)其自定義的串行化機(jī)制將請(qǐng)求信息進(jìn)行序列化,產(chǎn)生二進(jìn)制流。

    ??? Hessian基于Http協(xié)議進(jìn)行傳輸。

    ??? 5、響應(yīng)端基于什么機(jī)制來(lái)接收請(qǐng)求?

    ??? 響應(yīng)端根據(jù)Hessian提供的API來(lái)接收請(qǐng)求。

    ??? 6、怎么將流還原為傳輸格式的?

    ??? Hessian根據(jù)其私有的串行化機(jī)制來(lái)將請(qǐng)求信息進(jìn)行反序列化,傳遞給使用者時(shí)已是相應(yīng)的請(qǐng)求信息對(duì)象了。

    ??? 7、處理完畢后怎么回應(yīng)?

    ??? 處理完畢后直接返回,hessian將結(jié)果對(duì)象進(jìn)行序列化,傳輸至調(diào)用端。

     -------------------------------------------------------------------------------------------------------------------------------

    ??? Burlap

    ??? Burlap也是有caucho提供,它和hessian的不同在于,它是基于XML-RPC協(xié)議的。

    ??? 1、是基于什么協(xié)議實(shí)現(xiàn)的?

    ??? 基于XML-RPC協(xié)議實(shí)現(xiàn)。

    ??? 2、怎么發(fā)起請(qǐng)求?

    ??? 根據(jù)Burlap提供的API.

    ??? 3、怎么將請(qǐng)求轉(zhuǎn)化為符合協(xié)議的格式的?

    ??? 將請(qǐng)求信息轉(zhuǎn)化為符合協(xié)議的XML格式,轉(zhuǎn)化為流進(jìn)行傳輸。

    ??? 4、使用什么傳輸協(xié)議傳輸?

    ??? Http協(xié)議。

    ??? 5、響應(yīng)端基于什么機(jī)制來(lái)接收請(qǐng)求?

    ??? 監(jiān)聽(tīng)Http請(qǐng)求。

    ??? 6、怎么將流還原為傳輸格式的?

    ??? 根據(jù)XML-RPC協(xié)議進(jìn)行還原。

    ??? 7、處理完畢后怎么回應(yīng)?

    ??? 返回結(jié)果寫入XML中,由Burlap返回至調(diào)用端。

     -----------------------------------------------------------------------------------------------------------------------------

    posted on 2009-08-15 15:08 jadmin 閱讀(89) 評(píng)論(0)  編輯  收藏

    只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 亚洲色WWW成人永久网址| 免费a级毛片视频| 亚洲精品中文字幕无乱码| 一个人免费视频观看在线www| 亚洲精品自产拍在线观看| 伊人久久大香线蕉免费视频| 亚洲AV综合色区无码一区| APP在线免费观看视频| 久久久久久久亚洲Av无码| 在免费jizzjizz在线播| 亚洲国产精品综合久久20| 大陆一级毛片免费视频观看| 美女被羞羞网站免费下载| 亚洲人成无码www久久久| 99在线视频免费观看| 91亚洲国产在人线播放午夜| 在线看片免费不卡人成视频| 色婷婷亚洲一区二区三区| 国产亚洲美日韩AV中文字幕无码成人| aa级毛片毛片免费观看久| 亚洲福利电影一区二区?| 免费毛片在线看片免费丝瓜视频 | 亚洲∧v久久久无码精品| **实干一级毛片aa免费| 亚洲高清有码中文字| 亚洲午夜日韩高清一区| 欧洲人成在线免费| 亚洲日本VA中文字幕久久道具| 亚洲av日韩av欧v在线天堂| 最近免费mv在线观看动漫| 中文文字幕文字幕亚洲色| 亚洲高清国产拍精品青青草原 | 二个人看的www免费视频| 久久亚洲AV成人无码电影| 免费无码又爽又刺激高潮| 成人毛片100免费观看| 亚洲xxxx18| 亚洲国产无套无码av电影| 蜜桃视频在线观看免费网址入口| 午夜成人无码福利免费视频| 日韩亚洲AV无码一区二区不卡|