首页 > 编程知识 正文

jubail,segezha group

时间:2023-05-04 11:37:18 阅读:107699 作者:3931

这个精心设计的毕业设计使用了Sun公司支持的开源JXTA项目,但对这部分的学习没有做一定的总结。 今天有空,我想弥补一下。

1.JXTA项目简述

JTA是Sun公司为了解决以前开发的P2P系统没有统一标准而提出的用于开发P2P APP应用的通用平台。 JTA基于现有的互联网和非IP网络构建虚拟P2P网络,定义了一组实现节点间通信的通用标准化协议。 简单来说,JXTA是支持P2P APP应用的一系列标准的框架,以及点对点的网络平台。

JXTA由以下三个级别组成:

1 )平台----包含了服务使用的核心功能。

2 )服务--- -提供了对JXTA协议的访问接口。

3 )应用---基于JXTA服务开发的各种APP应用。

在JXTA项目诞生的背景下,JXTA项目的目标是使平台独立于操作系统的实现,独立于编程语言的实现,为P2P APP应用提供服务和基础设施。 本质上是支持所有设备上的点对点通信。

2.JXTA相关概念

这里介绍的部分概念不仅在JXTA技术本身上,在其他技术中也有相应的定义,这里重点介绍JXTA技术独特的特性。

(1)对等体

对等方是实现一个或多个JXTA协议的网络实体。 所述对等体可以位于传感器、蜂窝电话、个人数字助理、PC、服务器、超级计算机上。 每个对等体可以独立存在并且与由PeerID唯一标识的其它对等体进行异步通信。 JTA协议允许使用任何可用的网络接口在对等方之间进行通信,每个接口都表示为唯一标识接口的对等端点。 两个对等方之间通过对等方端点直接建立点对点连接。 相互通信的对等方之间不一定直接连接。 使用一些中间节点来路由由于每个对等方位于不同的物理网络中,或者由于配置管理而无法直接到达的消息。 所述对等体由对等体组管理,其被配置为在网络中彼此可以发现,并且可以建立临时或持久的关系。

JTA对等体分为三种主要类型:

最小边缘对等点(Minimal-EdgePeers )此类对等点可能只提供必需的JXTA核心服务,而作为代理可能需要提供其他非核心服务以帮助完全加入JXTA网络。 典型的最小边缘对等体包括传感器设备和家庭自动化设备。

完全特性的边缘对等体(Full-EdgePeer ) :等对等体可以实现所有核心和标准的JXTA服务,并可以加入所有的JXTA网络。 构成JXTA网络中的几乎所有端,主要包括PC、服务器等

超级对等方:这些对等方实施并提供资源以支持JXTA网络的调度和操作。 这里有三个核心的JXTA超对等体功能。

中继对等方(Relay )用于在由于防火墙或NAT而无法直接建立网络连接的两个对等方之间存储和传输消息。 只有无法与其他对等方建立连接的对等方才需要中继。

聚集点:维护全局通告索引,有利于边缘对等点和代理对等点实现通告查询,同时处理消息广播。

代理对等方(代理) )最小边缘对等方需要利用它使用JXTA网络功能。 代理为了最小边缘对等体翻译并概括请求,响应查询,提供支持功能。

(2) 对等组

对等体是共享资源和服务的对等体集合,由PeerGroupID唯一标识。 逻辑上,任何对等体都可以任意加入多个不同类型的对等体组,一个物理网络可以包含多个对等体组,一个对等体组可以跨越多个物理网络。 当然,启动JXTA时,所有对等方都会加入NetPeerGroup对等组。

一个对等组提供多个对等组服务器,同一对等组中的任意两个对等组通过对等组服务器直接交互。

(3)管道

管道是在JXTA环境中建立的虚拟通信通道,用于在服务和APP应用程序之间发送消息。 管道提供基于对等点端点的虚拟抽象,实现与对等点位置的物理无关。 管道可以连接一个或多个端点。 假设每个端点都有一个独立的端点可以用于发送和接收信息、管理信息和信息流动。 由于管道在两端的作用,它们被称为输出管道(OutputPipe,接收数据的对等端)和输入管道(InputPipe,发送数据的对等端)。

管道通过管道通知公开并被发现。 管道ID唯一地标识管道。 在系统运行时,解析器会将管道动态绑定到对等端点。 使用此管道抽象,服务和APP应用程序可以提供透明的故障恢复,并通过从一个禁用的物理对等端点迁移到另一个可用的对等端点来避免禁用服务或对等点。 还可以利用此抽象来访问新发布的服务实例。 管道连接过程包括两个阶段:检索和连接,以便一个管道可以连接到多个端点。

一般来说,管道是一个逻辑抽象概念,从对等的角度来看,管道隐藏了网络协议和网络拓扑的复杂性。 对等方只需发布管道通知并获取其他对

等体的管道通告,使用核心管道服务去解析这些通告所代表的底层网络连接。因此,对等体只需要读取和解释他们通过管道发送的消息:即只关心通信的内容,而不关心通信的方式。

管道可以被划分成以下三种类型:

       Ø  点到点类型:点到点的管道连接到两个不同的Peer.可以使用多个起网关作用的Peer来创建连接。

       Ø  传播类型:将一个Peer连接到多个目标Peer.

       Ø  安全点到点类型:提供一个安全可靠的通信渠道。

       现有的JXTA API中都有其他通信方式,如JxtaSocket,JxtaBiDiPipe等其实是在内部封装了核心管道服务。

(4)通告

       一个通告即是一个XML文档,用于描述JXTA的消息,Peer,对等组,管道,或者服务等。换句话说,JXTA使用通告表示所有的网络资源。

       JXTA定义了一下通告类型:

       Ø  对等体通告:描述对等体资源,以使得其他对等体可以获取对等体信息(名称,ID,可用端点及一些运行属性)。

       Ø  对等组通告:描述对等组特定资源,以使得对等体获取组信息,从而加入对等组。

       Ø  管道通告:描述一个管道交流渠道,管道服务借助其创建关联的输入、输出管道端点。

       Ø  模块类通告

       Ø  模块说明通告

       Ø  模块实现通告:这三类通告主要用于服务的发布与实现。一个模块类通告可以对应多种模块说明通告,一个模块说明通告也可以对应多种模块实现通告。

       Ø  集合点通告:描述特定组中扮演集合点角色的对等体。

       Ø  对等体信息通告:描述对等体信息资源(对等体当前状态)。

(5)消息

       JXTA网络中所有的通信都是通过接收和发送消息来实现的。管道和端点传递的信息都是消息方式封装的。消息的格式分为XML格式和二进制格式两种。为了缓解使用XML格式造成的消息传送的效率低下问题,JXTA将XML格式的消息内容改为二进制格式,而其他的仍然使用XML格式。

(6)服务

       所谓服务,即一个对等体或一个对等组所提供的应用。服务通过服务通告进行标识,其他对等体通过获取服务通告来定位和使用服务。

       服务分为对等体服务和对等组服务。对等体服务只能由服务通告发布者进行实例化,而对等组服务可以由对等组中的任意一个想要实现特定对等组服务的对等体进行实现。

3.JXTA协议组成

       对等体通过JXTA协议来实现对等体之间的通信、资源发布和发现、信息的传递和路由等功能。协议本身并不是应用程序,建立一个完整的P2P应用程序还需要添加更多的代码和相应的模块。协议隐藏了很多细节,这样使得编写JXTA应用程序比从空白开发P2P应用要容易的多。JXTA由图2.4所示六个协议组成:

                              图2.4 JXTA协议

其中:

       端点路由协议、对等体解析协议为其他协议的支撑协议。端点路由协议用于帮助对等体发现路由(即多个对等体组成的跳序列),从而建立两对等体间的管道通信渠道。对等体解析协议允许Peer发送更一般的请求,而不单单是JXTA所提供的特定服务请求,并允许Peer接收到请求的回应。

       对等体发现协议主要用来发布自己的通告信息,并且从其他Peer处获得通告。

       管道绑定协议允许Peer之间建立虚拟的通信通道。该协议首要关注的是通过Peer端点路由协议提供的路由连接Peer。它使用Peer Resolver Protocol来发送和传播搜索通告的请求。

       对等体信息协议用来获得其他Peer的状态信息,包括更新时间、状态等等。

       集合点协议负责在JXTA对等组内传播消息,它为Peer在组内接收和发送消息并且控制消息如何传播定义了一个基本协议。通过该协议Peer在组内可以对一个服务订阅或者被订阅。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。

  • 相关阅读