Message(消息)
在JXTA中,有两种方式来处理消息。一种是使用XML格式,数据都遵循XML标准被包装到消息里;另外一种是使用二进制格式。尽管希望对所有的JXTA消息都使用XML格式,可是由于大量的消息需要传送,使用XML格式的消息会导致效率较低,而且由于消息通常是在程序之间传送宾,所以可以规范的消息内容使用二进制的格式;对于其他的仍然采用XML格式。在一个XML协议中使用二进制消息看起来似乎不太合理,但事实上使用二进制消息,除了可以得到紧凑的格式之外还有其他优点。首先数据可以使用一些标准技术进行压缩,对广西等数据的压缩可以节省大量的传输时间;另外,许多消息本身就是二进制的格式;还有一个问题就是加密,为了加密可以把数据转化成为二进制,然后直接使用二进制的消息来传输。
Rendezvous Peer(集合点)
一个集合点首先是一个Peer,而且是一个能够处理其他Peer请示的Peer。集合点也可以将请求委托给其他Peer,当然那些Peer也必须是集合点。使用集合点的一个主要目的就是为了方便在本地网络之外搜索广告。集合点通常拥有更多资源,并且可以存储大量的有关它周围Peer的信息。
集合点也可以作为搜索的传递者。集合点可以转发发现请求到其他的集合点(原集合点通过与其他Peer的广告交互而得到了被转发集合点的信息)。每一个集合点如果本身没有被请示的信息它都转发该请求。
图2.3说明了一个典型搜索过程。远程搜索从Peer1开始,它首先通过IP多播(IP Multicast)询问本地Peer2和Peer3。Peer2和Peer3很可能和Peer1处于同一个局域网内,所以很快收到了搜索请示。接下来,如果Peer2和Peer3没有所搜索的特定资源,搜索将通过集合点进行。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目前支持TCP和HTTP,不过对其他协议的支持正在开发中。
在因特网上网关是与大多数安全机制交互的关键。防火墙、代理服务器和NAT设备是主要的安全屏障。图2.4说明网关Peer2是怎样作为Peer1和Peer3之间的交互接口的。网关将从Peer1来的TCP消息转换成HTTP消息传递给Peer3.当消息从Peer1发出时,是通过TCP发往网关Peer2,网关Peer2,网关Peer2存储了这个消息,直到Peer3向它发出获得消息的HTTP请求。
分享到:
相关推荐
总的来说,"精通JXTA"是一本全面而深入的JXTA指南,不仅适合初学者理解P2P网络的基本概念,也适合有经验的开发者深化对JXTA平台的理解,掌握其高级特性和最佳实践。通过阅读本书,读者可以掌握JXTA的相关知识,利用...
1. **JXTA 概念**:首先,理解JXTA的核心概念至关重要,包括对等节点(Peers)、边缘网络(Edge Network)、对等组(Peer Groups)、管道(Pipes)和服务(Services)。每个概念都是构成P2P网络的基础。 2. **JXTA ...
通过阅读"精通JXTA"这本书,读者不仅可以理解JXTA的基本概念和技术细节,还能学会如何利用这些知识去解决实际问题。书中的案例分析和实践指导将使读者在P2P编程领域变得更加熟练。无论你是Java开发者还是对P2P技术感...
为了利用JXTA 2.7,开发者需要熟悉Java编程语言,并了解P2P网络的基本概念。JXTA的API提供了丰富的类和接口,用于创建对等节点、发布和查找资源、建立管道等。通过深入研究JXTA的文档和示例代码,开发者可以构建出...
JXTA的核心概念包括对等点(Peers)、边缘服务(Edge Services)、管道(Pipes)和广告(Advertisements)。这些概念构成了P2P网络的基础框架。 **JXTA P2P 标签** 指的是JXTA技术在P2P领域的应用。使用JXTA,...
- **理解JXTA概念**:熟悉P2P网络、管道、广告和发现等基本概念。 - **安装JXTA SDK**:获取Oracle提供的JXTA SDK,包含开发所需的库和工具。 - **学习API**:通过阅读文档和示例代码,掌握JXTA API的使用。 - **...
提供了JXTA 2.5的源代码,这对于开发者深入理解JXTA的工作原理和进行二次开发至关重要。通过分析源码,开发者可以学习到如何实现P2P网络的连接建立、数据交换、服务发现等功能,同时也能根据项目需求进行定制化修改...
这个例子可以帮助初学者理解JXTA的核心概念,如对等节点的交互、服务发现和数据交换。 **P2PSocket_JXTA**则是JXTA中的一种特殊类型的套接字,它扩展了传统的Java Socket API,使它们能够工作在P2P环境中。P2...
JXTA是一个分布式计算模型,它的核心概念包括对等节点(Peers)、边缘服务(Edge Services)、管道(Pipes)和广告(Advertisements)。每个对等节点都是网络中的平等成员,可以提供或消费资源和服务。边缘服务允许...
这本书深入浅出地介绍了JXTA的核心概念和技术,包括P2P网络的基础知识、JXTA协议栈的组成部分、边缘节点的创建与交互,以及如何使用JXTA实现各种应用。书中涵盖了从基础到高级的JXTA开发技术,适合有Java背景的...
在书中,作者通过详细的实例和源代码,逐步解析了JXTA的核心概念和技术,包括但不限于广告(Advertisements)、管道(Pipes)、服务发现、身份验证、安全性和资源管理等。这些章节的源代码分布在不同的压缩包文件中...
**JXTA 技术核心概念** 1. **对等节点(Peers)**: 在JXTA网络中,每个参与者都是平等的,称为对等节点。它们能够互相发现、交换信息和服务。 2. **边缘网络(Edge Network)**: 这是JXTA网络的基础,由众多连接到...
《JXTA in a Nutshell》是另一本关于JXTA技术的快速参考指南,它旨在帮助开发者迅速了解JXTA的基本概念和实践。这本书主要涵盖: 1. **JXTA基础**:简要介绍JXTA的哲学、目标和设计原则,以及P2P网络的基本概念。 ...
总结,"jxta.rar_jxta"这个压缩包可能是一个学习JXTA P2P编程的资源,其中的"HelloWorld"实例将引导用户熟悉JXTA的基本概念和操作流程,涉及JXTA的初始化、服务广告、发现、连接建立以及数据交换等核心功能。...
JXTA的核心概念包括边缘设备(Peers)、边缘网络(Peer Groups)、广告(Advertisements)、管道(Pipes)和服务(Services)。边缘设备是指参与JXTA网络的任何设备,它们可以是服务器、客户端或者嵌入式设备。边缘...
JXTA的P2P网络模型基于“对等者”(Peers)的概念,每个参与的设备都是平等的,可以既是服务提供者也是服务消费者。通过使用"jxta.jar",开发者可以轻松地在应用程序中集成P2P功能,如创建和加入网络、发布和查找...
**一、JXTA核心技术概念** 1. **对等网络(Peer-to-Peer Network)**:在JXTA中,每个节点既是服务提供者也是服务消费者,所有设备地位平等,无需中心服务器进行协调。 2. **边缘计算(Edge Computing)**:JXTA...
总的来说,JXTA技术手册示范源码`jxtaexamles`为开发者提供了一个宝贵的实践平台,帮助他们理解P2P编程的核心概念和JXTA框架的运作方式。通过实际操作这些示例,开发者可以更好地掌握JXTA技术,进而开发出高效、可靠...
**P2pSocket是JXTA网络中的一个关键概念,它是基于TCP/IP的对等socket,允许P2P网络中的节点直接建立连接并交换数据。P2pSocket的使用类似于传统的Java Socket,但具有更高级的功能,如身份验证、加密和路由透明性。...