天天看点

JXTA V2.3x 开发者手册(一)第一章 简介第二章 JXTA的体系结构

JXTA V2.3x 开发者手册

 文件来源 : www.jxta.org

 翻译     :  starshift

 开始时间 : 2006-10-28

 结束时间 :  未知

 版本     :  v1.0

版权信息 :本文是作者在学习JXTA过程中的学习笔记,

大部分内容来自《JXTA v2.3.x:  Java™ Programmer’s Guide

》由作者本人翻译,其中包含的代码,经作者在xp+jdk1.50+NetBeans 中编写和测试,仅供学习研究之用。

本文档可以自由转载,但必须保留原作者和出处。

第一章 简介

JXTA是一族开放且无显著特点的供P2P系统中一切可以连接到网络的节点(例如从蜂窝电话到PDA,从客户端到服务器)通信和协作的P2P协议。JXTA协议族独立于任何的开发语言,并且在不同的环境中拥有不同的实现(叫做:JXTA绑定 bindings in JXTA )。本文档明确翔实的描述了JXTA是如何绑定到J2SE(Java™ 2 Platform, Standard Edition)的。

       本文档适用于希望采用J2SE平台和JXTA技术开发P2P服务的开发者。介绍了JXTA技术,描述了JXTA网络体系结构和关键技术,包含了实例并分析了采用J2SE和JXTA绑定开发的具体应用。

     为什么采用JXTA

       随着网络的不断扩大,越来越多的设备接入互联网,越来越多的内容在互连网上发布,P2P的计算模式变得越来越流行。P2P技术在文件共享领域,分布式计算,和实时通信系统中都有非常著名的应用。虽然这些应用都肩负着不同的任务,但是他们还有许多的共同之处,比如节点发现,搜索,文件传输等重要步骤。但是不幸的是,目前的P2P应用开发是混乱的,我们都在底层做着重复的劳动。而且,几乎所有的P2P应用都采用各自的私有协议而不能互相通信。

       而JXTA的一个最基本的动机就是提供P2P网络的最基础功能,并且试图克服现有P2P协议的缺点:

(1)       协同性:JXTA技术允许节点之间在一个共同的通信机制上运行不同的服务。

(2)       平台独立性: JXTA技术适合不用的开发语言,传输协议和开发平台。

(3)       到处存在:JXTA技术适合任何拥有核心的设备,而并不是单单运行在PC机上。

所有的P2P节点都具有共同的特点就是他们都存在于网络的边缘。这是因为他们都通常处在DNS的范围之外,并且受到由地址经常变化带来的不确定连通性的限制。JXTA提供了区别传统名字解析的唯一“地址”帮助这些在网罗边缘的节点更好的识别其他节点。通过分配JXTAID,节点可以自由的在网络中移动,变换端口号和IP地址,甚至可以暂时的失去连接,但是仍然能够被其他节点顺利的定位。

什么是JXTA

       JXTA是专门为P2P计算设计的开放的网络计算平台。它的目标是通过提供基本的构建模块和服务,革新P2P应用的开发。

       术语JXTA意味着并发,目前公认的是P2P应用就是目前传统的客户机——服务器模型 和WEB分布式服务的并发处理。

       JXTA包含了一族开放的通信协议和开源的P2P应用实现。这些协议可以采用java,c,C++,perl还有许多不知名的语言实现。同时可以部署在HTTP,TCP/IP,蓝牙等等的传输协议之上。

我们可以用JXTA来做些什么?

       JXTA协议使得开发者可以构建和部署可以协同的P2P应用。因为协议不仅独立于开发平台而且独立于传输实现,并且可以应用于异构的各种设备,协议栈实现。利用JXTA技术,开发者可以真正的开发出网络的,协同工作的P2P应用,同时具有一下这些奇妙的功能:

(1)       穿过防火墙找到网络中的其他节点。

(2)       通过网络自由的于任何人共享文件

(3)       在网络上查找微小的资源

(4)       建立共享同一服务的群

(5)       远程监控节点的行动

(6)       安全的于其他节点进行通信。

第二章 JXTA的体系结构

     综述

       JXTA的体系结构被分为三层,如下图所示:

平台层(JXTA 核心)

       平台层,也就是JXTA的核心。经过最小化的封装,并保有P2P网络的常见特性。包含的P2P应用关键机制的模块。包括发现,传输(包括防火墙穿越),创建节点组和安全保证机制。

服务层

       这一层包含了P2P应用需要的所有网络服务。例如:搜索和索引,目录,存储系统,文件共享,文件分布,协议转换,认证和PKI等等服务。

应用层

       应用层包含了构建在P2P之上的所有应用。例如P2P实时消息,资源共享,娱乐信息管理和分发,P2P email等等。

       服务曾和应用层之间的界限并不是严格的。对于一个用户的服务者可能是另一个用户的消费者。而应用的实现也将模块化,允许用户根据其需要定制应用层的服务。

JXTA 的组成

       JXTA网络由一系列的节点组成,节点间可以根据运行的不同服务组成自组织的节点群(group)。例如:节点可以根据实际应用分成文件共享和即时通信两种类型的群。

       JXTA节点在XML文件上面组测,组测的内容包括如何于本节点交互,如何连接到本节点和本节点上面运行那种类型的服务等等。

       JXTA节点之间采用管道(pipe)发送消息(message),管道是一种异步的单向的消息传送机制,用做服务消息传送。消息是封装好的格式化的简单XML文档,其中包含了节点的路由,摘要,和认证信息。管道以特定的端为结束,比如特定的IP地址和端口组合。

JXTA的几个关键概念:

       以下三个重要的概念使得JXTA区别于其他的分布式系统:

       · 采用XML文件进行资源描述

       · 将节点之间的联系抽象成为管道,节点之间的联系并不依赖于类似DNS这样的映射。

       ·拥有全局唯一的结构化节点ID

继续阅读