摘要:

JXTA是一个用来解决P2P计算的开放的网络计算平台。JXTAP2P平台使开发者在其上建立P toP的应用。2001年4月,发布了第一个源型实现,它是基于JDK1.1.4的。

分布式计算发展非常迅速,新技术不断出现,现在出现的P2P技术,让用户可以直接连接到其他用户的计算机,进行文件共享与交换,另外P2P在深度搜索、分布计算、协同工作等方面也大有用途。

现有的P2P系统有一些缺陷,大多数P2P系统用来实现一个单一类型的网络服务(Napster用来音乐文件交换、Gnutella用来普通文件交换),由于不同的网络服务的特性和缺少一个共同的底层基础,每一个供应商都使用不兼容的技术使它的用户同别的P2P通信相隔离。JXTA通过提供一个简单的普遍的P2P平台来解决这个问题:

JXTA使用一些协议,每一个协议都可以很容易的实现和集成到P2P服务和应用中,这样,不同的P2P系统之间可以方便的互相通信,协同工作,向对方提供服务。

JXTA被设计成独立于编程语言,如C或JAVA,独立于系统平台,如WINDOWS和UNIX,独立于网络平台,如TCP/IP和蓝牙。而且JXTA被设计能在任何数字设备上实现,包括传感器、消费电子产品、PDA设备、网络路由器、桌面电脑、服务器和存储设备。

术语

同位体(peer):一个同位体是可以理解协议的任何实体。所以,一个同位体可以是一个处理器、机器或用户。

同位体组(peer group):一个同位体组是提供一个通用服务的同位体的集合。

管道(pipes):它是发送和接受消息的通道,它是异步的。

广告(advertisement):一个广告是一个XML结构的文档,用来命名,描述和公布现有的资源,如同位体,同位体组,管道,或服务。各种广告的格式请参考JXTA规范。

JXTA的层次

JXTA平台被分为三层

平台(platform):这一层封装了最根本的东西,包括同位体、同位体组、同位体发现、同位体通信、同位体监视和相关的安全原语。

服务(services):这一层包括对于P2P网络不是必需的,但很通用的,如查找、共享、索引、缓存代码和内容的机制。

应用(application):这一层包括 P2P电子邮件系统、分布式拍卖系统等。

JXTA协议

抽象的看,JXTA技术实际上就是一些协议,目前定义了以下协议

 

同位体发现协议
这个协议用来查找其它同位体的广告,通过它,可以查找所有的同位体、同位体组或核心广告。这个协议是缺省的发现协议,可以被替换。集合点同位体是这样一种同位体,它保存着一个知道的同位体和同位体组的表。如果这个表是完全及时的,那么往这个同位体发一个消息,就可以发现所有的同位体,当然,这是最简单的一种方式。查找有两种方式,其一就是上述的向集合点同位体发送消息,另外,可以向一个范围内广播发送消息,这种消息叫做发现查询消息。发现响应消息返回一个或多个同位体和同位体组的广告。以上这两种消息的格式请参考 JXTA规范。

 

同位体解决(resolver)协议
这个协议使一个同位体可以通过发送和接收查询来查找同位体、同位体组、管道和一些与服务相关的信息,如服务的状态,通道端点的状态等。一个同位体组的每一个服务都可以注册一个handler来处理这些查询。每一个查询都包括唯一的handler的名字,指出由谁来处理它。同样解决查询消息与解决响应消息的格式参考JXTA规范。

 

同位体信息协议
当一个同位体被定位后,我们关心它的能力和状态,这个协议就是用来得到这些信息。如想要知道一个同位体是否激活,向它发送ping消息。相关消息的格式参考JXTA规范。

 

同位体成员资格协议
这个协议允许同位体:得到组的成员资格的要求和应用的证书;请求成员资格和得到成员资格的证书;更新现存的成员资格和应用的证书;除掉成员资格和应用的证书。这个协议定义的消息参考JXTA规范。

 

管道绑定协议
这个协议被组的成员把管道的广告绑定到管道的端点。

 

端点路由协议
这个协议被同位体路由器用来发送消息给另一个路由器来找出一个消息到达目的的路由。

 

JXTA原型实现

2001年4月,发布了第一个原型实现JXTA version 1.0,由于java的跨平台特性,所以这个实现是基于JDK1.1.4

发现机制:JXTA规范中并没有具体规定,JXTA version 1.0支持以下发现机制

1.     基于局域网的发现。

2.     通过邀请发现:一个同位体收到邀请,通过邀请的内容发现。

3.     层叠发现:如果一个同位体发现了第二个同位体,若第二个允许的话,第一个可以通过第二个发现新的同位体,组和服务。

4.     通过集合点同位体:这个前面已讨论过,集合点同位体就是知道其它同位体信息的同位体。

传播范围:JXTA没有强制规定消息怎么传播,一个消息可能只在局域网上传播,也可能在INTERNENT上传播。现在的JXTA实现把同位体组作为隐示的传播范围,因为在理论上,任何范围都可以以对应的同位体组的形式表示。

 

安全
JXTA Version 1.0提供了以下安全原语一个简单的支持哈希函数(如MD5)、对称加密算法(如RC4)和非对称加密算法(如RSA)的库;一个鉴别框架;一个简单的基于口令的登录策略;一个简单的存取控制机制,这基于同位体组,一个组的成员自动的授权访问其它的成员共享的数据;基于SSL/TLS的安全传输策略。 Project JXTA是开放源代码的,由许多参与者共同发展,它每天都有新的发展,我们应该参与进去,在刚刚兴起的P2P计算中做出自己的贡献。

JXTA介绍【转摘】相关推荐

  1. Caffe源码中Solver文件分析

    Caffe源码(caffe version commit: 09868ac , date: 2015.08.15)中有一些重要的头文件,这里介绍下include/caffe/solver.hpp文件的 ...

  2. Caffe源码中Net文件分析

    Caffe源码(caffe version commit: 09868ac , date: 2015.08.15)中有一些重要的头文件,这里介绍下include/caffe/net.hpp文件的内容: ...

  3. Caffe源码中layer文件分析

    Caffe源码(caffe version commit: 09868ac , date: 2015.08.15)中有一些重要的头文件,这里介绍下include/caffe/layer.hpp文件的内 ...

  4. Caffe源码中blob文件分析

    Caffe源码(caffe version commit: 09868ac , date: 2015.08.15)中有一些重要的头文件,这里介绍下include/caffe/blob.hpp文件的内容 ...

  5. 基于维纳滤波的语音增强算法 matlab,基于维纳滤波语音增强算法的改进实现

    通过对维纳滤波的介绍,实现了基本维纳滤波效果;利用两级维纳滤波和两级滤波器组滤波方法实现了语音增强,达到了良好的效果. 维普资讯 http://doc.docsou.com 文章编号:0 2 8 8 ...

  6. 《守望先锋》模型提取实例

    <守望先锋>模型提取 最近研究了下守望先锋的模型提取,一般的unity.手游模型都好取,突然遇到个头疼的,研究了一下,找到了一个大神的方案,以下是使用的大概步骤. toolchain工具介 ...

  7. Thymeleaf【快速入门】

    前言:突然发现自己给自己埋了一个大坑,毕设好难..每一个小点拎出来都能当一个小题目(手动摆手..),没办法自己选的含着泪也要把坑填完..先一点一点把需要补充的知识学完吧.. Thymeleaf介绍 稍 ...

  8. 基于Stm32的MP3播放器设计与实现

    原创博文,转载请注明出处 这是我高级电子技术试验课做的作业,拿来共享一下.项目在安福莱例程基础之上进行的功能完善,里面的部分内容可参考安福莱mp3例程.当然用的板子也是安福莱的板子,因为算起来总共做了 ...

  9. java timer时间回拨_用89C2051单片机制作的电话回拨器

    描述 该电话回拨器采用单片机控制,具有电路简单.接触可靠.使用方便等优点. 一.工作原理 电路见附图所示,系统由摘机,挂机电路.单片机拨号控制电路.DTMF号码产生及放大电路.电源电路等四部分组成,下 ...

最新文章

  1. 洛谷 P1142 轰炸
  2. 安装Ubuntu 14.04后要做的5件事情
  3. 从需求来看《IT人员应聘建议》
  4. php 二维sort,php 二维数组排序
  5. 《代码整洁之道 Clean Architecture》-读书笔记
  6. GridView中合并单元格
  7. Windows桌面分享程序设计
  8. VC.【转】采用_beginthread/_beginthreadex函数创建多线程
  9. 行政人员为什么需要一套固定资产管理系统?
  10. PCIE学习笔记(五)PIO例程设计与仿真分析
  11. 2020届春招实习面经(含阿里、腾讯、网易、京东、华为、美团、快手、字节跳动)
  12. 数据错误循环冗余检查是什么意思_将解耦功能集成到电源中,会发生什么?
  13. MATLAB代码:面向削峰填谷的电动汽车多目标优化调度策略
  14. UOJ#192. 【UR #14】最强跳蚤
  15. 520表白网站(附源码与修改教程)
  16. Vagrant up启动失败 invalid byte sequence in UTF-8 (ArgumentError)
  17. 崛起背后的隐秘故事-“机器人版 Linux”ROS
  18. 十六进制代码C语言,十六进制转换器C语言代码。怎么办?
  19. React中三元运算符的坑
  20. echarts 刻度线

热门文章

  1. 高清晰度彩色电影胶卷
  2. 【计算机组成与结构】主存储器
  3. lnk306dn引脚功能_LNK306DN
  4. 如何绘制神经网络结构图,如何设计神经网络结构
  5. 量化交易是什么意思?怎么理解?
  6. Vue - 拖曳式可视化生成应用软件(适合迭代的基础架构、低代码平台)
  7. LTE Paging
  8. python爬虫专家_Python爬虫入门教程:微医挂号网专家团队数据抓取pyspider
  9. Node课程(3,2,1,8,3)
  10. 【Springboot系列】Springboot接管所有Controller,magic-api源码阅读