位置:51电子网 » 技术资料 » 通信网络

基于JXTA的P2P即时通信系统设计

发布时间:2008/5/29 0:00:00 访问次数:363

一、 引言

最近几年,对等式网络模型p2p开始受到重视,成为最近的技术热点。p2p即peer to peer,称为对等连接或对等网络,它与传统的客户端/服务器(c/s)或浏览器/服务器(b/s)模式相比,最大的不同是降低了对服务器的依赖,在p2p网络中各peer之间的关系是对等的,peer同时具有client和server的特点。它们可以直接通信,进行文件传输,无需依赖集中式服务器或资源就可完成。

p2p技术将在网络尤其是宽带网络方面具备强大的应用潜力,2002 legend world大会上中科院计算机所的李国杰所长对p2p技术与网格技术的融和做出了非常有远见的预测,国外p2p网络流量占据了整个网络流量的40%,国外p2p网络注册用户超过3亿以上这些都是有力的证据,从试验科学的角度来看,p2p技术是因为解决了互联网模型中的弱链接模块的信息传递这个障碍,使得互联网的信息流动更加通畅才使他具备了这样强大的生命力和应用前景。

目前,p2p 技术的应用主要是在文件共享和即时通讯方面这两个方面。所谓即时通讯,其实指的就是诸如oicq、icq等被称为在线聊天的软件。从某种意义上说,由于版

权的限制,即时通讯应用将超过文件共享应用,成为p2p的第一大应用。我基于jxta(jxta将在第二节作详细介绍)设计了一个简单的p2p 即时通信系统,它可以实现互联网上任意两台主机之间的直接连接,不仅可以随时知晓对方在线与否,而且交流双方的通讯完全是点对点进行,不依赖服务器的性能和网络带宽,它为开发更多的p2p应用提供了基础。由于java为网络编程提供了很好的支持和优化,并且是跨平台的,可移植性好,因此,我们选用java作为开发语言。

二、 jxta简介

由于p2p应用软件的前景看好,各大软件公司都在竞相开发p2p的软件开发产品,sun的jxta就是其中的一个。使用jxta开发技术,软件开发人员可以开发出基于java语言的p2p的应用软件。jxta技术是一组开发式的协议,它们能够连接网络中的任何设备,从手提电话、无线pda到台式电脑,让它们协同工作、共享资源。jxta网络里面的全部结点共同组成了一个虚拟网络,里面的任何一个结点都能直接访问其他的结点,即使那些结点是位于防火墙的背后。

1、 使用jxta技术来开发分布式计算软件,可以实现以下功能:

(1) 能够直接跟防火墙之后的其他结点连接;

(2) 简易的共享文档资料;

(3) 得到网络上包含的信息的简要目录;

(4) 建立结点群组来提供定制的服务;

可以在远端监视某个结点的行为。

2、 jxta的软件结构分为以下三层(如图1所示)

(1)核心层(jxta core):它包含了服务所需要的核心功能,这一层封装了最根本的东西,包括peer、对等组、peer发现、peer通信、peer监视和相关的安全原语。

(2)服务层(jxta service):它提供了访问jxta协议的接口,这一层包括了对于p2p网络不是必需的、但很通用的功能,如查找、共享、索引、代码缓存和内容缓存的机制。

(3)应用层(jxta application):它使用服务来访问jxta网络和jxta提供的功能。这一层包括了应用jxta服务卡发出来的完整的p2p应用程序,例如myjxta ,jxta-cad等应用程序。


图1 jxta的层次结构
三、 结构设计

1、 总体介绍

本系统是一个建立在基于jxta的p2p网络之上的即时通信软件,它的功能类似于我们目前常常用到的即时通信软件,如oicq、icq和msn等。即时通信系统分为发送(sender)、中继转发(transfer)和接收(receiver)三部分。当transfer启动时加入p2p网络,并且在p2p网络中发布提供即时通信服务的通告。sender加入p2p网络,通过查找p2p网络通告寻找提供服务的transfer,选择transfer形成p2p网络通道。sender在这个通道基础上建立与目的端的socket连接,将信息传递到receiver。传递的信息是用xml形式封装的字节数组,数据被保存在xml文件中,由transfer解析出数据。通过通道中的各个transfer对信息进行加密及解密操作,实现sender和receiver之间的通信。当用户运行该软件时,会出现登陆界面,如图2所示,如果用户是第一次运行该程序,并没有任何默认的设置,jxta会弹出jxta gui 配置实用程序让你进行一些强制的和可选的设置。当用户输入正确的用户名和密码之后,就会加入jxta网络,并启动本机的jxta服务,成为jxta网络中的一个peer。


图2系统通信过程示意图
如图2所示,a、b、p1、p2……p5都是存在于基

一、 引言

最近几年,对等式网络模型p2p开始受到重视,成为最近的技术热点。p2p即peer to peer,称为对等连接或对等网络,它与传统的客户端/服务器(c/s)或浏览器/服务器(b/s)模式相比,最大的不同是降低了对服务器的依赖,在p2p网络中各peer之间的关系是对等的,peer同时具有client和server的特点。它们可以直接通信,进行文件传输,无需依赖集中式服务器或资源就可完成。

p2p技术将在网络尤其是宽带网络方面具备强大的应用潜力,2002 legend world大会上中科院计算机所的李国杰所长对p2p技术与网格技术的融和做出了非常有远见的预测,国外p2p网络流量占据了整个网络流量的40%,国外p2p网络注册用户超过3亿以上这些都是有力的证据,从试验科学的角度来看,p2p技术是因为解决了互联网模型中的弱链接模块的信息传递这个障碍,使得互联网的信息流动更加通畅才使他具备了这样强大的生命力和应用前景。

目前,p2p 技术的应用主要是在文件共享和即时通讯方面这两个方面。所谓即时通讯,其实指的就是诸如oicq、icq等被称为在线聊天的软件。从某种意义上说,由于版

权的限制,即时通讯应用将超过文件共享应用,成为p2p的第一大应用。我基于jxta(jxta将在第二节作详细介绍)设计了一个简单的p2p 即时通信系统,它可以实现互联网上任意两台主机之间的直接连接,不仅可以随时知晓对方在线与否,而且交流双方的通讯完全是点对点进行,不依赖服务器的性能和网络带宽,它为开发更多的p2p应用提供了基础。由于java为网络编程提供了很好的支持和优化,并且是跨平台的,可移植性好,因此,我们选用java作为开发语言。

二、 jxta简介

由于p2p应用软件的前景看好,各大软件公司都在竞相开发p2p的软件开发产品,sun的jxta就是其中的一个。使用jxta开发技术,软件开发人员可以开发出基于java语言的p2p的应用软件。jxta技术是一组开发式的协议,它们能够连接网络中的任何设备,从手提电话、无线pda到台式电脑,让它们协同工作、共享资源。jxta网络里面的全部结点共同组成了一个虚拟网络,里面的任何一个结点都能直接访问其他的结点,即使那些结点是位于防火墙的背后。

1、 使用jxta技术来开发分布式计算软件,可以实现以下功能:

(1) 能够直接跟防火墙之后的其他结点连接;

(2) 简易的共享文档资料;

(3) 得到网络上包含的信息的简要目录;

(4) 建立结点群组来提供定制的服务;

可以在远端监视某个结点的行为。

2、 jxta的软件结构分为以下三层(如图1所示)

(1)核心层(jxta core):它包含了服务所需要的核心功能,这一层封装了最根本的东西,包括peer、对等组、peer发现、peer通信、peer监视和相关的安全原语。

(2)服务层(jxta service):它提供了访问jxta协议的接口,这一层包括了对于p2p网络不是必需的、但很通用的功能,如查找、共享、索引、代码缓存和内容缓存的机制。

(3)应用层(jxta application):它使用服务来访问jxta网络和jxta提供的功能。这一层包括了应用jxta服务卡发出来的完整的p2p应用程序,例如myjxta ,jxta-cad等应用程序。


图1 jxta的层次结构
三、 结构设计

1、 总体介绍

本系统是一个建立在基于jxta的p2p网络之上的即时通信软件,它的功能类似于我们目前常常用到的即时通信软件,如oicq、icq和msn等。即时通信系统分为发送(sender)、中继转发(transfer)和接收(receiver)三部分。当transfer启动时加入p2p网络,并且在p2p网络中发布提供即时通信服务的通告。sender加入p2p网络,通过查找p2p网络通告寻找提供服务的transfer,选择transfer形成p2p网络通道。sender在这个通道基础上建立与目的端的socket连接,将信息传递到receiver。传递的信息是用xml形式封装的字节数组,数据被保存在xml文件中,由transfer解析出数据。通过通道中的各个transfer对信息进行加密及解密操作,实现sender和receiver之间的通信。当用户运行该软件时,会出现登陆界面,如图2所示,如果用户是第一次运行该程序,并没有任何默认的设置,jxta会弹出jxta gui 配置实用程序让你进行一些强制的和可选的设置。当用户输入正确的用户名和密码之后,就会加入jxta网络,并启动本机的jxta服务,成为jxta网络中的一个peer。


图2系统通信过程示意图
如图2所示,a、b、p1、p2……p5都是存在于基
相关IC型号

热门点击

 

推荐技术资料

耳机的焊接
    整机电路简单,用洞洞板搭线比较方便。EM8621实际采... [详细]
版权所有:51dzw.COM
深圳服务热线:13692101218  13751165337
粤ICP备09112631号-6(miitbeian.gov.cn)
公网安备44030402000607
深圳市碧威特网络技术有限公司
付款方式


 复制成功!