在混合型的P2P网络结构中,可能存在多个超级节点(Rendezvous Peer),当一个节点的身份是普通边缘节点时,首先和一个称为本地Rendezvous Peer进行连接,然后加入对等组。那么其他所有Rendezvous Peer都被看作远程Rendezvous Peer。从一个Rendezvous Peer的角度来看,直接和自己连接的计算机称为本地节点,其他计算机称为远程节点。
每个计算机在登录自主协作学习P2P网络过程中或当新对等组产生时,如果其身份被确定是普通边缘节点时,必须先加入一个对等组才能进行协作学习。加入对等组的过程如下:
(1) 发现组广告。
(2) 获得组的验证证书(Authentication Credential)。
(3)获得组的成员服务(Membership Service)。
(4) 加入对等组。
(5) 修改RPV。
加入对等组的主要程序如下:
public class GroupDiscoverDemo implements DiscoveryListener
{
//发现组广告
public PeerGroupAdvertisement findGroup()
{
}
}
discovery.addDiscoveryListener(this); //加入接口监听事件
discovery.getremoteAdvertisements(null,
DiscoveryService.GROUP,null,null,5); //查找组的广告(www.daowen.com)
protected void joinGroup(PeerGroup aspg) //获得组的验证证书
{
AuthenticationCredential authCred =
new AuthenticationCredential(aspg,null,null);
MembershipService menbershipservice = (MembershipService);//获得组的成员服务
aspg.getMembershipService();
Authenticator auth = menbershipservice.apply(authCred);
…
if(auth.isReadyForJoin())
{
Credential myCred = membership.join(auth); //加入组
System.out.println(“Successfully joined group”);
}
PeerID rvpid = aspg.getPeerID();
public void updateLocalRendezvousPeerView(rvpid){ … } //更新RPV
}
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。