本文主要介紹了JXTA中的各種概念。
1.Peer。一個peer就是實現(xiàn)了一個或多個JXTA協(xié)議的網(wǎng)絡(luò)設(shè)備。比如傳感器,電話, PDA,PC,服務(wù)器,巨型機等等。每一個peer與其他peer都是獨立操作并且是異步的。有peer ID來唯一標識一個peer。peer使用JXTA協(xié)議公開一個或多個網(wǎng)絡(luò)接口(network interface),每一個公開的接口都被廣告為一個peer端點(peer endpoint),這個peer端點唯一標識了一個網(wǎng)絡(luò)接口。peer之間不需要有直接的點對點的網(wǎng)絡(luò)連接??梢允褂弥虚g的peer作為peer的消息路由,將由于硬件網(wǎng)絡(luò)或者網(wǎng)絡(luò)配置(NATs,防火墻或者代理)而造成的兩個通信peer進行互聯(lián)。peer通常被設(shè)計成網(wǎng)絡(luò)中自然地互相發(fā)現(xiàn),從而構(gòu)成暫時的或持久的關(guān)系成為peer組(peer gorup)。
2.Peer Group.一個peer組是一個peer的集合,這些peer都有一組相同的服務(wù)。peer自組織的加入到peer組中,并通過一個唯一的peer組id來區(qū)別這些peer組。每一個peer組都可以建立一個屬于自己的memebership policy,從任何人可以加入到最嚴格的安全驗證以及受保護方式(需要完全的認證書來加入)。一個peer可以同時屬于多于一個peer組。默認地,第一個peer組被實例的組是Net Peer Group。所有的peer都屬于Net Peer Group。peer可以選擇加入其他的peer group。JXTA協(xié)議描述了peer如何公開,發(fā)現(xiàn),加入以及監(jiān)控peer組。
如下幾點說明了創(chuàng)建peer組的目的。
核心的組服務(wù)有如下:
3.Network Services。peer之間可以協(xié)作并通信以發(fā)布,發(fā)現(xiàn)和啟動網(wǎng)絡(luò)服務(wù)。peer可以發(fā)布多個服務(wù)。peer通過Peer Discovery Protocol來發(fā)現(xiàn)network service。在JXTA協(xié)議中組織了兩個層次上的network service。
4.Modules。JXTA的module用來描述任何一段用來實現(xiàn)JXTA world中一個行為的“代碼”的抽象表示(Abstraction)。Network Service就是在一個peer上實現(xiàn)的行為的一個最一般的例子。這個Module Abstraction不一定特指什么“代碼”,它可以是一個Java類,也可以是Java jar,或者動態(tài)鏈接庫dll,一個XML消息或是一個腳本。這個module的行為交給了module的實現(xiàn)者。對于一個實例(instance), module表示了一個網(wǎng)絡(luò)服務(wù)(network service)在不同平臺上的不同實現(xiàn),這些平臺比如說在java平臺,MS windows平臺,Solaris 平臺。
Module允許peer實現(xiàn)一個新的行為,通過提供了一個一般的抽象。當(dāng)peer瀏覽或者加入一個peer組時,他可以查找新的其打算實現(xiàn)的行為。比如,當(dāng)加入一個peer組后,一個peer可能必須學(xué)習(xí)新的搜索服務(wù),這個服務(wù)只能在本peer組中使用。為了加入到這個組,這個peer必須實現(xiàn)這個新的搜索服務(wù)。這個module框架可以啟動平臺無關(guān)行為的表示(representation)和廣告(advertisement)。并允許peer描述和實現(xiàn)任何形式這個行為(behavior)的是實現(xiàn)。比如,一個peer使用java或者c實現(xiàn)一個行為的實現(xiàn)。
& amp; nbsp; 描述和公告一個平臺獨立的行為的能力能有有效的支持peer組包含異構(gòu)的peer。module的廣告可以使JXTA的peer能夠采用平臺獨立的方式描述一個行為。JXTA平臺使用module廣告來自描述。
module抽象(Module abstractIon)包括一個module class,module specification和一個moduleimplementation。
總之,對于一個給定的module Class都可能有多種規(guī)范,這些規(guī)范可能是完全不同的。然而任何給定規(guī)范的所有實現(xiàn)都是假定可以互相兼容的。
1.Peer。一個peer就是實現(xiàn)了一個或多個JXTA協(xié)議的網(wǎng)絡(luò)設(shè)備。比如傳感器,電話, PDA,PC,服務(wù)器,巨型機等等。每一個peer與其他peer都是獨立操作并且是異步的。有peer ID來唯一標識一個peer。peer使用JXTA協(xié)議公開一個或多個網(wǎng)絡(luò)接口(network interface),每一個公開的接口都被廣告為一個peer端點(peer endpoint),這個peer端點唯一標識了一個網(wǎng)絡(luò)接口。peer之間不需要有直接的點對點的網(wǎng)絡(luò)連接??梢允褂弥虚g的peer作為peer的消息路由,將由于硬件網(wǎng)絡(luò)或者網(wǎng)絡(luò)配置(NATs,防火墻或者代理)而造成的兩個通信peer進行互聯(lián)。peer通常被設(shè)計成網(wǎng)絡(luò)中自然地互相發(fā)現(xiàn),從而構(gòu)成暫時的或持久的關(guān)系成為peer組(peer gorup)。
2.Peer Group.一個peer組是一個peer的集合,這些peer都有一組相同的服務(wù)。peer自組織的加入到peer組中,并通過一個唯一的peer組id來區(qū)別這些peer組。每一個peer組都可以建立一個屬于自己的memebership policy,從任何人可以加入到最嚴格的安全驗證以及受保護方式(需要完全的認證書來加入)。一個peer可以同時屬于多于一個peer組。默認地,第一個peer組被實例的組是Net Peer Group。所有的peer都屬于Net Peer Group。peer可以選擇加入其他的peer group。JXTA協(xié)議描述了peer如何公開,發(fā)現(xiàn),加入以及監(jiān)控peer組。
如下幾點說明了創(chuàng)建peer組的目的。
- 建立安全的環(huán)境。peer組可以創(chuàng)建一個本地控制域,在這個域中使用一個特定的安全策略。這個安全策略可以簡單的只是一個明文的帳號 /口令交換,也可以像PKI一樣成熟。peer組界定認證的成員訪問和公開受保護的內(nèi)容(content)。peer組在建立了一個邏輯上的區(qū)域,從而對訪問peer組的資源進行界定。
- 創(chuàng)建一個范圍環(huán)境。peer組裕興建立一個本地的專用域。比如,peer可以組織起來實現(xiàn)一個文檔共享網(wǎng)絡(luò)或者一個CPU共享網(wǎng)絡(luò)。 peer組提供細分網(wǎng)絡(luò)成抽象的區(qū)域來提供內(nèi)在范圍機制(implicit scoping mechanism)。比如,當(dāng)搜索一個組內(nèi)容的時,peer組可以界定定義一個搜索范圍。
- 創(chuàng)建一個監(jiān)視環(huán)境。peer組允許一個peer為了任何目的去監(jiān)視一組peer(比如,心跳,traffic introspection或者accountability)。peer組也可以構(gòu)建一個父子層次結(jié)構(gòu),其中任何一個組都有一個唯一的父親。查詢請求能偶在這個組中傳播。對于這個組中的廣告也可以在其父組中公開,當(dāng)然也包裹這個組本身。
核心的組服務(wù)有如下:
- 發(fā)現(xiàn)服務(wù)(Discovery Service)。本服務(wù)被組中的peer用來查詢per組資源,比如peer,peer組,通道和服務(wù)等。
- 成員關(guān)系服務(wù)(Membership Service)。本服務(wù)被當(dāng)前成員用來拒絕或接受一個新的組成員應(yīng)用。一個peer想要加入到一個group前,首先要確定一個當(dāng)前的成員,并請求加入。當(dāng)前成員的集合可以拒絕或者接受某個想加入的應(yīng)用(application)。本服務(wù)可能會發(fā)起一個所有peer或者指定組代表的一次投票來決定是否接受或者聚居新的成員應(yīng)用。
- 訪問服務(wù)(Access Service)。使用訪問服務(wù)可以用來驗證一個peer對另一個peer的請求(request)。如果訪問被允許,那么接受請求的peer會提供給請求peer關(guān)于該請求所要知道的信息的信任和相關(guān)信息。(注意,在peer組中,不是所有的行為(action)都需要通過訪問服務(wù)的檢查,只有那些在某些peer中被限制的行為在需要調(diào)用時,才被檢查。)
- 管道服務(wù)(Pipe Service)。本服務(wù)用于在peer組成員間的鏈接管道的建立和管理。
- Resolver服務(wù)。本服務(wù)用來發(fā)送一般的查詢請求到其他的peer。peer可以定義和交換請求以便發(fā)現(xiàn)任何需要的信息(比如一個服務(wù)的狀態(tài)或者一個管道端點的信息。)
- 監(jiān)視服務(wù)(Monitoring Service)。本服務(wù)用來讓一個peer監(jiān)視本組中的其他成員服務(wù)。
3.Network Services。peer之間可以協(xié)作并通信以發(fā)布,發(fā)現(xiàn)和啟動網(wǎng)絡(luò)服務(wù)。peer可以發(fā)布多個服務(wù)。peer通過Peer Discovery Protocol來發(fā)現(xiàn)network service。在JXTA協(xié)議中組織了兩個層次上的network service。
- Peer Service。一個peer service只有當(dāng)peer公布了自己的service時才能被訪問。如果這個peer失敗了,那么它的service也失敗了。不同的peer可以運行某個服務(wù)的多個實例,但每個實例都必須公開自己的廣告(advertisement).
- Peer Group Service。peer組服務(wù)是這個組中成員所運行服務(wù)的實例的集合的組織形式,其中這些實例是互相合作的。如果其中任何一個peer失敗了,那么這個 peer組服務(wù)將不會收到影響(假定這個服務(wù)可以從其他peer獲得)。peer group服務(wù)通過peer 組廣告的以部分來發(fā)布。
4.Modules。JXTA的module用來描述任何一段用來實現(xiàn)JXTA world中一個行為的“代碼”的抽象表示(Abstraction)。Network Service就是在一個peer上實現(xiàn)的行為的一個最一般的例子。這個Module Abstraction不一定特指什么“代碼”,它可以是一個Java類,也可以是Java jar,或者動態(tài)鏈接庫dll,一個XML消息或是一個腳本。這個module的行為交給了module的實現(xiàn)者。對于一個實例(instance), module表示了一個網(wǎng)絡(luò)服務(wù)(network service)在不同平臺上的不同實現(xiàn),這些平臺比如說在java平臺,MS windows平臺,Solaris 平臺。
Module允許peer實現(xiàn)一個新的行為,通過提供了一個一般的抽象。當(dāng)peer瀏覽或者加入一個peer組時,他可以查找新的其打算實現(xiàn)的行為。比如,當(dāng)加入一個peer組后,一個peer可能必須學(xué)習(xí)新的搜索服務(wù),這個服務(wù)只能在本peer組中使用。為了加入到這個組,這個peer必須實現(xiàn)這個新的搜索服務(wù)。這個module框架可以啟動平臺無關(guān)行為的表示(representation)和廣告(advertisement)。并允許peer描述和實現(xiàn)任何形式這個行為(behavior)的是實現(xiàn)。比如,一個peer使用java或者c實現(xiàn)一個行為的實現(xiàn)。
& amp; nbsp; 描述和公告一個平臺獨立的行為的能力能有有效的支持peer組包含異構(gòu)的peer。module的廣告可以使JXTA的peer能夠采用平臺獨立的方式描述一個行為。JXTA平臺使用module廣告來自描述。
module抽象(Module abstractIon)包括一個module class,module specification和一個moduleimplementation。
- Module Class。module class主要用于廣告一個行為(behavior)的存在。這個class的定義表述了一個期望的行為和一個期望的對所支持的module的綁定。每一個module class都有一個唯一的ID,成為MoudleClassID
- Module Specification。Module Specification主要用于訪問這個module。它包含了訪問或者啟動這個module的所有必要的信息。比如,一個服務(wù),他的module specification可能包含了一個用于和其他服務(wù)相通信的管道的廣告。一個module specification用于提供module class所指明的功能。對于一個module class可能有多個module specification。每一個module specification都有一個唯一的id,ModuleSpecID。ModuleSpecID包含了ModuleClass ID,并指明了所使用的module class。一個module specification暗含了對網(wǎng)絡(luò)的兼容性。對于一個給定的module specification的所有實現(xiàn)都必須使用相同的協(xié)議,這些實現(xiàn)都需要是兼容的,即使使用不同的語言實現(xiàn)的。
- Module Implementation。Module Implement是一給定module specification的實現(xiàn)。對于一個module specification可以有多個module implementation。每一個module implementation都包含了它所實現(xiàn)的與specification相關(guān)聯(lián)的ModuleSpecID。
總之,對于一個給定的module Class都可能有多種規(guī)范,這些規(guī)范可能是完全不同的。然而任何給定規(guī)范的所有實現(xiàn)都是假定可以互相兼容的。