在JXTA网络中,有一些概念是需要熟悉和理解的,它们是从JXTA协议中提出的一系列的专有名词。
Peer(对等机)
Peer是一个虚拟的通信点。在一台计算机或者设备上可以有很多个Peer。一个Peer并不是一个用户,因为一个用户可以有多个Peer,同一个设备上也可以有多个Peer(在测试的时候经常用到)。因为Peer不等同于用户,所以需要将用户和Peer抽象出来并分离开。
Peer与特定的网络服务联系得很紧。在JXTA的参考实现中,Peer可以使用网络提供的基本服务,例如rendezvous(集合点服务),router(路由服务),gateway(网关服务)等。这些基本服务又可以提供搜索和通信服务。一般来说,并不是所有的Peer都使用这些服务,它们只使用这些服务的一部分。
Peer Group(对等组)
对等组是一种组织Peer并且发布组内的特定服务的方式。对等组可以被创建、加入和退出。在一个组里还可以更新一个组成员的关系。由于一些原因,对等组需要对成员关系进行一些限制,例如为了通信的安全、隐私的考虑等。这里使用一种协议来认证,它专门收集信息并判断其是否符合成员关系的要求。
对等组为应用程序提供了一种环境,例如对某个话题感兴趣的Peer可以组成一个组,并且在组内使用一个聊天服务来讨论。这样,聊天的信息就会限制在那些加入到这个组内的成员之间。并且,对于想加入到这个组的Peer,可以使用成员ID来进行认证;没有这个ID的Peer不能够加入到组内,也就不能够使用组内的聊天服务。
也可以把对等组看成一个虚拟的私人网络VPN。一个VPN使用了加密的方式,对于偷听者他们不能够理解组内的谈话。对等组也可以限制Peer的加入,同样也可以对谈话消息加密。
Endpoint(端点)
在JXTA应用中,端点是最基本的通信方法。一个商战就是实现了特定通信协议的Peer的地址。一个Peer可以有多个端点,这样可以通过不同的协议来与其他Peer通信。
端点不一定要是物理地址,端点可以允许物理地址发生变化。端点的一个简单例子就是一个IP地址加上一个端口。通过使用这些值,可以打开一个流并且与目标Peer通信。然而,JXTA在流的基础之上又放置了一层,称之为Pipe(管道)。这样,不是将一个流连接到一个地址,而是把一个管道连接到端点上。商战和管道的好处在于,不用去关心Peer所使用的真正的地址和协议是什么。使用抽象出来的端点和管道,可以为创建P2P应用提供强大的功能并降低复杂性。
由于管理使用通信协议来连接,端点描述了协议和连接的所需要的信息。因此端点可以描述HTTP、TCP、BEEP以及其他可以支持的通信协议。
一个Peer可以支持一个或者多个端点。通过使用多种协议,Peer可以提供更有效率的方法。也就是说,如果两个Peer都在防火墙去通信,则需要使用HTTP的端点。
Pipe(管道)
管道是Peer之间的虚拟通道。通常,我们认为对等通信是单个的通信连接,但是也并不是总是这样的。因为防火墙和其他障碍的存在,许多Peer并不能直接连接。这时,管道更像一个在多种通信协议之上的虚拟层,可以通过起网关作用的Peer对通信提供中继支持。
管道是JXTA最基本、最重要的特性,它提供了一种很好的方案,使得Peer在大多数网络情况下都可以通信,而不用去管防火墙或者其他的障碍。即使你不知道另外一个Peer的位置以及它所使用的协议等信息,通过管道仍然可以与之通信。
管道作为一种抽象的方法,隐藏了一些细节,比如在多个连接的时候可能会有多个Peer参与进去。管道也可以重新定位,找到原来的Peer。在JXTA的参考实现中,有几种常用到的管道,它们是:
1、单向异步-----这种管道只用来做单向通信。管道是异步的,消息到达时可能不是顺序的。这是JXTA平台上最基本的一种类型的管道。
2、同步的请求/应答-----所有发出的信息都会收到一个应答信息,消息到达的顺序是按照它们发送时候的顺序。
3、成批改善-----用来改善大量的数据。
4、流传送-----通过流可以更有效地传送诸如声音、视频等大量的数据。
5、双向-----它是两个单身异步管道的组合。
6、单向同步-----所有发出的信息都会收到一个应答消息,消息到达的顺序是按照它们改善时候的顺序。
7、单向可行安全的管道-----所有发出的信息都会收到一个应答信息,并且这些消息都是加密的。
管道还可以分成以下两种类型:
1、点到点类型-----点到点的管道连接两个不同的Peer。可以使用多个起网关作用的Peer来创建连接。
2、传播类型------将一个Peer连接到多个目标Peer。
现有的JXTA参考实现已经提供了单向异步管道、单向可行安全管道和双向的管道。
JXTA和传统的网络是非常不同的。大多数网络协议或者没有地址,或者有一个固定的地址。而JXTA抽象出一个概念叫做端点,用来作为地址。一个Peer可以有多个端点。Peer可以通过一种或者多种协议例如TCP、HTTP等进行通信,所以可以使用多个端点。JXTA使用多种传输协议的目的是为了在与其他Peer通信时可以选择最好的方式。
如果一个Peer在企业的防火墙的后面,可以使用HTTP来与防火墙之外的Peer通信,还可以使用TCP来与防火墙内局域网内部的Peer通信。通过灵活使用多个传输端口,对特定的Peer使用特定的协议,以得到最好的速度和响应。
Advertisement(广告)
一个广告就是一个XML文档,它用来描述JXTA的消息、Peer、对等组或者服务等。广告都遵守编码、标签和内容的标准。广告用来交换JXTA网络上可以获得的任何信息。例如,一个Peer创建了名称为“MyChat”的对等组后,就可以使用IP多播方式把广告发布到本地的JXTA网络。也就说,子网中每一个Peer都会收到一份广告的副本,此外广告还会被改善到集合点去。
Peer使用一种叫做集合(Rendeavous)的特殊Peer来发现网络上其他地方的广告。集合点Peer可以存储广告并且支持搜索。Peer可以使用对等组的名字或者其他属性来搜寻该对等组广告。有了对等组的广告,其他的Peer就可以使用广告中的XML来实例化并加入到“MyChat”这个对等组中。一是成为对等组的成员之后,Peer可以使用对等组的环境所提供的服务。
广告实际上是P2P网络中的“名片”,P2P网络中的任何资源,包括Peer、对等组、管道等都可以用广告来描述,目前是在P2P网络中标志资源,并且可以相互找到。
大多数JXTA广告的编码是使用UTF-8,它是对Unicode的一种ASCII编码方式。UTF-8使用的是8位编码,Uniccode使用的16位编码,因此可以节省一半的空间。只有在消息体中间可能会使用到完全的Unicode编码,在消息体里可以指定使用Uniccode或者其它的字符集作为编码方式。
分享到:
相关推荐
总的来说,"精通JXTA"是一本全面而深入的JXTA指南,不仅适合初学者理解P2P网络的基本概念,也适合有经验的开发者深化对JXTA平台的理解,掌握其高级特性和最佳实践。通过阅读本书,读者可以掌握JXTA的相关知识,利用...
通过阅读"精通JXTA"这本书,读者不仅可以理解JXTA的基本概念和技术细节,还能学会如何利用这些知识去解决实际问题。书中的案例分析和实践指导将使读者在P2P编程领域变得更加熟练。无论你是Java开发者还是对P2P技术感...
《JXTA 2.2 开发文档》是针对Java平台的一个开源项目,它提供了一套框架和协议,用于构建对等网络(P2P)应用程序。JXTA(Java/XML Peer-to-Peer Technology Architecture)旨在使设备之间能够直接通信,无需中心...
为了利用JXTA 2.7,开发者需要熟悉Java编程语言,并了解P2P网络的基本概念。JXTA的API提供了丰富的类和接口,用于创建对等节点、发布和查找资源、建立管道等。通过深入研究JXTA的文档和示例代码,开发者可以构建出...
**JXTA 开发包1** 是一组专为开发P2P(对等网络)应用程序设计的组件。这个开发包源自官方站点 **jxta.org** ,并经过了安全检查,确保无病毒,为开发者提供了安全可靠的开发环境。P2P技术是一种分布式计算模型,...
- **理解JXTA概念**:熟悉P2P网络、管道、广告和发现等基本概念。 - **安装JXTA SDK**:获取Oracle提供的JXTA SDK,包含开发所需的库和工具。 - **学习API**:通过阅读文档和示例代码,掌握JXTA API的使用。 - **...
**JXTA(Java XTREME Protocol Architecture)**是一个开源的、基于 peer-to-peer (P2P) 技术的框架,由Sun Microsystems在2001年推出。它的目标是提供一种允许分布式应用程序在互联网上进行通信和协作的平台。JXTA...
通过阅读这些文档,开发者可以理解JXTA的核心概念,如边缘网络(Edge Network)、对等点(Peers)、广告(Advertisements)和管道(Pipes),并学会如何在实际项目中应用这些技术。 3. **源代码(jxse-src-2.5.zip...
JXTA,全称为Java Xtreme Programming Toolkit,是由Sun Microsystems开发的一种开放源代码的P2P(peer-to-peer)框架,旨在提供一个平台,让不同的设备和服务能够通过互联网进行通信和协作,而无需中心服务器。...
**JXTA 技术核心概念** 1. **对等节点(Peers)**: 在JXTA网络中,每个参与者都是平等的,称为对等节点。它们能够互相发现、交换信息和服务。 2. **边缘网络(Edge Network)**: 这是JXTA网络的基础,由众多连接到...
JXTA是一个分布式计算模型,它的核心概念包括对等节点(Peers)、边缘服务(Edge Services)、管道(Pipes)和广告(Advertisements)。每个对等节点都是网络中的平等成员,可以提供或消费资源和服务。边缘服务允许...
总结,"jxta.rar_jxta"这个压缩包可能是一个学习JXTA P2P编程的资源,其中的"HelloWorld"实例将引导用户熟悉JXTA的基本概念和操作流程,涉及JXTA的初始化、服务广告、发现、连接建立以及数据交换等核心功能。...
《JXTA in a Nutshell》是另一本关于JXTA技术的快速参考指南,它旨在帮助开发者迅速了解JXTA的基本概念和实践。这本书主要涵盖: 1. **JXTA基础**:简要介绍JXTA的哲学、目标和设计原则,以及P2P网络的基本概念。 ...
JXTA的P2P网络模型基于“对等者”(Peers)的概念,每个参与的设备都是平等的,可以既是服务提供者也是服务消费者。通过使用"jxta.jar",开发者可以轻松地在应用程序中集成P2P功能,如创建和加入网络、发布和查找...
《Mastering JXTA》是一本深入探讨JXTA(Java Universal Network/Graph Fabric)技术的专业书籍,旨在帮助读者掌握如何使用JXTA进行分布式计算和P2P(点对点)网络编程。JXTA是Sun Microsystems推出的一个开放源码...
JXTA(Java无所不在的对等网络)是Oracle公司推出的一种开源P2P(对等网络)平台,它提供了一套基于Java的API和协议,用于构建分布式、自组织的对等应用。JXTA技术手册源代码是学习和理解JXTA技术的重要资源,其中...
通过学习这个压缩包,开发者可以了解到如何使用JXTA API创建P2P应用,理解P2P网络的基本概念,如边缘节点、广告、管道和协议栈等。JXTA Shell的源代码能帮助开发者了解如何实现P2P网络的管理和控制,包括节点发现、...
首先,我们需要了解JXTA的基本概念。JXTA 使用一种称为“边缘计算”或“对等计算”的模式,其中每个网络参与者既是服务提供者也是服务消费者。在这个模型中,“广告”是指在网络中发布的元数据,用于宣布一个节点...
JXTA的核心概念包括边缘设备(Edge Device)、管道(Pipe)、广告(Advert)和服务发现(Service Discovery)。边缘设备是网络中的节点,每个节点都可以发布、查找和交换信息。管道是数据传输的通道,分为单向和...