<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

    ??? XFire、Axis

    ??? XFire、Axis是Webservice的實(shí)現(xiàn)框架,WebService可算是一個(gè)完整的SOA架構(gòu)實(shí)現(xiàn)標(biāo)準(zhǔn)了,因此采用XFire、Axis這些也就意味著是采用webservice方式了。

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

      基于SOAP協(xié)議。

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

      獲取到遠(yuǎn)端service的proxy后直接調(diào)用。

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

      將請(qǐng)求信息轉(zhuǎn)化為遵循SOAP協(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ù)SOAP協(xié)議進(jìn)行還原。

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

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

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

      ActiveMQ

      ActiveMQ是JMS的實(shí)現(xiàn),基于JMS這類消息機(jī)制實(shí)現(xiàn)遠(yuǎn)程通訊是一種不錯(cuò)的選擇,畢竟消息機(jī)制本身的功能使得基于它可以很容易的去實(shí)現(xiàn)同步/異步/單向調(diào)用等,而且消息機(jī)制從容錯(cuò)角度上來(lái)說(shuō)也是個(gè)不錯(cuò)的選擇,這是Erlang能夠做到容錯(cuò)的重要基礎(chǔ)。

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

      基于JMS協(xié)議。

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

      遵循JMS API發(fā)起請(qǐng)求。

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

      不太清楚,猜想應(yīng)該是二進(jìn)制流。

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

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

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

      監(jiān)聽(tīng)符合協(xié)議的端口。

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

      同問(wèn)題3。

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

      遵循JMS API生成消息,并寫入JMS Queue中。

      基于JMS此類機(jī)制實(shí)現(xiàn)遠(yuǎn)程通訊的例子有Spring-Intergration、Mule、Lingo等等。

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

    ??? Mina

    ??? Mina是Apache提供的通訊框架,在之前一直沒(méi)有提到網(wǎng)絡(luò)IO這塊,之前提及的框架或library基本都是基于BIO的,而Mina是采用NIO的,NIO在并發(fā)量增長(zhǎng)時(shí)對(duì)比BIO而言會(huì)有明顯的性能提升,而java性能的提升,與其NIO這塊與OS的緊密結(jié)合是有不小的關(guān)系的。

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

    ??? 可選的傳輸協(xié)議+NIO.

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

    ??? 通過(guò)Mina提供的Client API.

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

    ??? Mina遵循java串行化機(jī)制對(duì)請(qǐng)求對(duì)象進(jìn)行序列化。

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

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

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

    ??? 以NIO的方式監(jiān)聽(tīng)協(xié)議端口。

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

    ??? 遵循java串行化機(jī)制對(duì)請(qǐng)求對(duì)象進(jìn)行反序列化。

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

    ??? 遵循Mina API進(jìn)行返回。

    ??? MINA是NIO方式的,因此支持異步調(diào)用是毫無(wú)懸念的。

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

    ??? EJB

    ??? EJB最突出的在于其分布式,EJB采用的是ORMI協(xié)議,和RMI協(xié)議是差不多的,但EJB在分布式通訊的安全控制、transport pool、smart proxy等方面的突出使得其在分布式領(lǐng)域是不可忽視的力量。

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

    ??? 基于ORMI協(xié)議。

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

    ??? EJB調(diào)用。

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

    ??? 遵循java串行化機(jī)制對(duì)請(qǐng)求對(duì)象進(jìn)行序列化。

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

    ??? tcp/ip.

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

    ??? 監(jiān)聽(tīng)協(xié)議端口。

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

    ??? 遵循java串行化機(jī)制對(duì)請(qǐng)求對(duì)象進(jìn)行反序列化。

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

    ??? 直接返回處理對(duì)象即可。

    ??? 在之前的分布式服務(wù)框架系列的文章中對(duì)于jndi有誤導(dǎo)的嫌疑,在這篇blog中也順帶的提下jndi的機(jī)制,由于JNDI取決于具體的實(shí)現(xiàn),在這里只能是講解下jboss的jndi的實(shí)現(xiàn)了。

    ??? 在將對(duì)象實(shí)例綁定到j(luò)boss jnp server后,當(dāng)遠(yuǎn)程端采用context.lookup()方式獲取遠(yuǎn)程對(duì)象實(shí)例并開(kāi)始調(diào)用時(shí),jboss jndi的實(shí)現(xiàn)方法是從jnp server上獲取對(duì)象實(shí)例,將其序列化回本地,然后在本地進(jìn)行反序列化,之后在本地進(jìn)行類調(diào)用。

    ??? 通過(guò)這個(gè)機(jī)制,就可以知道了,本地其實(shí)是必須有綁定到j(luò)boss上的對(duì)象實(shí)例的class的,否則反序列化的時(shí)候肯定就失敗了,而遠(yuǎn)程通訊需要做到的是在遠(yuǎn)程執(zhí)行某動(dòng)作,并獲取到相應(yīng)的結(jié)果,可見(jiàn)純粹基于JNDI是無(wú)法實(shí)現(xiàn)遠(yuǎn)程通訊的。

    ??? 但JNDI也是實(shí)現(xiàn)分布式服務(wù)框架一個(gè)很關(guān)鍵的技術(shù)點(diǎn),因?yàn)榭梢酝ㄟ^(guò)它來(lái)實(shí)現(xiàn)透明化的遠(yuǎn)端和本地調(diào)用,就像ejb,另外它也是個(gè)很好的隱藏實(shí)際部署機(jī)制(就像datasource)等的方案。

    ??? 總結(jié)

    ??? 由上一系列的分析可知,在遠(yuǎn)程通訊領(lǐng)域中,涉及的知識(shí)點(diǎn)還是相當(dāng)?shù)亩嗟?,例如有:通信協(xié)議或遠(yuǎn)程調(diào)用協(xié)議(tcp/http/udp/rmi/xml-rpc etc.)、消息機(jī)制、網(wǎng)絡(luò)IO(BIO/NIO/AIO)、MultiThread、本地調(diào)用與遠(yuǎn)程調(diào)用的透明化方案(涉及java classloader、Dynamic Proxy、Unit Test etc.)、異步與同步調(diào)用、網(wǎng)絡(luò)通信處理機(jī)制(自動(dòng)重連、廣播、異常、池處理等等)、Java Serialization (各種協(xié)議的私有序列化機(jī)制等)、各種框架的實(shí)現(xiàn)原理(傳輸格式、如何將傳輸格式轉(zhuǎn)化為流的、如何將請(qǐng)求信息轉(zhuǎn)化為傳輸格式的、如何接收流的、如何將流還原為傳輸格式的等等),要精通其中的哪些東西,得根據(jù)實(shí)際需求來(lái)決定了,只有在了解了原理的情況下才能很容易的做出選擇,甚至可以根據(jù)需求做私有的遠(yuǎn)程通訊協(xié)議,對(duì)于從事分布式服務(wù)平臺(tái)或開(kāi)發(fā)較大型的分布式應(yīng)用的人而言,我覺(jué)得至少上面提及的知識(shí)點(diǎn)是需要比較了解的。

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

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


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 在线观看片免费人成视频无码| 日韩国产欧美亚洲v片| 亚洲人xxx日本人18| 亚洲av永久无码| 一个人看的www免费高清| 久久久久久久岛国免费播放 | 一区二区三区福利视频免费观看| 亚洲w码欧洲s码免费| 免费看美女让人桶尿口| 亚洲一级片免费看| 亚洲国产女人aaa毛片在线| 亚洲ts人妖网站| 性生大片视频免费观看一级| 麻豆精品不卡国产免费看| 无码永久免费AV网站| 亚洲午夜AV无码专区在线播放 | 亚洲精品在线免费看| 国产精品亚洲精品日韩动图 | 特黄aa级毛片免费视频播放| 久久这里只精品99re免费| 成人国产mv免费视频| 亚洲成年人在线观看| 亚洲av成人无码网站…| 久久国产精品免费视频| 国产免费131美女视频| 亚洲国产成人私人影院| 色婷婷六月亚洲综合香蕉| 久久久久久久岛国免费播放 | 欧亚一级毛片免费看| 亚洲视频在线免费看| 亚洲国产成人精品无码久久久久久综合| 亚洲av日韩av天堂影片精品| 亚洲AV无码专区在线电影成人| 国产在线一区二区综合免费视频| 精品国产免费观看| 亚洲一区中文字幕久久| 欧洲乱码伦视频免费国产 | 国产精品亚洲A∨天堂不卡| 亚洲日韩看片无码电影| 日韩精品极品视频在线观看免费| 亚洲?V乱码久久精品蜜桃|