JXTA技术简介(参考JXSE_ProgGuide_V2.5

 

JXTA目的是使网络中的各种设备(传感器,手机,pda,笔记本等)相互连接通信,JXTA是一种协议,而不是一种语言!因此JXTA是不依赖于具体平台的,但是当前的JXTA协议

是在java开发的,好像有(j2me版本)

 

JXTA协议标准化了关于peers的几种行为:

1)互相发现

2)自组织peer

3)广告以及发现资源(在JXTA网络中,资源包括了很多含义:peers,管道,groups等)

4)相互通信

5)检测对方

 

利用JXTA,可以容易实现以下几个方面的互操作p2p程序

1)相互发现peers,不管peers是在防火墙还是NATs

2)互相共享资源

3)查找内容

4)创建组(组是基于一定共同目的的集合)

5)远程操作peer

6)安全通信


Jxta协议栈


JXTA core Service

封装基本的p2p网络功能,包括发现,互相通信(越过防火墙,NATs),创建组,建立安全通信

Services Layer

Applications Layer


JXTA peers可以分成3种基本类型

1 Minimal_Edge peers:仅仅提供基本的JXTAService,并且需要依赖于其他peers来参与到JXTA网络

2 Full_Edge peers:提供所有core service以及标准jxta功能,这些节点包括phonespcs

3 super peer(个人理解是用于为jxta通信服务,为了帮助穿越防火墙以及NATs

  1Relay用于帮助不能直接连接的peer来存储以及传输信息(例如防火墙,NATs

  2Rendezvous用于存储广告信息以及所以,帮助节点来响应查询广告信息,更重要的是该节点维护网络的拓扑结构,用于控制分发信息路径。

  3) proxy:帮助Minimal_Edge peers来接入jxta网络

解释:

Relay主要用于穿透防火墙,以及穿透NATs,穿透防火墙的一个例子如下:


A先通过HttP穿透防火墙与C相连,BC之间可以使用其他协议(TCP\IPHTTP等)

所以AB就可以通过这种方式相连,在JXTA中,应该是利用管道信息来保存这样一条传输路径,来屏蔽下层的具体相连方式。另外,如果网络中一个peerNat或防火墙内部,就必须设置一个Relay来相连,否则应该无法连接出去(暂时理解,待深入探讨),在JXTAshell中就可以看到有一个Advanced 选项来设置Relay

 Rendezvous 用来存储广告信息以及维护拓扑结构,Rendezvous之间可以互相交互拓扑信息,存储广告信息的索引,是查询广告更加容易,一个注意的地方是:Rendezvous只是存储广告信息的索引,它不响应查询信息,如果收到查询信息,Rendezvous会查找索引,然后向目标机器发送信息,要求其直接回复查询信息。如果Rendezvous没有该索引,Rendezvous就会通过算法来查找索引。


主要内容转载在:http://blog.csdn.net/binghuazh/archive/2009/02/22/3923709.aspx