Jxta的解决之道
不同的协议,不同的体系,不同的实现,这就是当前P2P解决方案的精确描述。现今,开发者使用各种各样的方法论和途径来创建P2P应用。相对于客户/服务器模型丰富的标准,P2P领域的标准可以说是很少,为此,Sun开发了Jxta。
以下是Jxta前景的一些陈述:
Jxta工程是为了建立核心的网络计算技术,它提供一套简单、精简和便利的技术,可以在任何的平台、任何地点和任何时间支持P2P计算。该工程首先概述了P2P的功能,然后建立核心的技术,以弥补当前P2P计算方面的不足。它集中于创建基本的技术,并且将策略的选择权交给应用的开发者。
Jxta致力于提供一个基本的P2P架构,这样其它的P2P应用可以建立在上面。这个基架包含有一套协议,这些协议与语言、平台和网络都是无关的(这就是它们对底层的网络没有作出任何的假定)。这些协议只规定了建立普遍P2P应用的必要之处。它的设计是精简的,开销很小,这些协议的目的可引用Jxta前景陈述中的一句话来说明:“要令每个设备都带有一个数字的心跳”。
当前的Jxta定义了六种协议,不过并不要求所有的Jxta节点都实现全部六种协议。节点实现的协议数目和它的性能有关;一个节点可以只实现一种协议。根据需要,节点也可以扩展或者替换任何的协议。
有一点要注意的是。Jxta协议自身并不提供交互性。对于这一点,你可以通过TCP/IP来理解这一点。虽然FTP和HTTP都建立在TCP/IP上,不过你不能使用FTP客户来访问网页。Jxta也是这样。两个建立在Jxta上的应用并不意味着它们是可以交互的。这一点应该由开发者开保证。不过,由于Jxta提供了一个可交互的基层,所以开发者在实现交互时可以少考虑一些东西。
Jxta中的XML
毫无疑问,要提供一个通用基本协议层,第一步就是要采用一种适合的表现方式,这种方式可以被当前的大部分平台明白。XML无疑是一个理想的选择,它已经成为数据交换的一个默认标准。XML提供通用的、语言和平台无关的数据表现。XML也可以很容易地转换为其它的编码。因此,用XML格式定义了所有的Jxta协议。
虽然Jxta的信息使用XML定义,不过Jxta并不依靠XML来编码。实际上,Jxta实体并不需要一个XML解析器;它是一个可选的组件。可以将XML看成是Jxta使用的一种便利的数据表现形式。小的实体(例如移动电话)可以使用预编译的XML信息。