基于JXTA平台的P2P网络传输方案
扫描二维码
随时随地手机看文章
1 引言
P2P即时通讯、文件传输和文件共享软件在一些专用的通信网络中,如电子政务网络、公安网及铁路网中应用非常少。主要原因一是这些都是专用网络,与互联网物理隔绝,因此无法使用P2P在公共网络上可以得到的服务;二是这些专用网络的部门分散于全国各地,通过VPN进行互联,这样就会导致网络带宽比较小,而P2P软件的使用会占用非常大的带宽,这样会影响整个网络的使用。本文从铁路公安网络的特点出发,研究了基于JXTA平台的P2P网络传输方案,本文的研究成果对其它专用网络P2P应用程序的设计具有重要的参考价值。
2 JXTA概述
2001年4月SUN公司推出了JXTA,它是SUN推出的一组标准化的P2P协议,提供了开发基于P2P应用程序的基本组件。JXTA的特点是与操作系统无关、语言无关、可在任何设备运行,这样满足了在不同平台上进行开发,而且开发出来的系统通用性很好。
JXTA应用的基本流程是:组建P2P网络启动JXTA平台实现JXTA协议实现JXTA应用系统。
3 基于JXTA平台的P2P网络方案
基于JXTA的P2P网络是使用JXTA协议建立起的P2P网络,由JXTA协议、网络管理、应用系统三部分组成。
3.1 JXTA平台
JXTA实现了在物理设备上进行网络互联的功能,并为应用系统提供了简化的通信接口。
3.2 网络管理
网络管理采用缓存和多线程等机制,将使用JXTA协议建立的P2P网络从互联网中独立出来,并进行P2P网络的管理,通过了网络管理后,才真正形成一个具有使用P2P软件的系统。
3.3 应用系统
在P2P网络上开发具有应用工程的程序。这里有实时通信,文件传输,协同办公等,针对不同要求可以开发不同的系统[4]。上面三个层次的结合构成基于JXTA的P2P网络。P2P信息传输系统以JXTA为平台,应用它提供的一些服务接口完成系统的应用。图1为基于JXTA的P2P信息传输系统应用模型,通过底层JXTA提供的服务和应用程序,为P2P系统中的网络管理和信息管理提供服务接口。
而系统功能模块按照功能进行分类,功能实现类则对功能模块的不同功能进行实现。
图1基于JXTA的P2P信息传输系统应用模型
4 铁路公安P2P网络方案
西安某铁路公安机关具有线长、点多的特点,它是按照铁路站点与站点之间的关系进行分布的,每个站点是局域网,它们之间进行连接组成广域网,其计算机网络结构如图2所示。
图2铁路公安机关计算机网
通过图2发现,按照这个网络结构可以使用JXTA协议的应用,建设虚拟的P2P网络。首先使用已建立了局、处、基层的三级计算机网络,建立P2P网络;然后运用JXTA协议,使用JXTA的接口来进行二次开发,实现信息传输,数据共享、协同工作等应用;最后再从系统性能和安全性角度出发,使用信息安全技术对P2P网络进行管理,提高系统的安全性。
在铁路公安机关均建立了广域网,有若干个服务器负责网络服务。为了保证不同局域网中的用户互相通信,可将服务器作为SUPERPEER实现JXTA集合、网关、路由、代理的功能,保证P2P网络的畅通。其P2P网络结构如图3所示。
图3铁路公安机关P2P网络
铁路公安机关的JXTA-P2P信息传输系统由四个子系统组成,即时通讯系统、文件加密传输系统、文件共享系统和协同工作系统(见图4)。
图4信息传输系统界面
4.1 通讯系统实现
通讯功能是对在P2P网络中不同的办公点进行信息的及时通信,这里有两个部分:分为发送(sender)和接收(receiver)。本系统采用两种即时通信方式:一种是组内群发,一种是两个用户之间的单独通信。两种即时通信分别通过GroupConnectionHandler类和PeerConnectionHandler类实现。在JXTAP2P平台中,两个对等体之间是通过管道互相通信的。本系统使用单播安全型管道实现用户间的安全通信,并在建立管道时采取多次握手方式。通过CertUti,lChatProeess,Requestor三个类来实现用户的即时通信。用户双方确认对方的证书后,管道才能成功建立。CertUtil负责请求、验证证书。
ChatProcess处理整个通信连接、通信的全过程。
Requestor负责发送请求。发送方和接收方按照图5的方式进行。首先通过网络广告的形式来提供达到双方的服务确定,并形成P2P服务通道,在这个通道上使用socket进行传输,传递的信息是用xml形式封装的字节数组,数据被保存在xml文件中。
sender对数据进行加密并发送,receiver接收数据,并将数据解密还原。
图5JXTA-P2P即时通信实现流程
4.2 文件传输功能实现
文件传输功能与共享功能不同,文件发送者只希望把文件发给特定的Peer,而不希望其他Peer得到或窃取这个文件。首先进行文件传输属性的确认,然后在接收文件后进行加密文件的传输,接收端在收到文件后则需要进行解密,文件收发采用"AES"方法加解密。
4.3 文件共享功能实现
文件共享功能把两个Peer分别看作服务端和客户端,服务端在启动时,将共享目录下所有文件的文件名、MD5和文件保存位置输入管道,以广告形式发布到JXTA网络中,同时以线程的形式启动服务端,监听客户端的请求。当客户端进行共享功能请求的时候则JXTA进行下载传输。
本系统采用CMS作为文件共享系统的平台,通过CMS中提供的API实现文件共享的功能。共享文件查找的具体过程如下:
(1)派生ListContentRequest类,传入查询条件。
(2)调用activateRequest方法启动查找方法。
(3)调用notifyMoreResults事件处理查找到文件,通过ListContentRequest获取通告,包括用户共享资源信息和用户管道等信息。
JXTA的CMS文件共享平台,是以管道协议传输的,获取资源通告,就为文件的上传和下载提供了基本条件。查到共享资源后,调用notifyMoreResults事件处理方法,自动将查找到的资源通告缓存在本地,供用户使用。
4.4 协同工作系统
协同工作是通过P2P网络中的组播功能进行实现,它对处于同一组播组的计算机进行服务,这样就解决了传统办公的点与点之间效率低的问题。
5 结语
本文所设计的针对铁路公安网的基于JXTA的P2P网络信息传输系统,实现了即时通信系统、文件传输、文件共享等功能。这些功能是分布式办公系统中最重要的功能。