论坛首页 入门技术论坛

JXTA的概念(二)

浏览 2004 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2010-03-26   最后修改:2010-03-26

Message(消息)

JXTA中,有两种方式来处理消息。一种是使用XML格式,数据都遵循XML标准被包装到消息里;另外一种是使用二进制格式。尽管希望对所有的JXTA消息都使用XML格式,可是由于大量的消息需要传送,使用XML格式的消息会导致效率较低,而且由于消息通常是在程序之间传送宾,所以可以规范的消息内容使用二进制的格式;对于其他的仍然采用XML格式。在一个XML协议中使用二进制消息看起来似乎不太合理,但事实上使用二进制消息,除了可以得到紧凑的格式之外还有其他优点。首先数据可以使用一些标准技术进行压缩,对广西等数据的压缩可以节省大量的传输时间;另外,许多消息本身就是二进制的格式;还有一个问题就是加密,为了加密可以把数据转化成为二进制,然后直接使用二进制的消息来传输。

Rendezvous Peer(集合点)

一个集合点首先是一个Peer,而且是一个能够处理其他Peer请示的Peer。集合点也可以将请求委托给其他Peer,当然那些Peer也必须是集合点。使用集合点的一个主要目的就是为了方便在本地网络之外搜索广告。集合点通常拥有更多资源,并且可以存储大量的有关它周围Peer的信息。

集合点也可以作为搜索的传递者。集合点可以转发发现请求到其他的集合点(原集合点通过与其他Peer的广告交互而得到了被转发集合点的信息)。每一个集合点如果本身没有被请示的信息它都转发该请求。

2.3说明了一个典型搜索过程。远程搜索从Peer1开始,它首先通过IP多播(IP Multicast)询问本地Peer2Peer3Peer2Peer3很可能和Peer1处于同一个局域网内,所以很快收到了搜索请示。接下来,如果Peer2Peer3没有所搜索的特定资源,搜索将通过集合点进行。Peer1会向它的集合点Peer发出搜索请求,如果该集合点Peer也没有所需的广告信息,该集合点Peer会向它所知道的集合点Peer发出搜索请求。需要注意的是,除了和提出查询请求的Peer处于同一局域网内的Peer收到查询请求外,在局域网外只有集合点都会收到查询请求。

2.3 通过集合点进行Peer搜索的过程

 

IP多播(IP Multicast)是一个一到多的消息传输协议。IP多播用来发送数据的副本到一组地址。在P2P应用程序中,IP多播有两个好处。首先,因为多播使用一个组地址而不是使用IP地址,一个Peer可以在不知道接收者地址的情况下发送消息。这样做的结果是在多播网络中的所有Peer都可以响应发出请求的Peer,将有关查询的结果信息、甚至是自己的IP地址(用于与请求Peer直接通信)发送回去。

IP多播的第二好处是养活使用带宽。因为所有的Peer都可以看到一个单一的消息,没有必要向每一个Peer发送消息一个副本。当发送大量的数据到一组Peer时,这一点是非常重要的。

使用多播的一个缺点是一些防火墙和路由器会阻塞多播的消息。在因特网提供商之间通过因特网主干网可以支持多播消息,不过这种服务是需要额外付钱的。还存在其他IP多播的障碍,比如个人防火墙、子网络路由器。这就是为什么JXTA不是仅仅支持IP多播的原因。

一般情况下,只要在防火墙后能够支持多播对于大多数的P2P网络就足够了。你可以这样来利用本地的多播,先将消息发送到每一个网络的某一个特定的Peer上,然后该Peer又通过本地的多播将消息发送给本地的Peer

只有集合点允许进行超出局域网的搜索。一个Peer可以选择成为一个集合点,但这不是必须的。作为集合点好的一面是集合点可以缓存的形式保留从其他集合点得到的查询结果 的副本;不好的一面是,该Peer将占用很多的内存和带宽。由于请求数量可能很多并且大量的广告数据会消耗很多的计算机资源,在这种情况下我们可以选择将计算机作为专用的集合点。集合点同时可以作为企业内部网的网关和路由器,其效果和使用传统的路由器是一致的。在每一个子网内也需要使用一个集合点。

是否选择使用专用的集合点Peer取决于安全性的要求和使用的P2P应用的范围。P2P网络的拓扑结构需要通过多个的例子来进行测试并且需要定期监控。特别要注意是:当P2P网络的服务在大量Peer上存有副本时,P2P网络的效率更高。有些时候并不是额外的集合点就可以提高网络效率。

当一个Peer在搜索广告时或者是其他服务使用集合点机制来路由消息时,集合点才被使用,因此一个Peer对集合点的需要不是持续的。为了能够更好地发挥作用,一个连接到因特网的集合点最好尽可能地暴露给网络 上的多个Peer。在防火墙内把所有的Peer都配置为集合点不一定能够发挥很大作用。

Router Peer(路由Peer

JXTA中的一个路由Peer是一个支持Peer端点协议的Peer。不是所有的Peer都需要实现该协议,因为和传统的网络路由器一样,我们只需要少数几个路由器去支持一个大网络。JXTA路由器和传统的路由器非常想像。最主要的区别是P2P不是非常固定并且包括了很多非静态地址。

Gateway Peer(网关Peer

JXTA中的一个网关Peer是一个作为通信中继的Peer。网关Peer和集合点的不同之处在于,网关是用来在Peer间传递消息,而集合点是用来传递请求的。

网关Peer就像是无线电转发器的存在,网关对网络的连通具有决定性的作用。网关可以存储消息,并且等待希望得到这些消息的接收者来收集它们。

网关的存在是因为因特网非常混乱。混乱的原因是有各种各样的用于防止Peer间通过公用访问方法通信的安全保障和障碍物,另一个原因是各个Peer所支持的协议是不同的,一些Peer可能使用TCP,另一些可能使用HTTP。在无线情况下,我们需要使用无线应用协议(WAP)。网关尽可能多地支持这些协议,因此它可以作为不同类型协议间的中介。JXTA目前支持TCPHTTP,不过对其他协议的支持正在开发中。

在因特网上网关是与大多数安全机制交互的关键。防火墙、代理服务器和NAT设备是主要的安全屏障。图2.4说明网关Peer2是怎样作为Peer1Peer3之间的交互接口的。网关将从Peer1来的TCP消息转换成HTTP消息传递给Peer3.当消息从Peer1发出时,是通过TCP发往网关Peer2,网关Peer2,网关Peer2存储了这个消息,直到Peer3向它发出获得消息的HTTP请求。

 

 

 

 

   发表时间:2011-02-25  
求教牙哥,我正在用JXTA做一个协同的编辑器,在同一个局域网内有一个对等组,有新用户加入的时候偶尔会出现该用户找不到对等组的情况,不知道能否请牙哥赐教?另外,如果我想扩展到不同局域网的对等点也能互相连接,我应该怎么处理呢?
0 请登录后投票
论坛首页 入门技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics