发明内容
本发明提供一种适用于移动通讯设备的数据文件传输方法。需要说明的是本发明涉及的在移动通讯设备间传输数据文件是建立于GPRS以及更高的第三代移动通信技术基础之上,其所用手机是指带有操作系统的手机。
本发明是将手机系统以P2P方式传输数据文件。即首先在提供信息上传的用户将一个文件分成了多个部分,或者称为块,由不同的下载用户同时下载这个文件了不同块,其中下载的一个用户在下载了这个文件的某一块后,会将这文件块作为资源提供下载服务,供其他用户下载,这一方法与计算机系统的BT下载类似。所以,使用本发明的方法,下载的人越多,相当于服务器越多;下载的人越多,同时提供上传的人也越多,速度就越快。
本发明所述的手机系统的数据文件传输方法中将手机系统中已有的服务器通过软件方式确定为检索服务器IS、状态服务器ES、缓冲服务器CS及门户网关GW。这里所述的服务器可以是各自分离的服务器,也可以是在一台服务器上用软件构成逻辑服务器。
上述的服务器中:
检索服务器IS提供如下功能:1)接收来自用户手机的查询、资源Meta信息的维护请求、提供查询服务、依据终端型号、运营商的查询和提供检索服务的查询服务;2)对缓冲服务器CS中产生的热点信息的生成和热点信息的更新;3)进行资源服务策略管理,包括来自MP的资源种子文件的添加、更新和删除,与状态服务器ES的种子文件进行同步和同步种子数目和下载者数目的资源种子文件维护;4)提供安全访问控制管理和系统备份与恢复的检索服务器IS自身的管理功能;
状态服务器ES提供如下功能:1)接收MP发来的状态信息,接收MP发来的资源片段信息,维护每个MP的状态信息列表,维护每个资源的节点下载片段(pieces)列表,和同步IS的种子数/用户数信息的跟踪用户手机MP的状态,调度各手机MP的下载过程功能:2)通知用户手机MP的下载目的节点和MP下载过程的片段选择策略的下载过程控制,并控制在用户手机MP下载过程中的状态同步:
缓冲服务器CS提供如下功能:1)提供部分热点共享资源的原始种子;2)实现用户访问排名、新旧程度、访问用户量的缓冲算法;3)维护缓冲资源的缓冲作用
门户网关GW提供如下功能:1)提供运营商到本系统网络通信协议的转换,本系统通信协议到运营商通信协议的转换,运营商信息收集,本系统的检索请求协议向互联网检索协议的转换,互联网检索结果协议向本系统的转换的协议转换功能;2)网络流量监控和转换后的协议进行转发的通信策略管理。
此外,在手机终端客户端MP至少可显示资源查询界面的用户界面。
同时在手机网络下建立P2P共享的协议栈,建立:1)手机终端用户与各服务器的连接;各服务器系统之间的连接;门户网关与Internet的连接,并建立适合手机网络的块尺寸的资源分片策略,由此形成适合于手机系统的数据文件P2P下载模式。
本发明的手机系统的数据文件传输方法,其工作流程分为如下五个部分:
1)种子维护流程
做种时首先由移动设备(MP)向IS发送请求做种的连接信息,IS收到连接信息后向MP发送做种连接确认信息,MP将种子信息以字符串的形式发送给IS,IS接收到种子信息检查无误后向ES发送新做种信息,同时向MP发送做种完成信息,热点信息维护流程定期由ES服务器向IS发送每个资源的种子节点数量,IS根据热点生成算法产生热点信息(前20%)发送给CS。
2)检索流程
检索时由MP向CS发送请求检索连接信息,CS接收到信息后向MP发送允许建立连接消息,MP向CS发送检索关键字,如果CS命中,则由CS向MP发送检索结果;如果CS未命中,则由CS将检索关键字及请求节点信息转发给IS,IS将检索结果直接发送给MP。
3)MP报告状态流程
每一个上传者或下载者都要定期向ES服务器报告在线信息;某个MP在断线后重新连接时要向ES报告重新连接消息;在下载过程中MP每下载完资源的一个片断也要向ES服务器发送请求信息:报告已有资源信息,ES则通过资源选择算法选择最优的片段、节点地址,并将结果返回给MP。
4)移动用户之间的下载流程
下载过程是紧随检索过程之后的,检索完毕后,MP将获得相匹配的检索结果,MP若想下载,则从检索结果中选择确定的资源进行下载并将所选择的资源信息发送给ES,ES将返回此资源的片段号和目标节点地址给MP,MP根据这些信息到目标地址下载相关资源,在下载过程中下载者和上传者都要定期向ES报告自己的在线状态;
5)服务器之间的同步流程
服务器组在运行过程中定期同步信息,包括新种子信息,热点信息,CS中的种子被查询、下载的次数信息,在删除种子时同步种子状态信息。
在本发明的手机系统的数据文件传输方法中,手机终端客户端MP还有基于移动群组的P2P文件共享带宽限制及手机存储空间、操作系统、手机操作系统接口以展示下载的资源等状态的显示;门户网关GW还具有:可进行流量信息收集、下载时长信息收集和带宽信息收集的计费基础数据管理,按次计费策略或流量计费策略或包月计费策略或时长计费策略或增量计费策略或计费优惠策略的计费策略维护;以及可与运营商计费服务器相连的接口。
本发明的工作流程程序可采用模块化设计,各模块为添加种子模块、其中:
(一)添加种子模块的算法逻辑为
(1)检索服务器IS端Socket接收客户端MP通过网关GW发来的包括:文件名.文件类型,文件大小,运营商标识的做种信息请求;
(2)IS给刚上传的种子做种信息赋予一个全局唯一包括年月日时分秒+随即数的标识符,并新建一条记录,把相应的做种信息插入到这条记录中;
(3)IS向状态服务器ES发送新种子信息;
(4)IS在刚做的种子信息记录中记录ES的地址信息;
(5)IS将全局标识码通过GW回写给MP;
(二)删除过期种子模块的算法逻辑是:
IS服务器定期扫描资源列表中ID的前8位、种子数、用户数、下载者数这些字段,记录这些种子的ID,这些种子满足:超过5天且种子数+用户数+下载者数<N的种子,完成以下操作:
向ES服务器发送Socket,要求ES服务器删除这些ID的种子相关信息,等待ES删除的确认信息;
IS收到ES的已删除信息;
IS将自身资源列表中这些ID的相关记录作删除处理;
(三)响应搜索请求模块的算法逻辑是:
用户在选择“快”的情况时
(1)缓冲服务器CS接收来自GW转发的用户搜索请求Socket,在资源库中检索相应的关键字及文件类型,根据CS中的文件名、文件类型属性,选择相应的资源;
(2)CS从选出的资源中选择种子数/用户数排前10位的种子信息(包括:文件名,资源ID,种子数/用户数,文件大小)封装成一个消息,并向MP发送此信息的Socket。
用户选择“全”的情况时
(1)CS接收来自GW转发的用户搜索请求Socket,在资源库中检索相应的关键字及文件类型,根据CS中的文件名、文件类型属性,选择相应的资源;
(2)CS从选出的资源中选择种子数/用户数排前10位的种子信息(包括:文件名,资源ID,种子数/用户数,文件大小)封装成一个消息,并向MP发送此信息的Socket;
用户选择“快”是在热点资源文件中选取,而选择“全”是指所有资源文件中选取。其中“热点”资源是指用户下载的次数和用户数较多的文件。热点生成算法就是从所有的资源中选取用户数和下载次数较多的资源。
(四)热点信息维护模块的算法逻辑是:
热点生成算法就是从所有的资源中选取用户数和下载次数较多的资源。
IS每天固定时间执行,根据热点生成算法,从种子文件数据库中选取前20%的种子信息,插入到热点信息视图中;
调用数据通信模块,将信息传送到CS;
CS作全表替换;
(五)IS、CS更新种子数/用户数模块的算法逻辑是:
IS服务器的ServerSocket接收到ES的同步种子数/用户数消息;
IS从ES接收到新的种子数/用户数列表数据;
IS将逐条更新每个资源的种子数用户数字段;
IS向CS发送新的种子数用户数数据;
CS作种子数/用户数更新;
CS向IS发送更新完成消息;
IS向ES发送更新完成消息;
(六)发送资源信息模块算法逻辑是:
用户选择“快”的情况
(1)IS的Socket接收用户MP通过GW转发来的确定下载某个资源的ID信息,IS搜索相应的种子库,查找出此种子的ES地址;
(2)IS发送server(即服务器)端Socket,将ES地址/资源ID信息通过GW转发给MP;
用户选择“全”的情况:
(1)CS的Socket接收用户MP通过GW转发来的确定下载某个资源的ID信息,CS搜索相应的种子库,查找出此种子的ES地址;
(2)CS发送server端Socket,将ES地址/资源ID信息通过GW转发给MP。
(3)CS向IS发送一条Socket,告知用户选择的相应资源ID信息,触发IS相应的接收Socket,接收信息并在IS的种子信息表中对相应的资源用户下载量中作+1,以备维护热点信息;
这里选择的“快”与“全”与前述意思相同。
(七)用户在线信息监听模块的算法逻辑是:
(1)ES服务器ServersSocket已通过节点peer初始连接模块建立与每一个节点peer的socket连接。这些socket接收节点peers列表中的每一个节点peer的在线消息;
(2)若接收到,更新时间器。如果超过一定的时间没有接收到,则删除ID_peers和ID_pieces有关该peer的相应记录;
(八)节点peer初始连接建立模块的算法逻辑是:
(1)缓冲服务器ES的ServerSocket监听到新连接,新开一个Socket,解析为初始连接建立消息;
(2)ES服务器接收节点peer初始连接建立信息:用户地址,所在ISP, 节点类型,资源ID,片段信息列表,下载连接数等;
(3)在节点peers列表中添加一条新的记录(用户ID,用户IP地址,所在ISP,peer类型,等);
(4)在相应资源ID列表中添加一条新的记录(用户ID,块1,块2,……块n)
(5)返回用户已建立连接消息;
(6)此时ES服务器判断:若此peer报告的片段信息未满,则调用片段选择模块指导用户peer下载;
(九)片段信息接收处理模块的算法逻辑:
(1)ES服务器端接收节点peer发来的下载连接数和块号(节点peer刚下载完成的);
(2)更新ID_pieces表;
(3)调用片段选择模块;
(4)向节点peer发送片断ID及其下载地址。
(十)资源创建/销毁模块的算法逻辑是:
(1)ES服务器Socket接收IS服务器发来的消息,判断类型。
(2)若为种子创建消息,则在ES服务器资源列表中添加相应记录。然后创建ID_peers表;据分块数n,创建ID_pieces表;
(3)若为种子销毁消息,则在ES服务器资源列表中删除相应记录。然后销毁ID_peers表和ID_pieces表;
(4)向IS发送确认消息,关闭相应Socket;
(十一)同步种子数/下载者数模块的算法逻辑是:
(1)统计每一个ID_peers列表的用户类型字段,得到相应得种子数和用户数。
(2)填入ES服务器资源列表种子数和用户数字段中。
(3)ES服务器Socket将ES服务器资源列表发送给IS服务器。
(十二)片段选择模块的算法逻辑是:
(1)若下载的是第一块,随机选择;
(2)若不是,利用最少优先原则,按列扫描ID_pieces表,得到拥有该片段的peer的总数,选择拥有者总数最小的片段号;
下载地址选择:
(1)扫描ID_peers表和ID_pieces表,得到拥有该块的用户信息;
(2)根据加权函数:f(a,b,c)=k1*a+k2*b+k3*c,得到加权值最大的用户
a)与用户的ISP有关,表示是否同一ISP,取0或1;b)与用户提供下载的连接数有关,为用户提供的下载连接数量;c)与用户是否为手机有关,为用户是否为手机,是手机时取0,否则或1;k1,k2,k3为相应权值其取值均为1/3。
(3)返回该用户的片断号和下载地址;
以上各流程模块中使用Socket通信类、数据库连接类、通信类型解析类接口。
在移动设备上实现P2P资源共享目前主要存在这样一些问题:一方面,移动设备的计算能力和存储能力有限,不能进行频繁的消息广播;另一方面,移动终端由于受到电池容量等因素的制约,不能长期提供稳定的服务。同时,移动P2P系统中的资源下载控制是一个比较难以实现的任务。针对这些问题,本发明通过采用搜索引擎策略构建目录服务器(IS)来解决P2P资源的发布与检索、通过状态服务器(ES)来实现移动设备的P2P资源共享管理。
本发明弱化了服务器作用,甚至可以取消服务器,使分布式系统中的各个节点逻辑对等,这种技术出现的目的就是希望能够充分利用网络中所蕴含的潜在资源。本发明与传统网络服务所提供的B/S架构的服务体系不同,采用本发明的方法,使每个节点都参与运算,各个节点既是服务的提供者同时也在享受着别人所提供的服务。
本发明的实施例中由于采用模块化设计其优点是:可以提高软件的可复用性,同时模块化还可以降低软件设计过程中的难度,使得每个模块完成各自的功能,系统架构设计过程中只注重系统各个模块完成的功能和模块之间的关系,在模块具体的实现过程中,编程人员只需要专注于各自的模块功能,而不需要知道软件整体的结构。
本发明还有如下优点:资源在网络中分布广泛,不会因为某个节点离开网络而使系统停止服务,极大的降低了服务器端负荷,把网络负荷分担到整个移动通讯网络中;资源来源广泛,这样资源的数量及种类将极大丰富;多点下载,极大的提高下载速度,能够有效利用现有网络带宽条件,极大的降低了客户端的计算负荷和通信负荷,使P2P文件共享技术能够在移动设备之间实现。
具体实施方式
本发明以下结合附图和实施例详细解说:
本发明是将手机系统以P2P方式传输数据文件。即首先在提供信息上传的用户将一个文件分成了多个部分(或称为块),由不同的下载用户同时下载这个文件了不同块,其中下载的一个用户在下载了这个文件的某一块后,会将这文件块上传给其他的用户,供其他用户下载,这一方法与计算机系统的BT下载方式类似。
本发明整体的范围确定如图1所示,具体各个部分依据需要实现的功能主要覆盖以下五个部分:
1.手机终端客户端MP(Mobile Peer)由手机构成,客户手机在文件传输中可同时实现信息下载和上传的功能。在本发明中在手机终端客户端MP应当至少可显示资源查询界面的用户界面。
2.检索服务器IS(Index Server)用于实现下载信息的检索,它包括如下功能:
1)接收来自用户手机的查询、资源Meta信息的维护请求、提供查询服务、依据终端型号、运营商的查询和提供检索服务的查询服务;2)对缓冲服务器CS中产生的热点信息的生成和热点信息的更新;3)进行资源服务策略管理,包括来自MP的资源种子文件的添加、更新和删除,与状态服务器ES的种子文件进行同步和同步种子数目和下载者数目的资源种子文件维护;4)提供安全访问控制管理和系统备份与恢复的检索服务器IS自身的管理功能。
3.状态服务器ES(Estate Server)用于实现跟踪MP的状态,调度各MP的下载过程是为了实现各运营商与本系统相互之间的通信,提供下载过程的服务,包括如下功能:
状态服务器ES提供如下功能:1)接收MP发来的状态信息,接收MP发来的资源片段信息,维护每个MP的状态信息列表,维护每个资源的peers、pieces列表,和同步IS的种子数/用户数信息的跟踪用户手机MP的状态,调度各手机MP的下载过程功能:2)通知用户手机MP的下载目的peer(即节点)和MP下载过程的片段选择策略的下载过程控制,并控制在用户手机MP下载过程中的状态同步。
4.门户网关GW(Gateway)是用于提供与各运营商进行数据通信、计费服务、协议转换的服务,它包括:
1)提供运营商到本系统网络通信协议的转换,本系统通信协议到运营商通信协议的转换,运营商信息收集,本系统的检索请求协议向互联网检索协议的转换,互联网检索结果协议向本系统的转换的协议转换功能;2)网络流量监控和转换后的协议进行转发的通信策略管理;。
5.缓冲服务器CS(Cache Peer)用于是提高系统的服务性能,对各类共享资源起到缓冲作用,包括:
1)提供部分热点共享资源的原始种子;2)实现用户访问排名、新旧程度、访问用户量的缓冲算法;3)维护缓冲资源的缓冲作用。
以上各部分中的检索服务器IS、状态服务器ES、门户网关GW和缓冲服务器CS可以是单独设置的服务器,也可以通过软件方式确定,也可以以软件部署在同一台服务器,但是从软件上来讲,它们在逻辑上相互独立的。
本发明的上传种子维护流程参见附图2,其流程如下:做种时首先由移动设备(MP)向IS发送请求做种的连接信息,IS收到连接信息后向MP发送做种连接确认信息,MP将种子信息以字符串的形式发送给IS,IS接收到种子信息检查无误后向ES发送新做种信息,同时向MP发送做种完成信息。热点信息维护流程定期由ES服务器向IS发送每个资源的种子节点数量,IS根据热点生成算法产生热点信息(前20%)发送给CS。
本发明的检索流程参见附图3,其流程是:检索时由MP向CS发送请求检索连接信息,CS接收到信息后向MP发送允许建立连接消息,MP向CS发送检索关键字。此时,如果CS命中,则由CS向MP发送检索结果;如果CS未命中,则由CS将检索关键字及请求节点信息转发给IS,IS将检索结果直接发送给MP。
本发明的移动设备报告状态流程参见附图4,其流程是每一个上传者或下载者都要定期向ES服务器报告在线信息;某个MP在断线后重新连接时要向ES报告重新连接消息;在下载过程中MP每下载完资源的一个片断也要向ES服务器发送请求信息:报告已有资源信息,ES则通过资源选择算法选择最优的片段、节点地址,并将结果返回给MP。
本发明的移动用户之间下载流程参见附图5,其流程为:下载过程是紧随检索过程之后的,检索完毕后,MP将获得10个匹配的检索结果,MP若想下载,则从检索结果中选择确定的资源进行下载并将所选择的资源信息发送给ES,ES将返回此资源的片段号和目标节点地址给MP,MP根据这些信息到目标地址下载相关资源。在下载过程中下载者和上传者都要定期向ES报告自己的在线状态。
本发明的服务器间的同步流程参见附图6,其流程是:服务器组在运行过程中需要定期同步信息,包括新种子信息,种子状态信息(删除种子时使用),热点信息,CS中的种子被查询、下载的次数信息,等。
以下提供本发明的最佳实施例。
本发明的最佳实施例中采用了模块设计。所用模块结构参见附图7。本发明实施例的各模块功能入其算法逻辑如下:
(一)添加种子模块,参见附图8,其功能是完成用户做种,IS服务器中种子文件的维护以及与ES服务器进行种子的同步功能。在检索服务器IS的端口Socket只要接收到做种消息,即触发此模块,从MP发送的做种信息,同时在IS服务器中新添加种子、向状态服务器ES发送新种子信息、向移动用户MP回写种子ID。其算法逻辑为:
(1)IS服务器端Socket接收客户端(MP)通过GW发来的做种信息请求,包括:文件名.文件类型,文件大小,运营商标识;
(2)IS给刚上传的种子做种信息赋予一个全局唯一标识符(年月日时分秒+随即数),并新建一条记录,把相应的做种信息插入到这条记录中;
(3)IS向ES发送新种子信息;
(4)IS在刚做的种子信息记录中记录ES的地址信息;
(5)IS将全局标识码通过GW回写给MP。
该模块工作时调用ES服务器的资源创建销毁模块(模块10),需要使用Socket通信类、数据库连接类、通信类型解析类。
(二)删除过期种子模块,参见附图9,其主要功能是完成过期种子的删除功能。该模块由IS服务器定期执行,在IS和ES中删除过期的种子。其算法逻辑是:
(1)IS服务器定期扫描(每天凌晨)资源列表中ID的前8位、种子数、用户数、下载者数这些字段,记录这些种子的ID,这些种子满足:超过5天且种子数+用户数+下载者数<N的种子,完成以下操作:
(2)向ES服务器发送Socket,要求ES服务器删除这些ID的种子相关信息,等待ES删除的确认信息;
(3)IS收到ES的已删除信息;
(4)IS将自身资源列表中这些ID的相关记录作删除处理。
该模块工作时调用ES服务器的资源创建销毁模块(模块10),需要使用Socket通信类、数据库连接类、通信类型解析类。
(三)响应搜索请求模块,参见附图10,其主要功能是响应用户的搜索请求。该模块由客户端的搜索请求触发。指向哪个服务器搜索也是根据客户端MP的选择。其输入为用户的搜索请求,其输出返回用户搜索结果列表,包含:资源ID、资源名、类型、种子数、用户数。其算法逻辑为:
如果用户在其搜索界面中选择“快”的情况:
(1)缓冲服务器CS接收来自GW转发的用户搜索请求Socket,在资源库中检索相应的关键字及文件类型,根据CS中的文件名、文件类型属性,选择相应的资源;
(2)CS从选出的资源中选择种子数/用户数排前10位的种子信息(包括:文件名,资源ID,种子数/用户数,文件大小)封装成一个消息,并向MP发送此信息的Socket。
如果用户在其搜索界面中选择“全”的情况,则:
(1)CS接收来自GW转发的用户搜索请求Socket,在资源库中检索相应的关键字及文件类型,根据CS中的文件名、文件类型属性,选择相应的资源;
(2)CS从选出的资源中选择种子数/用户数排前10位的种子信息(包括:文件名,资源ID,种子数/用户数,文件大小)封装成一个消息,并向MP发送此信息的Socket。
该模块需要使用Socket通信类、数据库连接类、通信类型解析类。模块执行完则等待用户操作(选择确定下载则转向ES服务器处理)。
(四)热点信息维护模块,参见附图11,其主要功能是按资源统计用户查询次数、下载次数,定时维护CS缓冲服务器。该模块按时间触发,对CS服务器进行热点信息更新。其算法逻辑为:
检索服务器IS每天固定时间执行,根据热点生成算法,从种子文件数据库中选取前20%的种子信息,插入到热点信息视图中;调用数据通信模块,将信息传送到缓冲服务器CS中;并对CS作全表替换。
该模块需要使用Socket通信类、数据库连接类、通信类型解析类协议。
(五)IS、CS更新种子数/用户数模块参见附图12,其功能是完成IS、CS服务器中种子数/用户数字段的更新。更新定期进行,在本发明的实施例中为1小时更新一次。它是由ES服务器发来的更新请求的输入,同时输出对检索服务器IS和缓冲服务器CS中种子数/用户数的更新工作。其算法逻辑是:
(1)IS服务器的ServerSocket接收到ES的同步种子数/用户数消息;
(2)IS从ES接收到新的种子数/用户数列表数据;
(3)IS将逐条更新每个资源的种子数用户数字段;
(4)IS向CS发送新的种子数用户数数据;
(5)CS作种子数/用户数更新;
(6)CS向IS发送更新完成消息;
(7)IS向ES发送更新完成消息。
该模块的相关对象及接口是ES服务器的同步种子数/下载者数模块(模块11),并需要使用Socket通信类、数据库连接类、通信类型解析类。
(六)发送资源信息模块,参见附图13,其主要功能是用于快速响应用户的请求。由用户发来的确定下载某个资源的ID信息输入,同时输出返回用户ES地址信息。其算法逻辑为:
如果用户选择“快”时:
(1)IS的Socket接收用户MP通过GW转发来的确定下载某个资源的ID信息,IS搜索相应的种子库,查找出此种子的ES地址;
(2)IS发送server端Socket,将ES地址/资源ID信息通过GW转发给MP。
如果用户选择“全”时:
(1)CS的Socket接收用户MP通过GW转发来的确定下载某个资源的ID信息,CS搜索相应的种子库,查找出此种子的ES地址;
(2)CS发送server端Socket,将ES地址/资源ID信息通过GW转发给MP。
(3)CS向IS发送一条Socket,告知用户选择的相应资源ID信息,触发IS相应的接收Socket,接收信息并在IS的种子信息表中对相应的资源用户下载量中作++,以备维护热点信息。
本模块等待用户操作后,转向状态服务器ES处理。
(七)用户在线信息监听模块,参见附图14,其功能是监听用户在线信息,并删除长期不在线的用户信息。该模块工作时通过客户端定时发送过来的消息确定其自身仍在线;若超过时间期限,在peers列表中删除此peer的对应项。本模块应尽量考虑服务器端的处理能力、客户端的报告负荷。可以采用Socket多路复用技术。其算法逻辑为:
(1)ES服务器ServersSocket已通过peer初始连接模块建立与每一个peer的socket连接。这些socket接收peers列表中的每一个peer的在线消息;
(2)若接收到,更新时间器。如果超过一定的时间没有接收到,则删除ID_peers和ID_pieces有关该peer的相应记录。
(八)peer初始连接建立模块,参见附图15,其功能是与状态服务器ES建立连接,ES更新相应的表信息,并返回连接建立成功消息。其输入是peer发送过来的相关信息(用户地址,所在ISP,节点peer类型,资源ID,片段信息列表,下载连接数等);其输出是更新相应的ID_peers表和ID_pieces表。其中ID_peers表是为每个对应的资源建立的用户表,ID_pieces表是为每个对应的资源建立的资源片段表其算法逻辑是:
(1)ES服务器ServerSocket监听到新连接,新开一个Socket,解析为初始连接建立消息;
(2)ES服务器接收peer初始连接建立信息:用户地址,所在ISP,peer类型,资源ID,片段信息列表,下载连接数等;
(3)在peers列表中添加一条新的记录(用户ID,用户IP地址,所在ISP,peer类型,等);
(4)在相应资源ID列表中添加一条新的记录(用户ID,块1,块2,……块n)
(5)返回用户已建立连接消息;
(6)此时ES服务器判断:若此peer报告的片段信息未满,则调用片段选择模块指导用户peer下载。
(九)片段信息接收处理模块,参见附图16,其功能是接收客户端发送过来的片段信息(客户端下载完某个片断后触发),更新资源片段信息表;并根据片段选择算法,得到客户下一次的应下载块id号及其地址,并对节点(peer)作出指示,即以特定的消息格式将该客户将要下载的片段信息及地址告诉该客户。本模块由客户端发送过来的新下载的块报告消息,下载连接数。同时向客户端发送下载块id号及其地址。其算法逻辑是:
(1)ES服务器端接收peer发来的下载连接数和块号(peer刚下载完成的);
(2)更新ID_pieces表
(3)调用片段选择模块
(4)向peer发送片断ID及其下载地址
本模块需调用本模块程序需调用模块,也就是片段选择模块。
(十)资源创建/销毁模块,参见附图17,其功能是检索服务器IS标识有新种子到达,在状态服务器ES中创建peers列表和资源块列表;而当种子过期IS将之删除时,ES销毁相应peers列表和资源块列表。该模块输入从检索服务器IS发送过来的新种子信息,如资源标识符、下载信息分块数,或者从IS发送过来的删除种子信息,即资源标识符;输出生成相应的peers列表和资源片段列表,或者销毁相应peers列表和资源块列表。其算法逻辑为:
(1)ES服务器Socket接收IS服务器发来的消息,判断类型。
(2)若为种子创建消息,则在ES服务器资源列表中添加相应记录。然后创建ID_peers表;据分块数n,创建ID_pieces表;
(3)若为种子销毁消息,则在ES服务器资源列表中删除相应记录。然后销毁ID_peers表和ID_pieces表;
(4)向IS发送确认消息,关闭相应Socket。
该模块在工作中需与IS服务器中的模块,如添加种子模块,删除过期种子模块通信。
(十一)同步种子数/下载者数模块,参见附图18,其功能是定期给检索服务器IS发送关于此资源的种子数和下载者数量。该模块定期触发,并适时向检索服务器IS发送关于各个资源的种子数和下载者数列表。在本实施例中,定期触发时间定为30秒。其算法逻辑是:
(1)统计每一个ID_peers列表的用户类型字段,得到相应得种子数和用户数。
(2)填入ES服务器资源列表种子数和用户数字段中。
(3)ES服务器Socket将ES服务器资源列表发送给IS服务器。
该模块需与IS服务器上的IS、CS更新种子数/用户数模块(模块5)通信。
(十二)片段选择模块,参见附图19,其功能是接收peer的地址ID,依据片段选择算法,计算出该peer应下载的片段ID及其下载地址。该模块需输入请求下载peer的ID,输出下一次应下载的片段号及其下载地址。其算法逻辑是:
A.片段选择:
(1)若下载的是第一块,随机选择;
(2)若不是,则利用最少优先原则,按列扫描ID_pieces表,得到拥有该片段的peer的总数,选择拥有者总数最小的片段号;
B.下载地址选择:
(1)扫描ID_peers表和ID_pieces表,得到拥有该块的用户信息;
(2)根据加权函数:f(a,b,c)=k1*a+k2*b+k3*c,得到加权值最大的用户
(a与用户的ISP有关,b与用户提供下载的连接数有关,c与用户是否为手机有关,k1,k2,k3为相应权值);(本段中的函数a、b、c需要给出具体的内容,因为本段内容所涉及的是一个具体的实施例)
(3)返回该用户的片断号和下载地址。
决定片段大小的因素很多,比如说网络环境、手机自身性能的限制等.在GPRS网络中受到网络自身限制经过测试用1K最稳定,如在WIFI网络可最高以用到11K都比较稳定。
在系统设计的过程中,考虑到数据库连接和服务器间通信这两类操作在每个模块中都要频繁使用,所以就将其分离出来,作为独立的类来实现,这样在其它模块中就能直接调用这些类来完成相应功能,这也体现了模块化所带来的代码复用性的优点。根据分析,这类公用模块包括:数据库连接类、服务器间通信类、通信类型解析类
根据上述内容,采用相应的语言即可写出相应的程序软件,如采用C++语言等。将这些软件安装于移动通讯系统中即可实现本发明所述的对数据文件进行下载的功能。
此外,本发明对于移动设备,要求其能显示如下内容:(1)下载资源;(2)下载进度;(3)下载速度;(4)内容菜单及控制菜单。其中的内容菜单显示:发布、搜索、配置及相关说明这几个部分;而在控制菜单中显示有:开始下载、停止下载、删除下载、下载预览和退出这几个部分;在配置显示中显示:索引服务器、服务提供商、上传连接数量、当前下载片断、以及本机的ID地址这几个部分,以及保存和返回的开关按钮。这些内容参见附图20、21、22和23。
移动设备,即手机所显示的上述内容可通过相应的程序软件,单独安装于其上。
由以上所述内容构成的一个实施例实际应用情况如下:
(一)可下载资源发布
假定移动用户A有待发布的数据文件资源,系统运行以下过程:
1、移动终端设备peerA发布资源,将资源的文件名,文件类型,文件长度,文件的相关描叙信息以及各模块之间通信的消息格式发布给检索服务器IS,参见附图29中的1,其中文件的相关描叙信息可以为空。
IS收到信息后,依次作如下工作:
(1)产生一个资源的唯一标识ID,长度为18位。
(2)在资源信息的文件中追加一条资源信息,以XML的格式描写。
(3)根据资源的文件名和文件描叙信息,提取出关键词,建立倒排索引。
(4)在数据库中为资源建两个空表,名字分别为:ID_peers、ID_pieces,其中的ID就是(1)步中产生的ID。
2、IS服务器以某种特定的消息格式返回给移动终端peerA资源的ID和状态服务器ES的IP地址,参见附图29中的2。
3、移动终端peerA根据返回的ES地址与ES服务器建立连接,参见附图29中的3。同时以某种特定的消息格式将发布资源终端peerA所在位置(IP地址)、资源唯一标识ID、移动终端网络运营商、终端设备类型,承载能力、和当前资源片段状态信息发送给ES服务器。ES根据此消息在资源的两个表(ID_peers和ID_pieces)中添一条信息。
两个表分别如下建立:
ID_peers表结构
PEER_ID |
ISP |
PEER_TYPE |
COUNT_CAP |
COUTN_STA |
|
|
|
|
|
ID_pieces表结构
PEER_ID |
PIECE1 |
PIECE2 |
…… |
PIECEN |
|
|
|
|
|
表中piece1,piece,,...,piecen为peer A的可下载文件由分成的各待下载块,每块大小为1K。
系统资源发布及完成发布后手机节点peerA的界面分别为图24和25。
(二)资源检索
在移动通讯网络中继资源发布者A后,文件下载者B进入网络,这时系统运行如下程序:
1、在用户B通过其手机输入关键字,向系统提交资源检索请求后,移动终端peerB以各模块之间通信的消息格式将检索的关键字发送给IS服务器,参见附图30的1。
IS依次作如下工作:
(1)根据关键字分词,提取出检索关键字。
(2)在前述资源发布过程中已经建好了的倒排索引表中查找关键字,得到资源在资源文件中所在的位置信息,然后取出查找资源对应的所有信息——文件名、文件类型、文件长度、种子情况、在线用户数、ES地址、资源的唯一标识ID等等。
2、IS服务器以某种特定的消息格式将资源对应的所有信息返回给发送查询请求的移动终端peerB,参见附图30的2。
在以上过程中用户B的手机将分别显示图26和27的内容。
(三)资源下载
与许多成熟的P2P系统相同,本发明构成的系统的移动终端peers之间也是通过分片策略来实现文件内容的分发。
用户B的终端设备peerB通过前面的步骤得到状态服务器ES的地址后,向ES服务器发送初始连接请求,建立连接。同时将移动终端所在位置(IP地址)、要下载的资源的ID、移动终端网络运营商、下载设备类型、承载能力、和当前资源下载的片段状态以及各模块之间通信的消息格式格式发送给ES。
例如“:202:移动终端所在位置(IP地址):要下载的资源的ID:移动终端网络运营商:下载设备类型:承载能力:当前资源下载的片段状态:”
如:“:202:202.201.13.44:200701171340567488:2:pc:2M:000111011000”
状态服务器ES接收到消息后,依次作如下工作:
(1)初始连接(适用于Tunnet客户端选中资源点击“开始”的情况)
a、根据移动终端设备peerB发送的唯一资源标识ID,找到终端设备要下载的资源。
对应的两张表(ID_peers和ID_pieces),并在两个表中插入一条新记录,记录移动终端设备peerB的对应信息和资源片段下载状态信息。
b、查看此终端的资源片段下载状态:
(i)移动终端peerB的资源下载进度为0的情况
ES服务器通过随机选择算法选择n片以某种特定的消息格式返回给移动终端
peerB。
(ii)移动终端peerB的资源下载进度大于0小于100%的情况,
ES服务器根据数据库ID_pieces表中终端peerB对应的资源下载状态,在未下载的剩余片段中选择n片以某种特定的消息格式返回给移动终端peerB。其中这n片是所有片段中下载用户最少的片,根据最小优先算法选择。
(iii)移动终端peerB的资源下载进度为100%的情况
此时移动终端peerB已完成下载,将作为已下载部分资源的另一个资源上传者,也就是做种者。
(2)非初始连接
a、移动终端peerB根据收到的ES服务器返回的消息到各终端peers处下载(例如此时网络中只有peerA,ES服务器返回给peerB的片段对应得地址都将是peerA的地址),完成之后将下载成功的片段以某种特定的消息格式返回给ES服务器。
b、ES服务器收到此信息后依次作如下工作:
(i)根据peerB返回的消息,在数据库ID_pieces表更新此终端的资源片段状态。
(ii)在片段状态为未下载状态的片段中,根据最小选择算法再选择n片以某种特定的消息格式返回给移动终端peerB。
此时终端peerB处于上述非初始连接的就绪状态,在接受到ES返回的消息后,按照非初始连接的步骤依次执行,如此反复,直至该资源下载进度为100%。由于移动通信网络不同于传统固定网络,需采用移动IP技术,故在本系统中采用移动终端定时报告机制,即移动终端向ES服务器以某种特定的消息格式定时报告其IP地址,ES服务器实时监听该消息,并对数据库中ID_peers和ID_pieces表做出相应的处理,从而保证了下载的可靠性和准确性(上图中虚线部分表示移动终端定时向ES服务器报告地址信息)。
在资源下载过程中用户手机将分别显示附图28和29的界面。
在资源下载的过程中,用户可以控制资源下载的过程,如停止、重新开始等。同时,当用户选中资源点击“删除”后,系统将以特定的消息格式通知ES服务器对数据库中ID_peers和ID_pieces表做出相应的处理。
经实际的测试结果见表1和表2。表1的数据是在WIFI(IEEE 802.11b)网络环境下测试的,分别用1K、11K两种片段大小的策略进行了测试。在GPRS网络环境下测试的,分别用1K、2K两种片段大小的策略进行了测试。表2是在在GPRS网络环境下测试的,分别用1K、2K两种片段大小的策略进行了测试。
表1
No |
文件大小 |
下载时间片段1KB |
下载时间片段11KB |
下载速度片段1KB |
下载速度片段11KB |
1 |
7KB |
2”90 |
1”35 |
19.3kbps |
41.5kbps |
2 |
71KB |
10”34 |
2”50 |
54.9kbps |
189kbps |
3 |
119KB |
14”90 |
3”41 |
63.8kbps |
238kbps |
4 |
1.68MB |
4’12”57 |
26”84 |
54.4kbps |
509kbps |
5 |
2.71MB |
10’27”29 |
41”14 |
35.4kbps |
541kbps |
表2
No |
文件大小 |
下载时间片段1KB |
下载时间片段2KB |
下载速度片段1KB |
下载速度片段2KB |
1 |
7KB |
26”17 |
1’55”13 |
2.07kbps |
0.49kbps |
2 |
23.6KB |
1’37”82 |
4’58”95 |
1.92kbps |
0.63kbps |
3 |
45.5KB |
3’46”71 |
9’09”74 |
1.61kbps |
0.66kbps |
4 |
71KB |
6’36”43 |
19’30”38 |
1.43kbps |
0.49kbps |
5 |
119KB |
10’52”06 |
1h |
1.46kbps |
0.26kbps |