本发明涉及数字电视广播技术领域,更具体地说,涉及频点资源分配方法和频点资源管理服务器。
背景技术:
频点的资源是广电进行数据播发使用的一个很重要的资源。所有频点的资源都是有限的,也是允许多客户端共享的,这不可避免会发生在同一频点、同一瞬时有多个客户端都想要占用资源的情况,但在同一频点、同一瞬时只能为一个客户端分配资源。
为了防止因各客户端在同一频点竞争资源而导致资源分配混乱的问题,目前采取的措施是:客户端在向频点资源管理服务器发出资源申请的同时,对所有频点的资源加一个全局的锁,加锁后只有本客户端能够获取资源、获取到资源后对频点资源管理服务器进行写操作(即填写本客户端要占用的频点和带宽),写操作完成后解锁,这样保证了在同一频点、同一瞬时只为一个客户端分配资源。
但该措施下,频点资源管理服务器只能逐个地为各客户端分配资源,而排在越后面的客户端等待时间就越长,而且网络间交互耗费时间较多,这些都导致了资源分配效率太低。
技术实现要素:
有鉴于此,本发明提供一种频点资源分配方法和频点资源管理服务器,以防止因各客户端在同一频点上竞争资源而导致资源分配混乱的问题,同时提高资源分配效率。
一种频点资源分配方法,应用于频点资源管理服务器,所述方法包括:
读取客户端发送的资源申请;
遍历各个频点,判断当前频点的资源是否被加锁以及当前频点是否有足够分配的资源;
若当前频点的资源已被加锁和/或当前频点没有足够分配的资源,继续对下一频点进行判断;
若当前频点的资源未被加锁并且当前频点有足够分配的资源,在当前频点上为本客户端分配资源,同时对当前频点的资源加锁,直至为本客户端资源分配完成后才解锁。
可选地,所述继续对下一频点进行判断之前,还包括:
判断当前频点是否为最后一个频点;
若当前频点并非最后一个频点,进入所述继续对下一频点进行判断的步骤;
若当前频点为最后一个频点,生成并输出提示申请失败的信号。
可选地,所述读取客户端发送的资源申请后,还包括:
对本客户端进行鉴权;
若鉴权通过,执行所述遍历各个频点,判断当前频点是否为目标频点的步骤。
一种频点资源管理服务器,包括:
输入端口,用于读取客户端发送的资源申请
处理器,用于遍历各个频点,判断当前频点的资源是否被加锁以及当前频点是否有足够分配的资源;若当前频点的资源已被加锁和/或当前频点没有足够分配的资源,继续对下一频点进行判断;若当前频点的资源未被加锁并且当前频点有足够分配的资源,在当前频点上为本客户端分配资源,同时对当前频点的资源加锁,直至为本客户端资源分配完成后才解锁。
可选地,所述处理器在继续对下一频点进行判断之前,还用于:判断当前频点是否为最后一个频点;若当前频点并非最后一个频点,进入所述继续对下一频点进行判断的步骤;若当前频点为最后一个频点,生成并输出提示申请失败的信号。
可选地,所述处理器在所述输入端口读取客户端发送的资源申请后,还用于对本客户端进行鉴权;若鉴权通过,执行所述遍历各个频点,判断当前频点的资源是否被加锁以及当前频点是否有足够分配的资源的步骤。
从上述的技术方案可以看出,本发明在任一频点为一个客户端分配资源时,仅对本频点的资源加锁,而不是对所有频点的资源加全局锁,这样不仅防止了因各客户端在同一频点上竞争资源而导致资源分配混乱的问题,而且可以实现同时有多个频点为不同客户端分配资源,因而提高了资源分配效率。并且,本发明从客户端发送资源申请直至资源分配结束的整个过程,都只需要在频点资源管理服务器中进行操作,因此客户端与频点资源管理服务器间交互耗费时间较少,这进一步提高了资源分配效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例公开的一种频点资源分配方法流程图;
图2为本发明实施例公开的又一种频点资源分配方法流程图;
图3为本发明实施例公开的一种频点资源管理服务器结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
参见图1,本发明实施例公开了一种频点资源分配方法,应用于频点资源管理服务器,以防止因各客户端在同一频点上竞争资源而导致资源分配混乱的问题,同时提高资源分配效率,所述频点资源分配方法包括:
步骤s01:读取客户端发送的资源申请。
具体的,客户端发送的资源申请实质就是对频点的带宽资源的申请。所述资源申请中除了包含本客户端申请的带宽,通常还携带有本客户端的区域码、本客户端申请的节目信息等。
步骤s02:遍历各个频点,判断当前频点的资源是否未被加锁以及当前频点是否有足够分配的资源;如果当前频点的资源已被加锁和/或当前频点没有足够分配的资源,继续对下一频点进行判断;如果当前频点的资源未被加锁并且当前频点有足够分配的资源,则进入步骤s03。
其中,所述判断当前频点的资源是否未被加锁以及当前频点是否有足够分配的资源,目的为了判断是否允许在当前频点上为本客户端分配资源。
具体的,由于所有频点的资源都是有限的,所以在采用当前频点为本客户端分配资源前,首先要判断当前频点是否有足够分配的资源,如果当前频点没有足够分配的资源,则不允许在当前频点上为本客户端分配资源。其中,所述判断当前频点是否有足够分配的资源,具体是指:判断当前频点已被占用的带宽与本客户端申请的带宽之和是否小于当前频点的带宽限额,若是,则判定当前频点有足够分配的资源,若否,则判定当前频点没有足够分配的资源。
同时,由于本发明实施例采用了锁机制(锁机制的详述请参见下文),使得当前频点的资源被加锁后不能在该频点为客户端分配资源,所以在采用当前频点为本客户端分配资源前,还要判断当前频点的资源是否被加锁,若已加锁,说明频点资源管理服务器正在该频点上为其他客户端分配资源,此刻不支持在该频点上为本客户端分配资源。
只有在当前频点有足够分配的资源,并且当前频点的资源未被加锁的情况下,才允许在当前频点上为本客户端分配资源。
步骤s03:在当前频点上为本客户端分配资源,同时对当前频点的资源加锁,直至为本客户端资源分配完成后才解锁。
具体的,为了防止因各客户端在同一频点竞争资源而导致资源分配混乱的问题,本发明实施例采用了锁机制,结合步骤s02-步骤s03可知该锁机制具体可描述为:在任一频点为一个客户端分配资源时,对当前频点的资源加锁,加锁后不能在当前频点为其他客户端分配资源,直至为本客户端资源分配完成后才解锁,才能在当前频点为下一客户端分配资源,从而防止了因各客户端在同一频点上竞争资源而导致资源分配混乱的问题。而且相较于现有技术采用的锁机制,本发明实施例中各频点的资源是否需要加锁是互不影响的,所以还可以实现同时有多个频点为不同客户端分配资源,从而提高了资源分配效率。
现有技术和本发明实施例采用的锁机制可以用一个形象的例子进行对比说明:一个停车场里有多个车位,为了防止同一瞬时有多辆车抢占同一车位的情况,现有技术为停车场大门上锁,在同一瞬时只能有一辆车进入停车场;而本发明实施例是针对车位上锁,在同一瞬时可以有多辆车分别进入停车场的不同车位,效率更高。
由上述描述可知,本发明实施例在任一频点为一个客户端分配资源时,仅对本频点的资源加锁,而不是对所有频点的资源加全局锁,这样不仅防止了因各客户端在同一频点上竞争资源而导致资源分配混乱的问题,而且可以实现同时有多个频点为不同客户端分配资源,因而提高了资源分配效率。
并且,本发明实施例中,从客户端发送资源申请直至资源分配结束的整个过程,都只需要在频点资源管理服务器中进行操作,因此客户端与频点资源管理服务器间交互耗费时间较少,这进一步提高了资源分配效率。
可选地,在本发明实施例公开的又一种频点资源分配方法中,所述继续对下一频点进行判断之前,还包括:判断当前频点是否为最后一个频点;若否,进入所述继续对下一频点进行判断的步骤;若是,生成并输出提示申请失败的信号,从而避免程序空转。所述又一种频点资源分配方法的具体方案如图2所示,包括:
步骤s01:读取客户端发送的资源申请。
具体的,客户端发送的资源申请实质就是对频点的带宽资源的申请。所述资源申请中除了包含本客户端申请的带宽,通常还携带有本客户端的区域码、本客户端申请的节目信息等。
步骤s02:遍历各个频点,判断当前频点的资源是否未被加锁以及当前频点是否有足够分配的资源;如果当前频点的资源已被加锁和/或当前频点没有足够分配的资源,进入步骤s03;如果当前频点的资源未被加锁并且当前频点有足够分配的资源,则进入步骤s05。
步骤s03:判断当前频点是否为最后一个频点;若当前频点并非最后一个频点,返回步骤s02继续遍历下一频点;若当前频点为最后一个频点,进入步骤s04。
步骤s04:生成并输出提示申请失败的信号,本客户端的资源申请以失败告终。
步骤s05:在当前频点上为本客户端分配资源,同时对当前频点的资源加锁,直至为本客户端资源分配完成后才解锁。
可选地,基于上述任一实施例,在本发明实施例公开的又一种频点资源分配方法中,所述读取客户端发送的资源申请后,还包括:对本客户端进行鉴权;若鉴权通过,执行所述遍历各个频点,判断当前频点是否为目标频点的步骤,从而避免未授权用户窃取资源。
此外,参见图3,本发明实施例公开了一种频点资源管理服务器,包括:
输入端口100,用于读取客户端发送的资源申请;
处理器200,用于遍历各个频点,判断当前频点的资源是否被加锁以及当前频点是否有足够分配的资源;若当前频点的资源已被加锁和/或当前频点没有足够分配的资源,继续对下一频点进行判断;若当前频点的资源未被加锁并且当前频点有足够分配的资源,在当前频点上为本客户端分配资源,同时对当前频点的资源加锁,直至为本客户端资源分配完成后才解锁。
可选的,处理器200在继续对下一频点进行判断之前,还用于:判断当前频点是否为最后一个频点;若当前频点并非最后一个频点,进入所述继续对下一频点进行判断的步骤;若当前频点为最后一个频点,生成并输出提示申请失败的信号。
可选的,处理器200在所述输入端口读取客户端发送的资源申请后,还用于对本客户端进行鉴权;若鉴权通过,执行所述遍历各个频点,判断当前频点的资源是否被加锁以及当前频点是否有足够分配的资源的步骤。
综上所述,本发明在任一频点为一个客户端分配资源时,仅对本频点的资源加锁,而不是对所有频点的资源加全局锁,这样不仅防止了因各客户端在同一频点上竞争资源而导致资源分配混乱的问题,而且可以实现同时有多个频点为不同客户端分配资源,因而提高了资源分配效率。并且,本发明从客户端发送资源申请直至资源分配结束的整个过程,都只需要在频点资源管理服务器中进行操作,因此客户端与频点资源管理服务器间交互耗费时间较少,这进一步提高了资源分配效率。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的频点资源管理服务器而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明实施例的精神或范围的情况下,在其它实施例中实现。因此,本发明实施例将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。