本发明涉及分布式计算、遥感数据、数据分发信息技术领域,具体涉及一种基于授权的可控P2P大规模遥感数据分发方法。
背景技术:
遥感影像技术日益成熟,高分辨率系列遥感卫星不断升空,遥感数据量在急剧增长。遥感数据在妥善保存之余,需要向各类用户进行分发和共享,以更好的使用遥感数据。面对海量的遥感数据,建立一套大规模遥感数据分发系统,为用户提供遥感数据的共享和分发是很有必要的。
单个遥感数据文件大小通常在数百兆甚至更大,在数据分发的过程中,占用网络资源比较严重,构成对数据分发服务器巨大的流量压力。采用P2P(Peer-to-Peer)技术,利用客户端相互之间的数据共享,能有效解决上述问题。P2P又被称为“点对点”技术,网络中的客户端既提供数据,也下载数据,在下行占用的同时也占用上行带宽,充分利用客户的上行带宽为其他用户提供资源,实现网络的加速和扩展。从而把数据分发的任务从依赖聚集在较少的几台数据分发服务器扩展到整个P2P网络中的所有客户端。
传统P2P技术采用完全分布式对等的工作模式,难以实现服务端的控制,而遥感数据通常由某个专门机构负责分发,需要在P2P机制上扩展增强服务端的控制能力,才可以满足专门机构的授权管理要求,为此我们提出一种基于授权的可控P2P大规模遥感数据分发方法。
技术实现要素:
本发明的目的在于提供一种基于授权的可控P2P大规模遥感数据分发方法,以解决上述背景技术中提出的问题。
为实现上述目的,本发明提供如下技术方案:一种基于授权的可控P2P大规模遥感数据分发方法,包括遥感数据拥有者发布遥感数据、遥感数据使用者下载遥感数据、遥感数据管理平台的监控管理三个流程,所述遥感数据资源拥有者发布数据阶段有两种实现模式:模式1:遥感数据拥有者通过登录遥感数据管理平台,上传共享的遥感数据到遥感数据管理平台,实现遥感数据的分发共享;模式2:由于单个遥感数据遥感影像文件大小通常在数百兆甚至更大,针对在网络带宽有限且需要共享数GB或更大的遥感数据,遥感数据资源者将遥感数据上传至遥感数据管理平台的不方便,遥感数据资源者可物理拷贝需要共享的遥感数据文件到遥感数据管理平台实现遥感数据的分发共享。
所述遥感数据使用者下载遥感数据包括以下阶段,遥感数据使用者登陆遥感数据管理平台,在遥感数据发布页面查找并下载遥感数据相应的特殊信息描述文件,通过P2P客户端下载遥感数据。
所述遥感数据管理平台的监控管理的实现系统包括遥感数据信息管理服务器、云存储、种子资源服务器和跟踪服务器。
优选的,所述模式1的实现流程如下:
(1)遥感数据拥有者登录遥感数据管理平台,上传共享的遥感数据;
(2)遥感数据管理平台中的遥感数据信息管理服务器检查遥感数据拥有者的身份,权限通过后则接收来自遥感数据拥有者上传的遥感数据文件,存储在云端,同时通知种子资源服务器根据遥感数据文件生成对应数据的信息描述文件;
(3)遥感数据管理平台的种子资源服务器发布信息描述文件至遥感数据管理平台中的跟踪服务器;
(4)遥感数据管理平台中的跟踪服务器接收来自种子资源服务器的信息描述文件,并根据信息描述文件中的用户名及时间等信息做Hash变化生成PassKey创建特殊的信息描述文件;
(5)遥感数据管理平台中的跟踪服务器将特殊的信息描述文件下发给种子资源服务器,并在跟踪服务器提供通过网页下载遥感数据信息描述文件;
(6)种子资源服务器接收跟踪服务器发送的特殊信息描述文件,并指定此特殊信息描述文件所对应的遥感数据的存放路径,作为一个永久Seed为遥感数据需求者提供遥感数据资源。
优选的,所述模式2的实现流程如下:
(1)遥感数据拥有者直接通过遥感数据管理平台中的遥感数据信息管理服务器将需要共享的遥感数据存储在云端;
(2)打开遥感数据管理平台中的种子资源服务器,指定云存储中要共享的遥感数据,P2P客户端自动根据遥感数据文件生成对应数据的信息描述文件;
(3)遥感数据管理平台的种子资源服务器发布信息描述文件至遥感数据管理平台中的跟踪服务器;
(4)遥感数据管理平台中的跟踪服务器接收来自种子资源服务器的信息描述文件,并根据信息描述文件中的用户名及时间等信息做Hash变化生成PassKey创建特殊的信息描述文件;
(5)遥感数据管理平台中的跟踪服务器将特殊的信息描述文件下发给种子资源服务器,并在跟踪服务器上提供通过网页下载遥感数据信息描述文件;
(6)种子资源服务器接收跟踪服务器发送的特殊信息描述文件,并指定此特殊信息描述文件所对应的遥感数据的存放路径,作为一个永久Seed为遥感数据使用者提供遥感数据资源。
优选的,所述遥感数据使用者下载遥感数据操作流程如下:
(1)遥感数据使用者登录遥感数据管理平台,遥感数据管理平台验证用户身份,提供授权的遥感数据信息描述文件的下载,遥感数据使用者下载特殊信息描述文件,P2P客户端自动启动,并向跟踪服务器发送请求遥感数据种子Peer列表消息;
(2)跟踪服务器与遥感数据信息管理服务器再次通信,检查遥感数据使用者是否有权限下载此遥感数据,如果有下载此遥感数据权限,跟踪服务器随机返回此遥感数据的邻居节点和种子列表,如果没有下载此遥感数据权限,跟踪服务器则直接返回null;
(3)遥感数据使用者从跟踪服务器获取此遥感数据的邻居节点和种子列表,与种子列表中的Peer通信,请求资源,实现遥感数据的下载,如果接收到的是null,说明没有下载此遥感数据的权利,则下载不到数据。
优选的,所述遥感数据信息管理服务器主要负责管理遥感数据用户的信息和权限并处理遥感数据拥有者共享数据的请求,在云端存储遥感数据,遥感数据用户通过遥感数据管理平台在遥感数据信息管理服务器填写真实信息,注册新用户,遥感数据系统管理人员审核注册用户信息的真实性,授予遥感数据共享或遥感数据下载或遥感数据共享和下载的权限,授予共享权限的遥感数据用户通过遥感数据管理平台上传分享实时的遥感数据文件,并在信息管理服务器保存记录,授予下载权限的遥感数据用户通过遥感数据管理平台下载特殊的信息描述文件,利用P2P客户端请求数据资源时,信息管理服务器验证用户的下载权限,通知跟踪服务器是否分发遥感数据种子Peer列表。
优选的,所述种子资源服务器主要根据云端的遥感数据生成信息描述文件,将信息描述文件发送到Tracker服务器,Tracker服务器根据信息描述文件中的用户名及时间等信息做Hash变化生成PassKey创建特殊的信息描述文件,下发此特殊信息描述文件到种子资源服务器,种子资源服务器接收特殊信息描述文件,作为一个永久的Seed提供遥感数据的下载,实现遥感数据的分享。
优选的,所述跟踪服务器主要跟踪系统中所有的参与结点并收集和统计这些结点的状态,以便结点间互相发现去交换文件块,并且提供遥感数据资源信息的查询和遥感数据信息描述文件的下载,遥感数据需求者通过P2P客户端打开遥感数据描述文件,连接Tracker服务器,Tracker服务器通过遥感数据信息管理服务器检查客户端信息,验证用户是否有权限下载此遥感数据,如果有权限下载遥感数据,则随机返回遥感数据的邻居节点和种子列表,如果没有权限,直接返回null,如果有权限下载遥感数据,客户端从Tracker服务器获取到种子列表,与种子列表中的Peer通信,请求遥感数据资源,并不定期向Tracker服务器通信,汇报遥感数据资源下载情况,针对遥感数据的安全性,为了增强遥感数据管理平台对遥感数据使用者方面P2P客户端的控制能力,在响应P2P客户端的汇报资源下载情况,Tracker服务器捎带回复特定信息给P2P客户端,控制P2P客户端向种子列表请求资源,实现特定P2P用户获取不到遥感数据,保护遥感数据信息的安全性。
与现有技术相比,本发明的有益效果是:1、针对传统的遥感数据分发依赖少数资源服务器和网络带宽不足,本发明采用了基于P2P的数据传输方法,不存在多用户下载造成资源服务器的性能瓶颈;2、遥感数据管理平台为资源管理者提供直接发布遥感数据文件,或者自主生成发布种子文件等多种遥感数据共享分发的方式,方便了用户的使用;3、遥感数据管理平台采用了最少文件块优先原则和阻塞算法,整个遥感资源趋向于一种优化的状态,遥感文件块会在系统中均匀分布,避免拥有稀有文件块的结点离开系统后造成的系统消亡,有效地延长了系统的生命周期;4、遥感数据信息管理服务器管理遥感数据用户的信息和权限,通过遥感数据管理平台对P2P用户端的身份审核和权限验证,避免了遥感数据流入不合适的P2P用户端,保证了遥感数据的安全性;5、基于跟踪器通过直接广播和捎带消息可以控制P2P用户端的下载行为,增强了遥感数据管理者对数据分发的掌控能力,支持在分发过程中,取消P2P客户端授权,强制中断下载,提高了遥感数据分发过程中可控安全性。
附图说明
图1为基于授权可控的P2P大规模遥感数据管理系统的示意图;
图2为大规模遥感数据管理平台共享数据的示意图;
图3为大规模遥感数据管理平台下载数据的示意图;
图4为大规模遥感数据管理系统中Peer关系示意图;
图5为最稀少片选算法流程示意图;
图6为遥感数据管理平台控制P2P用户下载数据模式1示意图;
图7为遥感数据管理平台控制P2P用户下载数据模式2示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参阅图1-7,本发明提供一种技术方案:一种基于授权的可控P2P大规模遥感数据分发方法,包括遥感数据拥有者发布遥感数据、遥感数据使用者下载遥感数据、遥感数据管理平台的监控管理三个部分,所述遥感数据资源拥有者发布数据阶段有两种实现模式:模式1:遥感数据拥有者通过登录遥感数据管理平台,上传共享的遥感数据到遥感数据管理平台,实现遥感数据的分发共享;模式2:由于单个遥感数据遥感影像文件大小通常在数百兆甚至更大,针对在网络带宽有限且需要共享数GB或更大的遥感数据,遥感数据资源者将遥感数据上传至遥感数据管理平台的不方便,遥感数据资源者可物理拷贝需要共享的遥感数据文件到遥感数据管理平台实现遥感数据的分发共享;
所述遥感数据使用者下载遥感数据包括以下阶段,遥感数据使用者登陆遥感数据管理平台,在遥感数据发布页面查找并下载遥感数据相应的特殊信息描述文件,通过P2P客户端下载遥感数据;
所述遥感数据管理平台的监控管理的实现系统包括遥感数据信息管理服务器、云存储、种子资源服务器和跟踪服务器。
图1为本发明基于授权的P2P的大规模遥感数据管理系统的示意图,该系统包括三个部分:遥感数据拥有者、遥感数据管理平台、遥感数据使用者。其中:
遥感数据拥有者:是遥感数据的提供者,共享遥感数据到遥感数据管理平台。遥感数据管理中信息管理服务器验证用户信息和权限,处理用户的共享请求。
遥感数据管理平台:是本发明基于授权的P2P的大规模遥感数据管理系统的核心部分,包括遥感数据信息管理服务器、云存储、种子资源服务器和跟踪服务器,主要验证用户的合法性和权限,负责接收遥感数据拥有者共享的遥感数据,自动生成遥感数据的信息描述元文件,发布到跟踪服务器为遥感数据使用者提供遥感数据的查询和信息描述元文件的下载,并将种子资源服务器作为永久的Seed提供数据资源。
遥感数据使用者:可登录遥感数据管理平台,查询遥感数据信息并下载相应的信息描述元文件,通过客户端下载遥感数据。
下面,将对本系统中核心部分:遥感数据管理平台,结合图示进行分析:遥感数据管理平台是由遥感数据信息管理服务器、云存储、种子资源服务器和跟踪服务器构成。其中:
遥感数据信息管理服务器负责管理遥感数据用户的信息和权限并处理遥感数据拥有者共享数据的请求,在云端存储遥感数据。种子资源服务器根据云端的遥感数据生成信息描述文件,将信息描述文件发送到跟踪服务器,跟踪服务器根据信息描述文件中的用户名及时间等信息做Hash变化生成PassKey创建特殊的信息描述文件,下发此特殊信息描述文件到种子资源服务器。种子资源服务器接收特殊信息描述文件,作为一个永久的Seed提供遥感数据的下载,实现遥感数据的分享。跟踪服务器主要跟踪系统中所有的参与结点并收集和统计这些结点的状态,以便结点间互相发现去交换文件块,并且提供遥感数据资源信息的查询和遥感数据信息描述文件的下载。遥感数据需求者通过P2P客户端打开遥感数据描述文件,连接跟踪服务器。跟踪服务器通过遥感数据信息管理服务器检查客户端信息,验证用户是否有权限下载此遥感数据,如果有权限下载遥感数据,则随机返回遥感数据的邻居节点和种子列表;如果没有权限,直接返回null。如果有权限下载遥感数据,客户端从Tracker服务器获取到种子列表,与种子列表中的Peer通信,请求遥感数据资源,并不定期向Tracker服务器通信,汇报遥感数据资源下载情况。针对遥感数据的安全性,为了增强遥感数据管理平台对遥感数据使用者方面P2P客户端的控制能力,在响应P2P客户端的汇报资源下载情况,Tracker服务器捎带回复特定信息给P2P客户端,控制P2P客户端向种子列表请求资源,实现特定P2P用户获取不到遥感数据,保护遥感数据信息的安全性。
如图2所示,是基于授权的P2P大规模遥感数据管理平台的数据共享示意图。具体来讲,遥感数据资源端共享数据包括以下步骤:
(1)遥感数据拥有者登录遥感数据管理平台,上传共享的遥感数据;
(2)遥感数据管理平台中的遥感数据信息管理服务器接收来自遥感数据拥有者上传的遥感数据文件,存储在云端,同时通知种子资源服务器根据遥感数据文件生成对应数据的信息描述文件;
(3)遥感数据管理平台的种子资源服务器发布信息描述文件至遥感数据管理平台中的跟踪服务器;
(4)遥感数据管理平台中的跟踪服务器接收来自种子资源服务器的信息描述文件,并根据信息描述文件中的用户名及时间等信息做Hash变化生成PassKey创建特殊的信息描述文件;
(5)遥感数据管理平台中的跟踪服务器将特殊的信息描述文件下发给种子资源服务器,并在跟踪服务器提供通过网页下载遥感数据信息描述文件;
(6)种子资源服务器接收跟踪服务器发送的特殊信息描述文件,并指定此特殊信息描述文件所对应的遥感数据的存放路径。作为一个永久Seed为遥感数据需求者提供遥感数据资源。
如图3所示,是基于授权的P2P大规模遥感数据管理平台的数据下载示意图。具体来讲,遥感数据资源端共享数据包括以下步骤:
(1)遥感数据使用者下载特殊信息描述文件,P2P客户端自动启动,并向跟踪服务器发送请求遥感数据种子Peer列表消息。
(2)跟踪服务器与遥感数据信息管理服务器通信,检查遥感数据使用者是否有权限下载此遥感数据,如果有下载此遥感数据权限,跟踪服务器随机返回此遥感数据的邻居节点和种子列表;如果没有下载此遥感数据权限,跟踪服务器则直接返回null。
(3)遥感数据使用者从跟踪服务器获取此遥感数据的邻居节点和种子列表,与种子列表中的Peer通信,请求资源,实现遥感数据的下载。如果接收到的是null,说明没有下载此遥感数据的权利,则下载不到数据。
为了更直观说明基于授权的P2P大规模遥感数据分发系统能有效解决遥感数据在分发共享时服务器的压力大,数据分发不及时等缺点,下面详细说明基于授权的P2P大规模遥感数据分发系统共享数据的流程。假设这条遥感数据共被分成100个数据片段,编号为D1、D2,……,D100,有一个用户想下载此遥感数据,用户的编号分别为U1、U2,……,U100,100个用户的信息以及种子客户端(编号为Us)提供的种子信息(包括IP地址、端口号、客户端ID、已经下载完成的数据片段)都在Tracker服务器上,那么这101个数据节点就组成了P2P系统中101个Peer节点,其关系示意图如图4所示,任意两个节点之间都可以直接进行数据交换。具体过程如下:
当节点U1连接到Tracker服务器后,发现只有节点Us有数据,就随机从节点Us处下载一个数据片D1,当节点U1下载数据片段D1完成后,就把完成的信息传递给Tracker服务器。
当节点U2连接到Tracker服务器后,想下载数据片D1,发现只有节点U1,Us拥有数据片D1,就选择距离自己路由最近的节点进行下载,当节点U2下载数据片D1完成后,也把完成的信息传递给Tracker服务器。
当节点U3连接到Tracker服务器后,想下载数据片D1,发现只有节点U1,U2,Us拥有数据片D1,就选择距离自己路由最近的节点进行下载,当节点U3下载数据片D1完成后,也把完成的信息传递给Tracker服务器。
数据按照上面的基本规律进行数据交换,实现多个用户下载遥感数据。
从上面的流程可以看出,要下载数据不一定从服务器下载,可以通过任何其他的节点进行下载,这种数据的交换方式,可以选择最短路由,大大缩短数据包的周转次数,从而提高了传输速度,也减少了数据服务器的压力。
如图5所示,是本遥感数据管理平台所采用的最稀少片选算法流程示意图。在用户下载遥感数据时,强制使用最少文件块优先下载原则。最少文件块优先是指对一个下载结点来说,在选择下一个被下载的文件块时,都优先选择其邻居结点集合中最少的那个文件块去下载,而那些在系统中相对较多的文件块,放在后面下载。在这个“最少文件块优先策略”下,整个系统会趋向于一种优化的状态,文件块会在系统中均匀分布,提高整个系统的性能。并避免了拥有稀有文件块的结点离开系统后造成的系统消亡,有效地延长了系统的生命周期。本发明的最少文件块优先算法的流程如下:
每个结点通过遍历所有成功连接的节点的文件片的可用性来获得每个文件片的可用度。每个节点拥有该片时,该文件片可用度的数值加一。遍历完所有成功连接的节点所拥有的片之后,得到一个记录了所有成功连接节点包括自己所拥有的文件片的节点个数这个数组称为可用度数组,这个数组的最小值则为这个网络中拥有该片节点个数,也代表该片是这个网络中节点最少拥有的。通过这个值再按照某个比例计算出阈值,即阈值=[(100+rangePercent)*片数最小值]/100。把这个可用度数组的每个值与阈值进行比较如果数值小于阈值则该片被标记为稀有文件片,用一个文件片可用性布尔数组来记录。而如果最小可用度在10到999之间直接将最小可用度设置为999,则会将所有片的稀有度设置为稀有,表示此时的BT网络中的节点和种子数足够,可任意选择文件片下载。
如图6和图7所示,是增强遥感数据管理平台对P2P客户端下载数据管理的两种具体实现的方案。遥感数据管理平台对P2P客户端的控制,可借助跟踪服务器,通过直接广播通知控制和捎带消息控制两种方案来实现。
图6是捎带消息控制方案,通过客户端在下载文件时会不定期地与Tracker通信,然后,Tracker服务器捎带拟阻塞节点信息列表ChokePeerList(PeerID, ResourceName, ResourceHash)给相应的P2P客户端,P2P客户端根据ChokePeerList来阻塞相应的连接,实现控制被阻塞P2P客户端获取遥感数据。
图7是直接广播通知方案,首先每个P2P客户端预留一个请求服务,Tracker服务器在P2P用户端未完成遥感数据下载前,可以直接推送特定P2P客户端相关信息给所有的Peer,Peer列表中的Peer收到Tracker通知消息,都按照通知消息执行,实现控制P2P客户端获取遥感数据的功能,从而保证遥感数据的安全性。
尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同物限定。