免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1659 | 回复: 0
打印 上一主题 下一主题

基于P2P的JXTA技术研究 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-07-16 20:57 |只看该作者 |倒序浏览



基于P2P的JXTA技术研究
Research of JXTA Technology based on Peer to Peer




提纲:
1.   引言
2.   P2P现状与应用
3.   JXTA项目与协议
4.   JXTA技术的应用实现
5.   结束语



作者:刘轩

l         摘要:
当今,网络的范围与使用者都在急剧的增加,传统单一的C/S结构早已不能满足需要,P2P技术的应用也越来越广。JXTA技术针对原有P2P系统的缺陷而设计的一种解决现代P2P分布计算的网络编程和计算平台。与其他P2P系统相比,它有着十分巨大的优越性。虽然 JXTA 的参考实现是用 Java 语言写的,但事实上它对当今现有的任何语言、操作系统(OS)或平台都可以适用。
本文从P2P系统和JXTA技术的特点开始,详细分析了JXTA技术的内容和实现的关键技术,并简单介绍了JXTA的体系结构、JXTA的协议以及应用,以期对JXTA技术有一个总结。

关键词:P2P   JXTA

1.        引言
P2P(peer to peer network,计算机对等网络)技术是目前国际计算机网络技术研究领域的一个热点。在P2P技术的推动下,互联网的存储模式将由现在的“内容位于中心”模式转变为“内容位于边缘”模式。从这个角度看P2P带来了以下改变:
1)    客户不再需要将文件上载到服务器,而只需使用P2P将共享信息提供出去;
2)    运行P2P的个人电脑不需要固定IP地址和永久的互联网连接,这使得拨号上网的用户也可以享受P2P带来的变革;
3)    P2P完全改变过去控制互联网的客户机/服务器模式,消除客户机与服务器之间的差别。目前P2P技术已应用于文件共享、分布式计算、协作系统、电子商务和深度搜索引擎等领域。
JXTA技术是由Sun公司在2001年2月提出的,主要用于提供P2P程序所需的基础服务。技术致力于创建一个通用的平台,以简单而有效的方式构建特定的对等式和分布式服务与应用,使开发者不需要过多考虑如何解决对等计算的技术问题,可以专注于如何实现与完善可扩展、互操作性强且具有高可用性的高层应用。与其他P2P系统相比,它具有不可比拟的优越性:
·互操作性
·平台无关性
·无处不在性

2.        P2P现状与应用
1)      Small-World现象 和Napster
著名的Stanley Milgram实验发现,通过平均6人次的熟人传递就可以把社会中任意两个人联系起来,这种现象称为Small-World现象Stanley Milgram实验揭示了两个发现。
n      短链效应普遍存在,
n      人们可以找到短链。
第2个发现说明:
当网络呈现某种拓扑结构时,仅利用局部信息就可以有效地找到短链。这个发现为分布式信息搜索提供了契机。因此对于P2P来说,可能仅仅只需经过少量的传递搜索,就可以找到你需要的文件!
1999年,当时年仅18岁Shawn Fanning建立了Napster,一个供大家交换音乐的软件平台。每个人都有可以建立一个自己的免费数字音乐库,放到网上去,与人交换,供人下载。这个看似平常的软件彻底改变了数以千万的网上乐迷的交流方式。由此掀起了对等网络文件交换的热潮,各种软件层出不穷。
Napster的成功缘于背后起支撑作用的P2P。对等网络 (peer-to-peer network, P2P)是一项分布式网络技术,它使一个网络设备能够为其他网络设备提供服务。在对等网络中,一个设备可以为其他设备提供资源的访问,这些资源可以是一切它可支配的资源,如:文档、存储空间、计算能力。对等网络并非是一种新的计算理念,它是一种互联网的自然延伸,目的是通过分布式提高互联网的强壮性。互联网通过无数的服务器,提供了域名服务(DNS),万维网(World Wide Web),电子邮件(Email)及其它各种各样的服务,类似的,对等网络通过调配整个互联网上的各种资源为我们提供一整套强大的服务。
2)     C/S与P2P
C/S(客户机/服务器Client/Server,简称C/S)结构,是现今大多数情况下,我们使用的一种网络模式,比如流行的WWW,各种网络游戏等。它们的共同特点是都需要有一个中央服务器来处理绝大部分的运算工作。客户端和服务段处在完全不同的角色中。客户端更被动,通常是发送一个请求。而服务端处在一个支配的地位,获取这个请求,进行计算,然后返回一个结果来相应这个请求。即便如Email这种看上去比较不同的网络应用,也对Client和Server有着明显得分工。这类网络应用模型有着一个明显的缺点就是:随着服务的客户数目的增多,服务端所需要占用的资源也随之增加,显而易见最终制约了client的数目的增长。同时,由于我们需要许多隐藏在Internet深处的服务的支持才能获取我们需要的服务,如DNS,如路由。这也就是为什么即便每台机器都开设一个web server,也无法被全部被访问到。(由于IP地址的限制,不可能每台机器都有一个静态的IP。或是由于内部网络的原因,也许即便你有一个静态不变的内部地址,也可能没有一个路由到达你的机器或是访问被防火墙过滤)。
并且由于现在的Internet过分的依赖于DNS和网关,只要其中有一个服务出了"问题",相应的其他任何服务就都无法获得。这也就产生了一个有趣的现象——"Edge of Internet",即由于刚才所说的DNS和路由的限制,可能有数以亿计的连在Internet上的计算机无法被其他机器访问。这些计算机组成了所谓的"Edge of Internet"。它们属于Internet的一部分,却不被整个Internet认可,就像处在社会边缘一般充满着矛盾和孤寂。做一个简单的计算:假设同时只有一千万台1GHz的计算机连接在网络上(事实上远远多余这些),每台可以提供100M的空余空间、1000bps的空余带宽和10%的空余CPU时间。因此这些机器总共提供了10PB(10^15bytes)的存储空间,100亿bps的带宽(大约是1.25GBps)和100万MHz的计算能力!这是多么可观的数字,如果都能加以利用,或是只是开发其中的一部分,即可带来不可估量的效率与效益。
P2P的原则是: “提供一个真正的完全平等,自由的互联网。使用很少的资源消耗而提供高可靠性的服务”。以搜索一首歌为例,如果仅仅是以歌名为关键字,Google将会返回几百乃至上千上万条记录,其中将有很大的一个比例是不相关的,在剩下的连接中,过期链接,死链接也占了相当大的一部分. 如果换成一个P2P网络应用又会如何?P2P网络会将搜索请求发送给每一个连接在网络上的节点(peer),每个节点会在自己所管理的资源中查找是否含有匹配的对象,然后对请求做出应答。和那种集中式的搜索服务相比,将相应交给每一个节点的好处是显而易见的:由于响应由节点即时完成,而不是像集中式的服务那样将在可能已经过期的数据中寻求答案。这种方式更准确,不会出现让人沮丧的过期连接。另外由于是由节点自由处理请求,而非传统的在静态网页中寻找答案,精确程度更高。因为请求分布到了Internet的每个角落,信息更完整,当然得到结果的可能性就越大。还有请求分布到了Internet的每个角落,不需要大量的主机群,不会有网络阻塞。
一个请求会发送至P2P网络中的每个节点。这似乎很不可思议,但是事实上(至少在理论上)这是P2P网络的特性之一。因此在P2P网络中,你所享受的服务的是一个由成千上万台计算机组成的群组提供的. 即便是最基本的"路由"服务,也是有所有节点共同提供的。因此不在会有因为某个结点的故障或是人为原因而造成的无法链接的现象了。所以面对的将是一个友善、自由、平等的群体。而非强权(路由)和专制(DNS)。
3)     P2P系统的特点
在 P2P 系统中,每一个 Peer 都是平等的参与者,承担服务使用者和服务提供者两个角色.资源的所有权和控制权被分散到网络的每一个节点中.
服务使用者和服务提供者之间进行直接通信,可充分利用网络带宽,减少网络的拥塞状况,使得资源的有效利用率大大提高(包括各种计算资源和存储资源)。
同时由于没有中央节点的集中控制,系统的伸缩性较强,也能避免单点故障,提高系统的容错性能。但由于 P2P网络的分散性,自治性,动态性等特点,造成了某些情况下Peer的访问结果是不可预见的。
P2P系统的匿名性等特点可能会带来系统的安全漏洞。
4)     P2P系统的应用
目前P2P应用的领域可分成三类:即资源分享,网络协作与通讯等.
l        在资源分享方面,主要是文件的共享,此方面应用很多,如BT等,通过人们可以轻松的找到想要的影片、歌曲、游戏、软件和所需的各种各样的资料。
l        在协作方面,方式是多种多样的,如在线工作组、协同工作、移动办公、日程安排、分布式的计算(如著名的Seti@Home工程)、在线游戏、即时消息系统等,并且在此方面有着良好的前景.
l        即时通讯等各种各样其他的应用也丰富着P2P的范畴,满足了不同的需要.

3.        JXTA项目与协议
1)     JXTA项目的出现
P2P发展到今天,已经出现了越来越多的应用,但是众多P2P系统互不相通 ,在P2P突飞猛进的背后,是众多公司试图用自己的封闭系统在Internet上圈一块地 。然而只有互通才能真正发挥出P2P的优势,就好像IM(Instant Messaging),能互连的人越多,越有价值 ,所以Sun公司决定出面发布一个平台,使所有P2P系统都能连接起来。
意识到一个公共的对等网络计算语言的需要,Sun 公司建立了JXTA项目,用以解决现代分布计算尤其是对等网络计算中出现的问题。JXTA的核心是一组协议规范,这使得它相当的强大。它可使任何需要建立对等应用的用户,省去了自己设计对等网络通信协议的繁琐。
JXTA项目是一个开源(开放源代码,Open Source)项目,意在为P2P应用开发提供一个开放的网络计算平台。JXTA项目将最终使得新的应用可以运行在任何拥有数字心脏的设备上,包括桌面计算机、服务器、PDA、手机和其他连接的设备。JXTA取自于英文单词“juxtapose"(字面意思是并列放置的e),Sun开发小组一开始就将JXTA定位在与现有的客户/服务器模式并存的一项技术,而不是完全地取代它,毕竟客户/服务器模式目前还是主流。
JXTA的另外一个目的就是找寻一套数量最少、概念最简单的系统构成的“积木”。如果成功,这几块积木就会是今后大家构架信息系统的基本模块,从而帮助人们摆脱像Windows或TCP/IP这样的传统软件带来的包袱。
2)     JXTA的特点
JXTA是由一系列网络协议构成的,用任何语言都可以实现,并不只限于Java,他可用Java ,C/C++, Perl 和其它许多编程语言实现,但是,目前大家的主要精力还是放在 Java 版的实现上,其他语言的实现明显的比较不受重视 。只有彻底独立于操作系统、网络传输技术以及程序设计语言,才真正达到了跨平台,而这样的技术,最容易受到业界的认同。
JXTA并不是一个特定语言下的P2P库。JXTA是一个P2P的协议规范.实现可以采用多种语言.JXTA由六个协议组成,这些协议是专为特定的、分布式的、对等的网络计算而设计的。使用这些协议,Peer可以互相合作来建立自我组织、自我管理的对等组,而不必关心它们在网络中所处的位置(在网络边缘或者防火墙的后面),并且也不需要集中的管理机构。
JXTA 系统可以设计成具有互操作性的——但没有硬性的规则说它们必须以任何有用的形式具备互操作性。亦即一个仅仅表面上满足最小指定的互操作性需求的、不以任何有意义的方式与他人进行交互操作的 JXTA 应用程序仍然是符合 JXTA 规范的。然而,可以预见,P2P应用和服务病毒蔓延般的增长速度将迫使厂商把互操作性作为他们产品的一个主要特性。
JXTA 目前使用 XML 作为消息和广告的格式,这对于使 JXTA 具有互操作性很有帮助。因为 XML 技术的简单性和普遍可访问性,软件几乎可以创建在任何平台上以生成并解析 JXTA 消息。
JXTA还包含着4项优点:
(1)    动态性 一个利用JXTA技术的P2P系统具有负载动态加入与取消,负载动态平衡,信息动态仓储以及内容动态搜索等优点。对等机的工作提交或新的对等机加入系统之前都必须与一个JXTA监视器组取得联系。监视器组中的监视器的主要作用就是根据系统的负载情况等信息来路由,决定工作提交到哪些对等机以及新的对等机加入到哪些工作组。这种机制解决了组与组之间的网络拥挤问题。为了减少组中对等机之间的通信瓶径,我们还可以引入监视器组的层次结构以及给不同的监视器分配不同的服务对象等机制。对等机加入系统后,它自动扫描所有在线资源。当找到所需资源时,该对等机直接从资源所在节点下载此资源。下载的资源又可以被其它对等机下载。这样整个系统形成了资源成倍增长的资源动态仓储。内容动态搜索是基于JXTA技术的统一资源标识符,即系统中资源与特定的标识符ID联系在一起。监视器动态地记录了在线资源信息索引,如资源内容标识符、资源路由表等。当对等机需要搜索服务时,只要与监视器取得联系找到所需内容。
(2)    扩展性 正如前面提到的,随着一个工作组中的对等机的增多,该工作组的监视器组的负载就越来越重,对等机之间的通信带宽变得越来越窄。监视器组的层次结构可以解决这一问题。当一个监视器组超载时,它将自动分离出一个监视器组来减少原监视器组的工作负载。有了这种机制后,系统可以无限地扩展下去,而不会影响整个系统的性能。
(3)    可靠性 每一个工作组中包含一个任务调节器组。为了增加系统的可靠性,每一个任务调节器组中含有至少两个以上的冗余任务调节器。当其中一个任务调节器节点失效时,它的冗余任务调节器节点就会邀请该工作组中某一个工作节点接替失效的任务调节器的工作,这样不会造成整个系统的崩溃,从而增加了系统的容错能力和安全性。同样,我们在监视器组中也利用的冗余机制以增加系统的可靠性。
(4)    异构性 系统的异构性由JAVA的平台无关性获得。接入系统中的对等机可以是任何平台、任何操作系统,甚至任何低层协议。这给各种不同类型用户利用系统提供了便利。
从本质上讲,JXTA的目标是希望在任何设备,从台式机到PDA、汽车、洗衣机等设备都可以支持P2P编程。
3)        JXTA规范
a)        JXTA的三层结构
JXTA由三层组成。(如下图)
(图1 JXTA三层结构)
l        第一层是JXTA核心层,它包含了服务所需要的核心功能;
这一层封装了最根本的东西,包括Peer、对等组、Peer发现、Peer通信、Peer监视和相关的安全原语。
l        第二层是服务层,它提供了访问JXTA协议的接口;
这一层包括对于P2P网络不是必需的、但很通用的功能,如查找、共享、索引、代码缓存和内容缓存的机制。
JXTA的服务层在核心层的基础上提供了一些很有用的服务,但这些服务并不是每个对等应用所必须的。这些服务实现了一些可以集成到不同对等应用中的功能,如:在一个对等点上搜索资源;共享一个对等点的文档;对等点认证除了JXTA项目组正在开发的服务(Sun JXTA Services),还有其它的服务正由JXTA团体开发。这些服务建立在JXTA平台之上,提供各种对等应用需要的功能,能够集成到一个完整的应用中。开发者自己也可以创建自己的服务,为特殊应用提供支持。
l        第三层是应用层,它使用服务来访问JXTA网络和JXTA提供的功能。
这一层包括了应用JXTA服务开发出来的完整的P2P应用程序,例如myJXTA,JXTA-CAD等应用程序。
应用层建立在服务层之上,也可以使用核心层,它为我们提供一些常用的应用,如即时消息。因为一个应用也许只集成一个服务,或者多个服务,所以有时很难判断什么构成一个应用,什么构成一个服务。一般的,具有某种形式用户界面的往往是应用,而不是服务。
b)        JXTA核心构件
构成 JXTA 系统的组件与能在很多 P2P 网络实现中识别出来的组件完全一样:对等机和对等组、服务、管道、消息和广告。
n        对等机和对等组
毫无疑问,对等网络是由彼此相互通信的对等机组成的。从根本上说,整个连结着的宇宙就是一个大型 P2P 系统。但由于目前连通性和可用带宽的限制,把整个因特网当作一个巨型 P2P 网络来使用是不切实际的。相反,一些划分是必要的。
物理网络的逻辑划分产生了对等机的工作组,P2P 行话称之为对等组。对等组成员资格的交迭没有任何约束;换句话说,任何对等机有必要属于几个对等组,就可以属于几个对等组。JXTA 规范并没有规定或推荐组织对等组的合适方式。在 JXTA 网络中,对等组就是共享资源和服务的对等机的集合。您可以很容易地明白,如果这个规范把对等组限制为例如局域网 — 或者甚至是广域网的一个子集 — 那么,很多要求组成员资格超出这些物理限制的新应用程序的可能性将一概被排除。与 JXTA 的设计理念一致,对等组被规定为尽可能不受限制、尽可能普遍适应。
请注意,对等组的存在要求一些维护成员资格的手段。JXTA 规范又一次只规定了维护组成员资格的最小需求,而没有指示该怎样维护。这种组成员资格服务只是核心 JXTA 服务的一部分,但它可以接受很多种形式 — 例如,它可以是数据库或目录服务,还可以是基于集中式或分布式实现的。
n        服务
对等组内的对等机可以共享使用 JXTA 服务。事实上,对等机加入一个组可能主要是为了使用该组内可用的服务。称为核心服务的一组服务对 JXTA 网络的基本运转是必不可少的。
u      管道服务:对等机之间通信的主要方式;为信息传输提供单向、异步的管道的抽象。
u      成员资格服务:判断哪个对等机属于哪个对等组;处理对等组内对等机的加入和退出。
u      访问服务:一种安全性服务,用于控制对对等组内服务和资源的访问;对等组的一种安全性管理器。
u      发现服务:对等机能用来发现对方、其它对等组的存在、管道、服务等等的一种方式。
u      解析器服务:允许对等机通过引用(JXTA 行话称之为广告)间接地引用对方,对等组、管道或服务;在运行期间,解析器把引用捆绑到实现上。
在JXTA规范中,一个运行中的服务实例总是和一个对等机联系在一起(您可以把它想象成是由一个对等“服务器”主管的)。在一个对等组内,只能有一个服务实例和指定的对等机联系在一起。这种类型的服务被视为对等服务;如果主管该对等服务的对等机当机了,那么将无法获得该服务。另一方面,同一服务的多个实例被冗余地安装在一个对等组内的多个对等机上 — 这被称为对等组服务。对等组服务是 JXTA 网络的高可用性和容错性的关键。JXTA 应用的实现者可以自由地把任意 JXTA 服务作为对等服务或对等组服务进行安装。管道服务,即为对等通信提供逻辑管道抽象的核心 JXTA 服务,常常被作为对等组服务来实现,以确保其总是可用。
n        管道
正如 JXTA 规范定义,在对等机之间传输数据、文件、信息、代码或多媒体内容的一种方式是通过逻辑管道。JXTA 管道用于在对等机之间发送消息(可带任意内容)。
一个管道实例,从逻辑上讲,是对等组内的一个资源。管道实例的实际实现通常情况下是通过管道服务完成的。与传统(类似 UNIX 的)的系统不同,JXTA 管道是单向的、异步的。需要双向通信的两个对等机将不得不创建两个独立的管道实例。也跟传统机制如 UNIX 管道或 TCP/IP 套接字不同,JXTA 管道的末端可以在不同的时间连接到不同的对等机上,或者根本不连接。在为 P2P 网络上的服务提供冗余实现方面,只此一个单一概念就是革命性的一步。对等机可以在任一点及时逻辑地“拾起”管道。例如,一个要使用拼写检查器服务的对等机。它可以连接到一个对等组的拼写检查器管道(该管道是被作为冗余对等组服务实现的)上。在这种情况下,只要至少有一个拼写检查器的实例还在该对等组内的某个地方运行,该对等机就还能得到服务。
JXTA规范了两种一般类型的管道:点对点和广播(propagate)。对等机可以使用点对点管道连接到另一个对等机并单向传输消息。对等机可以使用广播管道连接到一个或多个其它对等机并向它们全体传输消息。从本质上讲,点对点管道是一对一的消息传输机制,广播管道则是一对多的消息传输机制。
n        消息
JXTA 消息是通过管道从一个对等机传送到另一个对等机的数据束。这里,JXTA 规范再一次尽可能地使自己普遍适应,以免不经意间在消息的定义中引入任何依赖于实现的策略。消息被定义为由信封和正文组成的任意大小的束。信封是标准格式,它包括:
·         报头
·         源端点信息(URI 格式)
·         目的地端点信息(URI 格式)
·         消息摘要(可选的 — 出于安全性目的)
消息正文的长度是任意的,可以包含一个可选的信任状(出于安全性目的)和内容。JXTA 消息的定义非常松散。考虑到我们日常一般都是在可靠的、宽带的 TCP/IP 网络上操作,这样做的必要性并不是立即可以明了的。但 JXTA 消息的格式必须是灵活的、善于适应新环境的,因为它可能要在所有种类的网络上实现,而不只是在 TCP/IP 上。例如在一个支持 256 字节数据包的不可靠传输的网络(类似于传统的基于数据包的无线网络)上的一个 JXTA 实现,JXTA 消息的简单定义可以使其自身适应这样的不利环境。
为了提供一个标准的、语法上易分析的、通用的编码机制,JXTA 消息目前采用 XML 文档格式。JXTA 利用了 XML 的普遍可访问性和易使用、易编程的特点,这意味着 JXTA 可以用大多数编程语言在大多数平台上很容易地实现 — 只要 XML 语法分析器和生成库在那里是可用的。然而,JXTA 本身的设计却使其消息代码的编写不依赖于 XML 的使用。
n        广告
JXTA 广告也采用 XML 文档格式。广告的内容描述了诸如对等机、对等组、管道或服务等 JXTA 组件实例的属性。例如,可以访问另一个对等机的广告的对等机可以设法直接连到该对等机上;可以访问一个对等组的广告的对等机可以通过广告加入对等组。目前的因特网中与广告相似的东西是域名和 Web 站点的 DNS 纪录。JXTA 规范没有规定如何创建、传播或销毁广告。

c)        JXTA协议
有六个协议构成了JXTA的核心,JXTA通过这六个协议来完成Peer之间的通信,彼此之间的资源的发布和发现,信息的传递和路由,协议本身并不是应用程序,需要添加更多的代码来开发有用的应用,协议隐藏了很多细节,这样使得编写JXTA应用程序比从空白开发P2P应用要容易得多。
JXTA在JXTA协议规范中定义了它的协议。此规范描述了Peer间如何通信和交互,它并未描述实现的细节或如何编写P2P应用程序。六个协议和其主要用途:
Peer Discovery----搜索资源
Peer Resolver----一般查询服务
Peer Information----监控
Pipe Binding----可寻址的消息传递
Rendezvous----消息传播
Peer Endpoint----路由
协议的具体功能是:
l        对等机发现协议Peer Discovery Protocol(PDP):主要用来发布自己的广告信息,并且从其他Peer处获得广告。PDP允许一个Peer发现其他Peer的广告(包括Peer广告、对等组广告、服务广告,或者是管道广告)。该协议通过指定一种广告类型(如Peer、对等组)、一个XML标签名、一个匹配这个XML标签所表示数据的字符串来定义查询。它使用Peer Resolver Protocol来发送和传播搜索广告的请求。
l        管道绑定协议Pipe Binding Protocol(PBP):允许Peer之间建立虚拟的通信通道。该协议首要关注的是通过Peer端点路由协议提供的路由连接Peer。它使用Peer Resolver  Protocol来发送和传播搜索广告的请求。
l        对等机信息协议Peer Information Protocol(PIP):用来获得其他Peer的状态信息,包括更新时间、状态等等。该协议有时被用做ping命令,有时被用来获得一个Peer的基本状态信息,PIP消息的正文是自由格式的,它允许询问特定的Peer信息。此外,这种能力可以被扩展以提供控制能力,它使用Peer Resolver Protocol来发送和传播搜索广告的请求。
l        对等机解析协议Peer Resolver Protocol(PRP):允许Peer发送更一般的请求,并可以接收到该请求的回应;同时可以将请求分发到组内的一个或者多个匹配的处理器,Peer解析协议是一个基础通信协议,它按照一种请求/响应格式来进行,要使用这个协议,需要提供一个查询的Peer和一个包含能被目标Peer理解的XML请求消息,该协议被用来支持JXTA中的其他协议(PDP、PBP和PIP),而且允许传播查询,例如,如果一个Peer收到一个查询并且不知道答案,解析协议就会将该查询发送给别的Peer。
l        端点路由协议Peer Endpoint Protocol(PEP):通过该协议Peer以发送消息的形式获得一条路由路径。它使用Peer间的网关来建立一条包含一个或多个适合建立管道的管道协议组成的通路。管道绑定协议借助此Peer列表来建立Peer间的路由。一般情况下传统的路由器和DNS服务器会因为防火墙、代理服务器和NAT设备等原因而无法建立连接,而端点路由协议通过寻找网关来穿越诸如防火墙等障碍来建立连接。端点路由协议还可以同时帮助相互不支持对方使用协议的Peer进行通信。例如,如果你连接支持TCP的Peer-A和只支持HTTP的Peer-B,端点路由协议既可以选择一个可以支持此传输的网关,又可以选择多个并且相互协议兼容的一组网关。
l        集合点协议Rendezvous Protocol(RVP):通过该协议Peer可以对一个服务订阅或者被订阅。集合点协议负责在JXTA对等组内传播消息,它为Peer在组内接收和发送消息并且控制消息如何传播定义了一个基本的协议。
4.     JXTA技术的应用实现
如同P2P技术一样,JXTA在即时通讯和文件共享、网络游戏、协同工作、聊天程序等方面,均有不错的表现,而且因为其设计特性,其在移动通信和智能网领域的应用是非常有意义的。目前JXTA 核心协议就将允许在使用PDA产品和移动电话等手持设备之间的用户进行文件交换和资料共享。纽约的Improve科技公司正在用JXTA 作为其Cirquet元件软件结构的传输层来计划使JXTA 支持手持式设备。JXTA将成为对等网络设备之间互联网服务的传送器,而Cirquet软件在客户端对它们进行动态地装配。即使是在一个资源受限制的设备上,用户也可以预先生成一个服务,当需要这些服务时将其增加到 PDA 设备上。
P2P 技术的应用领域很广,目前,全球各种与 P2P 有关的研究项目层出不穷,应用热潮也是一浪高过一浪。而人们对 P2P 寄予厚望的原因正是 P2P身后所蕴藏着的无比的创造力。在可以预见的未来,随着对P2P 研究的进一步深入和关注 P2P 的企业逐渐增多,P2P 必将进入一个飞速发展的新时期。
     就JXTA 技术而言,它作为在P2P技术上的提高抽象的协议标准,还处在一个起步的阶段。但随着时间的推移,它也将成为一个成熟的技,并为 P2P 计算提供一个强大的、可靠的架构。由于 JAVA 可在异构的环境下应用,因此它是进行 P2P 应用开发的适合之选。JXTA 所代表的 P2P 技术将不仅仅局限于终端用户层,还一定会从多层面挖掘出因特网的潜力。
5.     结束语
P2P 技术的应用领域越来越广,而JXTA是对P2P的新发展,它为P2P应用程序的开发提供了一套统一的平台。JXTA还在不断的发展之中,它还有很多问题亟待解决,相信它的成功将给现在的网络带来新一代的革命。


l         参考文献
1.         JXTA Protocols Specification.  http://www.JXTA.org/
2.         Matrix首页 Java文栏 http://www.matrix.org.cn/java.asp
3.         中国JXTA爱好者站 http://www.chinajxta.com/
4.         李祖鹏、黄道颖、黄建华、张杰 《基于P2P应用的JXTASHELL》
5.         Sing Li《使 P2P 能进行交互操作:JXTA的故事》
http://www-900.ibm.com/developerWorks/


本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/12765/showart_141377.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP