﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-yinfs1901-文章分类-JXTA</title><link>http://www.blogjava.net/yinfs1901/category/4924.html</link><description /><language>zh-cn</language><lastBuildDate>Tue, 27 Feb 2007 12:07:50 GMT</lastBuildDate><pubDate>Tue, 27 Feb 2007 12:07:50 GMT</pubDate><ttl>60</ttl><item><title>JXTA技术与原型实现简介</title><link>http://www.blogjava.net/yinfs1901/articles/20045.html</link><dc:creator>乐乐</dc:creator><author>乐乐</author><pubDate>Wed, 16 Nov 2005 04:59:00 GMT</pubDate><guid>http://www.blogjava.net/yinfs1901/articles/20045.html</guid><wfw:comment>http://www.blogjava.net/yinfs1901/comments/20045.html</wfw:comment><comments>http://www.blogjava.net/yinfs1901/articles/20045.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/yinfs1901/comments/commentRss/20045.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/yinfs1901/services/trackbacks/20045.html</trackback:ping><description><![CDATA[<STRONG>摘要：</STRONG>JXTA是一个用来解决P2P计算的开放的网络计算平台。JXTAP2P平台使开发者在其上建立P toP的应用。2001年4月，发布了第一个源型实现，它是基于JDK1.1.4的。 </ABSTRACT-EXTENDED>
<P>分布式计算发展非常迅速，新技术不断出现，现在出现的P2P技术，让用户可以直接连接到其他用户的计算机，进行文件共享与交换，另外P2P在深度搜索、分布计算、协同工作等方面也大有用途。</P>
<P><A name=1><SPAN class=atitle2>现有P2P系统的缺陷和JXTA的目标</SPAN></A><BR>现有的P2P系统有一些缺陷，大多数P2P系统用来实现一个单一类型的网络服务（Napster用来音乐文件交换、Gnutella用来普通文件交换），由于不同的网络服务的特性和缺少一个共同的底层基础，每一个供应商都使用不兼容的技术使它的用户同别的P2P通信相隔离。JXTA通过提供一个简单的普遍的P2P平台来解决这个问题：</P>
<OL xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:h="http://www.w3.org/1999/xhtml" xmlns:dw="http://www.ibm.com/developerworks/">
<LI>JXTA使用一些协议，每一个协议都可以很容易的实现和集成到P2P服务和应用中，这样，不同的P2P系统之间可以方便的互相通信，协同工作，向对方提供服务。 
<LI>JXTA被设计成独立于编程语言，如C或JAVA，独立于系统平台，如WINDOWS和UNIX，独立于网络平台，如TCP/IP和蓝牙。而且JXTA被设计能在任何数字设备上实现，包括传感器、消费电子产品、PDA设备、网络路由器、桌面电脑、服务器和存储设备。 </LI></OL>
<P><A name=2><SPAN class=atitle2>术语</SPAN></A><BR>同位体（peer）：一个同位体是可以理解协议的任何实体。所以，一个同位体可以是一个处理器、机器或用户。</P>
<P>同位体组（peer group）：一个同位体组是提供一个通用服务的同位体的集合。</P>
<P>管道（pipes）：它是发送和接受消息的通道，它是异步的。</P>
<P>广告（advertisement）：一个广告是一个XML结构的文档，用来命名，描述和公布现有的资源，如同位体，同位体组，管道，或服务。各种广告的格式请参考JXTA规范。</P>
<P><A name=3><SPAN class=atitle2>JXTA的层次</SPAN></A><BR>JXTA平台被分为三层</P>
<UL xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:h="http://www.w3.org/1999/xhtml" xmlns:dw="http://www.ibm.com/developerworks/">
<LI>平台（platform）：这一层封装了最根本的东西，包括同位体、同位体组、同位体发现、同位体通信、同位体监视和相关的安全原语。 
<LI>服务（services）：这一层包括对于P2P网络不是必需的，但很通用的，如查找、共享、索引、缓存代码和内容的机制。 
<LI>应用（application）：这一层包括 P2P电子邮件系统、分布式拍卖系统等。 </LI></UL>
<P><A name=4><SPAN class=atitle2>JXTA协议</SPAN></A><BR>抽象的看，JXTA技术实际上就是一些协议，目前定义了以下协议</P>
<P><B xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:h="http://www.w3.org/1999/xhtml" xmlns:dw="http://www.ibm.com/developerworks/">同位体发现协议</B> <BR xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:h="http://www.w3.org/1999/xhtml" xmlns:dw="http://www.ibm.com/developerworks/">这个协议用来查找其它同位体的广告，通过它，可以查找所有的同位体、同位体组或核心广告。这个协议是缺省的发现协议，可以被替换。集合点同位体是这样一种同位体，它保存着一个知道的同位体和同位体组的表。如果这个表是完全及时的，那么往这个同位体发一个消息，就可以发现所有的同位体，当然，这是最简单的一种方式。查找有两种方式，其一就是上述的向集合点同位体发送消息，另外，可以向一个范围内广播发送消息，这种消息叫做发现查询消息。发现响应消息返回一个或多个同位体和同位体组的广告。以上这两种消息的格式请参考 JXTA规范。 </P>
<P><B xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:h="http://www.w3.org/1999/xhtml" xmlns:dw="http://www.ibm.com/developerworks/">同位体解决（resolver）协议</B> <BR xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:h="http://www.w3.org/1999/xhtml" xmlns:dw="http://www.ibm.com/developerworks/">这个协议使一个同位体可以通过发送和接收查询来查找同位体、同位体组、管道和一些与服务相关的信息，如服务的状态，通道端点的状态等。一个同位体组的每一个服务都可以注册一个handler来处理这些查询。每一个查询都包括唯一的handler的名字，指出由谁来处理它。同样解决查询消息与解决响应消息的格式参考JXTA规范。 </P>
<P><B xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:h="http://www.w3.org/1999/xhtml" xmlns:dw="http://www.ibm.com/developerworks/">同位体信息协议</B> <BR xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:h="http://www.w3.org/1999/xhtml" xmlns:dw="http://www.ibm.com/developerworks/">当一个同位体被定位后，我们关心它的能力和状态，这个协议就是用来得到这些信息。如想要知道一个同位体是否激活，向它发送ping消息。相关消息的格式参考JXTA规范。 </P>
<P><B xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:h="http://www.w3.org/1999/xhtml" xmlns:dw="http://www.ibm.com/developerworks/">同位体成员资格协议</B> <BR xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:h="http://www.w3.org/1999/xhtml" xmlns:dw="http://www.ibm.com/developerworks/">这个协议允许同位体：得到组的成员资格的要求和应用的证书；请求成员资格和得到成员资格的证书；更新现存的成员资格和应用的证书；除掉成员资格和应用的证书。这个协议定义的消息参考JXTA规范。 </P>
<P><B xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:h="http://www.w3.org/1999/xhtml" xmlns:dw="http://www.ibm.com/developerworks/">管道绑定协议</B> <BR xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:h="http://www.w3.org/1999/xhtml" xmlns:dw="http://www.ibm.com/developerworks/">这个协议被组的成员把管道的广告绑定到管道的端点。 </P>
<P><B xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:h="http://www.w3.org/1999/xhtml" xmlns:dw="http://www.ibm.com/developerworks/">端点路由协议</B> <BR xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:h="http://www.w3.org/1999/xhtml" xmlns:dw="http://www.ibm.com/developerworks/">这个协议被同位体路由器用来发送消息给另一个路由器来找出一个消息到达目的的路由。 </P>
<P><A name=5><SPAN class=atitle2>JXTA原型实现</SPAN></A><BR>2001年4月，发布了第一个原型实现JXTA version 1.0，由于java的跨平台特性，所以这个实现是基于JDK1.1.4的。</P>
<P><B xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:h="http://www.w3.org/1999/xhtml" xmlns:dw="http://www.ibm.com/developerworks/">发现机制</B>:JXTA规范中并没有具体规定，JXTA version 1.0支持以下发现机制 </P>
<OL xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:h="http://www.w3.org/1999/xhtml" xmlns:dw="http://www.ibm.com/developerworks/">
<LI>基于局域网的发现。 
<LI>通过邀请发现：一个同位体收到邀请，通过邀请的内容发现。 
<LI>层叠发现：如果一个同位体发现了第二个同位体，若第二个允许的话，第一个可以通过第二个发现新的同位体，组和服务。 
<LI>通过集合点同位体：这个前面已讨论过，集合点同位体就是知道其它同位体信息的同位体。 </LI></OL>
<P><B xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:h="http://www.w3.org/1999/xhtml" xmlns:dw="http://www.ibm.com/developerworks/">传播范围:</B>JXTA没有强制规定消息怎么传播，一个消息可能只在局域网上传播，也可能在INTERNENT上传播。现在的JXTA实现把同位体组作为隐示的传播范围，因为在理论上，任何范围都可以以对应的同位体组的形式表示。 </P>
<P><B xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:h="http://www.w3.org/1999/xhtml" xmlns:dw="http://www.ibm.com/developerworks/">安全</B>： <BR xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:h="http://www.w3.org/1999/xhtml" xmlns:dw="http://www.ibm.com/developerworks/">JXTA Version 1.0提供了以下安全原语一个简单的支持哈希函数（如MD5）、对称加密算法（如RC4）和非对称加密算法（如RSA）的库；一个鉴别框架；一个简单的基于口令的登录策略；一个简单的存取控制机制，这基于同位体组，一个组的成员自动的授权访问其它的成员共享的数据；基于SSL/TLS的安全传输策略。 Project JXTA是开放源代码的，由许多参与者共同发展，它每天都有新的发展，我们应该参与进去，在刚刚兴起的P2P计算中做出自己的贡献。关于JXTA更详细的知识，请到它的网站 <A href="http://www.jxta.org/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:h="http://www.w3.org/1999/xhtml" xmlns:dw="http://www.ibm.com/developerworks/">http://www.jxta.org</A> </P><img src ="http://www.blogjava.net/yinfs1901/aggbug/20045.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/yinfs1901/" target="_blank">乐乐</a> 2005-11-16 12:59 <a href="http://www.blogjava.net/yinfs1901/articles/20045.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>