1.前言
最近,P2P(Peer-to-Peer)又成为了因特网上的一个热 点。P2P是因特网的一种应用模式,其意思是指网络上的任何设备(包括大型机、PC机、PDA、手机、机顶盒等等)都可以平等地直接进行连接并进行协作。 想比当前因特网上主流的应用模式Client/Server或者Client/Service而言,P2P具有自己鲜明的特点和优势。(这也是我对它着迷 的地方。
有了P2P技术,因特网不需要一个大型的服务器,这对于有些行业(尤其是网络游戏)来说,是非常“幸运”的!因为P2P技术都很方便的实现你只化很少的money就可以达到你想要的效果。(是不是心动了?呵呵……J)
一些常见的P2P应用程序:聊天程序,游戏(尤其网络游戏),文件共享,协同工作和白板。
当然,P2P网络也应具备的下列特点:
① 互操作性:P2P系统很容易的找到并连接对方,彼此进行交流。
② 平台无关性:P2P系统应该设计成独立于编程语言如C,Java等,独立于系统平台如Windows和UNIX,独立于网络平台如TCP/IP和BLUETOOTH。
③ 广泛性:P2P系统可以运行在任何有数字处理功能的设备上。
2.JXTA是什么
首先,JXTA是为了构建P2P网络而制订的一组协议,是解决构建P2P网络必须要解决的问题的方法。共有六个协议(关于这些协议后面会详细的谈的)。
其次,JXTA是P2P应用程序开发的运行平台。目前,JXTA首先推出了基于Java的参考实现的。
它三层组成:如图1-1所示:
第一层是JXTA核心层,它包含了服务所必需要的核心功能,包括Peer、对等组、Peer 发现、Peer通信、Peer监视和相关的安全原语;第二层是服务层,它提供了访问JXTA协议的接口,包括对于P2P网络不是必需的,但很通用的功能, 如查找、共享、索引、代码缓存和内容缓存的机制;第三层是应用层,它使用服务来访问JXTA网络和JXTA提供的功能,包括了应用JXTA服务开发出来得 完整的P2P应用程序,如myJXTA,JXTA-CAD等应用程序。
下面简略的介绍一下JXTA的一些概念吧:
3.JXTA的一些概念
Peer(对等机):一个虚拟的通信点。一个用户可以有多个Peer,一台计算机或设备上同样可以有多个Peer。
Peer Group(对等组):一种组织Peer并且发布组内的特定服务的方式。可被创建、加入、退出;在一个组里可以更新一个组成员的关系。
(管道):Peer之间的虚拟通道,可以透过防火墙的障碍进行通信。从而使得Peer在大多数网络情况下都可以通信。
Advertisement(广告):一个XML文档,用来描述JXTA的消息、Peer、对等组或者服务等。它必须遵守编码、标签和内容的标准,用来交换JXTA网络上可以获得的任何信息。大多数JXTA的广告编码是使用UTF-8。
(消息):有两种方式来处理消息:①使用XML格式;②使用二进制格式。
(集合点):一个能够处理来自其他Peer请求的Peer。也可以将请求委托给其他集合点
(路由Peer):一个支持Peer端点协议的Peer。
(网关Peer):一个作为通信中继的Peer。与Rendezvous Peer不同的是,它是用来在Peer间传递消息,而Rendezvous Peer是用来传递请求的。
好了说了这么多的东西,连我都有点晕了。J 呵呵……下面开始做一个例子来熟悉一下吧:
4.下载并安装JXTA
软件地址:
http://www.jxta.org
, 请下载最新稳定版本。我下载的是2003-12-15更新的稳定版。它提供了几种平台,根据你的操作系统选择你需要的JXTA。当然你也可以把它的源代码 都可以下载下来,帮助你了解JXTA是如何工作的,不过要想编译这些代码,你还得使用Apache Ant工具,可以在
http://www.apache.org
下载。还有一个要注意的是你还得安装JDK1.3.1或更高的版本,推荐JDK1.4版本。
下面讲一下配置:
第一次运行JXTA程序时,JXTA将自动显示配置工具。在Basic settings页面里,填上一个你认为很酷的名字,表示你的Peer Name。点击OK。下一个界面输入安全用户名(Secure Username)和密码(Password),然后在Experienced Users Only页面里填上你的IP地址和端口,TCP默认端口为9701,HTTP默认端口为9700,并点击“+”按钮。复选框的意思也就一目了然了。当然你 也可以点击Download relay and rendezvous lists按钮来下载一些可供使用的TCP和HTTP rendezvous列表,以及网关列表。
如果你有防火墙一定要选择Use a relay(Required if behind firewall/NAT) 复选框。
恭喜,你现在就可以感受和体验JXTA程序了。
5.Hello JXTA的简单程序
程序源代码:
java 代码
-
- import
java.io.InputStream;
- import
net.jxta.peergroup.PeerGroup;
- import
net.jxta.peergroup.PeerGroupFactory;
- import
net.jxta.exception.PeerGroupException;
-
- public
class
HelloJXTA
- {
- public
static
void
main(String args[])
- {
- System.out.println("Starting JXTA...."
);
- HelloJXTA myapp = new
HelloJXTA();
- myapp.startJXTA();
- System.exit(0
);
- }
-
- public
void
startJXTA()
- {
- PeerGroup pg = null
;
- try
- {
- pg = PeerGroupFactory.newNetPeerGroup();
- }
- catch
(PeerGroupException e)
- {
- System.out.println("Fatal error:group creation failure"
);
- e.printStackTrace();
- System.exit(1
);
- }
- System.out.println("Hello JXTA!:)"
);
- System.out.println("Group name = "
+ pg.getPeerGroupName());
- System.out.println("Group ID = "
+ pg.getPeerGroupID().toString());
- System.out.println("Peer name = "
+ pg.getPeerName());
- System.out.println("Peer ID = "
+ pg.getPeerID().toString());
- System.out.println("Peer BaseClass = "
+ pg.refTcpProtoSpecID.getBaseClass());
- }
- }
但要注意的是,此程序在编译时,要用到jxta.jar文件,因此我们这样来编译程序:
D:>javac –classpath .\lib\jxta.jar HelloJXTA.java
这还不算复杂了,运行时候就有点复杂了:
D:>java –classpath .\lib\jxta.jar; .\lib\log4j.jar; .\lib\jxtasecurity.jar; .\lib\cryptix-asn1.jar; .\lib\cryptix32.jar; .\lib\bcprov-jdk14.jar;.\lib\jxtaptls.jar;. HelloJXTA
第一次运行程序的时候,会自动出现JXTA平台的配置界面(以后只会出现登录界面,如图1-2所示,注意:登录的是Secure Username,而不是Peer Name),和上面的配置一样。同时,你还可以发现当前的目录下多了个.jxta的目录:
l PlatformConfig文件:由JXTA的配置工具生成,是一个符合XML规范的文本文件。如果你删除它,下次运行HelloJXTA文件时候会出现JXTA平台配置界面。
l Cm目录:本地的缓冲目录,记录了发现的所有的PeerGroup的信息。在本例中,应该发现jxta-NetGroup和jxta-WorldGroup两个目录。
l Pse目录:存放Peer用于安全认证的证书信息.
运行结果,如图
1-3
所示:
当然你可以把上面的命令写成
.bat
文件也是可以的,但也可以把上面的包都加入到
classpath
的环境变量中去。如果你还是觉得有点麻烦的话,那就选择一个编译器。比如
JCreator Pro 2.0
(我只有
2.0
没用
2.5
J
)。
Configure
—
> Options
—
> JDK Profiles
—
> Edit
,在
Classes
页面里
Add Package
。将
lib
目录下的
*.jar
都添加到
Classes
里面中去。也将
jre\lib\
目录下
*.jar
添加进去。编译、运行,都是
OK
的!呵呵……入门就说到这里,下一篇将关于
JXTA
的一些应用程序。
分享到:
相关推荐
**JXTA (Java eXtensible Peer-to-Peer Technology)** 是一个开源的、基于Java的平台,专门设计用于构建对等网络(P2P)应用程序。它提供了一组标准的API,允许开发者创建分布式系统,其中每个节点既是客户端也是...
通过学习和实践JXTA-Java P2P网络编程技术,你可以创建出分布式的、自我组织的网络应用,这些应用能够在不依赖中心服务器的情况下,高效地共享信息和资源。例如,你可以构建文件共享系统、协同工作平台、分布式计算...
首先,JXTA是为了构建P2P网络而制订的一组协议,是解决构建P2P网络必须要解决的问题的方法。 其次,JXTA是P2P应用程序开发的运行平台。目前,JXTA首先推出了基于Java的参考实现的。
在使用JXTA进行P2P编程时,开发者首先需要创建并配置P2P网络的“边缘”,即设备在网络中的身份。接着,可以创建和发布广告,声明设备提供的资源或服务。发现机制允许节点找到其他设备和它们提供的服务。然后,通过...
在"JXTA P2P编程技术例程"这个资料集合中,我们可以期待学习以下几个方面的内容: 1. **JXTA网络模型**:JXTA采用的是基于边缘计算的网络模型,每个参与的设备或“对等体”(peer)既是服务的消费者也是提供者。...
**Java P2P网络编程技术:JXTA详解** P2P(Peer-to-Peer)网络编程是一种分布式计算模式,其中每个参与者既是客户端也是服务器,直接与其他参与者交换资源和服务,无需中间服务器。Java P2P网络编程技术因其跨平台...
通过《JXTA——Java P2P网络编程技术》这本书,读者可以深入理解JXTA框架的原理和应用,书中可能涵盖了如何设置开发环境、建立Peer Group、创建和管理Pipe、实现资源发现和交换,以及如何实施安全策略等内容。...
JXTA是美国sun公司在JAVA领域里推出的新技术,目的是为P2P(peer-to-peer)的网络应用开发提供一个统一的平台 而贝为了鼓励和支持该技术的发展,JxTA项目采用了开放源代码的方式进行.吸引了大量业界人士参与到JXTA...
**JXTA(Java Peer-to-Peer Toolkit)**是由Sun Microsystems开发的一种开放源代码平台,专门用于构建基于Java的对等...如果你对P2P网络或JXTA感兴趣,这个教程将是一个宝贵的资源,带你深入了解这一领域的技术和应用。
通过阅读"www.pudn.com.txt"和"JXTA-Java-P2P网络编程技术"这两个文档,你可以获取更详细的JXTA编程指南、示例代码以及可能遇到的问题解决方案,进一步提升你的Java P2P编程能力。在实践中不断探索和学习,你将能够...
### JXTA-Java P2P Programming:关键技术与实践概览 #### 一、书籍简介与作者背景 《JXTA: Java P2P Programming》是一本由Daniel Brookshier、Darren Govoni、Navaneeth Krishnan和Juan Carlos Soto等人合著的...