发明内容
本发明要解决的技术问题,在于提供一种适用于有时效保证通讯系统的点对点通讯的文件检索方法,采用了最简单的全文MD5与终端唯一标识(终端ID)进行关联的检索算法,可以存储最少的信息,同时能最快检索出文件所在的终端信息。
本发明是这样实现的:一种适用于有时效保证通讯系统的点对点通讯的文件检索方法,基于文件全文MD5值建立hash表,hash表的来源依赖于终端节点的状态汇报,每台终端登陆之后汇报所拥有的文件MD5值,每次终端完成下载之后会汇报新增文件请求,上传文件之后会向服务器进行文件管理上传请求,从而保证文件hash表的实时性和可靠性,检索的时候根据文件MD5值查找到对应的hash表项,从而确定文件所在的终端。
进一步的,本发明所述检索包括终端检索流程和调度服务器检索流程;所述终端检索流程为:终端发起文件检索请求,调度服务器接收请求后将根据文件MD5值定位对应的文件树,从中找出最优的几个终端节点返回给终 端,终端进行节点连接,下载对应文件;所述调度服务器检索流程为:1.检索文件树的建立,该文件树包含文件索引队列和文件树队列;该文件索引队列即为所述hash表,单终端汇报的文件在索引队列里面不存在的时候,添加该文件MD5值,同时创建新的文件树,将该终端列为新文件树的第一个节点;2.文件树的删除,当终端离开或者掉线时,删除该终端的所有文件关联,但是不删除文件索引;3.终端文件检索,调度服务器收到终端文件检索请求,先查询文件索引队列,看看是否有匹配的,如果有,查找对应的文件树,读取最优的几个终端节点的通讯配置,并发送给终端;如果没有,将负责初始文件分发的文件服务器的地址发送给终端。
进一步的,本发明所述检索时用到的交互协议包括:文件关联汇报协议:终端发送给调度服务器,建立终端与文件MD5值的关联关系,协议要素为终端编码和至少1个文件MD5值;文件关联删除协议:终端删除本地文件的同时,删除服务器上的文件关联关系,协议要素为终端编码和至少1个文件MD5值;文件检索协议:终端编码:单个文件MD5值,终端发起到调度服务器要求检索对应的文件。
进一步的,本发明所述调度服务器发送给终端的最优的终端节点数为5个。
本发明具有如下优点:本发明使用MD5值代表文件,能够使用最小的内存空间保存所有终端的文件信息,同时调度服务器只保留终端与文件的映射,检索效率非常高;通过文件索引的查询可以很快的定位到文件,调度服务器不保存文件的长度、文件名等具体信息,这些参数在终端之间建立连接之后进行传输,因此可以减少交互协议的传输数据,适用于有时效保证通讯系统的点对点通讯的文件检索。
具体实施方式
本发明的适用于有时效保证通讯系统的点对点通讯的文件检索方法,是基于文件全文MD5值建立hash表,hash表的来源依赖于终端节点的状态汇报,每台终端登陆之后汇报所拥有的文件MD5值,每次终端完成下载之后会汇报新增文件请求,上传文件之后会向服务器进行文件管理上传请求,从而保证文件hash表的实时性和可靠性,检索的时候根据文件MD5值查找到对应的hash表项,从而确定文件所在的终端。
如图1所示,本发明方法所对应的有时效保证通讯系统点对点通讯系统的架构可以包含调度服务器、终端、文件服务器、配置服务器以及媒体库;其中,本发明方法的检索算法运行在调度服务器上,用于管理终端和文件服务器。所述调度服务器负责终端管理、文件列表管理以及检索功能;所述文件服务器负责初始文件分发;所述终端用于下载文件,同时也给其他终端提供文件;所述配置服务器用于下载任务发布,以及下载终端的通信参数配置和状态管理;所述媒体库用于保存所有的媒体文件,是本系统中所有的文件内容来源。配置服务器发布下载任务给终端,终端接收到任务后去调度服务器查询文件所在情况,如果查询不到由文件服务器去媒体库下载,否则去返回的终端去下载,如果终端与终端之间有防火墙无法穿过,可以通过调度服务器进行辅助穿透。
本发明可以在上述架构的基础上进行检索,所述检索包括终端检索流程和调度服务器检索流程;
所述终端检索流程为:终端发起文件检索请求,调度服务器接收请求后将根据文件MD5值定位对应的文件树,从中找出最优的几个(5个较佳的)终端节点返回给终端,终端进行节点连接,下载对应文件;
所述调度服务器检索流程为:
1.检索文件树的建立,该文件树包含文件索引队列和文件树队列;该文件索引队列即为所述hash表,单终端汇报的文件在索引队列里面不存在的时候,添加该文件MD5值,同时创建新的文件树,将该终端列为新文件树的第一个节点;
2.文件树的删除,当终端离开或者掉线时,删除该终端的所有文件关联,但是不删除文件索引;
3.终端文件检索,调度服务器收到终端文件检索请求,先查询文件索引队列,看看是否有匹配的,如果有,查找对应的文件树,读取最优的几个(5个较佳的)终端节点的通讯配置,并发送给终端;如果没有,将负责初始文件分发的文件服务器的地址发送给终端。
本发明所述检索时用到的交互协议包括:
文件关联汇报协议:终端发送给调度服务器,建立终端与文件MD5值的关联关系,协议要素为终端编码和至少1个文件MD5值;
文件关联删除协议:终端删除本地文件的同时,删除服务器上的文件关联关系,协议要素为终端编码和至少1个文件MD5值;
文件检索协议:终端编码:单个文件MD5值,终端发起到调度服务器要求检索对应的文件。
本发明使用MD5值代表文件,能够使用最小的内存空间保存所有终端的文件信息,以一台终端拥有1000个文件为例,一次完成汇报,只需要32000个字节,按一个UDP报文传输8K来计算,只需要4个报文就能完成传输,同时调度服务器只保留终端与文件的映射,即UID(8)-〉GUID(32)个,检索效率非常高;通过文件索引的查询,可以很快的定位到文件,调度服务器不保存文件的长度,文件名等具体信息,这些参数在终端之间建立连接之后进行传输,因此可以减少交互协议的传输数据。
虽然以上描述了本发明的具体实施方式,但是熟悉本技术领域的技术人员应当理解,我们所描述的具体的实施例只是说明性的,而不是用于对本发明的范围的限定,熟悉本领域的技术人员在依照本发明的精神所作的等效的修饰以及变化,都应当涵盖在本发明的权利要求所保护的范围内。