posts - 66,  comments - 40,  trackbacks - 0
          JXTA技術(shù)與應(yīng)用發(fā)展

          1、? 概述
          2、? JXTA的設(shè)計(jì)目標(biāo)及有關(guān)概念
          3、? JXTA協(xié)議
          4、? JXTA應(yīng)用與發(fā)展


          一、概述

          美國Sun公司自從1995年向世界推出了Java語言以來,每年都會(huì)在Java領(lǐng)域里推出新的技術(shù),從JavaCard、J2ME到J2EE、JINI、JavaTV,推動(dòng)了Java技術(shù)的發(fā)展和應(yīng)用。在最近幾次的舊金山的JavaOne會(huì)議中,JXTA是該公司向業(yè)界推出的較新技術(shù)。該技術(shù)的目的是為P2P的網(wǎng)絡(luò)應(yīng)用開發(fā)提供一個(gè)統(tǒng)一的平臺(tái),而且為了鼓勵(lì)和支持該技術(shù)的發(fā)展,JXTA項(xiàng)目采用了開放源碼的方式,因此吸引了大量業(yè)界人士參與到JXTA技術(shù)的研究與應(yīng)用當(dāng)中,JXTA Community(www.jxta.org)就是人氣很旺的一個(gè)Java技術(shù)研究開發(fā)的網(wǎng)站。

          JXTA最早起源于2000年的夏天,現(xiàn)在大家把JXTA看成是P2P的平臺(tái),JXTA的目標(biāo)是要解決幾個(gè)技術(shù)與商業(yè)上的難題。第一是解決眾多P2P系統(tǒng)互不相通的問題。2000年,是P2P突飛猛進(jìn)的高潮年,但高潮背后卻是許多小公司用自己的封閉系統(tǒng)試圖在Internet上圈一塊地。Sun認(rèn)為,只有互通才能真正發(fā)揮出P2P的優(yōu)勢(shì),就好像IM(Instant Messaging),能互連的人越多,越有價(jià)值。所以Sun決定出面發(fā)布一個(gè)平臺(tái),使所有P2P系統(tǒng)都能連接起來,只有Sun這樣位置中立、但在技術(shù)上有雄存實(shí)力被大家認(rèn)可的公司才有希望做成這一平臺(tái)。

          JXTA的另外一個(gè)目的就是找尋一套數(shù)量最少、概念最簡(jiǎn)單的系統(tǒng)構(gòu)成的“積木”。如果成功,這幾塊積木就會(huì)是今后大家構(gòu)架信息系統(tǒng)的基本模塊,從而幫助人們擺脫像Windows或TCP/IP這樣的傳統(tǒng)軟件帶來的包袱。Java、Jini和JXTA像是J的三部曲,Java取自著名咖啡產(chǎn)地名,Jini是genie(精靈) 的諧音,而JXTA則是Juxtapose的縮寫。當(dāng)時(shí)BillJoy用grep把所有J打頭的英文詞找出來,juxtapose躍然紙上,很是巧妙。既表現(xiàn)了P2P或肩并肩的意義,又說明JXTA不局限于P2P。但JXTA與眾不同,它是由一系列網(wǎng)絡(luò)協(xié)議構(gòu)成的,用任何語言都可以實(shí)現(xiàn),并不只限于Java,只有徹底獨(dú)立于操作系統(tǒng)、網(wǎng)絡(luò)傳輸技術(shù)以及程序設(shè)計(jì)語言,才真正達(dá)到了跨平臺(tái),而這樣的技術(shù),最容易受到業(yè)界的認(rèn)同。

          JXTA是項(xiàng)目創(chuàng)始人、Sun首席科學(xué)家BillJoy二十多年醞釀的結(jié)晶,“JXTA技術(shù)是網(wǎng)絡(luò)編程和計(jì)算的平臺(tái),用以解決現(xiàn)代分布計(jì)算尤其是點(diǎn)對(duì)點(diǎn)(P2P)計(jì)算中出現(xiàn)的問題。”JXTA研究項(xiàng)目,將提供使用戶更便捷地訪問連接在互聯(lián)網(wǎng)上的個(gè)人電腦資源的新框架,從而進(jìn)一步拓展互聯(lián)網(wǎng)的空間。同時(shí)JXTA也是Sun的ONE互聯(lián)網(wǎng)戰(zhàn)略的延續(xù),并且將更積極的姿態(tài)與Microsoft的.Net戰(zhàn)略和Hailstorm計(jì)劃一爭(zhēng)高低。Joy指出,JXTA可能是Sun One平臺(tái)最簡(jiǎn)單的一部分,而不是打算將它變成象微軟的.Net那樣復(fù)雜的東西,而且JXTA也將是開放源代碼的團(tuán)體;有別于而微軟的Passport和Hailstorm技術(shù)都是申請(qǐng)專利的專有技術(shù),Sun希望通過公開JXTA源代碼的方式,成為微軟最有力的競(jìng)爭(zhēng)對(duì)手,在公開源代碼的領(lǐng)域中,Linux和Apache是卓越的成功典范,Sun也希望JXTA能鑄造新的成功。

          JXTA技術(shù)提供了基礎(chǔ)性的機(jī)制解決當(dāng)前分布計(jì)算應(yīng)用中面臨的問題,實(shí)現(xiàn)新一代統(tǒng)一、安全、互操作以及異構(gòu)的應(yīng)用。目前它支持基于Java技術(shù)的平臺(tái)和系統(tǒng)。而將來JATX技術(shù)將不受到內(nèi)存的限制而支持更多小型移動(dòng)設(shè)備。JXTA通過Java技術(shù)和XML數(shù)據(jù)表達(dá)的結(jié)合,提供了強(qiáng)大的功能使得垂直應(yīng)用得以交互,并且可以克服目前P2P軟件中的限制。同時(shí),通過小型、簡(jiǎn)單、便于開發(fā)的構(gòu)造模塊,JXTA將使開發(fā)者從建立各自框架的復(fù)雜工作得以解放,可以潛心關(guān)注于建設(shè)各類新穎、創(chuàng)造性的、分布式計(jì)算應(yīng)用。

          二、JXTA 的設(shè)計(jì)目標(biāo)及有關(guān)概念

          一)P2P技術(shù)

          P2P即Peer to Peer,稱為對(duì)等連接或?qū)Φ染W(wǎng)絡(luò),P2P技術(shù)主要指由硬件形成連接后的信息控制技術(shù),其代表形式是軟件;P2P并不是一個(gè)新的概念,因特網(wǎng)上的許多核心協(xié)議本身就是P2P的應(yīng)用程序,因特網(wǎng)的發(fā)展過程也說明了這一點(diǎn),我們可以通過下述特性來描述P2P:

          • Peer知道其他Peer的存在。
          • Peer在一個(gè)虛擬的網(wǎng)絡(luò)中運(yùn)行。
          • Peer同時(shí)具有Client和Server的特點(diǎn)。
          • 多個(gè)Peer可以組成為一個(gè)Peer組。

          從因特網(wǎng)的發(fā)展來看,目前已經(jīng)完全有可能開發(fā)新的P2P應(yīng)用程序來補(bǔ)充和取代現(xiàn)有的集中式應(yīng)用程序,文件共享程序和聊天程序的成功已經(jīng)吸引了許多程序員加入P2P程序的開發(fā)。而且隨著技術(shù)的發(fā)展,P2P所面臨的安全、控制和網(wǎng)絡(luò)使用的問題將逐步解決。P2P系統(tǒng)可以提供如下功能:

          • Peer的獨(dú)立控制能力----用戶將變得非常強(qiáng)大,可以創(chuàng)建自己的組和虛擬網(wǎng)絡(luò),而且可以非常容易地發(fā)布自己的資源。
          • 可靠性----P2P系統(tǒng)是任何人都可以獲得的可靠系統(tǒng)。
          • 擴(kuò)展性----P2P系統(tǒng)的用戶數(shù)量可以急劇膨脹,可以與最大的集中式系統(tǒng)媲美。
          • 性能----各種資源之間可以協(xié)同工作來有效地解決問題。

          P2P是一種基于互聯(lián)網(wǎng)環(huán)境的新的應(yīng)用型技術(shù),主要為軟件技術(shù),P2P網(wǎng)絡(luò)應(yīng)用發(fā)展可能要涉及到4個(gè)方面關(guān)鍵技術(shù):

          1) 對(duì)于互聯(lián)網(wǎng)上眾多計(jì)算機(jī),P2P應(yīng)用比其他應(yīng)用要更多考慮那些低端PC的互聯(lián),它們不具備服務(wù)器那樣強(qiáng)的聯(lián)網(wǎng)能力,同時(shí)對(duì)于以往的P2P應(yīng)用技術(shù),現(xiàn)在的硬件環(huán)境已經(jīng)更為復(fù)雜,這樣在通信基礎(chǔ)方面,P2P必須提供在現(xiàn)有硬件邏輯和底層通信協(xié)議上的端到端定位(尋址)和握手技術(shù),建立穩(wěn)定的連接。涉及的技術(shù)有IP地址解析、NAT路由及防火墻。

          2) 在應(yīng)用層面上,如果兩個(gè)Peer分別代表兩家不同的公司,而且它們已經(jīng)通過互聯(lián)網(wǎng)建立連接,那么一方的信息就必須為另一方所識(shí)別,所以當(dāng)前互聯(lián)網(wǎng)上關(guān)于數(shù)據(jù)描述和交換的協(xié)議,如XML、SOAP、UDDI等都是一個(gè)完善的P2P軟件所要考慮的。

          3) 有通信就要有安全保障,加密技術(shù)是必須要考慮的。

          4) 其他需考慮的有如何設(shè)置中心服務(wù)器,如何控制網(wǎng)絡(luò)規(guī)模等。

          與P2P相關(guān)技術(shù),有許多其他的技術(shù)被稱做P2P,或者與P2P相關(guān),或者可以被當(dāng)作P2P使用,主要是以下幾方面內(nèi)容:

          • JINI技術(shù);
          • 軟件代理(Agent)技術(shù);
          • JXTA的競(jìng)爭(zhēng)者(Gnutella和Freenet等);
          • Web Services技術(shù)。

          二)JXTA設(shè)計(jì)目標(biāo)及層次結(jié)構(gòu)

          1、 JXTA設(shè)計(jì)目標(biāo)

          首先,JXTA是為了構(gòu)建P2P網(wǎng)絡(luò)而制訂的一組協(xié)議,是處理構(gòu)建P2P網(wǎng)絡(luò)所碰到的問題的解決方法,JXTA標(biāo)準(zhǔn)協(xié)議規(guī)范介紹如下:

          ??? “JXTA由六個(gè)協(xié)議組成,這些協(xié)議是專為特定的、分布式的、對(duì)等的網(wǎng)絡(luò)計(jì)算而設(shè)計(jì)的。使用這些協(xié)議,Peer可以互相合作來建立自我組織、自我管理的對(duì)等組,而不必關(guān)心它們?cè)诰W(wǎng)絡(luò)中所處的位置(在網(wǎng)絡(luò)邊緣或者防火墻的后面),并且也不需要集中的管理機(jī)構(gòu)。”

          ?? 因此JXTA的核心是六個(gè)協(xié)議,其次,JXTA是P2P應(yīng)用程序開發(fā)的運(yùn)行平臺(tái);目前JXTA首先推出了基于Java的參考實(shí)現(xiàn),提供了支持六個(gè)協(xié)議的Java API,JXTA還將推出包括C語言在內(nèi)的其他編程語言的API,JXTA在設(shè)計(jì)時(shí)有如下幾個(gè)目標(biāo):

          • 操作系統(tǒng)無關(guān)
          • 語言無關(guān)
          • 為P2P應(yīng)用提供服務(wù)和基礎(chǔ)

          ??? 從本質(zhì)上講,JXTA的目標(biāo)是希望在任何設(shè)備,從臺(tái)式機(jī)到PDA、汽車、洗衣機(jī)等設(shè)備都可以支持P2P編程。這里有幾個(gè)概念上的目標(biāo),它們包括:

          • 使用組來組織Peer并且在組內(nèi)提供服務(wù)和應(yīng)用的環(huán)境。
          • 組可以使用認(rèn)證和驗(yàn)證方式來控制組內(nèi)的訪問權(quán)限。
          • 通過網(wǎng)絡(luò)來發(fā)布關(guān)于Peer和網(wǎng)絡(luò)資源的信息。
          • 通過系統(tǒng)來發(fā)布各種請(qǐng)求。???
          • 提供一個(gè)基礎(chǔ)平臺(tái),供Peer之間做路由和通信。在防火墻或者其他障礙后面的Peer之間的通信也是這個(gè)目標(biāo)中很關(guān)鍵的一部分。
          • 提供一種機(jī)制允許Peer之間可以彼此監(jiān)視狀態(tài)和資源。

          ??? 除此之外還有一些其他目標(biāo),例如加密、支持不同的通信協(xié)議、易用性、穩(wěn)定性和性能等,所有這些目標(biāo)在設(shè)計(jì)JXTA協(xié)議和最初的Java API時(shí),都被考慮到,另外,開發(fā)人員和Sun公司的管理者還考慮了以下目標(biāo):

          • 系統(tǒng)應(yīng)該允許任何設(shè)備直接加入到JXTA網(wǎng)絡(luò)中去。
          • 系統(tǒng)應(yīng)該允許ISP對(duì)網(wǎng)絡(luò)上的Peer進(jìn)行集中管理。
          • 系統(tǒng)應(yīng)該支持?jǐn)?shù)字產(chǎn)品版權(quán)的管理,例如購買的軟件、音樂CD、電影等。
          • 封裝和抽象一些特定的核心功能,以便產(chǎn)生出商業(yè)方面的應(yīng)用。

          從上面列出的目標(biāo)可以看出兩點(diǎn),首先要讓企業(yè)覺得使用JXTA可以使自己對(duì)系統(tǒng)進(jìn)行控制,原因在于大部分P2P系統(tǒng)沒有集中式的管理,所以在應(yīng)用中不受企業(yè)的歡迎;其次,對(duì)于硬件或者軟件提供商來說,JXTA系統(tǒng)需要能夠創(chuàng)造出利潤。

          ??? 根據(jù)以上這些目標(biāo),JXTA被設(shè)計(jì)成企業(yè)可以接受的、容易維護(hù)的、健壯的,并且能夠滿足任何P2P應(yīng)用的概念。





          2、 JXTA的層次結(jié)構(gòu)

          JXTA由三層組成,如圖1所示。第一層是JXTA核心層,它包含了服務(wù)所需要的核心功能;第二層是服務(wù)層,它提供了訪問JXTA協(xié)議的接口;第三層是應(yīng)用層,它使用服務(wù)來訪問JXTA網(wǎng)絡(luò)和JXTA提供的功能。這樣的設(shè)計(jì)和一個(gè)標(biāo)準(zhǔn)的操作系統(tǒng)比較相似,標(biāo)準(zhǔn)的操作系統(tǒng)包括核心操作系統(tǒng)、服務(wù)和應(yīng)用程序。

          ??????????????????????????????? ???圖1 JXTA的層次結(jié)構(gòu)

          各層的說明如下所示:

          • 核心層(JXTA Core):這一層封裝了最根本的東西,包括Peer、對(duì)等組、Peer發(fā)現(xiàn)、Peer通信、Peer監(jiān)視和相關(guān)的安全原語。
          • 服務(wù)層(JXTA Services):這一層包括對(duì)于P2P網(wǎng)絡(luò)不是必需的、但很通用的功能,如查找、共享、索引、代碼緩存和內(nèi)容緩存的機(jī)制。
          • 應(yīng)用層(JXTA Application):這一層包括了應(yīng)用JXTA服務(wù)開發(fā)出來的完整的P2P應(yīng)用程序,例如myJXTA,JXTA-CAD等應(yīng)用程序。

          三)JXTA有關(guān)概念

          ? 在JXTA網(wǎng)絡(luò)中,有一些概念是需要熟悉和理解的,它們是從JXTA協(xié)議中提出的一系列的專有名詞。

          ??1、Peer(對(duì)等機(jī))

          ? Peer是一個(gè)虛擬的通信點(diǎn)。在一臺(tái)計(jì)算機(jī)或者設(shè)備上可以有很多個(gè)Peer,一個(gè)Peer并不是一個(gè)用戶,因?yàn)橐粋€(gè)用戶可以有多個(gè)Peer,同一個(gè)設(shè)備上也可以有多個(gè)Peer(在測(cè)試的時(shí)候經(jīng)常用到)。因?yàn)镻eer不等同于用戶,所以需要將用戶和Peer抽象出來并分離開。

          ? Peer與特定的網(wǎng)絡(luò)服務(wù)聯(lián)系得很緊,在JXTA的參考實(shí)現(xiàn)中,Peer可以使用網(wǎng)絡(luò)提供的基本服務(wù),例如rendezvous(集合點(diǎn)服務(wù)),router(路由服務(wù)),gateway(網(wǎng)關(guān)服務(wù))等,這些基本服務(wù)又可以提供搜索和通信服務(wù),一般來說,并不是所有的Peer都使用這些服務(wù),它們只使用這些服務(wù)的一部分。

          ? 2、PeerGroup(對(duì)等組)

          ? 對(duì)等組是一種組織Peer并且發(fā)布組內(nèi)的特定服務(wù)的方式。對(duì)等組可以被創(chuàng)建、加入和退出,在一個(gè)組里還可以更新一個(gè)組成員的關(guān)系,由于一些原因,對(duì)等組需要對(duì)成員關(guān)系進(jìn)行一些限制,例如為了通信的安全、隱私的考慮等。這里使用一種協(xié)議來認(rèn)證,它專門收集信息并判斷其是否符合成員關(guān)系的要求。

          ?對(duì)等組為應(yīng)用程序提供了一種環(huán)境,例如對(duì)某個(gè)話題感興趣的Peer可以組成一個(gè)組,并且在組內(nèi)使用一個(gè)聊天服務(wù)來討論。這樣,聊天的信息就會(huì)限制在那些加入到這個(gè)組內(nèi)的成員之間。并且,對(duì)于想加入到這個(gè)組的Peer,可以使用成員ID來進(jìn)行認(rèn)證;沒有這個(gè)ID的Peer不能夠加人到組內(nèi),也就不能夠使用組內(nèi)的聊天服務(wù),也可以把對(duì)等組看成一個(gè)虛擬的私人網(wǎng)絡(luò)VPN,一個(gè)VPN只允許幾個(gè)計(jì)算機(jī)之間互相交流,而不允許因特網(wǎng)上其他的成員加入,由于VPN使用了加密的方式,對(duì)于偷聽者他們不能夠理解組內(nèi)的談話,對(duì)等組也可以限制Peer的加入,同樣也可以對(duì)談話消息加密。

          ? 3、Endpoint(端點(diǎn))

          ?在JXTA應(yīng)用中,端點(diǎn)是最基本的通信方法。一個(gè)端點(diǎn)就是實(shí)現(xiàn)了特定通信協(xié)議的Peer的地址。一個(gè)Peer可以有多個(gè)端點(diǎn),這樣可以通過不同的協(xié)議來與其他Peer通信。

          ?端點(diǎn)不一定要是物理地址,端點(diǎn)可以允許物理地址發(fā)生變化。端點(diǎn)的一個(gè)簡(jiǎn)單例子 就是一個(gè)IP地址加上一個(gè)端口。通過使用這些值,可以打開一個(gè)流并且與目標(biāo)Peer通信。然而,JXTA在流的基礎(chǔ)之上又放置了一層,稱之為Pipe(管道)。這樣,不是將一個(gè)流連接到一個(gè)地址,而是把一個(gè)管道連接到端點(diǎn)上。端點(diǎn)和管道的好處在于,不用去關(guān)心Peer所使用的真正的地址和協(xié)議是什么。使用抽象出來的端點(diǎn)和管道,可以為創(chuàng)建P2P應(yīng)用提供強(qiáng)大的功能并降低復(fù)雜性。由于管道使用通信協(xié)議來連接,端點(diǎn)描述了協(xié)議和連接的所需要的信息。因此端點(diǎn)可以描述HTTP、TCP、BEEP以及其他可以支持的通信協(xié)議。

          ?一個(gè)Peer可以支持一個(gè)或者多個(gè)端點(diǎn)。通過使用多種協(xié)議,Peer可以提供更有效率的方法。也就是說,如果兩個(gè)Peer都在防火墻的后面,可以直接通過它們的TCP端點(diǎn)來通信;如果兩個(gè)Peer要穿過防火墻去通信,則需要使用HTTP的端點(diǎn)。

          ?4、Pipe(管道)

          ?管道是Peer之間的虛擬通道,通常,我們認(rèn)為對(duì)等通信是單個(gè)的通信連接,但是也并不是總是這樣的,因?yàn)榉阑饓推渌系K的存在,許多Peer并不能直接連接,這時(shí),管道更像一個(gè)在多種通信協(xié)議之上的虛擬層,可以通過起網(wǎng)關(guān)作用的Peer對(duì)通信提供中繼支持。

          ?管道是JXTA最基本、最重要的特性,它提供了一種很好的方案,使得Peer在大多數(shù)網(wǎng)絡(luò)情況下都可以通信,而不用去管防火墻或者其他的障礙,即使你不知道另外一個(gè)Peer的位置以及它所使用的協(xié)議等信息,通過管道仍然可以與之通信;管道作為一種抽象的方法,隱藏了一些細(xì)節(jié),比如在多個(gè)連接的時(shí)候可能會(huì)有多個(gè)Peer參與進(jìn)去,管道也可以重新定位,找到原來的Peer。在JXTA的參考實(shí)現(xiàn)中,有幾種常用到的管道,它們是:

          • 單向異步----這種管道只用來做單向通信。管道是異步的,消息到達(dá)時(shí)可能不是順序的。這是JXTA平臺(tái)上最基本的一種類型的管道。
          • 同步的請(qǐng)求/應(yīng)答----所有發(fā)出的信息都會(huì)收到一個(gè)應(yīng)答消息,消息到達(dá)的順序是按照它們發(fā)送時(shí)候的順序。
          • 成批發(fā)送----用來發(fā)送大量的數(shù)據(jù)。
          • 流傳送----通過流可以更有效地傳送諸如聲音、視頻等大量的數(shù)據(jù)。
          • 雙向----它是兩個(gè)單向異步管道的組合。???
          • 單向同步----所有發(fā)出的信息都會(huì)收到一個(gè)應(yīng)答消息,消息到達(dá)的順序是按照它們發(fā)送時(shí)候的順序。
          • 單向可靠安全的管道----所有發(fā)出的信息都會(huì)收到一個(gè)應(yīng)答消息,并且這些消息都是加密的。

          管道還可以分成以下兩種類型:

          • 點(diǎn)到點(diǎn)類型----點(diǎn)到點(diǎn)的管道連接兩個(gè)不同的Peer。可以使用多個(gè)起網(wǎng)關(guān)作用的Peer來創(chuàng)建連接。
          • 傳播類型----將一個(gè)Peer連接到多個(gè)目標(biāo)Peer。

          ??? 現(xiàn)有的JXTA參考實(shí)現(xiàn)已經(jīng)提供了單向異步管道、單向可靠安全管道和雙向的管道。??? JXTA和傳統(tǒng)的網(wǎng)絡(luò)是非常不同的,大多數(shù)網(wǎng)絡(luò)協(xié)議或者沒有地址,或者有一個(gè)固定的地址,而JXTA抽象出一個(gè)概念叫做端點(diǎn),用來作為地址。一個(gè)Peer可以有多個(gè)端點(diǎn),Peer可以通過一種或者多種協(xié)議例如TCP、HTTP等進(jìn)行通信,所以可以使用多個(gè)端點(diǎn),JXTA使用多種傳輸協(xié)議的目的是為了在與其他Peer通信時(shí)可以選擇最好的方式。如果一個(gè)Peer在企業(yè)的防火墻的后面,可以使用HTYP來與防火墻之外的Peer通信,還可以使用TCP來與防火墻內(nèi)局域網(wǎng)內(nèi)部的Peer通信,通過靈活使用多個(gè)傳輸端口,對(duì)特定的Peer使用特定的協(xié)議,以得到最好的速度和響應(yīng)。

          ?? ?5、AdvertiSement(廣告)

          ???? 一個(gè)廣告就是一個(gè)XML文檔,它用來描述JXTA的消息、Peer、對(duì)等組或者服務(wù)等。廣告都遵守編碼、標(biāo)簽和內(nèi)容的標(biāo)準(zhǔn),廣告用來交換JXTA網(wǎng)絡(luò)上可以獲得的任何信息。例如,一個(gè)Peer創(chuàng)建了名稱為“MyChat”的對(duì)等組后,就可以使用IP多播方式把廣告發(fā)布到本地的JXTA網(wǎng)絡(luò);也就說,子網(wǎng)中的每一個(gè)Peer都會(huì)收到一份廣告的副本,此外廣告還會(huì)被發(fā)送到集合點(diǎn)去。

          ??? Peer使用一種叫做集合點(diǎn)(Rendezvous)的特殊Peer來發(fā)現(xiàn)網(wǎng)絡(luò)上其他地方的廣告。集合點(diǎn)Peer可以存儲(chǔ)廣告并且支持搜索。Peer可以使用對(duì)等組的名字或者其他屬性來搜尋該對(duì)等組廣告。有了對(duì)等組的廣告,其他的Peer就可以使用廣告中的XML來實(shí)例化并加入到“MyChat”這個(gè)對(duì)等組中。一旦成為對(duì)等組的成員之后,Pear可以使用對(duì)等組的環(huán)境所提供的服務(wù)。

          ??? 廣告實(shí)際上是P2P網(wǎng)絡(luò)中的“名片”,P2P網(wǎng)絡(luò)中的任何資源,包括Peer、對(duì)等組、管道等都可以用廣告來描述,目前是在P2P網(wǎng)絡(luò)中標(biāo)志資源,并且可以相互找到; 大多數(shù)JXTA廣告的編碼是使用UTF-8,它是對(duì)Unicode的一種ASCII編碼方式,UTF-8使用的是8位編碼,Unicode使用的是16位編碼,因此可以節(jié)省一半的空間,只有在消息體中間可能會(huì)使用到完全的Unicode編碼,在消息體里可以指定使用Unicode或者其他的字符集作為編碼方式。

          6、Message(消息)

          ??? 在JXTA中,有兩種方式來處理消息。一種是使用XML格式,數(shù)據(jù)都遵循XML標(biāo)準(zhǔn)被包裝到消息里;另外一種是使用二進(jìn)制格式。盡管希望對(duì)所有的JXTA消息都使用XML格式,可是由于大量的消息需要傳送,使用XML格式的消息會(huì)導(dǎo)致效率較低,而且由于消息通常是在程序之間傳送的,所以可以規(guī)范的消息內(nèi)容使用二進(jìn)制的格式;對(duì)于其他的仍然采用XML格式。

          ??? 在一個(gè)XML協(xié)議中使用二進(jìn)制消息看起來似乎不太合理,但事實(shí)上使用二進(jìn)制消息,除了可以得到緊湊的格式之外還有很多其他優(yōu)點(diǎn)。首先數(shù)據(jù)可以使用一些標(biāo)準(zhǔn)技術(shù)進(jìn)行壓縮,對(duì)文本等數(shù)據(jù)的壓縮可以節(jié)省大量的傳輸時(shí)間;另外,許多消息本身就是二進(jìn)制的格式,例如文件共享程序中共享的文檔可能就是二進(jìn)制的,因此可以直接使用二進(jìn)制的格式;還有一個(gè)問題就是加密,為了加密可以把數(shù)據(jù)轉(zhuǎn)化成為二進(jìn)制,然后直接使用二進(jìn)制的消息來傳輸。

          7、Rendezvous Peer(集合點(diǎn))???

          ??? 一個(gè)集合點(diǎn)首先是一個(gè)Peer,而且是一個(gè)能夠處理來自其他Peer請(qǐng)求的Peer。集合點(diǎn)也可以將請(qǐng)求委托給其他Peer,當(dāng)然那些Peer也必須是集合點(diǎn)。使用集合點(diǎn)的一個(gè)主要目的就是為了方便在本地網(wǎng)絡(luò)之外搜索廣告。集合點(diǎn)通常擁有更多資源,并且可以存儲(chǔ)大量的有關(guān)它周圍Peer的信息。

          ??? 集合點(diǎn)也可以作為搜索的傳遞者。集合點(diǎn)可以轉(zhuǎn)發(fā)發(fā)現(xiàn)請(qǐng)求到其他的集合點(diǎn)(原集合點(diǎn)通過與其他Peer的廣告交互而得到了被轉(zhuǎn)發(fā)集合點(diǎn)的信息)。每一個(gè)集合點(diǎn)如果本身沒有被請(qǐng)求的信息它都會(huì)轉(zhuǎn)發(fā)該請(qǐng)求。

          ????????????????????????? 圖2 通過集合點(diǎn)進(jìn)行Peer搜索的過程

          ?? 圖2說明了一個(gè)典型搜索過程。遠(yuǎn)程搜索從Peer1開始,它首先通過IP多播(IP Multicast)詢問本地的Peer2和Peer3,Peer2和Peer3很可能和Peerl處于同一個(gè)局域網(wǎng)內(nèi),所以很快收到了搜索請(qǐng)求。接下來,如果Peer2和Peer3沒有所搜索的特定資源,搜索將通過集合點(diǎn)進(jìn)行,Peer1會(huì)向它的集合點(diǎn)Peer發(fā)出搜索請(qǐng)求,如果該集合點(diǎn)Peer也沒有所需的廣告信息,該集合點(diǎn)Peer會(huì)向它所知道的集合點(diǎn)Peer發(fā)出搜索請(qǐng)求。需要注意的是,除了和提出查詢請(qǐng)求的Peer處于同一局域網(wǎng)內(nèi)的Peer收到查詢請(qǐng)求外,在局域網(wǎng)外只有集合點(diǎn)才會(huì)收到查詢請(qǐng)求。

          ??? IP多播(IP Muhicast)是一個(gè)一到多的消息傳輸協(xié)議。IP多播用來發(fā)送數(shù)據(jù)的副本到一組地址。在P2P應(yīng)用程序中,IP多播有兩個(gè)好處。首先,因?yàn)槎嗖ナ褂靡粋€(gè)組地址而不是使用IP地址,一個(gè)Peer可以在不知道接收者地址的情況下發(fā)送消息。這樣做的結(jié)果是在多播網(wǎng)絡(luò)中的所有Peer都可以響應(yīng)發(fā)出請(qǐng)求的Peer,將有關(guān)查詢的結(jié)果信息、甚至是自己的IP地址(用于與請(qǐng)求Peer直接通信)發(fā)送回去。

          ??? IP多播的第二個(gè)好處是減少使用帶寬。因?yàn)樗械腜eer都可以看到一個(gè)單一的消息,沒有必要向每一個(gè)Peer發(fā)送消息的一個(gè)副本。當(dāng)發(fā)送大量的數(shù)據(jù)到一組Peer時(shí),這一點(diǎn)是非常重要的。使用多播的一個(gè)缺點(diǎn)是一些防火墻和路由器會(huì)阻塞多播的消息。在因特網(wǎng)提供商之間通過因特網(wǎng)主干網(wǎng)可以支持多播消息,不過這種服務(wù)是需要額外付錢的。還存在其他IP多播的障礙,比如個(gè)人防火墻、子網(wǎng)路由器。這就是為什么JXTA不是僅僅支持IP多播的原因。一般情況下,只要在防火墻后能夠支持多播對(duì)于大多數(shù)的P2P網(wǎng)絡(luò)就足夠了。你可以這樣來利用本地的多播,先將消息發(fā)送到每一個(gè)網(wǎng)絡(luò)的某一個(gè)特定的Peer上,然后該P(yáng)eer又通過本地的多播將消息發(fā)送給本地的Peer。

          ??? 只有集合點(diǎn)允許進(jìn)行超出局域網(wǎng)的搜索。一個(gè)Peer可以選擇成為一個(gè)集合點(diǎn),但這不是必須的,作為集合點(diǎn)好的一面是集合點(diǎn)可以緩存的形式保留從其他集合點(diǎn)得到的查詢結(jié)果的副本;不好的一面是,該P(yáng)eer將占用很多的內(nèi)存和帶寬。由于請(qǐng)求數(shù)量可能很多并且大量的廣告數(shù)據(jù)會(huì)消耗很多的計(jì)算機(jī)資源,在這種情況下我們可以選擇將計(jì)算機(jī)作為專用的集合點(diǎn)。集合點(diǎn)同時(shí)可以作為企業(yè)內(nèi)部網(wǎng)的網(wǎng)關(guān)和路由器,其效果和使用傳統(tǒng)的路由器是一致的。在每一個(gè)子網(wǎng)內(nèi)也需要使用一個(gè)集合點(diǎn),是否選擇使用專用的集合點(diǎn)Peer取決于安全性的要求和使用的P2P應(yīng)用的范圍。P2P網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu)需要通過多個(gè)的例子來進(jìn)行測(cè)試并且需要定期監(jiān)控。特別要注意的是:當(dāng)P2P網(wǎng)絡(luò)的服務(wù)在大量Peer上存有副本時(shí),P2P網(wǎng)絡(luò)的效率更高。有些時(shí)候并不是額外的集合點(diǎn)就可以提高網(wǎng)絡(luò)的效率。

          ??? 當(dāng)一個(gè)Peer在搜索廣告時(shí)或者是其他服務(wù)使用集合點(diǎn)機(jī)制來路由消息時(shí),集合點(diǎn)才被使用,因此一個(gè)Peer對(duì)集合點(diǎn)的需要不是持續(xù)的;為了能夠更好地發(fā)揮作用,一個(gè)連接到因特網(wǎng)的集合點(diǎn)最好盡可能地暴露給網(wǎng)絡(luò)上的多個(gè)Peer,在防火墻內(nèi)把所有的Peer都配置為集合點(diǎn)不一定能夠發(fā)揮很大的作用。

          8、RouterPeer(路由Peer)

          ??? JXTA中的一個(gè)路由Peer是一個(gè)支持Peer端點(diǎn)協(xié)議的Peer,不是所有的Peer都需要實(shí)現(xiàn)該協(xié)議,因?yàn)楹蛡鹘y(tǒng)的網(wǎng)絡(luò)路由器一樣,我們只需要少數(shù)幾個(gè)路由器去支持一個(gè)大網(wǎng)絡(luò),JXTA路由器和傳統(tǒng)的路由器非常相像,最主要的區(qū)別是P2P不是非常固定并且包括了很多非靜態(tài)地址。

          ?? ?9、GatewayPeer(網(wǎng)關(guān)Peer)

          ??? JXTA中的一個(gè)網(wǎng)關(guān)Peer是一個(gè)作為通信中繼的Peer。網(wǎng)關(guān)Peer和集合點(diǎn)的不同之處在于,網(wǎng)關(guān)是用來在Peer間傳遞消息,而集合點(diǎn)是用來傳遞請(qǐng)求的,網(wǎng)關(guān)Peer就像是無線電轉(zhuǎn)發(fā)器或者說是Peer間的一個(gè)中介,它傳遞消息,因?yàn)橛蟹阑饓ΑAT設(shè)備和代理服務(wù)器的存在,網(wǎng)關(guān)對(duì)網(wǎng)絡(luò)的連通具有決定性的作用,網(wǎng)關(guān)可以存儲(chǔ)消息,并且等待希望得到這些消息的接收者來收集它們。

          ??? 網(wǎng)關(guān)的存在是因?yàn)橐蛱鼐W(wǎng)非常混亂。混亂的原因是有各種各樣的用于防止Peer間通過公用訪問方法通信的安全保障和障礙物,另一個(gè)原因是各個(gè)Peer所支持的協(xié)議是不同的,一些Peer可能使用TCP,另一些可能使用HTTP。在無線情況下,我們需要使用無線應(yīng)用協(xié)議(WAP),網(wǎng)關(guān)盡可能多地支持這些協(xié)議,因此它可以作為不同類型協(xié)議間的中介,JXTA目前支持TCP和HTTP,不過對(duì)其他協(xié)議的支持正在開發(fā)中。

          ??? 在因特網(wǎng)上網(wǎng)關(guān)是與大多數(shù)安全機(jī)制交互的關(guān)鍵,防火墻、代理服務(wù)器和NAT設(shè)備是主要的安全屏障。

          圖3 通過網(wǎng)關(guān)對(duì)等機(jī)進(jìn)行Peer間的通信

          ?

          圖3說明網(wǎng)關(guān)Peer2是怎樣作為Peer1和Peer3之間的交互接口的。網(wǎng)關(guān)將從Peer1來的TCP消息轉(zhuǎn)換成HTTP消息傳遞給Peer3。當(dāng)消息從Peer1發(fā)出時(shí),是通過TCP發(fā)往網(wǎng)關(guān)Peer2,網(wǎng)關(guān)Peer2存儲(chǔ)了這個(gè)消息,直到Peer3向它發(fā)出獲得消息的HTTP請(qǐng)求。

          ?? 三、JXTA協(xié)議

          有六個(gè)協(xié)議構(gòu)成了JXTA的核心,JXTA通過這六個(gè)協(xié)議來完成Peer之間的通信,彼此之間的資源的發(fā)布和發(fā)現(xiàn),信息的傳遞和路由,協(xié)議本身并不是應(yīng)用程序,需要添加更多的代碼來開發(fā)有用的應(yīng)用,協(xié)議隱藏了很多細(xì)節(jié),這樣使得編寫JXTA應(yīng)用程序比從空白開發(fā)P2P應(yīng)用要容易得多。

          ??? JXTA在JXTA協(xié)議規(guī)范中定義了它的協(xié)議。此規(guī)范描述了Peer間如何通信和交互,它并未描述實(shí)現(xiàn)的細(xì)節(jié)或如何編寫P2P應(yīng)用程序,下面是JXTA協(xié)議的列表,其中包含了協(xié)議名稱的首字母縮略詞,這六個(gè)協(xié)議如圖4所示。

          圖4 JXTA的核心協(xié)議

          ?

          ??? 1、對(duì)等機(jī)發(fā)現(xiàn)協(xié)議Peer Discovery Protocol(PDP):主要用來發(fā)布自己的廣告信息,并且從其他Peer處獲得廣告。PDP允許一個(gè)Peer發(fā)現(xiàn)其他Peer的廣告(包括Peer廣告、對(duì)等組廣告、服務(wù)廣告,或者是管道廣告)。該協(xié)議通過指定一種廣告類型(如Peer、對(duì)等組)、一個(gè)XML標(biāo)簽名、一個(gè)匹配這個(gè)XML標(biāo)簽所表示數(shù)據(jù)的字符串來定義查詢。它使用Peer Resolver Protocol來發(fā)送和傳播搜索廣告的請(qǐng)求。

          ??? 2、管道綁定協(xié)議Pipe Binding Protocol(PBP):允許Peer之間建立虛擬的通信通道。

          該協(xié)議首要關(guān)注的是通過Peer端點(diǎn)路由協(xié)議提供的路由連接Peer。它使用Peer Resolver? Protocol來發(fā)送和傳播搜索廣告的請(qǐng)求。

          ??? 3、對(duì)等機(jī)信息協(xié)議Peer Information Protocol(PIP):用來獲得其他Peer的狀態(tài)信息,包括更新時(shí)間、狀態(tài)等等。該協(xié)議有時(shí)被用做ping命令,有時(shí)被用來獲得一個(gè)Peer的基本狀態(tài)信息,PIP消息的正文是自由格式的,它允許詢問特定的Peer信息。此外,這種能力可以被擴(kuò)展以提供控制能力,它使用Peer Resolver Protocol來發(fā)送和傳播搜索廣告的請(qǐng)求。

          ??? 4、對(duì)等機(jī)解析協(xié)議Peer Resolver Protocol(PRP):允許Peer發(fā)送更一般的請(qǐng)求,并可以接收到該請(qǐng)求的回應(yīng);同時(shí)可以將請(qǐng)求分發(fā)到組內(nèi)的一個(gè)或者多個(gè)匹配的處理器,Peer解析協(xié)議是一個(gè)基礎(chǔ)通信協(xié)議,它按照一種請(qǐng)求/響應(yīng)格式來進(jìn)行,要使用這個(gè)協(xié)議,需要提供一個(gè)查詢的Peer和一個(gè)包含能被目標(biāo)Peer理解的XML請(qǐng)求消息,該協(xié)議被用來支持JXTA中的其他協(xié)議(PDP、PBP和PIP),而且允許傳播查詢,例如,如果一個(gè)Peer收到一個(gè)查詢并且不知道答案,解析協(xié)議就會(huì)將該查詢發(fā)送給別的Peer。

          ??? 5、端點(diǎn)路由協(xié)議Peer Endpoint Protocol(PEP):通過該協(xié)議Peer以發(fā)送消息的形式獲得一條路由路徑。它使用Peer間的網(wǎng)關(guān)來建立一條包含一個(gè)或多個(gè)適合建立管道的管道協(xié)議組成的通路。管道綁定協(xié)議借助此Peer列表來建立Peer間的路由。一般情況下傳統(tǒng)的路由器和DNS服務(wù)器會(huì)因?yàn)榉阑饓Α⒋矸?wù)器和NAT設(shè)備等原因而無法建立連接,而端點(diǎn)路由協(xié)議通過尋找網(wǎng)關(guān)來穿越諸如防火墻等障礙來建立連接。端點(diǎn)路由協(xié)議還可以同時(shí)幫助相互不支持對(duì)方使用協(xié)議的Peer進(jìn)行通信。例如,如果你連接支持TCP的Peer-A和只支持HTTP的Peer-B,端點(diǎn)路由協(xié)議既可以選擇一個(gè)可以支持此傳輸?shù)木W(wǎng)關(guān),又可以選擇多個(gè)并且相互協(xié)議兼容的一組網(wǎng)關(guān)。

          ??? 6、集合點(diǎn)協(xié)議Rendezvous Protocol(RVP):通過該協(xié)議Peer可以對(duì)一個(gè)服務(wù)訂閱或者被訂閱。集合點(diǎn)協(xié)議負(fù)責(zé)在JXTA對(duì)等組內(nèi)傳播消息,它為Peer在組內(nèi)接收和發(fā)送消息并且控制消息如何傳播定義了一個(gè)基本的協(xié)議。

          ??? 從編寫P2P應(yīng)用程序的角度而言,可以簡(jiǎn)單地劃分上述協(xié)議的主要用途:

          • Peer Discovery----搜索資源
          • Peer Resolver----一般查詢服務(wù)
          • Peer Information----監(jiān)控
          • Pipe Binding----可尋址的消息傳遞
          • Rendezvous----消息傳播
          • PeerEndpoint----路由

          四、JXTA的應(yīng)用與發(fā)展

          一)JXTA的應(yīng)用

          1、 即時(shí)通信和文件共享(myJXTA)

          myJXTA是在J2SE平臺(tái)上的一個(gè)JXTA演示程序,主要為展示JXTA項(xiàng)目和P2P的一些概念,它提供了一些功能,諸如安全的一對(duì)一的交談、組內(nèi)的交談、組內(nèi)文檔的共享、搜索和下載等。myJXTA使用JXTA平臺(tái)的核心服務(wù),完成發(fā)現(xiàn)組、加入組和創(chuàng)建組的功能;還有在兩個(gè)Peer 間創(chuàng)建連接,完成一對(duì)一的交談;或者在組內(nèi)建立連接,完成組內(nèi)的交談以及組內(nèi)文件的搜索和下載。該程序的主要目的是未了展示基于JXTA協(xié)議的P2P的工作方式。

          2、 網(wǎng)絡(luò)游戲(Chess)

          ??? JXTA技術(shù)已在許多游戲應(yīng)用方面得到了展示,一個(gè)互動(dòng)式的國際象棋比賽的應(yīng)用程序使用JXTA來傳遞兩個(gè)棋手間的對(duì)奕過程,并將它展現(xiàn)給觀眾,國際象棋游戲和“tic-tac-toe"游戲都可以用來展示JXTA在小型設(shè)備上的應(yīng)用,一個(gè)游戲者可以創(chuàng)建一個(gè)新的JXTAPeer組并邀請(qǐng)全世界其他游戲者加入他的游戲,當(dāng)然也可以限制他人進(jìn)入他的游戲組。

          3、協(xié)同工作

          JXTA技術(shù)已經(jīng)展示它在協(xié)同工作應(yīng)用程序中的能力。用JXTA開發(fā)出來的集成開發(fā)環(huán)境可以允許一個(gè)以上的開發(fā)者同時(shí)開發(fā)一個(gè)軟件程序;另外一個(gè)協(xié)作式的JXTA應(yīng)用程序允許幾個(gè)人同時(shí)編輯同一個(gè)電子數(shù)據(jù)表。其他JXTA項(xiàng)目中開發(fā)的合作開發(fā)工具包則利用了JXTA進(jìn)行會(huì)話、共享瀏覽和文件共享。

          ??? 由于具有通話功能,JXTA技術(shù)在合作開發(fā)中擁有這樣一個(gè)優(yōu)點(diǎn):一個(gè)應(yīng)用程序的開發(fā)不需依賴于服務(wù)器或其他中央管理系統(tǒng)。JXTA處理新發(fā)現(xiàn)的節(jié)點(diǎn),并保證路線通暢,在用戶和交互式應(yīng)用程序間交換消息。

          4、聊天程序

          JXTA非常適合編寫聊天程序,而且可以有多種實(shí)現(xiàn)方法,包括完全的集中式、代理方式到完全非集中式。而且一個(gè)非常有意思的情況是,用JXTA來實(shí)現(xiàn)一個(gè)集中式的聊天程序非常困難,而實(shí)現(xiàn)完全非集中式的聊天程序反而簡(jiǎn)單,因?yàn)镴XTA平臺(tái)本身已經(jīng)完全解決了底層Peer之間的發(fā)現(xiàn)和通信問題。在現(xiàn)有的JXTA項(xiàng)目中已經(jīng)有許多聊天程序的例子,包括myJXTA應(yīng)用程序(原先稱為InstantP2P)、JXTA shell中的Talk命令、HotWire應(yīng)用程序和其他幾個(gè)編程指南。

          5、JXTA 社區(qū)

          JXTA是一個(gè)開放源代碼的項(xiàng)目,它是由JXTA社區(qū)http://www.jxta.org在推動(dòng)發(fā)展。在這個(gè)站點(diǎn)上可以獲取最新的JXTA文檔和程序代碼,而且你可以注冊(cè)并加入到正在進(jìn)行中的JXTA項(xiàng)目,參與并推動(dòng)項(xiàng)目的進(jìn)展;這些項(xiàng)目分類存放,為用戶展示了JXTA各方面的功能;此外,站點(diǎn)上還有郵件列表,都是JXTA開發(fā)人員和P2P參與者就感興趣的問題的討論。

          二)JXTA的發(fā)展

          1、各種語言的實(shí)現(xiàn)

          目前JXTA只有Java的實(shí)現(xiàn)版本,以至于大家談到JXTA都認(rèn)為它是用Java開發(fā)的一套P2P框架,而忽略了JXTA的實(shí)質(zhì)只是一套獨(dú)立于各種平臺(tái)和語言的協(xié)議。因此在各種語言上實(shí)現(xiàn)JXTA成為一項(xiàng)非常重要的工作。只有這樣,因特網(wǎng)上的用各種各樣語言實(shí)現(xiàn)的應(yīng)用軟件就可以只需改寫網(wǎng)絡(luò)部分的代碼而轉(zhuǎn)換到JXTA平臺(tái)上來。這不但大大地節(jié)省了工作量,而且將會(huì)吸引大量因?yàn)楦鞣N原因無法采用Java語言的軟件加入到JXTA中來,從而大大促進(jìn)JXTA協(xié)議的發(fā)展。現(xiàn)在正在進(jìn)行的其他語言的實(shí)現(xiàn)有C,Perl,Python,Smalltalk等等,顯然這還遠(yuǎn)遠(yuǎn)不夠,也許我們將來需要看到用Pascal,VB,C#實(shí)現(xiàn)的版本。

          2、各種平臺(tái)的實(shí)現(xiàn)

          跨平臺(tái),這是Java已經(jīng)實(shí)現(xiàn)了的目標(biāo),但是并不表示JXTA就無事可做,一個(gè)真正的P2P網(wǎng)絡(luò)不僅僅是包括PC這個(gè)大家目前已經(jīng)熟悉的設(shè)備,它還應(yīng)該包含各種現(xiàn)在以及將來能夠連到因特網(wǎng)上的設(shè)備。頭一個(gè)目標(biāo)顯然是PDA和手機(jī)這種移動(dòng)設(shè)備,JXTA for J2ME以及PocketJxta都已經(jīng)在進(jìn)行中,而且已經(jīng)可以使用;但是,我們還要考慮到將來的各種設(shè)備,這其中主要是各種各樣的嵌人式設(shè)備。如果這些設(shè)備都運(yùn)行JXTA平臺(tái),那么我們將看到一個(gè)真正的P2P世界。

          3、各種應(yīng)用

          有好的應(yīng)用,一個(gè)平臺(tái)是不可能流行起來的。目前在jxta.org上登記的應(yīng)用開發(fā)項(xiàng)目有多個(gè),相比現(xiàn)實(shí)世界中的各種網(wǎng)絡(luò)軟件的數(shù)目,這個(gè)數(shù)字實(shí)在是很小。目前的JXTA應(yīng)用主要集中在即時(shí)通信和文件共享上面,這似乎成了P2P的代名詞。但是如果只局限于這些應(yīng)用,JXTA的應(yīng)用范圍將會(huì)很有限。

          4、Service

          Service在JXTA中扮演著極其重要的角色,所有JXTA協(xié)議的實(shí)現(xiàn)都是以Service的形式存在著的。除了幾個(gè)核心服務(wù)外,目前JXTA上有多個(gè)關(guān)于Service的項(xiàng)目正在開展著,從某種程度上來說,Service比Application更重要;如果沒有好的Service,也就產(chǎn)生不了多少好的應(yīng)用,在這些進(jìn)行中的Service中,Search是其中關(guān)鍵的環(huán)節(jié),在沒有中心服務(wù)器的P2P網(wǎng)絡(luò)中,如何有效地進(jìn)行查找成為一個(gè)關(guān)鍵問題,與此同時(shí),還需做到盡可能地減少占用的帶寬。


          作者:務(wù)實(shí),多年從事J2EE網(wǎng)站及應(yīng)用系統(tǒng)項(xiàng)目的開發(fā)和應(yīng)用。

          posted on 2007-03-11 21:07 happytian 閱讀(314) 評(píng)論(0)  編輯  收藏

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


          網(wǎng)站導(dǎo)航:
           
          <2007年3月>
          25262728123
          45678910
          11121314151617
          18192021222324
          25262728293031
          1234567

          Welcome here, my friend!

          常用鏈接

          留言簿(12)

          隨筆檔案(66)

          文章分類

          文章檔案(63)

          web

          最新隨筆

          搜索

          •  

          積分與排名

          • 積分 - 89702
          • 排名 - 647

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

          主站蜘蛛池模板: 莒南县| 屯昌县| 湄潭县| 福州市| 怀安县| 中方县| 娱乐| 大城县| 吉木萨尔县| 涪陵区| 揭西县| 泸水县| 大英县| 萨迦县| 丰顺县| 雷州市| 长宁县| 濮阳市| 苏州市| 文水县| 略阳县| 大方县| 江山市| 会昌县| 邮箱| 商南县| 桦甸市| 荔波县| 瓮安县| 卓资县| 临泽县| 永吉县| 益阳市| 龙里县| 赞皇县| 奉节县| 临洮县| 客服| 凤山市| 青铜峡市| 锡林浩特市|