NetworkManager和NetworkConfigurator

NetworkManager和NetworkConfigurator
NetworkManager是用来初始化JXTA平台的,在这里可以对你自己Peer的名字和ID,你的JXTA主目录,Seeding RDV和Relay,infrastructure peer group等等信息进行设置。有些设置可以直接对NetworkManager进行,但通常是得到此manager的NetworkConfigurator,通过Configurator对JXTA平台进行设置。完成设置之后,就可以启动JXTA平台了,通过调用NetworkManager.startNetwork()来启动,返回值是刚才设置的infrastructure peer group(假如没有设置,默认是netPeerGroup)。那么这个infrastructure peer group有什么用呢?它是对构成我们的JXTA网络起到基础设施的作用。首先,所有我们自定义的peer group都是基于这个infrastructure peergroup,是他的子组。其次,他为我们的JXTA网络传递一些基础数据,最明显的一个例子是RDV的连接,假如一个peer加入了peer group A,但是没有找到A的RDV节点,于是他将接收不到组内的任何信息,这时他可以监听infrastructure peer group,因为A的RDV会在其上广播自己的RDV广告,当在基础网络上获得了RDV广告后,节点就可以顺利找到自己组的大家庭了。由此可见,infrastructure peer group对构成JXTA网络起着关键作用,我们可以使用JXTA默认的netPeerGroup,也可以使用自己创建的suisPeerGroup作为基础网络。

JXTA程序在启动之前都需要进行配置,管理整个JXTA程序的是net.jxta.platform.NetworkManager类的一个实例:

manager=new NetworkManager(NetworkManager.ConfigMode.ADHOC,"HelloWorld",new File(new File(".cache"),"HelloWorld").toURI);

manager.startNetwork();

NetworkManager的构造函数的第一个参数是Peer的型,tutorial里写的是ADHOC,我们一般使用EDGE、RELAY、RENDEZVOUS或者RENDEZVOUS_RELAY。HelloWorld是节点名称,第三个参数定义了Home的位置,此处是程序目录下的.cache/HelloWorld/文件夹。Home用于保存和JXTA节点有关的所有信息,包括配置文件和广告、对等组信息等缓存文件。生成了NetworkManager之后可以通过startNetwork将返回NetPeerGroup的一个实例,在以后我们会用到现在做到的,仅仅是根据默认配置启动JXTA,这是远远不够的,我们必须按照自己的要求对节点进行配置。

首先,对于NetworkManager的配置必须在调用startNetwork之前。不然将使用默认配置。对NetworkManager可以设置模式、PeerID、Home位置等,一个比较重要的设置是setConfigPersistent,设为true的话,在启动JXTA平台时会将当前配置写入Home目录的PlatformConfig文件中,以供下次读取。

更多的设置是通过net.jxta.platform.NetworkConfigurator类来实现的,可以通过调用NetworkManager的getConfigrurator()函数获得对应NetPeerGroup的NetworkConfigurator。

在NetworkConfigurator可以通过读取PlatformConfig文件以载入预先完成的配置。

你可能感兴趣的:(.net,cache,配置管理)