XML 在对等信息共享方案(包括网格计算(grid computing)、即时消息传递和 Web 服务)中是一个要害要素。本文探究了在适应现有 XML 技术的基础上为创建统一的 P2P 构造而进行的最前沿的工作。
将一台联网设备中的信息直接共享给另一台设备根本不是一个新想法。究竟,象 LapLink 这样的远程访问软件,已经问世了近 20 年,可以从远程计算机移动文件和文件夹,传送应用程序设置和目录以及更新已在另一台 PC 上存储的文件。
然而,当今的对等通信需要另外一个高级的层次。象 LapLink 这样的程序主要是设计用来把文件级信息从一台 PC 推到另一台,而 P2P 平台的目标则更进一步:共享数据并链接可能不兼容的应用程序。
推动 P2P 通信的引擎由 XML 通信驱动。事实上,所有新兴的 P2P 平台都依靠 XML 使数据变得可消化的,这是用户可能在台式机、便携式计算机、PDA、Pocket PC 或甚至服务器上工作的世界中必需的一个步骤。而且 XML 通信和协议构建在许多推荐标准中,在 P2P 开发社区中,正在迅速接受这些标准。
下面,我们将提供一些 XML 如何使下一代信息共享应用程序成为可能的示例。我们还将提供一些特定于应用程序的样本代码,并清楚地说明这些代码是如何支持核心 P2P 功能的。
项目 JXTA为 P2P 开发人员世界定义标准的主要工作之一,“项目 Juxtapose”(通常称作 JXTA),是基于 XML 消息传递。在开始这一由 Sun Microsystems 资助的项目时,工程师们分析了现有的 P2P 应用程序以确定这些平台有哪些公共元素。然后,他们筹划了一套协议,设计成提供一个可以在其上构建服务和应用程序的层。JXTA 设计师想使这些层又薄又小,成为一种与 TCP/IP 类似的不显眼的链接技术。这里是一些如何实现这一目的的示例。
JXTA 的核心概念之一是广告思想,命名、描述和发布 P2P 资源的存在的一种 XML 结构化的文档。资源可以是一个对等点、一个对等点组或一个服务。JXTA 规范包含一套基本的广告,每个广告都可以分解成使用 XML 模式的多个子类型。
通过这样的广告进行通信的设备不必具有靠自己进行语法分析和创建 XML 文档的能力;希望在 JXTA 网络中包含低功率设备(如手机)的开发人员可以用一个有限系列的标准 XML 消息对设备进行预编程。
清单 1 是一个 PipeAdvertisement,它描述了一个管道。在 JXTA 环境中,管道是用于发送和接收消息的通信通道。异步地处理消息。因为管道是单向的,所以有输入管道和输出管道。
清单 1. PipeAdvertisement
<?xml version="1.0" encoding="UTF-8"?>
<jxta:PipeAdvertisement>
<Name> name of the pipe</Name>
<Id> Pipe Id </Id>
<Type> Pipe Type </Type>
</jxta:PipeAdvertisement>
下一个示例是一个对等点组广告。在 JXTA 中,对等点组是提供一套公共环境的协作对等点的集合。这个组懂得使用这组指定的组协议。
清单 2. 对等点组广告
<xs:complexType name="PGA">
<xs:element name="GID" type="JXTAID"/>
<xs:element name="MSID" type="JXTAID"/>
<xs:element name="Name" type="xs:string" minOccurs="0"/>
<xs:element name="Desc" type="xs:anyType" min0ccurs="0"/>
<xs:element name="Svc" type="jxta:serviceParam" minOccurs="0"
maxOccurs="unbounded"/>
</xs:complexType>
XML 定义的其它要害 JXTA 实体包括对等点,即可以表示另一个对等点所需协议的任何实体;设计成数据报的消息,包含一个信封和带主体的协议头堆栈;以及使用称为 UUID 的 128 位数据的标识来引用诸如对等点、广告或服务等实体。
评论加载中…
![]() |