元素的內容:
七個服務:
net.jxta.impl.rendezvous.RendezVousServiceImpl
net.jxta.impl.endpoint.EndpointServiceImpl
net.jxta.impl.membership.NullMembershipService
net.jxta.impl.discovery.DiscoveryServiceImpl
net.jxta.impl.peer.PeerInfoServiceImpl
net.jxta.impl.pipe.PipeServiceImpl
net.jxta.impl.resolver.ResolverServiceImpl
四個端點協議:
net.jxta.impl.endpoint.tls.TlsTransport
net.jxta.impl.endpoint.tcp.TcpTransport
net.jxta.impl.endpoint.EndpointRouter
net.jxta.impl.endpoint.servlethttp.ServletHttpTransport
一個應用:
net.jxta.impl.peergroup.StartNetPeerGroup

內容:
1.本文目標
本文是以對JXTA的基本概念有一定理解,并且想進一步挖掘其實現手段的讀者為對象的,因此,將不重復介紹JXTA的一些基本知識。
本文的主要目標是分析初始對等系統是如何構建的,及為什么這么構建(How and Why)。為了確保作者的思路集中使目標得以實現,在此基礎上的各種服務,及端點協議的實現只能作為一種抽象的概念來闡述。另外,平臺實現時所采用的設計模式只會提及名稱,而不會去分析。該系列文章的其他章節將會把他們分為不同的目標逐個闡述。
2.JXTA系統的構建入口
2.1 概念分析
JXTA的最核心的概念之一就是對等組,它是共享資源和服務的對等機的集合。同樣java參考實現中,就是以對等組為起始的服務平臺。然后,在此基礎上形成了對等機,以及對等發現,對等解析,對等管道,對等成員資格,對等訪問,等協議。
JXTA協議中定義了三個重要的對等組:Null WorldGroup NetGroup
Null 表示為空
WorldGroup 系統級起始對等組,任何其他對等組(null 除外)均是其后代
NetGroup 用戶級的缺省對等組,其parentGroup就是WorldGroup
由于我們現在可能還沒有實例化的概念,所以暫時均不分析協議中為什么如此定義,及其功能劃分的依據。在隨后的類圖及代碼分析中,就自然會明白其中韻味。
2.2 代碼分析
以下是一個對等點構建JXTA對等系統的初始代碼。
PeerGroup netPeergroup = PeerGroupFactory.newNetPeerGroup();
參考實現中,構建整個系統的框架,采用的是factory模式。這里我們獲得的netpeerGroup就是NetGroup。到目前為止,系統已經構建了WorldGroup,以及建立在其上面的各種服務。并且為用戶缺省的建立了一個對等組NetGroup。本文的目標就是讓我們清楚JXTA系統是如何初始化的,并結合JXTA協議分析這種實現方法的優缺點。
接下來的任務是,首先讓我們對JXTA的參考實現中的對等平臺的主要類的職責有個整體的概念,然后逐步跟蹤各個服務,及端點協議的構建。
3.對等平臺的主要類的分析
平臺類的類圖見下圖:注釋里簡要的描述了個各類或接口的用途。
從整體上,由類的繁雜的繼續層次??梢粤私獾綐嫿ㄍ甑腏XTA對等組及其服務,有不同層次上的需求,例如,PlatForm是系統級的,構建了屬于底層平臺的PeerGroup: WorldGroup。而StdPeerGroup則是一般級別的標準對等組,例如,前文中
PeerGroup netPeergroup = PeerGroupFactory.newNetPeerGroup();
返回的就是該級別的對等組。雖然這里采用Factory method模式,讓用戶獲得的是外表一致的PeerGroup接口,但提供的用戶仍然是該級別的類服務。
4.深入到代碼層
初始化對等組及其服務的序列圖如下所示:
PeerGroup netPeergroup = PeerGroupFactory.newNetPeerGroup();
從圖可以看出,JXTA系統的構件分兩步完成:1.構建對等平臺 2.構建標準對等組。第一步是基礎,1.1.1 init() 和1.2.1 init()均比較復雜,以下將進一步分析。
4.1 對等平臺的構建
流程描述:
從用戶處獲得平臺的基本配置:Configurator
構建ModuleImplAdvertisement
在此基礎上,構建了:PeerAdvertisement和PeerGroupAdvertisement
初始化ModuleImplAdvertisement的端點服務init()
初始化ModuleImplAdvertisement的端點協議init()
初始化ModuleImplAdvertisement的其他服務init()
各項服務依次啟動startApp()
各項端點協議依次啟動startApp()
以上大致描述了其過程,具體類的調用關系請看序列圖。其中配置文件PlatformConfig,和三個廣告PeerAdvertisement, PeerGroupAdvertisement, ModuleImplAdvertisement,描述了整個平臺的配置。其中ModuleImplAdvertisement包含了對等組應該提供的服務(service),端點協議(protocol)及應用(application)。從XML廣告中,可以獲得標簽為MSID(在PeerGroup以常量形式定義)和Code的元素,這樣可以找到具體實現類的地址及初始化參數。以下是ModuleImplAdvertisement中元素的內容:
新聞熱點
疑難解答