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

JXTA v2.5技术手册相关推荐

  1. 蓝牙Bluetooth技术手册规范下载【转】

    蓝牙Bluetooth技术手册规范下载 http://www.crifan.com/summary_bluetooth_specification_download/ [背景] 之前就已经整理和转帖了 ...

  2. 渗透测试-红/蓝队Hvv技术手册/面试

    红/蓝队Hvv技术手册/面试 介绍一下自己,喜欢研究的,实战过的项目,得过奖项的感悟. 经常关注的安全平台 基本功 网络协议(HTTP.TCP) 操作系统命令 底层编程开发(应用框架) 加密解密编码 ...

  3. 如何理解导远技术手册

    导远的技术手册很难理解,很多工程师都表示看不懂,本文介绍一下大部分人看不懂的根源,知道这个根源就能看懂了. 本文以导远的组合惯导设备INS570D例来说明. 如下图所示,其坐标系定义为x朝前,y朝右, ...

  4. 《圣殿祭司的ASP.NET4.0专家技术手册》---- 1-13 ClientBuilderManager类别的编译功能...

    本节书摘来自异步社区<圣殿祭司的ASP.NET4.0专家技术手册>一书中的第1章,第13节,作者: 奚江华,译者: 武海军 , 更多章节内容可以访问云栖社区"异步社区" ...

  5. Node.js技术手册

    2019独角兽企业重金招聘Python工程师标准>>> Node.js技术手册: -------------------------------手册----------------- ...

  6. yii2手册_史上最全的技术手册整理总结,编程小白都从这篇文章迅速成为大牛...

    整理云端的开发,助你开发效率与认知起码提升十倍. 技术手册 Python初级手册 Python进阶手册 Python2手册 Python3手册 HTML手册 CSS手册 CSS3手册 HTML5手册 ...

  7. 华为Dorado固态存储技术手册合集

    2019独角兽企业重金招聘Python工程师标准>>> 华为Dorado固态存储技术手册合集 华为固态存储系统Oceanspace Dorado是面向企业级高性能存储市场应用的SAN ...

  8. Spring 2.0技术手册 下载

    Spring 2.0技术手册 作者:林信良 http://dl2.csdn.net/fd.php?i=56063267108000&s=bf67e9e68510f2fa4d9f726495d9 ...

  9. 史上最全的技术手册整理总结,编程小白都从这篇文章迅速成为大牛

    孙叫兽,前端全栈攻城狮,更多资源请关注微信公众号:电商程序员 整理云端的开发,助你开发效率与认知起码提升十倍. 技术手册 Python初级手册 Python进阶手册 Python2手册 Python3 ...

最新文章

  1. 国内“重量级”单体数据中心开始运营 火了这个县
  2. 理解Docker(1):Docker 安装和基础用法
  3. C语言日期字符串减少两天,C语言第二天(字符串)
  4. 椭圆极点极线性质_圆锥曲线(18)———圆锥曲线题目背后的性质总结(1)
  5. mybatis使用oracle自动生成主键
  6. 基于草图的图像检索的文献综述
  7. pdf批量盖章软件_我的PDF休要乱用 超实用的PDF批量加水印神器 它来了
  8. 有道云笔记、石墨笔记、 Effie …采编怎么选?
  9. mysql报“ASCII\0appearedinthestatement“
  10. 初二因式分解奥数竞赛题_八年级数学因式分解进阶练习题含答案
  11. uniapp小程序painter绘制海报微信头像空白;背景图模糊问题
  12. vue加载视频流,实现直播功能
  13. log4jdbc简介
  14. 解决POI导入EXCEL兼容问题
  15. 安装 Rosetta
  16. 数据可视化干货:使用pandas和seaborn制作炫酷图表(附代码)
  17. Nexus3首次登录默认密码
  18. 405错误 方法不允许,此URL不支持Http方法POST
  19. AI基础-知识表示与分类
  20. 图像处理(5) : 形态学处理

热门文章

  1. Mysql:<foreach> </foreach>
  2. 路由器显示有信号连接不到服务器,路由器搜索到信号但是连接不上怎么解决【解决方法】...
  3. ctfshow-网络迷踪-密集恐惧( 世界上最大的飞机墓地)
  4. 记一次组装电脑的经历
  5. Java岗大厂面试百日冲刺【Day44】— Redis3 (日积月累,每日三题)
  6. 杭电ACM 1174
  7. win7安装eclipse
  8. 对于安装破解版BurpSuite无法用java打开注册机的问题
  9. C++: goto语句详解
  10. 新媒体视频智能拆条技术的研究与应用