JXTA 简介
>作者:Ding
Email:[email protected]
本文主要介绍JXTA的基本概念。Sun于11月29日开始在其主页醒目位置宣传jxme
(JXTA on J2ME)项目,标志着J2ME未来也将支持JXTA技术,为J2ME和P2P技术的
发展描绘出一副灿烂的前景。"early bird catches the worms",了解一下JXTA知
识看来很有必要。
本文主要参考了JXTA white paper,如有错漏之处,望不吝指正,也欢迎您
email我,讨论商榷。如您要转贴,请保留原出处,并勿做删改。谢谢。
=================================
Innovation Happens Elsewhere--Bill Joy
JXTA项目是Sun的首席科学家Bill Joy主持的一个探索性项目,目的是利用P2P
技术(peer-to-peer)进行分布式网络计算,并为peer groups开发革命性的应用程
序构件和服务。这个项目是开放的,任何感兴趣的人都可以参加。
(http://www.jxta.org/)JXTA项目通过建立一个通用的平台,极大的简化了大量
分布式应用与服务的构建过程。在这个平台上,每一个设备都被视为一个同伎
(peer),并且每一个同伎之间互相可以沟通。这就使得程序员可以把精力专注于
本地应用的开发,而同时可以方便的创造具有分布计算能力的软件,并可以稳定,
互动的在任意一个同伎上运行。
说到这儿,就不能不提现今大红大紫的P2P技术。P2P一般解释为:一种计算机
网络互联技术,网络上的每一台主机都具有相同的工作能力,即能充当客户机又能
充当服务器。我想您要是经常留意报纸新闻的话,或是您是一位music fans,经常
down MP3的话,Napster的大名一定不会感到陌生。而Napster程序的核心思想就是
P2P文件共享。又如NASA的SETI@home计划,就是利用P2P技术把志愿加入的PC连接
一起,利用这些pc空闲时的CPU资源,实现超级计算的。P2P与其说是技术,到不如
说是一种思想,这种革新性的思想似乎给我们指出了一条Internet新的发展方向。
有人声称,P2P是继本地客户/服务器结构,互联网客户/服务器结构之后,新的网络
体系,他标志着一个新的互联时代的开始。姑且不论人们是否认可上述观点,P2P确
实使每一个普通用户前所未有的参与到网络中来,从资源共享与应用扩展角度来说
,每个用户已经成为网络的一部分。上述说了这么多P2P,那么JXTA又带给我们什么
呢?
JXTA来源于单词(juxtaposition,并列,并置),JXTA计划的目标是发展P2P
技术,使之不止限于PC、服务器之间的互联,而将其扩展到任何电子设备中,例如
PDA,手机等。JXTA通过其核心网络技术提供了一整套轻巧稳定的机制来支持在任何
时间,地点,平台上实现P2P。同时,JXTA采用例如XML,Java,类unix shell等这
些Java程序员熟悉的技术,很容易上手。
JXTA的体系结构如图所示:
JXTA应用层===============================================================
+---------------------+ +---------------------+ +--------+
| JXTA Community | | Sun JXTA | | JXTA |
| Applications | | Applications | | Shell |
+---------------------+ +---------------------+ | |
JXTA服务层==================================================+ +===
+---------------------+ +---------------------+ | |
| JXTA Community | | Sun JXTA Services | | Peer |
| Services | |(search,file share..)| |Commands|
+---------------------+ +---------------------+ +--------+
JXTA核心层===============================================================
+-------------+ +--------------+ +----------------+
| Peer Groups | | Peer Pipes | |Peer Monitoring |
+-------------+ +--------------+ +----------------+
+-------------------------------------------------------------+
| Security |
+-------------------------------------------------------------+
===============================================================
其他同伎 Any Peer on the Expanded Web
===============================================================
图1 JXTA的体系结构
通过对上图观察,我们可以发现,在核心层,JXTA提供了基本功能,例如生成,删
除一个Peer Group,并能使其他peer能发现,参加,退出等等。在服务层,JXTA提
供了标引,搜索,文件共享等基本服务。这些是JXTA提供的基本模块,而我们可以
在它们上面建立自己的应用。JXTA还提供了Shell接口,方便我们的操作。
下面简述各层功能:
JXTA 核心层
JXTA 核心层提供了对P2P应用与服务的核心支持。
同伎组(Peer group)
建立一组peer并在组中分别命名,并且对创建,删除,成员管理,公布,搜索其他
peer组和peer节点,通讯,安全,内容分享等等基本功能都设定其相应机制。
同伎管道(Peer Pipes)
在peer之间提供通信,在Peer pipe中传输的信息通过XML格式化,并且在某种意义
上是不依赖特定协议的。
同伎监视(Peer monitoring)
用来控制一个Peer group中某个peer 的行为。实现包括:访问控制,特权级设定,
流量测量,带宽均衡等peer管理功能。
JXTA 服务层
JXTA 服务层在扩展核心层的功能,提供更高层的服务。包括检索,标引,文件共
享,缓存等等,其中检索方法采用对peer组的分布式,并行检索。并通过判断被处
理序列的XML表达式与每个peer的回应表达式是否匹配来简化操作。这种简便方法
既被用在例如查询某个peer的储藏这类简单检索,也被用于搜索像动态生成内容
(通常难于被常规搜索机检索)这种复杂检索。
JXTA shell
JXTA shell跨越了服务和应用两层,它同时为开发者和用户两者提供了使用JXTA的
途径,例如应用程序原型,peer用户环境配置等。JXTA shell与传统的Unix shell
类似,即包括外部命令还包括内建函数。其中内建函数可以方便的通过命令行接口
访问核心层服务。