铁路公安机关的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网络信息传输系统,实现了即时通信系统、文件传输、文件共享等功能。这些功能是分布式办公系统中最重要的功能。