基于社区检测算法p2p网络的调度方法及其系统的制作方法
【专利摘要】本发明公开了一种基于社区检测算法P2P网络的调度方法,所述的方法包括以下步骤:步骤1:客户端从web服务器获取资源信息;步骤2:客户端将日志信息存储到后台数据库,并且客户端向P2P信令服务器发送节点请求;步骤3:P2P信令服务器得到与客户端对应的社区,并将该社区包含的节点发送至客户端;步骤4:客户端根据步骤3中的节点信息连接节点,从节点获取资源。同时,本发明还公开了基于社区检测算法P2P网络的调度系统,上述的方法和系统通过收集P2P日志,研究社区检测方法,分析P2P日志并对其形成的P2P网络进行社区检测划分,找出P2P网络中的关键信息,形成更加合理的P2P网络。
【专利说明】
基于社区检测算法P2P网络的调度方法及其系统
技术领域
[0001] 本发明涉及P2P网络及社区检测算法领域,具体地说是一种基于社区检测算法P2P 网络的调度方法和系统。
【背景技术】
[0002] 随着互联网的高速发展,多媒体在互联网中也得到爆发性的增,人们渐渐的从电 视、收音机等传统媒介中转到互联网中观看音视频。这种爆发性的增长不仅导致资源提供 商的带宽流量成本剧增,而且还要求网络设备提供商不断的升级改造网络,提高网络传输 速度。而P2P网络作为一种新的网络传输模式在提出不久便引起互联网的一次巨大震动,它 不仅仅是作为一种软件架构形式,也是一种社会模式的体现。P2P网络打破传统的客户端-服务器模式,形成一种以客户端-客户端(客户端拥有服务器的能力),把客户端转换成服务 器角色的形式,从而提高带宽资源利用率以及减轻资源服务提供商的压力。但是在实际应 用中,P2P网络在稳定性、有效性中常常表现得不尽如人意,一是不稳定,经常会导致用户在 请求资源的过程中中断。二是有效性,用户请求资源的等待时间大多数时候慢于服务器,这 是客户端的带宽和处理器处理能力等硬件导致的。诸如此类的缺点导致P2P发展规模受限。
[0003] 社区检测划分方法是近年来一个研究热点,学术界对复杂网络的研究掀起一股热 潮,复杂网络是指由众多相互联系、相互作用的个体,依据一定的联系产生的网络结构,其 中蕴含着与之相关的丰富信息。复杂网络网络没有特定的领域,它涉及到数学、物理、社会 学、计算机等诸多领域,并且得到众多领域的科研工作者的关注。为了研究和获取复杂网络 结构的有效信息,需要运用算法对其进行结构划分,例如基于模块度的划分方法、基于层次 结构的划分方法等等,这些算法都致力于解决和发现复杂网络中的合理的社区结构,从而 让我们更好的认识到复杂网络的特性。而P2P网络作为复杂网络之一,利用社区检测划分方 法对其计算、划分,可以发现网络的有效关键信息,从而提高网络的稳定性和有效性。但是 尽管社区检测划分方法得到大量的科研工作者的关注和研究,也取得相当大的成果,但是 对于形式多样的网络结构,依旧存在一些尚未解决的基本问题。例如一些发现算法虽然可 以得到令人比较满意的结果,但是往往需要以牺牲计算代价为结构;一些性能较为优越的 算法,大多则牺牲精确性为代价。这些问题都需要进一步完善。
[0004] 现有技术中,为了解决复杂的P2P网络中的重叠社区的问题,提出了copra算法来 应对,在中国文献资料《基于标签传播的社区挖掘算法研究综述》中详细的记载了重叠 copra算法及其改进算法研究,特别是在对copra算法的改进方法中提出了设定阈值来控制 每个节点的标签数目,从而使新算法不需要初始。
[0005] 此外,在中国专利申请CN201510076028.8公开了一种基于多标签传播的重叠社区 检测方法,包括以下步骤:步骤A,构造社交网络图:读取网络数据,构造以用户为节点,用户 关系为边的社交网络图;步骤B,分析网络粗糙核心:根据社交网络图,以及各节点的度,分 析出社交网络的粗糙核心集合RoughCor e;步骤C,初始化标签集合:计算社交网络中各边两 节点的结构权值,结合步骤B所得RoughCore结果,初始化各节点的标签集合,并判断各节点 核心状态Core Status;步骤D,执行标签传播:在整个社交网络中根据链接密度,计算各节点 新标签集合,同时根据节点核心状态CoreStatus对较小隶属度标签进行过滤,得到初步重 叠社区结果;步骤E,分解不连续社区:在初步重叠社区结果里将不连续社区分解为多个子 社区,得到最终的社交网络重叠社区结构。
[0006] 但是现有技术中的社区结构划分的合理性、有效性和稳定性有待改善。
【发明内容】
[0007] 本发明的目的在于提供一种基于社区检测算法P2P网络的调度方法和系统,该方 法和系统通过收集P2P日志,研究社区检测方法,分析P2P日志并对其形成的P2P网络进行社 区检测划分,找出P2P网络中的关键信息,形成更加合理的P2P网络。
[0008] 本发明的具体的技术方案为:一种基于社区检测算法P2P网络的调度方法,所述的 方法涉及客户端、管理端、资源服务器、P2P信令服务器、web服务器;所述的资源服务器用于 通过管理端获取和存储资源并将资源信息发送给web服务器;包括以下步骤
[0009] 步骤1:客户端从web服务器获取资源信息;
[0010]步骤2:客户端将资源信息和客户端自身的信息以日志信息的方式存储到后台数 据库,并且客户端向P2P信令服务器发送节点请求;所述的后台数据库用于存储多个节点的 日志信息;
[0011 ]步骤3 :P2P信令服务器根据后台数据库中存储的日志信息生成社区网络结构,并 对社区网络结构进行社区结构划分,得到划分结构并进行合并处理去除无效节点,得到与 客户端对应的社区,并将该社区包含的节点发送至客户端;
[0012]步骤4:客户端根据步骤3中的节点信息连接节点,从节点获取资源。
[0013]在上述的基于社区检测算法P2P网络的调度方法中,步骤3具体为:
[0014]子步骤31:获取后台数据库中存储中节点的日志信息;
[0015] 子步骤32:根据节点的日志信息,构造以用户为节点,用户之间的关系为边,通过 节点带宽表示权重的社区网络结构;
[0016] 子步骤33:根据LabelRank算法对社区网络结构进行社区结构划分,得到多个社 区;其中,LabelRank算法包含一个操作算子:传递操作;
[0017]所述的传递操作具体为:在每个节点定义一个IXn的向量P保存标签分布,η为节 点的数量;定义一个邻接矩阵A存储网络结构,则P1(C)代表节点i属于标签c的概率,标签的 集合用C表示,并且标签的个数初始化为节点的个数n,每次计算都需要更新每个节点的向 量P,公式如下:
[0018] .......(1)
[0019] 其中,Nb(i)是节点i的邻居节点的集合,ki= |Nb(i) I是邻居节点集合的节点数 量,P\(C)代表更新后节点i属于标签c的概率,然后接着计算可以由矩阵A和向量P如下表 示:
[0020] AXP.............(2)
[0021]在传递操作算子中首先需要初始化向量P,初始化的具体方法为:每个节点的标签 列表的概率Plj初始化为邻居节点的权重和的倒数;如下所示:
[0022] Pij=w/ki............(3)
[0023] w表示节点i到节点j的权重;
[0024] 经过上述步骤后得到每个节点的向量P;
[0025] 在传递操作算子的每次计算的更新过程中,设置一个阈值λ,当节点的所属标签的 概率大于λ时,则保留,小于则舍弃;且当节点中所有的标签概率都小于λ时,则随机选取一 个保留;
[0026] 子步骤34:对子步骤33中的社区中的节点进行合并处理以除去社区中的无效节 点,得到客户端所对应的社区;
[0027]子步骤35:将客户端所对应的社区的节点信息发送至客户端。
[0028]在上述的基于社区检测算法P2P网络的调度方法中,所述的LabelRank算法还包括 一个操作算子:膨胀因子;
[0029] 所述的膨胀因子具体为:在向量P中使用膨胀因子Γιη来影响标签传递,其中in是 一个实数值,通过使用膨胀因子来解耦网络结构,每次计算F inPJ1。都会增加 inth次幂,如 下公式所示:
[0030]
[0031] 计算后,它会使节点中高概率的标签概率的数值增加,低概率的标签概率的数值 减少。
[0032]在上述的基于社区检测算法P2P网络的调度方法中,所述的LabelRank算法还包括 一个操作算子:裁剪系数;
[0033]所述的裁剪系数具体为:在向量P中引入了一个操作符OrS义阈值re [0,1],在 计算过程中如果向量P中的标签概率小于r则把向量中的标签删除掉。
[0034]在上述的基于社区检测算法P2P网络的调度方法中,所述的LabelRank算法还包括 一个操作算子:条件更新;
[0035] 所述的条件更新具体为:定义一个条件更新操作符?。,其含义为当算法过程中只 有节点与其邻居节点的标签向量不相等时才更新该节点,否则不进行更新操作;即在每次 迭代中,当节点满足下列公式时,才进行更新操作;
[0036]
[0037] g是节点i在以往计算步骤中概率最大的标签集合,ki表示节点i的度,q是一个实 数值,q的取值范围[0,1]。
[0038] 在上述的基于社区检测算法P2P网络的调度方法中,所述的所述的日志信息为用 户ID、视频URL、视频播放方式、连接服务器时同一组中的Peer数、用户IP、组内其他用户ID、 用户带宽。
[0039] 在上述的基于社区检测算法P2P网络的调度方法中,所述的步骤4还包括:如果没 有节点或者从节点获取资源失败,客户端则从资源服务器获取资源。
[0040] 此外,本发明还公开了一种基于社区检测算法P2P网络的调度系统,包括:
[0041 ]管理端1,用于获取资源,并将资源发送至资源服务器2;
[0042]资源服务器2,用于接收和存储管理端1发送的资源,并将资源信息发送至web服务 器3;根据客户端5的请求将资源发送至客户端5;
[0043] web服务器3,用于根据客户端5的请求将资源信息发送至客户端5;
[0044] 后台数据库4,用于存储多个节点的日志信息;
[0045] 客户端5,用于将资源信息和自身的日志信息发送到后台数据库4;接收P2P信令服 务器6所发送的节点信息,并根据节点信息从节点获取资源,若没有节点或者从节点获取资 源失败,则发送请求给资源服务器2从资源服务器2获取资源。
[0046] P2P信令服务器6,用于根据客户端5所发送的节点请求,从后台数据库4中获取当 前时刻的多个节点的日志信息生成社区网络结构并对社区网络结构进行社区结构划分,并 对社区结构划分结果进行合并处理,得到与与客户端5日志信息对应的社区,并将该社区所 包含的节点信息发送至客户端5。
[0047] 在上述的基于社区检测算法P2P网络的调度系统中,所述的客户端5包括:
[0048]资源信息模块51,用于接收web服务器3所发送的资源信息,将资源信息和自身的 日志信息发送到后台数据库4,并将节点请求发送至P2P信令服务器6;
[0049] 第一资源获取模块52,用于接收P2P信令服务器6所发送的与资源对应的社区中的 节点信息,并根据节点信息从节点获取资源;
[0050] 第二资源获取模块53,用于没有节点或者从节点获取资源失败的情况下,发送请 求给资源服务器2从资源服务器2获取资源。
[0051] 在上述的基于社区检测算法P2P网络的调度系统中,所述的P2P信令服务器6包括: [0052]社区网络结构构造模块61,用于根据后台数据库4中用户的日志信息,构造以用户 为节点,用户之间的关系权重为边的社区网络结构;
[0053]日志信息获取模块62,获取后台数据库4中存储中节点的日志信息;
[0054]社区结构划分模块63,用于根据LabelRank算法对社区网络结构进行社区结构划 分,得到多个社区;
[0055]合并模块64:用于对社区结构划分模块63得到的社区结构划分结果进行合并处理 以去除无效节点,得到客户端5所对应的社区;
[0056]节点信息模块65,用于将客户端5对应的社区所包含的节点信息发送至客户端5。
[0057]与现有技术相比,本发明的有益效果在于:
[0058]本发明在加强P2P网络传输的设计中,本发明的方法和系统可以实时的产生日志 信息文件,而社区检测划分算法也可以实时读取P2P点播系统产生的日志信息文件,并计算 得到划分之后的结果,通过读取社区检测划分之后的结果,并对新登陆的用户的有效性进 行判断,从而加强P2P的网络传输性能,提高P2P资源传输的有效性。通过把社区检测划分技 术应用到日志信息文件的划分,系统可以从以往的运行情况,自动快速的辨别当前用户的 网络性能,从而把用户节点都转化为有效的P2P节点,P2P网络的可靠性得以保证。
【附图说明】
[0059]图1为本发明实施例1的流程图;
[0060] 图2为本发明实施例1的流程图;
[0061] 图3和4为本发明实施例1和2的传递操作的原理图;
[0062]图5-7为本发明实施例1和2未经过合并处理的网络结构图;
[0063] 图8为本发明实施例1经过合并处理的网络结构图;
[0064] 图9为本发明实施例1的结构方框图。
【具体实施方式】
[0065]下面结合【具体实施方式】,对本发明的技术方案作进一步的详细说明,但不构成对 本发明的任何限制。
[0066] 实施例1
[0067] 如图1和2所示,一种基于社区检测算法P2P网络的调度方法,所述的方法涉及客户 端、管理端、资源服务器、P2P信令服务器、web服务器;所述的资源服务器用于通过管理端获 取和存储资源并将资源信息发送给web服务器;P2P信令服务器是基于开源openRTMFP服务 器开发,主要管理当前观看视频的用户信息,包括用户观看资源、IP等信息;Web服务器主要 为用户提供网页形式的展示界面。资源发布到资源服务器后,会把资源信息同步到Web服务 器上。用户通过浏览器即可查看感兴趣的视频。Web服务器主要为用户提供网页形式的展示 界面。资源发布到资源服务器后,会把资源信息同步到Web服务器上。用户通过浏览器即可 查看感兴趣的视频。
[0068]本实施例的方法包括以下步骤
[0069]步骤1:客户端从web服务器获取资源信息;
[0070]资源首先通过管理端获取,管理端从其他FTP服务器或者用户上传获取;然后管理 端将资源以及记录该资源的描述信息的资源信息发送到资源服务器;接着资源服务器将资 源信息推送到web服务器。
[0071] 此外,管理端为管理员用户提供内容发布、删除、查看等管理功能,它通过与资源 服务器连接完成相应的操作。
[0072] 步骤2:客户端将资源信息和客户端自身的信息以日志信息的方式存储到后台数 据库,并且客户端向P2P信令服务器发送节点请求;所述的后台数据库用于存储多个节点的 日志信息;
[0073] 步骤3:P2P信令服务器根据后台数据库中存储的日志信息生成社区网络结构,并 对社区网络结构进行社区结构划分,得到划分结构并进行合并处理去除无效节点,得到与 客户端对应的社区,并将该社区包含的节点发送至客户端;
[0074] 步骤3具体为:
[0075]子步骤31 :P2P信令服务器一旦得到客户端发送的节点请求,就会获取后台数据库 中存储中节点的日志信息;所述的日志信息为用户ID、视频URL、视频播放方式、连接服务器 时同一组中的Peer数、用户IP、组内其他用户ID、用户带宽。
[0076] 子步骤32:根据节点的日志信息,构造以用户为节点,用户之间的关系为边,通过 节点带宽表示权重的社区网络结构;
[0077] 节点之间的连接关系由如下算法流程计算:
[0078] 1)用户ID为标识,可以统计到某一时刻播放相同视频URL的Peer数和Peer的ID,由 此节点之间可以形成不具备权重的网络结构关系。
[0079] 2)以用户的带宽关系设定权重系数,从而形成具备权重的网络结构。
[0080] 上述是粗粒度的计算流程,在上述计算流程的基础上,实际计算情况下需要考虑 到以下情况:
[0081 ] 1)统计邻居Peer节点规则。
[0082]当某一节点与其他邻居节点组成网络时,我们需要设置一个阈值,当形成的网络 的节点数量超过阈值时,我们才会把该网络统计到网络结构中,这样可以过滤掉一些小型 网络,因为通常小型网络对形成P2P网络的概率较小。
[0083] 2)计算Peer节点之间的联系。
[0084]当某一节点与其他节点形成联系时,往往需要用一个定量的值来衡量它们之间关 系的紧密程度,而这一紧密程度则用权重来表示,本技术是从节点的网络带宽关系来衡量 形成的网络权重。
[0085]获取节点带宽方法:
[0086]计算节点带宽的方法,因为P2P点播系统是基于Web形式的,因此我们是利用 JavaScript进行测速并记录,从而达到记录用户的带宽信息,我们主要利用JavaScript对 客户端的带宽进行测试。通过获取每一个节点的带宽信息,我们可以通过比例的形式生成 节点之间的权重信息,例如节点A和节点B与视频C有联系,节点A、B的带宽分别为10 0 K B、 200KB,则节点A和节点B与视频C的联系分别为1/3和2/3,进行归一化。通过带宽我们可以算 法一定的权重,但是有效权重还需要考虑节点具体的网速速率,如果网速速率小于某个设 定的参数值时,则把权重降低成0。
[0087] 子步骤33:根据LabelRank算法对社区网络结构进行社区结构划分,得到多个社 区;其中,LabelRank算法包含四个操作算子:传递操作、膨胀因子、裁剪系数、条件更新; [0088] 1、传递操作
[0089] 在每个节点定义一个I Xη的向量P保存标签分布,η为节点的数量;定义一个邻接 矩阵A存储网络结构,则P1(C)代表节点i属于标签c的概率,标签的集合用C表示,并且标签 的个数初始化为节点的个数η,每次计算都需要更新每个节点的向量P,公式如下:
[0090] CI ^
[0091] 其中,Nb(i)是节点i的邻居节点的集合,ki= |Nb(i) I是邻居节点集合的节点数 量,P'Kc)代表更新后节点i属于标签c的概率,任一节点的标签在网络结构中都是唯一的, 然后接着计算可以由矩阵A和向量P如下表示:
[0092] AXP.............(2)
[0093]在传递操作算子中首先需要初始化向量P,初始化的具体方法为:每个节点的标签 列表的概率Plj初始化为邻居节点的权重和的倒数;如下所示:
[0094] Pij=w/ki............(3)
[0095] w表示节点i到节点j的权重;
[0096] 经过上述步骤后得到每个节点的向量P;
[0097]在传递操作算子的每次计算的更新过程中,设置一个阈值λ,当节点的所属标签的 概率大于λ时,则保留,小于则舍弃;且当节点中所有的标签概率都小于λ时,则随机选取一 个保留;
[0098]传递操作如图3所示,对每个节点进行初始化,以节点a为例,(b,1/4)代表的是节 点a属于标签b的概率为1/4,因为节点a有4个邻居节点,默认每条边的权重为1,因此得到1/ 4。同时设定阈值λ=1/2,当概率大于等于1/2时则保留;小于则舍弃;当节点所有都小于1/2 时,则随机选取一个,并把概率设置为1。可得到如图4所示结果。
[0099] 2、膨胀因子
[0100] 在算法中,我们在向量P中使用膨胀因子Γιη来影响标签传递,其中in是一个实数 值。我们使用膨胀因子来解耦网络结构。每次计算r MPJ1。都会增加 inth次幂,其中,th为一 符号解释,其中,inth表示P1(C)经过膨胀因子算子计算后的幂次增加。如下公式所示:
[0101]
[0102]计算后,它会使节点中高概率的标签概率的数值增加,低概率的标签概率数值减 少。例如,两个标签初始化为0.6和0.4。当in为2时,计算后的标签数值分别为0.6923和0.4。 [0103] 3、裁剪系数
[0104] 为了避免内存占用过大的问题,我们在向量P中引入了一个操作符Φτ定义阈值r e[0,l],在计算过程中如果向量P中的标签概率小于r则把向量中的标签删除掉。操作符 Φτ可以与膨胀因子很好的结合使用,减少向量中标签的个数。实验证明,如果把r = 0.1,则 每个节点的标签的平均个数会低于3个。
[0105] 在本发明中,传递操作算子中同样有一个阈值λ,其与本裁剪系数算子作用是不同 的;具体来说,阈值λ是为了使传递操作算子进行优化,使每个节点具有一个或设置限制数 量个数的标签,实现重叠社区的多标签输出。
[0106] 但是本裁剪系数算子的作用主要是为了去除LabelRank算法中标签概率过分小的 标签,降低内存占用,提高计算速度。
[0107] 4、条件更新
[0108]通过以上三个操作因子对网络结构进行计算依旧不能很好的保证算法的性能,这 是因为上述三个条件对社区检测的过程很难达到收敛,并且划分出来的社区质量低下。因 此定义一个条件更新操作符Θ q,用它来对算法进行改进,其含义为当算法过程中只有节点 与其邻居节点的标签向量不相等时才更新该节点,否则不进行更新操作。这可以使算法只 有满足一定条件时才进行更新并继续社区检测操作,在每次迭代中,当节点满足下列公式 时,才进行更新操作。
[0109]
[0110] €是节点i在以往计算步骤中概率最大的标签集合,1^表示节点i的度,q是一个实 数值(取值范围[0, 1])。如果A s s2: ?isSubset(si,S2)返回值为1否则为0,满足上述公式时 更新节点i的标签。公式可以看作成衡量两个节点的相似度。
[0111] 算法流程如下:
[0114] 子步骤34:对子步骤33中的社区中的节点进行合并处理以除去社区中的无效节 点,得到客户端所对应的社区;
[0115] LabelRank算法针对不同的时刻的输入,对网络结构进行划分,从而产生不同时刻 相应的结果,但是考虑到实际的P2P点播系统,主要是要抓取对于某一资源,该节点是否能 够作为资源服务提供方,能够稳定有效的传输的资源。因此我们需要针对每一时刻的划分 结果进行合并处理,合并处理主要对属于同一资源的有效节点进行合并,并且去除一些无 效节点,所谓的无效节点指的是不能作为资源提供方的节点,而是否能够作为资源提供方 的主要考量因素在于节点带宽,也就是本实施例中的权重,合并主要的步骤为:
[0116] S41:获取步骤3中的社区结构划分的结果;
[0117] S42:对社区结构划分的结果中的有效节点进行合并,并去除无效节点;
[0118] S43:以文件的形式存储合并后的数据。
[0119] 对结果进行合并去除并以文件的形式对合并结果进行存储,可以有利于点播系统 对结果进行读取,并且快速的定位当前节点的情况,从而判定该节点是否作为有效节点加 入P2P网络。
[0120] 如图5、6、7所示,数字1-4代表的是用户,数字10000以上代表的是视频id,图5、6、7 是由LabelRank根据时刻1-3输出的3个结果,可以很清晰的看到,图中的结果并不能很清晰 的看出网络结构结果。对上述3个时刻的结果进行合并后,结果如图8所示。
[0121] 子步骤35:将客户端所对应的社区的节点信息发送至客户端。
[0122] 步骤4:客户端根据步骤3中的节点信息连接节点,从节点下载资源到本地缓存,开 始播放资源内容,如果没有节点或者从节点获取资源失败,客户端则从资源服务器获取资 源;
[0123] 具体来说,其可以分为以下几种情况:
[0124] 客户端首先连接P2P服务器,若连接失败并且超时(时长由配置参数设定),则提示 连接服务器失败并尝试重连,若重连失败,客户端则放弃连接服务器,从资源服务器直接获 取播放数据。
[0125] 客户端首先连接P2P服务器,若连接成功,则开始从其他客户端接收数据,若接收 数据过慢(由参数为设定超时时间)不足以播放,则客户端则放弃从其他客户端获取资源, 从资源服务器直接获取播放数据。
[0126] 客户端首先连接P2P服务器,若连接成功,则开始从其他客户端接收数据,若播放 过程中,接收不到数据,则从资源服务器直接获取播放数据。
[0127] 客户端首先连接P2P服务器,若连接成功,则开始从其他客户端接收数据,若播放 过程中,依旧正常数据,则继续采用P2P方式接收数据。
[0128] 客户端以P2p方式接收资源过程中,若发送数据端人为关闭,则寻找另外一个发送 端。
[0129] 本发明的方法可以实时的产生日志信息文件,而社区检测划分算法也可以实时读 取P2P点播系统产生的日志信息文件,并计算得到划分之后的结果,通过读取社区检测划分 之后的结果,并对新登陆的用户的有效性进行判断,从而加强P2P的网络传输性能,提高P2P 资源传输的有效性。通过把社区检测划分技术应用到日志信息文件的划分,系统可以从以 往的运行情况,自动快速的辨别当前用户的网络性能,从而把用户节点都转化为有效的P2P 节点,P2P网络的可靠性得以保证
[0130] 实施例2
[0131] 如图9所示,本实施例提供一种用于实现实施例1所述的基于社区检测算法P2P网 络的调度方法的系统,包括以下结构:
[0132] 管理端,用于获取资源,并将资源发送至资源服务器;
[0133] 资源服务器,用于接收和存储管理端发送的资源,并将资源信息发送至web服务 器;根据客户端的请求将资源发送至客户端;
[0134] web服务器,用于根据客户端的请求将资源信息发送至客户端;
[0135] 后台数据库,用于存储多个节点的日志信息;
[0136] 客户端,用于将资源信息和自身的日志信息发送到后台数据库;接收P2P信令服务 器所发送的节点信息,并根据节点信息从节点获取资源,若没有节点或者从节点获取资源 失败,则发送请求给资源服务器从资源服务器获取资源。
[0137] 具体来说,web服务器包括资源信息模块,用于接收web服务器所发送的资源信息, 将资源信息和自身的日志信息发送到后台数据库,并将节点请求发送至P2P信令服务器;
[0138] 第一资源获取模块,用于接收P2P信令服务器所发送的与资源对应的社区中的节 点信息,并根据节点信息从节点获取资源;
[0139] 第二资源获取模块,用于没有节点或者从节点获取资源失败的情况下,发送请求 给资源服务器从资源服务器获取资源
[0140] P2P信令服务器,用于根据客户端所发送的节点请求,从后台数据库中获取当前时 刻的多个节点的日志信息生成社区网络结构并对社区网络结构进行社区结构划分,并对社 区结构划分结果进行合并处理,得到与与客户端日志信息对应的社区,并将该社区所包含 的节点信息发送至客户端。
[0141] 具体来说,P2P信令服务器包括社区网络结构构造模块,用于根据后台数据库中用 户的日志信息,构造以用户为节点,用户之间的关系权重为边的社区网络结构;
[0142] 日志信息获取模块,获取后台数据库中存储中节点的日志信息;
[0143] 社区结构划分模块,用于根据LabelRank算法对社区网络结构进行社区结构划分, 得到多个社区;
[0144] 合并模块:用于对社区结构划分模块得到的社区结构划分结果进行合并处理以去 除无效节点,得到客户端所对应的社区;
[0145] 节点信息模块,用于将客户端对应的社区所包含的节点信息发送至客户端。
[0146] 本发明的系统的优势在于:
[0147] 第一,可伸缩性;随着用户的增加,P2P信令服务器的压力会越来越大,因此服务器 支持集群的部署方案。
[0148] 第二,良好的用户体验;支持播放拖动、较少的等待时间以及稳定性等等。
[0149] 第三,降低成本;主要从减轻资源提供商的运营成本而言。
[0150] 本发明的系统为基于Falsh支持P2P技术的视频点播系统。系统前端采用Flex+ Action Script编写,主要功能有系统界面、播放控制等功能。系统P2P信令服务器采用的是 openRTMFP开源服务器。客户端与服务器连接采用的是RTMFP协议。
[0151]系统主要提供一个便捷、高效、低成本的播放方式。用户通过网页即可打开播放器 观看视频资源。观看视频资源的同时,也为其他用户提供资源,从而减轻资源服务器的负 担。
[0152] 在加强P2P网络传输的设计中,本系统可以实时的产生日志信息文件,而社区检测 划分算法也可以实时读取P2P点播系统产生的日志信息文件,并计算得到划分之后的结果, 本系统可以读取社区检测划分之后的结果,并对新登陆的用户的有效性进行判断,从而加 强P2P的网络传输性能,提高P2P资源传输的有效性。通过把社区检测划分技术应用到日志 信息文件的划分,系统可以从以往的运行情况,自动快速的辨别当前用户的网络性能,从而 把用户节点都转化为有效的P2P节点,P2P网络的可靠性得以保证。
[0153] 以上所述的仅为本发明的较佳实施例,凡在本发明的精神和原则范围内所作的任 何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
【主权项】
1. 一种基于社区检测算法P2P网络的调度方法,其特征在于,所述的方法设及客户端、 管理端、资源服务器、P2P信令服务器、web服务器;所述的资源服务器用于通过管理端获取 和存储资源并将资源信息发送给web服务器;包括W下步骤 步骤1:客户端从web服务器获取资源信息; 步骤2:客户端将资源信息和客户端自身的信息W日志信息的方式存储到后台数据库, 并且客户端向P2P信令服务器发送节点请求;所述的后台数据库用于存储多个节点的日志 信息; 步骤3:P2P信令服务器根据后台数据库中存储的日志信息生成社区网络结构,并对社 区网络结构进行社区结构划分,得到划分结构并进行合并处理去除无效节点,得到与客户 端对应的社区,并将该社区包含的节点发送至客户端; 步骤4:客户端根据步骤3中的节点信息连接节点,从节点获取资源。2. 根据权利要求1所述的基于社区检测算法P2P网络的调度方法,其特征在于,所述的 步骤3具体为: 子步骤31:获取后台数据库中存储中节点的日志信息; 子步骤32:根据节点的日志信息,构造W用户为节点,用户之间的关系为边,通过节点 带宽表示权重的社区网络结构; 子步骤33:根据LabelRank算法对社区网络结构进行社区结构划分,得到多个社区;其 中,LabelRank算法包含一个操作算子:传递操作; 所述的传递操作具体为:在每个节点定义一个IXn的向量P保存标签分布,n为节点的 数量;定义一个邻接矩阵A存储网络结构,贝化I(C)代表节点i属于标签C的概率,标签的集合 用C表示,并且标签的个数初始化为节点的个数n,每次计算都需要更新每个节点的向量P, 公式如下:其中,Nb(i)是节点i的邻居节点的集合,ki=|Nb(i)|是邻居节点集合的节点数量,P'l (C)代表更新后节点i属于标签C的概率,然后接着计算可W由矩阵A和向量P如下表示: AXP.............(2) 在传递操作算子中首先需要初始化向量P,初始化的具体方法为:每个节点的标签列表 的概率Pu初始化为邻居节点的权重和的倒数;如下所示: Pij = w/ki............(3) W表示节点巧Ij节点j的权重; 经过上述步骤后得到每个节点的向量P; 在传递操作算子的每次计算的更新过程中,设置一个阔值A,当节点的所属标签的概率 大于A时,则保留,小于则舍弃;且当节点中所有的标签概率都小于A时,则随机选取一个保 留; 子步骤34:对子步骤33中的社区中的节点进行合并处理W除去社区中的无效节点,得 到客户端所对应的社区; 子步骤35:将客户端所对应的社区的节点信息发送至客户端。3. 根据权利要求2所述的基于社区检测算法P2P网络的调度方法,其特征在于,所述的 LabelRank算法还包括一个操作算子:膨胀因子; 所述的膨胀因子具体为:在向量P中使用膨胀因子Tin来影响标签传递,其中in是一个 实数值,通过使用膨胀因子来解禪网络结构,每次计算TinP,Pi。都会增加inth次幕,如下公 式所示:计算后,它会使节点中高概率的标签概率的数值增加,低概率的标签概率的数值减少。4. 根据权利要求3所述的基于社区检测算法P2P网络的调度方法,其特征在于,所述的 LabelRank算法还包括一个操作算子:裁剪系数; 所述的裁剪系数具体为:在向量P中引入了一个操作符〇,定义阔值rG[0,l],在计算过 程中如果向量P中的标签概率小于r则把向量中的标签删除掉。5. 根据权利要求4所述的基于社区检测算法P2P网络的调度方法,其特征在于,所述的 LabelRank算法还包括一个操作算子:条件更新; 所述的条件更新具体为:定义一个条件更新操作符0 q,其含义为当算法过程中只有节 点与其邻居节点的标签向量不相等时才更新该节点,否则不进行更新操作;即在每次迭代 中,当节点满足下列公式时,才进行更新操作;玲是节点i在W往计算步骤甲概举最天的顿签集曾,M表示节点i的度,q是一个实数 值,q的取值范围[〇,1]。6. 根据权利要求2所述的基于社区检测算法P2P网络的调度方法,其特征在于,所述的 日志信息为用户ID、视频URL、视频播放方式、连接服务器时同一组中的化er数、用户IP、组 内其他用户ID、用户带宽。7. 根据权利要求1所述的基于社区检测算法P2P网络的调度方法,其特征在于,所述的 步骤4还包括:如果没有节点或者从节点获取资源失败,客户端则从资源服务器获取资源。8. -种基于社区检测算法P2P网络的调度系统,其特征在于,包括: 管理端,用于获取资源,并将资源发送至资源服务器; 资源服务器,用于接收和存储管理端发送的资源,并将资源信息发送至web服务器;根 据客户端的请求将资源发送至客户端; web服务器,用于根据客户端的请求将资源信息发送至客户端; 后台数据库,用于存储多个节点的日志信息; 客户端,用于将资源信息和自身的日志信息发送到后台数据库;接收P2P信令服务器所 发送的节点信息,并根据节点信息从节点获取资源,若没有节点或者从节点获取资源失败, 则发送请求给资源服务器从资源服务器获取资源。 P2P信令服务器,用于根据客户端所发送的节点请求,从后台数据库中获取当前时刻的 多个节点的日志信息生成社区网络结构并对社区网络结构进行社区结构划分,并对社区结 构划分结果进行合并处理,得到与与客户端日志信息对应的社区,并将该社区所包含的节 点信息发送至客户端。9. 根据权利要求8所述的基于社区检测算法P2P网络的调度系统,其特征在于,所述的 客户端包括: 资源信息模块,用于接收web服务器所发送的资源信息,将资源信息和自身的日志信息 发送到后台数据库,并将节点请求发送至P2P信令服务器; 第一资源获取模块,用于接收P2P信令服务器所发送的与资源对应的社区中的节点信 息,并根据节点信息从节点获取资源; 第二资源获取模块,用于没有节点或者从节点获取资源失败的情况下,发送请求给资 源服务器从资源服务器获取资源。10.根据权利要求8所述的基于社区检测算法P2P网络的调度系统,其特征在于,所述的 P2P信令服务器包括: 日志信息获取模块,获取后台数据库中存储中节点的日志信息; 社区网络结构构造模块,用于根据后台数据库中用户的日志信息,构造W用户为节点, 用户之间的关系权重为边的社区网络结构; 社区结构划分模块,用于根据LabelRank算法对社区网络结构进行社区结构划分,得到 多个社区; 合并模块:用于对社区结构划分模块得到的社区结构划分结果进行合并处理W去除无 效节点,得到客户端所对应的社区; 节点信息模块,用于将客户端对应的社区所包含的节点信息发送至客户端。
【文档编号】H04L29/08GK105915602SQ201610232013
【公开日】2016年8月31日
【申请日】2016年4月13日
【发明人】李 东, 张国鹏, 付雅晴
【申请人】华南理工大学