青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

sherrylso

C++博客 首頁 新隨筆 聯(lián)系 聚合 管理
  18 Posts :: 0 Stories :: 124 Comments :: 0 Trackbacks
     一般來說,基于CS(client-server)軟件架構(gòu)的開發(fā)技術(shù)有很多種。比較常用的有:基于socket的網(wǎng)絡(luò)編程、RPC、基于Java技術(shù)的RMI(當(dāng)然C#也有類似技術(shù))、CORBA等。在這里我們只是對(duì)基于socket的網(wǎng)絡(luò)編程與RMI作個(gè)對(duì)比,有助于我們了解它們各自的應(yīng)用領(lǐng)域,幫助我們?cè)诿鎸?duì)一個(gè)具體問題的時(shí)候選用適合的技術(shù)。另外,本文所做的討論可以認(rèn)為是脫離了語言層面的東西,只是對(duì)技術(shù)的本身做一個(gè)討論,無關(guān)乎你是用C++、C#或Java 在開發(fā)。
一、RMI技術(shù)簡(jiǎn)介
        本文就以Java為例,簡(jiǎn)單介紹一下RMI技術(shù)。
        從Java1.1開始,遠(yuǎn)程方法調(diào)用作為Java分布式對(duì)象技術(shù)成為Java核心的API之一(在java.rmi.* 包)。RMI的引入,使得Java程序之間能夠?qū)崿F(xiàn)靈活的,可擴(kuò)展的分布式通信。RMI允許Java對(duì)象存在于多個(gè)不同的地址空間,分布在不同的Java虛擬機(jī)上。每一個(gè)地址空間可以在同一臺(tái)主機(jī)上或者網(wǎng)絡(luò)上不同的計(jì)算機(jī)上。由于遠(yuǎn)程方法調(diào)用跨越不同的虛擬機(jī)邊界到不同的指定的地址空間,所以沒有對(duì)象共享的全局變量,這就需要對(duì)象序列化(Object Serialization)API,它使得Java對(duì)象能夠在不同的JVM之間傳遞。對(duì)象序列化是特別為Java的對(duì)象設(shè)計(jì)的,這就意味著Java程序中的對(duì)象可以作為對(duì)象參數(shù)存取(可序列化的對(duì)象必須實(shí)現(xiàn)Serializable接口)。結(jié)合RMI和對(duì)象序列化機(jī)制,就可以訪問越過本地Java虛擬機(jī)邊界的對(duì)象以及數(shù)據(jù)。通過RMI,可以調(diào)用遠(yuǎn)程對(duì)象的遠(yuǎn)程方法,而通過Java對(duì)象序列化機(jī)制可以將對(duì)象傳遞給這些方法。
        最基本的Java模型并沒有提供將遠(yuǎn)程主機(jī)上的Java對(duì)象看作本地Java程序地址空間一部分的能力,而RMI禰補(bǔ)了這一不足。另外,由于Java與硬件平臺(tái)無關(guān)的特性,無論是同構(gòu)的系統(tǒng)還是異構(gòu)的系統(tǒng),RMI不需移植就可以順利運(yùn)行。
       RMI為Java平臺(tái)的分布式計(jì)算提供了一個(gè)簡(jiǎn)單而直接的模型。因?yàn)镴ava的RMI技術(shù)是基于Java平臺(tái)的,所以它將Java平臺(tái)的安全性和可移植性等優(yōu)點(diǎn)帶到了分布式計(jì)算中。RMI大大擴(kuò)展Java的網(wǎng)絡(luò)計(jì)算能力,它為編寫基于分布式對(duì)象技術(shù)的企業(yè)級(jí)Internet/Intranet應(yīng)用提供了強(qiáng)大的系統(tǒng)平臺(tái)支持。
      Java RMI體系結(jié)構(gòu)如下圖:


二、基于socket的網(wǎng)絡(luò)編程
        當(dāng)你使用socket進(jìn)行網(wǎng)絡(luò)應(yīng)用開發(fā)的時(shí)候,一般的思路是“消息驅(qū)動(dòng)邏輯”,即這樣的軟件系統(tǒng)一般具有以下特點(diǎn):
       (1) 客戶端與服務(wù)器端依靠消息進(jìn)行通訊。
       (2) 客戶端或者服務(wù)器端都需要一個(gè)消息派遣器,將消息投遞給具體的massage handler
       (3) 客戶端或者服務(wù)器端利用massage handler進(jìn)行邏輯事務(wù)處理
 見下圖:

        使用socket開發(fā)的軟件系統(tǒng),從技術(shù)的本質(zhì)上來講,有以下幾個(gè)特點(diǎn):
        (1) 基于TCP協(xié)議的通訊
        (2) 應(yīng)用程序本身需要提供對(duì)消息的序列化處理(所謂的序列化指的是將消息輸出到網(wǎng)絡(luò)流中)
        (3) 客戶端與服務(wù)器端需要事先商議好它們之間的通訊協(xié)議即它們交互的消息格式
        (4) 由于是消息驅(qū)動(dòng)邏輯,從本質(zhì)上決定了這樣的編程模式很難面向?qū)ο蠡?br>三、RMI Vs Sochet
        RMI技術(shù)比較socket的網(wǎng)絡(luò)編程主要有以下幾個(gè)方面:
        第一、.RMI是面向?qū)ο蟮模笳卟皇恰?br>        第二、.RMI是與語言相綁定的。比如當(dāng)你使用Java RMI技術(shù)的時(shí)候,客戶端與服務(wù)器端都必須使用Java開發(fā)。而socket的網(wǎng)絡(luò)編程是使用獨(dú)立于開發(fā)語言的,甚至獨(dú)立于平臺(tái)。基于socket的網(wǎng)絡(luò)編程,客戶端與服務(wù)器端可以使用不同開發(fā)語言和不同的平臺(tái)。
       第三、從網(wǎng)絡(luò)協(xié)議棧的觀點(diǎn)來看,RMI與socket的網(wǎng)絡(luò)編程處于不同層次上。基于socket的網(wǎng)絡(luò)編程位于TCP協(xié)議之上,而RMI在TCP協(xié)議之上,又定義了自己的應(yīng)用協(xié)議,其傳輸層采用的是Java遠(yuǎn)程方法協(xié)議(JRMP)。可見,在網(wǎng)絡(luò)協(xié)議棧上,基于RMI的應(yīng)用位置更高一些,這也決定了,與socket的網(wǎng)絡(luò)編程相比,RMI會(huì)喪失一些靈活性和可控性,但是好處是它帶給了應(yīng)用開發(fā)者更多的簡(jiǎn)潔,方便和易用。比如:如果你用的是RMI,你不需要關(guān)心消息是怎么序列化的,你只需要像本地方法調(diào)用一樣,使用RMI。代價(jià)是:應(yīng)用開發(fā)者無法很好地控制消息的序列化機(jī)制。
      第四、這是最后一點(diǎn)不同,我認(rèn)為也是比較重要的一點(diǎn),就是兩種方法的性能比較,其往往決定著你將使用那種技術(shù)來開發(fā)你的應(yīng)用。以下引用Adrian Reber在Network-programming with RMI文中對(duì)TCP和RMI所做的一個(gè)比較,其做的實(shí)驗(yàn)主要是對(duì)兩者在網(wǎng)絡(luò)傳輸?shù)膸捝献鞯膶?duì)比: 在網(wǎng)絡(luò)上傳輸2 byte的有效數(shù)據(jù),對(duì)于TCP而言,總共有478 byte被額外傳輸,而對(duì)于RMI, 1645byte被額外傳輸。
以下是兩者的trace結(jié)果:
TCP:
46037 > 12345 [SYN] Seq=801611567 Ack=0 Win=5840 Len=0
12345 > 46037 [SYN, ACK] Seq=266515894 Ack=801611568 Win=10136 Len=0
46037 > 12345 [ACK] Seq=801611568 Ack=266515895 Win=5840 Len=0
12345 > 46037 [PSH, ACK] Seq=266515895 Ack=801611568 Win=10136 Len=1
46037 > 12345 [ACK] Seq=801611568 Ack=266515896 Win=5840 Len=0
12345 > 46037 [FIN, PSH, ACK] Seq=266515896 Ack=801611568 Win=10136 Len=1
46037 > 12345 [RST, ACK] Seq=801611568 Ack=266515898 Win=5840 Len=0
RMI:
42749 > rmiregistry [SYN, ECN, CWR]
Seq=3740552479 Ack=0 Win=32767 Len=0
rmiregistry > 42749 [SYN, ACK, ECN]
Seq=3749262223 Ack=3740552480 Win=32767 Len=0
42749 > rmiregistry [ACK] Seq=3740552480 Ack=3749262224 Win=32767 Len=0
JRMI, Version: 2, StreamProtocol
rmiregistry > 42749 [ACK] Seq=3749262224 Ack=3740552487 Win=32767 Len=0
JRMI, ProtocolAck
42749 > rmiregistry [ACK] Seq=3740552487 Ack=3749262240 Win=32767 Len=0
Continuation
rmiregistry > 42749 [ACK] Seq=3749262240 Ack=3740552506 Win=32767 Len=0
JRMI, Call
rmiregistry > 42749 [ACK] Seq=3749262240 Ack=3740552556 Win=32767 Len=0
JRMI, ReturnData
42749 > rmiregistry [ACK] Seq=3740552556 Ack=3749262442 Win=32767 Len=0
JRMI, Ping
JRMI, PingAck
42749 > rmiregistry [ACK] Seq=3740552557 Ack=3749262443 Win=32767 Len=0
JRMI, DgcAck
42749 > rmiregistry [FIN, ACK]
Seq=3740552572 Ack=3749262443 Win=32767 Len=0
rmiregistry > 42749 [FIN, ACK]
Seq=3749262443 Ack=3740552573 Win=32767 Len=0
42749 > rmiregistry [ACK] Seq=3740552573 Ack=3749262444 Win=32767 Len=0
        實(shí)驗(yàn)的結(jié)果是:RMI與TCP based socket相比,傳輸相同的有效數(shù)據(jù),RMI需要占用更多的網(wǎng)絡(luò)帶寬(protocol overhead)。從這里,我們可以得出一個(gè)一般性的結(jié)論:RMI主要是用于遠(yuǎn)程方法的”調(diào)用“(RMI是多么的名符其實(shí):)),其技術(shù)內(nèi)涵強(qiáng)調(diào)的是“調(diào)用”,基于此,我能想到的是:移動(dòng)計(jì)算,和遠(yuǎn)程控制,當(dāng)你的應(yīng)用不需要在client與server之間傳輸大量的數(shù)據(jù)時(shí),RMI是較好的選擇,它簡(jiǎn)潔、易于開發(fā)。但是,一旦你的應(yīng)用需要在client與server之間傳輸大量的數(shù)據(jù),極端的,比如FTP應(yīng)用,則RMI是不適合的,我們應(yīng)該使用socket。

四、參考資料:
Network-programming with RMI, by Adrian Reber, URL:
http://42.fht-esslingen.de/~adrian/master/rmi.pdf
posted on 2007-07-28 19:06 愛上龍卷風(fēng) 閱讀(5689) 評(píng)論(2)  編輯 收藏 引用

Feedback

# re: socket vs RMI, 選擇? 2007-07-29 12:32 pass86
恩,好文,支持。個(gè)人偏向于SOCKET,JAVA的效率問題,實(shí)在不讓人滿意。  回復(fù)  更多評(píng)論
  

# re: socket vs RMI, 選擇? 2007-07-30 22:22 愛上龍卷風(fēng)
事實(shí)上,當(dāng)你在開發(fā)一個(gè)cs架構(gòu)的應(yīng)用的時(shí)候,的確會(huì)有這樣兩難的選擇,是使用Socket network programming還是RMI,這樣的對(duì)比是有意義的,基于這一點(diǎn),Socket network programming和RMI是對(duì)同一個(gè)問題的不同技術(shù)解決方案,當(dāng)然有很多的可比性。  回復(fù)  更多評(píng)論
  


只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。
網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            亚洲青色在线| 亚洲国产精品免费| 欧美日韩精品免费| 欧美另类99xxxxx| 国产精品户外野外| 国产精品综合| 红桃视频一区| 亚洲精品一区二区三区樱花| 性欧美xxxx大乳国产app| 欧美亚洲综合网| 亚洲欧美日韩综合一区| 久久精品最新地址| 欧美精品18+| 国产一区二区三区最好精华液| 亚洲精品123区| 久久福利资源站| 亚洲精品三级| 午夜精品剧场| 亚洲第一毛片| 欧美一区二区精品久久911| 最新国产精品拍自在线播放| 在线看一区二区| 亚洲国产精品久久久久婷婷老年 | 性欧美暴力猛交另类hd| 亚洲伊人久久综合| 欧美精品v日韩精品v国产精品 | 在线国产欧美| 99精品国产热久久91蜜凸| 欧美诱惑福利视频| 国产精品theporn88| 亚洲精品黄网在线观看| 亚洲一区二区三区精品动漫| 在线观看亚洲| 欧美xart系列在线观看| 香蕉久久夜色精品国产| 美女精品国产| 麻豆久久婷婷| 在线看片第一页欧美| 亚洲欧美一区二区三区在线| 亚洲福利视频一区二区| 小黄鸭视频精品导航| 亚洲第一毛片| 午夜久久久久久久久久一区二区| 亚洲精品影视| 亚洲国产91精品在线观看| 国产乱码精品一区二区三区不卡| 亚洲国产天堂久久综合| 国产一区二区三区四区| 亚洲一二三区视频在线观看| 欧美色另类天堂2015| 中文久久乱码一区二区| 日韩一级精品视频在线观看| 欧美三级午夜理伦三级中文幕| 免费成年人欧美视频| 在线观看久久av| 国产欧美丝祙| 久久成人精品视频| 欧美视频日韩视频| 亚洲国产精品视频| 在线观看免费视频综合| 欧美在线日韩在线| 欧美一区二区私人影院日本 | 亚洲人成亚洲人成在线观看| 欧美精品三级| 欧美国产一区二区| 欧美精品亚洲二区| 亚洲国产欧美日韩| 亚洲激情小视频| 麻豆av一区二区三区久久| 久久色中文字幕| 美日韩丰满少妇在线观看| 毛片基地黄久久久久久天堂| 欧美日韩日日骚| 久久久国产视频91| 欧美精品在线看| 亚洲国产精品女人久久久| 亚洲九九九在线观看| 欧美风情在线| 欧美专区福利在线| 国产亚洲欧美aaaa| 久久久精品日韩欧美| 男女精品视频| 最新国产成人在线观看| 欧美精品在欧美一区二区少妇| 亚洲精品视频免费观看| 亚洲免费一级电影| 久久综合亚洲社区| 亚洲欧美激情在线视频| 国产乱子伦一区二区三区国色天香| 午夜精品视频一区| 老司机成人网| 99亚洲一区二区| 久久久久高清| 欧美一区二区三区免费观看| 激情综合视频| 亚洲永久免费精品| 美腿丝袜亚洲色图| 亚洲视频在线播放| 国产日韩一区欧美| 亚洲手机成人高清视频| 久久精品亚洲精品| 国产精品中文字幕在线观看| 久久本道综合色狠狠五月| 欧美一区激情| 亚洲高清不卡在线| 国产精品第一页第二页第三页| 久久精品一级爱片| 亚洲人www| 久久九九精品| 一区二区日韩伦理片| 欧美日本国产一区| 久久久www成人免费精品| 亚洲精品1区2区| 久久久久久久久久久久久女国产乱 | 久久综合久久综合久久| 国产人妖伪娘一区91| 欧美激情在线狂野欧美精品| 欧美一级大片在线免费观看| 欧美一级在线视频| 亚洲激情黄色| 国外精品视频| 国产精品久久久久久久久免费桃花| 一本色道久久88综合日韩精品| 一区二区福利| 136国产福利精品导航网址应用| 国产精品久久久久aaaa九色| 欧美大片va欧美在线播放| 亚洲国产精品成人综合| 久久久久久噜噜噜久久久精品| 一区二区三区黄色| 亚洲美女一区| 亚洲国产老妈| 一区在线观看视频| 国模大胆一区二区三区| 久久性天堂网| 亚洲精选91| 91久久国产综合久久| 欧美激情第1页| 久久免费99精品久久久久久| 欧美一区二区三区免费观看视频| 亚洲影视综合| 国产真实精品久久二三区| 国产精品拍天天在线| 久久激情中文| 久久国产精品99国产精| 欧美一区二区三区电影在线观看| 在线中文字幕日韩| 久久天堂成人| 老司机精品导航| 老司机aⅴ在线精品导航| 久久综合激情| 欧美大片va欧美在线播放| 一本色道久久| 亚洲视频一区在线观看| 亚洲永久免费av| 亚洲欧美一区二区三区久久| 久久aⅴ国产欧美74aaa| 久久精品网址| 蜜臀久久99精品久久久久久9| 快播亚洲色图| 欧美激情亚洲视频| 亚洲另类一区二区| 国产婷婷97碰碰久久人人蜜臀| 国产精品高清免费在线观看| 国产精品亚洲精品| 国产丝袜一区二区| 99热免费精品在线观看| 欧美成人网在线| 久久男人资源视频| 欧美国内亚洲| 国产精品电影网站| 国产综合网站| 亚洲三级影片| 欧美一区二区三区免费看 | 亚洲精品免费在线播放| 亚洲男女自偷自拍| 美女主播一区| 亚洲乱码久久| 久久精品国产一区二区三| 欧美激情性爽国产精品17p| 国产精品久久二区二区| 在线成人av| 亚洲在线日韩| 欧美大秀在线观看| 亚洲制服av| 99精品久久| 久久久久欧美精品| 国产精品va在线播放| 亚洲二区在线视频| 亚洲免费一级电影| 亚洲电影欧美电影有声小说| 亚洲天堂黄色| 欧美高清自拍一区| 国产一级精品aaaaa看| 一区二区三区欧美视频| 猛干欧美女孩| 性欧美videos另类喷潮| 欧美高清视频一区二区三区在线观看| 国产九色精品成人porny| 一区二区三区四区五区精品|