一、概述
美国Sun公司自从1995年向世界推出了Java语言以来,每年都会在Java领域里推出新的技术,从JavaCard、J2ME到J2EE、JINI、JavaTV,推动了Java技术的发展和应用。在最近几次的旧金山的JavaOne会议中,JXTA是该公司向业界推出的较新技术。该技术的目的是为P2P的网络应用开发提供一个统一的平台,而且为了鼓励和支持该技术的发展,JXTA项目采用了开放源码的方式,因此吸引了大量业界人士参与到JXTA技术的研究与应用当中,JXTA Community(www.jxta.org)就是人气很旺的一个Java技术研究开发的网站。
JXTA最早起源于2000年的夏天,现在大家把JXTA看成是P2P的平台,JXTA的目标是要解决几个技术与商业上的难题。第一是解决众多P2P系统互不相通的问题。2000年,是P2P突飞猛进的高潮年,但高潮背后却是许多小公司用自己的封闭系统试图在Internet上圈一块地。Sun认为,只有互通才能真正发挥出P2P的优势,就好像IM(Instant Messaging),能互连的人越多,越有价值。所以Sun决定出面发布一个平台,使所有P2P系统都能连接起来,只有Sun这样位置中立、但在技术上有雄存实力被大家认可的公司才有希望做成这一平台。
JXTA的另外一个目的就是找寻一套数量最少、概念最简单的系统构成的“积木”。如果成功,这几块积木就会是今后大家构架信息系统的基本模块,从而帮助人们摆脱像Windows或TCP/IP这样的传统软件带来的包袱。Java、Jini和JXTA像是J的三部曲,Java取自著名咖啡产地名,Jini是genie(精灵) 的谐音,而JXTA则是Juxtapose的缩写。当时BillJoy用grep把所有J打头的英文词找出来,juxtapose跃然纸上,很是巧妙。既表现了P2P或肩并肩的意义,又说明JXTA不局限于P2P。但JXTA与众不同,它是由一系列网络协议构成的,用任何语言都可以实现,并不只限于Java,只有彻底独立于操作系统、网络传输技术以及程序设计语言,才真正达到了跨平台,而这样的技术,最容易受到业界的认同。
JXTA是项目创始人、Sun首席科学家BillJoy二十多年酝酿的结晶,“JXTA技术是网络编程和计算的平台,用以解决现代分布计算尤其是点对点(P2P)计算中出现的问题。”JXTA研究项目,将提供使用户更便捷地访问连接在互联网上的个人电脑资源的新框架,从而进一步拓展互联网的空间。同时JXTA也是Sun的ONE互联网战略的延续,并且将更积极的姿态与Microsoft的.Net战略和Hailstorm计划一争高低。Joy指出,JXTA可能是Sun One平台最简单的一部分,而不是打算将它变成象微软的.Net那样复杂的东西,而且JXTA也将是开放源代码的团体;有别于而微软的Passport和Hailstorm技术都是申请专利的专有技术,Sun希望通过公开JXTA源代码的方式,成为微软最有力的竞争对手,在公开源代码的领域中,Linux和Apache是卓越的成功典范,Sun也希望JXTA能铸造新的成功。
JXTA技术提供了基础性的机制解决当前分布计算应用中面临的问题,实现新一代统一、安全、互操作以及异构的应用。目前它支持基于Java技术的平台和系统。而将来JATX技术将不受到内存的限制而支持更多小型移动设备。JXTA通过Java技术和XML数据表达的结合,提供了强大的功能使得垂直应用得以交互,并且可以克服目前P2P软件中的限制。同时,通过小型、简单、便于开发的构造模块,JXTA将使开发者从建立各自框架的复杂工作得以解放,可以潜心关注于建设各类新颖、创造性的、分布式计算应用。

二、JXTA的应用

1、即时通信和文件共享(myJXTA)
myJXTA是在J2SE平台上的一个JXTA演示程序,主要为展示JXTA项目和P2P的一些概念,它提供了一些功能,诸如安全的一对一的交谈、组内的交谈、组内文档的共享、搜索和下载等。myJXTA使用JXTA平台的核心服务,完成发现组、加入组和创建组的功能;还有在两个Peer 间创建连接,完成一对一的交谈;或者在组内建立连接,完成组内的交谈以及组内文件的搜索和下载。该程序的主要目的是未了展示基于JXTA协议的P2P的工作方式。

2、网络游戏(Chess)
    JXTA技术已在许多游戏应用方面得到了展示,一个互动式的国际象棋比赛的应用程序使用JXTA来传递两个棋手间的对奕过程,并将它展现给观众,国际象棋游戏和“tic-tac-toe"游戏都可以用来展示JXTA在小型设备上的应用,一个游戏者可以创建一个新的JXTAPeer组并邀请全世界其他游戏者加入他的游戏,当然也可以限制他人进入他的游戏组。

3、协同工作
JXTA技术已经展示它在协同工作应用程序中的能力。用JXTA开发出来的集成开发环境可以允许一个以上的开发者同时开发一个软件程序;另外一个协作式的JXTA应用程序允许几个人同时编辑同一个电子数据表。其他JXTA项目中开发的合作开发工具包则利用了JXTA进行会话、共享浏览和文件共享。
    由于具有通话功能,JXTA技术在合作开发中拥有这样一个优点:一个应用程序的开发不需依赖于服务器或其他中央管理系统。JXTA处理新发现的节点,并保证路线通畅,在用户和交互式应用程序间交换消息。

4、聊天程序
JXTA非常适合编写聊天程序,而且可以有多种实现方法,包括完全的集中式、代理方式到完全非集中式。而且一个非常有意思的情况是,用JXTA来实现一个集中式的聊天程序非常困难,而实现完全非集中式的聊天程序反而简单,因为JXTA平台本身已经完全解决了底层Peer之间的发现和通信问题。在现有的JXTA项目中已经有许多聊天程序的例子,包括myJXTA应用程序(原先称为InstantP2P)、JXTA shell中的Talk命令、HotWire应用程序和其他几个编程指南。

5、JXTA 社区
JXTA是一个开放源代码的项目,它是由JXTA社区http://www.jxta.org在推动发展。在这个站点上可以获取最新的JXTA文档和程序代码,而且你可以注册并加入到正在进行中的JXTA项目,参与并推动项目的进展;这些项目分类存放,为用户展示了JXTA各方面的功能;此外,站点上还有邮件列表,都是JXTA开发人员和P2P参与者就感兴趣的问题的讨论。

三、JXTA的发展

1、各种语言的实现
目前JXTA只有Java的实现版本,以至于大家谈到JXTA都认为它是用Java开发的一套P2P框架,而忽略了JXTA的实质只是一套独立于各种平台和语言的协议。因此在各种语言上实现JXTA成为一项非常重要的工作。只有这样,因特网上的用各种各样语言实现的应用软件就可以只需改写网络部分的代码而转换到JXTA平台上来。这不但大大地节省了工作量,而且将会吸引大量因为各种原因无法采用Java语言的软件加入到JXTA中来,从而大大促进JXTA协议的发展。现在正在进行的其他语言的实现有C,Perl,Python,Smalltalk等等,显然这还远远不够,也许我们将来需要看到用Pascal,VB,C#实现的版本。
 
2、各种平台的实现
跨平台,这是Java已经实现了的目标,但是并不表示JXTA就无事可做,一个真正的P2P网络不仅仅是包括PC这个大家目前已经熟悉的设备,它还应该包含各种现在以及将来能够连到因特网上的设备。头一个目标显然是PDA和手机这种移动设备,JXTA for J2ME以及PocketJxta都已经在进行中,而且已经可以使用;但是,我们还要考虑到将来的各种设备,这其中主要是各种各样的嵌人式设备。如果这些设备都运行JXTA平台,那么我们将看到一个真正的P2P世界。
 
3、各种应用
有好的应用,一个平台是不可能流行起来的。目前在jxta.org上登记的应用开发项目有多个,相比现实世界中的各种网络软件的数目,这个数字实在是很小。目前的JXTA应用主要集中在即时通信和文件共享上面,这似乎成了P2P的代名词。但是如果只局限于这些应用,JXTA的应用范围将会很有限。
 
4、Service
Service在JXTA中扮演着极其重要的角色,所有JXTA协议的实现都是以Service的形式存在着的。除了几个核心服务外,目前JXTA上有多个关于Service的项目正在开展着,从某种程度上来说,Service比Application更重要;如果没有好的Service,也就产生不了多少好的应用,在这些进行中的Service中,Search是其中关键的环节,在没有中心服务器的P2P网络中,如何有效地进行查找成为一个关键问题,与此同时,还需做到尽可能地减少占用的带宽。

本文引用通告地址(TrackBack Ping URL)为:

http://blog.ccw.com.cn/trackback.jsp?postID=4952

JXTA技术与应用发展(转载)相关推荐

  1. JXTA技术与应用发展

    一.概述     美国Sun公司自从1995年向世界推出了Java语言以来,每年都会在Java领域里推出新的技术,从JavaCard.J2ME到J2EE.JINI.JavaTV,推动了Java技术的发 ...

  2. 转载酷壳-技术人员的发展之路

    转载酷壳上的一篇文章:技术人员的发展之路,其中对我影响最大的一个段落是: [去真正的创业公司] 去顶尖公司和去创业公司在某些时候并不冲突.不过,这里我想讲的是,一个技术能力强的人在大公司可能会被埋没掉 ...

  3. 淘宝技术发展[转载]

    [原文地址:http://kb.cnblogs.com/page/132724/#c2] 一.引言 光棍节的狂欢 "时间到,开抢!"坐在电脑前早已等待多时的小美一看时间已到 201 ...

  4. FPGA技术的未来发展:谁与AI平分秋色

    参加 2019 Python开发者日,请扫码咨询 ↑↑↑ 作者 | 老石 来源 | 老石谈芯(公众号id:gh_5ce1d0cb1568) 责编 | Jane 任何科学技术的发展和进步都离不开两个主要 ...

  5. 【AI不惑境】模型压缩中知识蒸馏技术原理及其发展现状和展望

    大家好,这是专栏<AI不惑境>的第十一篇文章,讲述知识蒸馏相关的内容. 进入到不惑境界,就是向高手迈进的开始了,在这个境界需要自己独立思考.如果说学习是一个从模仿,到追随,到创造的过程,那 ...

  6. 【AI不惑境】模型量化技术原理及其发展现状和展望

    大家好,这是专栏<AI不惑境>的第十篇文章,讲述模型量化相关的内容. 进入到不惑境界,就是向高手迈进的开始了,在这个境界需要自己独立思考.如果说学习是一个从模仿,到追随,到创造的过程,那么 ...

  7. 计算机专业 程序员技术练级攻略(转载)

    程序员技术练级攻略 转载自: https://coolshell.cn/articles/4990.html 前言 你是否觉得自己从学校毕业的时候只做过小玩具一样的程序?走入职场后哪怕没有什么经验也可 ...

  8. 区块链技术的风险!(转载)

    本文转载自 搜狐财经 作者: 程显峰 原文链接 一.安全隐患 包含三点: 私钥丢失: 错误的实现: 协议被攻击. 47c1301a29af9da6bc8ad176b8ce5e2435dad6ce 秘钥 ...

  9. RFID技术应用及其发展趋势分析

    RFID技术应用及其发展趋势分析 RFID(射频识别)是一种自动无线识别和数据获取技术,已经在很多领域得到广泛应用.本文介绍了主流的RFID技术的性能特点,并分析了未来该技术的应用趋势和技术发展趋势. ...

最新文章

  1. linux valgrind Memcheck--内存检查工具
  2. WebKit Event
  3. Infinispan版本已映射到最低Java版本
  4. POI(java 操作excel,word等)编程
  5. 暑期英语学习(词组积累)【持续更新中】
  6. Mybatis(2)-注解使用-IDEA
  7. 爱链工具 v1.11.24.0
  8. 分布式系统关注点(21)——构建「易测试」系统的“六脉神剑”
  9. cad转shp 奥维_CAD转化为Shp
  10. 基于51单片机的温度检测调节系统设计
  11. 第九届山东理工大学ACM网络编程擂台赛 热身赛 sdut4076 数的价值(一)
  12. 新手织梦建站教程:设置网页文档默认点击数为0方法
  13. 基于物联网的智能厨房安全监测系统-上位机程序
  14. 变态跳台阶问题:一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法?
  15. 【youcans 的 OpenCV 例程200篇】176.图像分割之均值漂移算法 Mean Shift
  16. body 没有被撑开_父元素没有被撑开塌陷问题解决方案
  17. 闲云野鹤:吃鸡(二)之场景制作—雾效的制作
  18. 关于element的日历组件改造为考勤页面
  19. Inventor冲压加强筋_Inventor教程:创建加强筋
  20. exe4j工具使jar包生成exe可执行文件

热门文章

  1. main c语言中变量的定义,C语言中在main函数中定义的变量是全局变量么_后端开发...
  2. 高等教育学:教育心理学概述
  3. 手机玩游戏卡顿怎么办。
  4. Android气泡对话效果
  5. android 流媒体 播放器 项目 源码
  6. CodeForces Gym 101047L Putting plates on the tuk-tuks 快速幂
  7. 《python灰帽子》笔记四
  8. java虚拟机学习笔记2
  9. 文件管理系统软件---爱米云网盘
  10. ::before 和:after的区别