JXTA v2.5技术手册

38 篇文章 0 订阅

JXTA v2.5技术手册

 

说明:
    在做JXTA开发时,发现网上的资料非常少,已有的都是很老的资料,JXTA目前的版本已经是2.5了,同以前的2.0、2.1之类的差别非常大,因此网络上2002年以前的文章,除了是阐述JXTA技术的概念类的文章可以学习外,具体开发类的就没有多大价值。当然,看了那些文章,还是能够帮助我步入 JXTA这个圈子的,这一点我很感谢原创那些文章的作者。所以,我在看看了这个JXTA官方技术手册后,决定将它翻译出来,供大家学习。但是我的翻译水平可能并不怎么样,使得语句不太流畅,并且在我不太确定某句是何意时,我就把原英文附在后面。
    可能是由于我业余做这件事情,实在没有多少事件把这文章精雕细琢,而且以后多长事件做完,我也没底的,所以希望大家理解。同时,发现我有翻译不对的地方,请别拍砖过来,如果能以之处我错误帮助我改正的方式,我会很乐意接受并感谢你的。

第一章    简介


JXTA是一组开放的普遍适用的P2P协议,它允许所有的网络设备——传感器、手机、PDA、笔记本电脑、工作站、服务器和超级计算机——可以相互通信和协作。JXTA协议是与编程语言独立无关的,它可以被多种语言来实现,因此它能适应与多种环境。本手册主要介绍JXTA在Java Standard Edition(JSE)平台上的实现。同样的,也会有在JME™ /C/C++/.NET语言或平台上的实现,以及相应的说明手册。
本手册是为那些要开发和部署基于JXTA以及Java技术的P2P应用的开发者而写的。向它们介绍JXTA技术,阐述了JXTA网络架构及其核心思想,同时也包含了必要的范例和讨论。
为什么要使用 JXTA™ ?
随着Web不断的发展,它的内容不断增大,所联结的网络设备也不断增加,P2P计算变得越来越流行了。诸如文件共享、分布式计算和即时消息服务都是其多种应用中很有名的例子。当这些应用要完成各种各样的工作时,它们却都在实现着一些通用的服务,例如搜索和发现对等点、传递文件或数据等。当前,开发人员在开发P2P应用时候,都在大量重复地做这类似的工作,所以开发效率很低。并且,这些应用都是针对指定的平台而开发的,所以它们也不能同其它的P2P应用相互通信。
JXTA设计的一个最基本的目标就是提供一个包含基本P2P功能的平台,它要解决目前已有的P2P系统的潜在的缺点:
 互操作性——JXTA技术使得提供P2P服务的对等点能够定位其它对等点,并与之通信,而这一切都是独立于网络设备的。
 平台独立性——JXTA技术被设计成是独立于编程语言、网络协议和部署平台的。
 普遍性——JXTA技术使得所有的电子设备都可以访问,并不仅仅是桌面电脑或指定的部署平台。
P2P网络中的对等点的一个很大的特征就是它们常常位于传统网络的边缘。它们没有静态地址(例如DHCP),它们的网络地址总是在变化,因此与之联系是无法预知的。所以它们也是在标准DNS范围之外的。而JXTA则向这些处于网络边缘的对等点提供全球唯一的网络地址,这种地址是独立于传统的名称服务的。通过使用JXTA ID,一个对等点可以穿梭于物理网络,可以改变端口和网络地址,甚至可以暂时挂断,以及被其它对等点定位。
什么是JXTA™技术?
JXTA是为P2P计算设计的开放的网络计算平台,它提供了要满足应用在任何地方发起任何连接所需要的基本的构建模块和服务。
JXTA这个名称是单词“juxtapose”的缩写,意思是“肩并肩的”。这个名字就指明了相对于传统的基于Web的客户端-服务器计算机模式,P2P 计算是平等并列的。JXTA 为开发P2P应用提供了一组开放的协议,这些协议在开源情况下再被实现,同时也为每个对等点提供了标准的行为方式:
 对等点相互发现
 自组织加入对等点组
 发布和发现网络资源
 对等点之间相互通信
 对等点之间相互监视
这些JXTA协议是独立于编程语言的,它可以被各种语言实现,如Java、C/C++、.NET、Ruby等等。而且,它还可以实现在 TCP/IP、HTTP、蓝牙等网络接口之上,总之,使得它们可以进行互操作。(Furthermore, they can be implemented on top of TCP/IP, HTTP, Bluetooth, and other network transports all the while maintaining global interoperability)
JXTA™技术能做什么?
JXTA技术使得开发人员可以建立和部署具有互操作能力的P2P服务和应用。由于JXTA协议是独立于编程语言和网络接口的,所以它使得各种各样的设备以及软件可以互操作。使用JXTA技术编写的网络应用程序能够:
 可以动态搜索发现位于防火墙和NAT之后的对等点
 可以在网络上很容易地共享资源
 在网络上发现有用内容(Find up to the available content at network sites)
 创建对等点的一个组,该组可以提供指定的服务
 可以远程监控对等点的行动
 可以安全地与网络上其它对等点相互通信
哪里可以获得JXTA™技术?
可以在http://jxta.dev.java.net上获得有关JXTA技术的资料。其中包括项目信息,文档,邮件列表,源代码,二进制代码,指导手册。

 

概览
Jxta软件架构分为三层,如下图所示:

 核心JXTA
JXTA的核心封装了P2P网络所需要的最少的和最必要的基本功能。包括(It includes building blocks to enable key mechanisms for P2P applications, including discovery, communication transports (including firewall and NAT traversal), the creation of peers and peer groups, and associated security primitives.)
 服务层
服务层包括了一些对于P2P网络来说并不是绝对必须的服务,但这些网络服务对P2P环境来说是常常需要的。例如搜索服务以及索引,目录服务,存储系统,文件共享,分布式文件系统,资源聚合与租用(resource aggregation and renting),协议转换,认证,PKI((Public Key Infrastructure)服务。
 应用层
应用层包含了一些综合服务,诸如P2P即时消息,文档与资源共享,娱乐内容的管理与传递,P2P邮件系统,分布式拍卖系统,以及更多。
服务层与应用层之间的界限并不是严格的。一个用户的应用可以被看做成另一个用户的服务。整个系统被设计成模块化的,它允许开发人员根据自己需要选取一些有用的服务。
JXTA组件
JXTA网络是有一系列相互联结的节点(或者说是对等点peer)组成的。一个对等点可以是任何类型的设备,诸如传感器、超级计算机,甚至是一个虚拟进程。一个单一物理设备上可以运行多个对等点,但也有可能多个物理设备相互协作对外表现的是一个对等点。对等点之间可以通过任何合适的网络协议连接,包括TCP/IP,HTTP,Bluetooth,GSM等等。
每一个对等点都提供一些对其它对等点有用的“服务”或者“资源”。“服务”就是互相协作的一段代码程序,它可以包括数据库,认证系统,聊天服务器,或者其它任何可以网络联结的程序。JXTA网络中最常见的有两种服务:对等点服务(peer services)和组服务(group services)。对等点服务是有一个对等点提供的服务。组服务是整个组通过联合方式或者协作方式提供的服务。一般情况下,每一个对等点服务的实例相对于其它实例是独立的。一个实例的行为不会影响其它示例。每一个组服务的实例常常会参与到一个公共的实例中(Each Peer group service instance is normally a participant in a common instance)。一个实例的行为很可能会影响到所有的实例。
所有的JXTA对等点都实现了很少一部分所必须的核心服务(core services),并且一般情况下还提供一些额外的标准服务(standard services)。每一个组都包含了部分它所定义的一些组服务,每一个加入到这个组的对等点都必须应用这些服务(Each Peer Group includes as part of it's definition the set of Group services which each peer must run in order to participate in the peer group)。
一个对等点的资源一般情况下是它所控释的(或者拥有的,甚至仅仅是一个拷贝的)静态的(非交互的)内容。这些资源可以是文件(files),文档(documents),媒体资源,通告(advertisements),索引(indexes),而且也可以包括现实世界中的诸如开关,传感器和打印机之类的资源。
JXTA对等点用一个叫做通告(advertisement)的XML文档来发布它们的服务和资源,通过这个通告,其它对等点就可以找到这些服务和资源,也可以决定如何同这些服务联结和交互。
对等点自行加入一个点组(peer group)(Peers can organize themselves into peer groups)。点组是一个松散的概念,是任意一组为了一个共同目的、提供一组相同服务的对等点的组合。点组中两个关键的概念就是“共同的服务”和“共同的目的”。连个点组可能包含相同的服务,例如一个聊天应用,但是它们的目的不同,例如一个是政治话题的聊天,一个是体育话题的聊天。一个点组可以以开发者或者部署者的任意选择为基础(Peer groups can be defined on almost any basis that developers or deployers choose)。如前例那个点组可以被重新定义为提供多个聊天话题的聊天应用,但是处于一个组织内,例如某一个大学的院系。当你要定义一个点组时候,你首先要搞清楚两个问题:“这个点组都要包含哪些对等点呢?”和“这些对等点应该相互协作着提供哪些应用或者服务呢?”
JXTA对等点之间通过Socket和管道传送消息。JXTA Socket向应用程序之间的通信提供可靠的、双向的连接。管道服务之间通信所使用的一种异步的、单向的消息传送机制。消息。消息只是一个简单的XML文档,这个文档包含了路由、digest,和认证信息(Messages are simple XML documents whose envelope contains routing, digest, and credential information)。管道是同一个指定的终端(endpoint)绑定的,例如一个TCP端口和相应的IP地址。
这些方面的知识将在下来的章节中详细讨论。
JXTA架构中的关键方面
JXTA架构中有四个方面使得其有别于其它分布式网络模型:
 使用XML文档(通告)来描述网络资源
 抽象出管道、对等点,不依赖于像DNS那样的中心命名/地址认证(Abstraction of pipes to peers, and peers to endpoints, without reliance upon a central naming/ addressing authority such as DNS)。
 统一的对等点地址机制(ID)
 基于DHT(Distributed Hash Table)的非集中式资源搜索机制(A decentralized search infrastructure based on Distributed Hash Table (DHT) for resource indexing)。

 

 

 

来源:http://www.javaeye.com/post/639640

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值