很久很久以前

            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
            34 隨筆 :: 4 文章 :: 17 評論 :: 0 Trackbacks
          本文主要介紹了JXTA中的各種概念。
          1.Peer。一個peer就是實現了一個或多個JXTA協議的網絡設備。比如傳感器,電話, PDA,PC,服務器,巨型機等等。每一個peer與其他peer都是獨立操作并且是異步的。有peer ID來唯一標識一個peer。peer使用JXTA協議公開一個或多個網絡接口(network interface),每一個公開的接口都被廣告為一個peer端點(peer endpoint),這個peer端點唯一標識了一個網絡接口。peer之間不需要有直接的點對點的網絡連接。可以使用中間的peer作為peer的消息路由,將由于硬件網絡或者網絡配置(NATs,防火墻或者代理)而造成的兩個通信peer進行互聯。peer通常被設計成網絡中自然地互相發現,從而構成暫時的或持久的關系成為peer組(peer gorup)。
          2.Peer Group.一個peer組是一個peer的集合,這些peer都有一組相同的服務。peer自組織的加入到peer組中,并通過一個唯一的peer組id來區別這些peer組。每一個peer組都可以建立一個屬于自己的memebership policy,從任何人可以加入到最嚴格的安全驗證以及受保護方式(需要完全的認證書來加入)。一個peer可以同時屬于多于一個peer組。默認地,第一個peer組被實例的組是Net Peer Group。所有的peer都屬于Net Peer Group。peer可以選擇加入其他的peer group。JXTA協議描述了peer如何公開,發現,加入以及監控peer組。
               如下幾點說明了創建peer組的目的。
          1. 建立安全的環境。peer組可以創建一個本地控制域,在這個域中使用一個特定的安全策略。這個安全策略可以簡單的只是一個明文的帳號 /口令交換,也可以像PKI一樣成熟。peer組界定認證的成員訪問和公開受保護的內容(content)。peer組在建立了一個邏輯上的區域,從而對訪問peer組的資源進行界定。
          2. 創建一個范圍環境。peer組裕興建立一個本地的專用域。比如,peer可以組織起來實現一個文檔共享網絡或者一個CPU共享網絡。 peer組提供細分網絡成抽象的區域來提供內在范圍機制(implicit scoping mechanism)。比如,當搜索一個組內容的時,peer組可以界定定義一個搜索范圍。
          3. 創建一個監視環境。peer組允許一個peer為了任何目的去監視一組peer(比如,心跳,traffic introspection或者accountability)。peer組也可以構建一個父子層次結構,其中任何一個組都有一個唯一的父親。查詢請求能偶在這個組中傳播。對于這個組中的廣告也可以在其父組中公開,當然也包裹這個組本身。
          peer組提供了一組服務成為peer組服務。在JXTA中敵營了一個核心peer組服務集合。兩個peer如果要通過一個服務進行交互,他們配需位于同一個peer中。
              核心的組服務有如下:
          1. 發現服務(Discovery Service)。本服務被組中的peer用來查詢per組資源,比如peer,peer組,通道和服務等。
          2. 成員關系服務(Membership Service)。本服務被當前成員用來拒絕或接受一個新的組成員應用。一個peer想要加入到一個group前,首先要確定一個當前的成員,并請求加入。當前成員的集合可以拒絕或者接受某個想加入的應用(application)。本服務可能會發起一個所有peer或者指定組代表的一次投票來決定是否接受或者聚居新的成員應用。
          3. 訪問服務(Access Service)。使用訪問服務可以用來驗證一個peer對另一個peer的請求(request)。如果訪問被允許,那么接受請求的peer會提供給請求peer關于該請求所要知道的信息的信任和相關信息。(注意,在peer組中,不是所有的行為(action)都需要通過訪問服務的檢查,只有那些在某些peer中被限制的行為在需要調用時,才被檢查。)
          4. 管道服務(Pipe Service)。本服務用于在peer組成員間的鏈接管道的建立和管理。
          5. Resolver服務。本服務用來發送一般的查詢請求到其他的peer。peer可以定義和交換請求以便發現任何需要的信息(比如一個服務的狀態或者一個管道端點的信息。)
          6. 監視服務(Monitoring Service)。本服務用來讓一個peer監視本組中的其他成員服務。
              不是所有上面提到的服務都必須要被每個peer實現。一個peer組可以自由的實現那些它認為有用的服務,并可以依賴于默認的Net Peer Group來提供非關鍵核心服務的一般實現。
          3.Network Services。peer之間可以協作并通信以發布,發現和啟動網絡服務。peer可以發布多個服務。peer通過Peer Discovery Protocol來發現network service。在JXTA協議中組織了兩個層次上的network service。
          • Peer Service。一個peer service只有當peer公布了自己的service時才能被訪問。如果這個peer失敗了,那么它的service也失敗了。不同的peer可以運行某個服務的多個實例,但每個實例都必須公開自己的廣告(advertisement).
          • Peer Group Service。peer組服務是這個組中成員所運行服務的實例的集合的組織形式,其中這些實例是互相合作的。如果其中任何一個peer失敗了,那么這個 peer組服務將不會收到影響(假定這個服務可以從其他peer獲得)。peer group服務通過peer 組廣告的以部分來發布。
              服務可以是事先被安裝到peer上或者通過網絡安裝的。為了真正的運行一個服務,peer必須為定位一個適合當前peer運行環境的一個實現。這個從網絡上查找,下載和安裝一個服務的過程很類似于在Internet上搜索一個Web頁面,取回這個頁面然后再安裝需要的插件的過程。
          4.Modules。JXTA的module用來描述任何一段用來實現JXTA world中一個行為的“代碼”的抽象表示(Abstraction)。Network Service就是在一個peer上實現的行為的一個最一般的例子。這個Module Abstraction不一定特指什么“代碼”,它可以是一個Java類,也可以是Java jar,或者動態鏈接庫dll,一個XML消息或是一個腳本。這個module的行為交給了module的實現者。對于一個實例(instance), module表示了一個網絡服務(network service)在不同平臺上的不同實現,這些平臺比如說在java平臺,MS windows平臺,Solaris 平臺。
              Module允許peer實現一個新的行為,通過提供了一個一般的抽象。當peer瀏覽或者加入一個peer組時,他可以查找新的其打算實現的行為。比如,當加入一個peer組后,一個peer可能必須學習新的搜索服務,這個服務只能在本peer組中使用。為了加入到這個組,這個peer必須實現這個新的搜索服務。這個module框架可以啟動平臺無關行為的表示(representation)和廣告(advertisement)。并允許peer描述和實現任何形式這個行為(behavior)的是實現。比如,一個peer使用java或者c實現一個行為的實現。
          & amp; nbsp;   描述和公告一個平臺獨立的行為的能力能有有效的支持peer組包含異構的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的所有必要的信息。比如,一個服務,他的module specification可能包含了一個用于和其他服務相通信的管道的廣告。一個module specification用于提供module class所指明的功能。對于一個module class可能有多個module specification。每一個module specification都有一個唯一的id,ModuleSpecID。ModuleSpecID包含了ModuleClass ID,并指明了所使用的module class。一個module specification暗含了對網絡的兼容性。對于一個給定的module specification的所有實現都必須使用相同的協議,這些實現都需要是兼容的,即使使用不同的語言實現的。
          • Module Implementation。Module Implement是一給定module specification的實現。對于一個module specification可以有多個module implementation。每一個module implementation都包含了它所實現的與specification相關聯的ModuleSpecID。
              Module可以被peer組服務使用,也可以被獨立的服務所使用。JXTA服務通過module abstraction來區別存在的服務(他的Module Class),服務的specification(Module Specification),或者服務的實現(Service Implementation)。所有的這些都有一個聯合的廣告,并且可以通過其他JXTA peer來公告和發現的。作為一個例子,考慮JXTA的發現服務。它包含一個唯一的ModuleClassID,標識了他作為一個發現服務——他的抽象功能。對于這個發現服務可以有多個不同的規范(Specification),并伴隨著不同的實現。對于組的大小和在網絡中的傳播方式可以使用不同的裁剪策略。每一個Specification都有唯一的MdouleSpecID,其中指明了發現發現服務的ModuleClassID。對于每個規范,都可能有多種實現,每種實現都包含了相同的ModuleSpceID。
              總之,對于一個給定的module Class都可能有多種規范,這些規范可能是完全不同的。然而任何給定規范的所有實現都是假定可以互相兼容的。
          posted on 2007-05-19 23:11 Long Long Ago 閱讀(956) 評論(0)  編輯  收藏 所屬分類: others
          主站蜘蛛池模板: 喀什市| 拉孜县| 明溪县| 昌图县| 江城| 邵武市| 个旧市| 陵川县| 余江县| 尼玛县| 中宁县| 博兴县| 合川市| 哈巴河县| 台中县| 门头沟区| 乐亭县| 娱乐| 额敏县| 蓬溪县| 东山县| 阜新| 文昌市| 龙海市| 八宿县| 安吉县| 房山区| 嘉鱼县| 收藏| 长垣县| 怀柔区| 上饶市| 巴塘县| 同心县| 彭水| 阿拉善左旗| 黑水县| 达州市| 北碚区| 名山县| 翁源县|