一种文件共享系统的P2P网络架构设计

2020-05-16 09:15郑晓健郑子维
软件 2020年4期
关键词:消息检索节点

郑晓健,郑子维

(1. 昆明理工大学津桥学院 电气与信息工程学院,云南 昆明 650106;2. 云南云投股权投资基金管理有限公司,云南 昆明 650100)

0 引言

P2P结构[1]与传统网络结构的差别在于让共享资源和网络服务分布到各P2P节点中,并以点对点的通信方式,实现P2P节点间的相互访问,从而协同完成节点资源共享并提供各种服务。由于网络中各P2P节点都参与到文件资源共享中,使各节点闲置的处理能力、存储能力和信息资源得以充分利用。传统的网络资源共享服务一般采用C/S或B/S结构,例如FTP服务器,共享文件资源部署在中心服务器上,用户在客户端向服务器发出资源请求,服务器从资源库中查找资源并返回给客户端。然而当共享资源大量占用服务器的存储器,同时访问文件资源的用户又较多时系统的负载将增大,响应速度就会降低,形成性能瓶颈。但是P2P结构不依赖中心服务器,资源分散到各P2P节点,使得系统的负载能力得到平衡[2],系统的可扩展性、健壮性得到增强,可以有效的解决中心服务器能力不足的问题[3-4]。所以P2P技术被应用到VoIP、流媒体、协同计算、资源共享等领域。

随着企事业单位的发展,单位内部办公信息的发布、管理和维护工作在逐日增加。单位内部的文件共享管理系统有助于建立方便高效的办公环境,提高办公效率。本文讨论的P2P网络文件共享系统,由两层式多个系统资源服务节点构成P2P网络架构的分布式模式,可以有效的实现单位共享文件的管理和发布。

1 总体设计

1.1 设计原则

近年P2P架构的分布式文件共享系统正逐渐流行起来[5-7],原因在于它良好的系统特性,设计时应该采取技术手段来保持系统的扩展性、健壮性、负载平衡[4,8]等特征。

(1)扩展性,P2P结构要求在网络中可以自由地增加节点,实现网络扩展。加入节点后网络资源数量和服务能力会得到提升,节点间的通信路径会增加,通信能力也会加强,系统性能得到提升[3]。删除节点后要采取技术措施,使系统性能不会受到影响。

(2)健壮性,为避免节点失效带来的问题,通过任务和资源在节点上的再分配实现,因此节点退出对系统性能影响不大。

(3)负载均衡,网络负载变化时P2P节点可以分担任务[8]。网络节点的连接信息要保持同步刷新,合理分配任务,节点通过点对点通信模式,协同提供资源和服务,平衡网络的负载。

1.2 功能设计

下面介绍本系统包含的主要功能模块:文件共享模块和资源服务模块。文件共享模块主要完成用户注册、文件检索、文件资源发布。资源服务模块完成P2P节点状态检测、资源信息管理、用户访问控制,系统用例图如图1所示。

图1 系统用例图Fig.1 System use case diagram

1.3 P2P架构设计

本系统采用多个资源服务节点作为系统服务核心,文件共享节点分散存储共享文件资源,系统服务节点协同完成文件资源检索任务,形成分布式P2P拓扑结构,如图2所示。系统由P2P网络通信基础设施层和共享文件资源覆盖网络层构成为两层式、多个资源服务节点的P2P网络架构。

图2 系统结构图Fig.2 System structure diagram

P2P网络通信基础设施层由服务器节点和 P2P节点组成,采用TCP通信协议实现所有节点间的点对点通信,保证消息及共享文件资源在节点间可靠地传输。所有节点为了响应其他节点的服务要求,需要随时开启监听功能,等待其他节点的连接请求,连接成功后才能与节点进行数据通信。

共享文件资源覆盖网络层由文件共享节点和资源服务节点,通过用户协议组成资源覆盖网络。文件共享节点在系统服务节点注册,相互交换网络节点连接信息。通过连接信息实现系统服务节点管辖范围内外所有节点间的点对点通信,完成资源检索和获取任务。

2 系统流程设计

2.1 资源服务节点

由于系统中存在多个资源服务节点,且各自管辖一批文件共享节点,为它们提供检索信息服务,所以必须协同完成资源检索任务。各个资源服务节点主要负责管理共享文件节点的注册和退出、共享文件信息管理、共享文件节点的状态检测、资源服务节点间的任务协同、协助共享文件节点在网络中检索文件、用户访问权限管理等。

资源服务节点定时按照用户协议向网络广播自己的IP地址、端口号等,文件共享节点利用这些连接信息可建立与资源服务节点的连接。文件共享节点加入网络时,先到资源服务节点注册,资源服务节点记录该节点的IP地址、端口号、用户名等相关信息并保存到数据库的文件共享节点列表中,然后将当前在线的所有节点的连接信息发回,构成该节点的共享节点列表。通过列表信息,该节点可与所有在线节点进行点对点通信。

节点状态检测。由于网络环境等因素的影响,可能导致网络连接中断,因此资源服务节点需定时向各共享文件节点和其他资源服务节点发送状态检测消息,监测节点的在线状态,发现有节点连接中断,要及时更新连接信息。如果节点状态有变化,要向在线节点刷新连接信息。

资源服务节点接收到文件共享节点发布的共享文件消息,将在共享文件表中记录共享文件位置信息,如文件路径、文件名称、文件大小、修改时间、文件所在节点等。收到节点离线消息时,将撤销共享文件记录,实现共享文件信息管理,为将来共享文件检索服务。

资源服务节点接收到文件共享节点发出的资源检索消息,将在本地共享文件表中检索要求的文件,如果检索成功,就返回文件的位置信息和节点连接信息。如果本地检索失败,将开始远程检索,即向其他资源服务节点发送协同检索消息,收到检索消息的资源服务节点将同时在其共享文件表中进行查找,然后返回检索结果。文件共享节点收到资源服务节点回复的文件位置信息和节点连接信息后,将直接与目标节点建立连接,再下载共享文件。

2.2 文件共享节点

系统要共享的所有文件资源被分散存放到各文件共享节点,并将检索共享文件的信息发布到对应资源服务节点,便于任何节点检索。

文件共享节点加入时向系统服务节点注册,传送网络连接信息,通过这些信息文件共享节点间才能实现透明的互访。文件共享节点进行文件检索时向资源服务提交文件请求消息,资源服务协助检索并获得分布在节点中的文件资源。文件资源发布时向资源服务发送要共享文件的目录消息。

本系统的P2P信息通信架构[8]由P2P消息收发、消息解析与任务调度、P2P节点注册管理、P2P节点状态监测回馈处理、文件共享管理等模块组成。P2P节点之间的通信采用TCP协议。P2P节点监听连接请求端口,有连接请求时创建消息接收线程,建立socket通信连接并接收消息,通过应用层通信协议解析消息,任务调度发送消息给各处理模块完成相应的处理。

3 系统软件实现

系统的文件共享类图如图3所示,资源服务类图如图4所示。P2P节点间的通信由通信类完成,接收消息和解析由消息收发类完成,通过任务调度,由相关模块完成消息处理。采用了多线程技术、Socket通信技术,利用TCP协议实现了可靠的数据通信。本系统软件采用 Microsoft Visual C++6.0、Microsoft Access2010编程实现。

图3 文件共享类图Fig.3 File sharing class diagram

图4 资源服务类图Fig.4 Resource service class diagram

4 结束语

本文介绍了一种 P2P 网络结构的文件共享系统设计,系统为分布式文件管理架构,能够满足企事业单位文件信息资源共享的需求。通过P2P网络结构实现分布式应用系统,介绍了两层式、多服务节点的文件共享平台的实现过程。得益于P2P网络系统的可靠性好、扩展性和灵活性较高等特征,系统工作效率也得到提升,系统运行稳定。下一步将应用面向领域的智能搜索引擎技术[9],实现文件资源信息的智能检索,并且运用区块链技术解决网络的安全性和溯源性问题[10-11],提高系统的可用性。

猜你喜欢
消息检索节点
CM节点控制在船舶上的应用
Analysis of the characteristics of electronic equipment usage distance for common users
基于AutoCAD的门窗节点图快速构建
一张图看5G消息
2019年第4-6期便捷检索目录
专利检索中“语义”的表现
抓住人才培养的关键节点
消息
消息
消息