发明创造名称:一种基于zookeeper实现负载均衡的方法及系统
外观设计名称:
决定号:191365
决定日:2019-09-29
委内编号:1F244721
优先权日:
申请(专利)号:201611038251.4
申请日:2016-11-23
复审请求人:福建六壬网安股份有限公司
无效请求人:
授权公告日:
审定公告日:
专利权人:
主审员:胡丽丽
合议组组长:巩瑜
参审员:马鑫
国际分类号:G06F9/50
外观设计分类号:
法律依据:专利法第22条第3款
决定要点
:如果一项权利要求请求保护的技术方案与作为最接近现有技术的对比文件相比存在区别技术特征,但上述区别技术特征是本领域解决相应技术问题的惯用手段,则该权利要求相对于该对比文件和本领域惯用手段的结合不具有突出的实质性特点,不具备创造性。
全文:
本复审请求涉及申请号为201611038251.4,名称为“一种基于zookeeper实现负载均衡的方法及系统”的发明专利申请(下称本申请)。本申请的申请人为福建六壬网安股份有限公司,申请日为2016年11月23日,公开日为2017年05月31日。
经实质审查,国家知识产权局实质审查部门于2017年11月16日发出驳回决定,以权利要求1-8不具备专利法第22条第3款规定的创造性为由驳回,其具体理由是:(1)权利要求1,6与对比文件1的区别在于:1)基于zookeeper实现该方法;2)将任务就绪队列依照任务的时间松弛度从小到大的顺序依序输出待执行任务。而上述区别均属于本领域的惯用手段。因此,权利要求1不具备专利法第22条第3款规定的创造性。(2)从属权利要求2-5,7-8的附加技术特征或被对比文件1所公开,或属于本领域的惯用手段,因此从属权利要求2-5,7-8不具备专利法第22条第3款规定的创造性。
驳回决定中引用了一篇对比文件,即:
对比文件1:“云计算数据中心构建中负载均衡的研究”,靳琳,中国优秀硕士学位论文全文数据库(电子期刊),第14-23页,公开日为2016年03月31日。
驳回决定所依据的文本为:2017年08月07日提交的权利要求第1-8项;申请日2016年11月23日提交的说明书第1-15页、说明书附图第1-5页、说明书摘要和摘要附图。
驳回决定所针对的权利要求书的内容如下:
“1. 一种基于zookeeper实现负载均衡的方法,其特征在于,包括如下步骤:
S100:获取任务处理器负载信息素;
S200:调用用户发起的任务请求,获取所述任务请求的任务信息并存入任务就绪队列,将任务就绪队列依照任务的时间松弛度从小到大的顺序依序输出待执行任务;
S300:逐个将待执行任务分配给一最大分配概率的任务处理器,并计算每一任务分配方案的负载不均衡度,比较各任务分配方案的负载不均衡度大小并输出最优的任务分配方案;
每一待执行任务分配给一最大分配概率的任务处理器,并计算每一任务分配方案的负载不均衡度,比较各任务分配方案的负载不均衡度大小并输出最优的任务分配方案,包括以下步骤:
步骤A:初始化m个任务处理器负载信息素,根据式(1)计算所有任务处理器i(i=1,2,...,m)的初始负载信息素Load(i);
Load(i)=|Uti(i)-Uti(i).avg| 式(1)
步骤B:在n个任务中,根据所选的第一个任务i在满足式(2)的情况下,按照式(3)计算可执行该任务的处理器j,处理器j满足式(2)的任务分配概率pij,选择其中最大概率的处理器完成对要执行的任务的的部署,选择下一个任务继续执行上述操作,直至任务全部执行完,得到一种分配方案;
Ti<Sj 式(2)
步骤C:对所分配的任务处理器按照式(4)进行负载信息素Load’(i)更新,i为参与分配任务的处理器,并根据式(5)计算该方案的负载不均衡度H;
Load'(i)=(1-ρ)Load(i) ρΔLoad(i)
步骤D:更换所选的第一个任务转至步骤B,直至不同的n种方案处理完毕;
步骤E:比较n中方案的负载不均衡度大小,即比较H(i)的大小,其中i=1,2,...,n,选择最小不均衡度的方案作为最优的任务分配方案。
步骤F:根据式(6)更新全部任务处理器的负载信息素Load’(i)(i=1,2,...,m)
2. 根据权利要求1所述的基于zookeeper实现负载均衡的方法,其特征在于,所述步骤B中,获取最大分配概率的任务处理器,包括 如下步骤;
建立满足条件Ti<Sj的任务处理器选择表,其中Ti表示任务i所需的资源,Sj表示任务处理器j当前持有的资源;
计算最大分配概率的任务处理器:
其中pij表示任务i分配到任务处理器j的概率,a表示信息素启发因子,b表示期望启发因子,A表示任务处理器选择表中对应的任务处理器集合,n表示任务需求资源与任务处理器持有资源的欧氏距离的倒数。
3. 根据权利要求2所述的基于zookeeper实现负载均衡的方法,其特征在于:每一待执行任务分配给一最大分配概率的任务处理器后还包括所述步骤C更新任务处理器的负载信息素,所述更新任务处理器的负载信息素的方法为:
Load'(i)=(1-ρ)Load(i) ρΔLoad(i)
其中,Load'(i)表示更新的负载信息素,i遍历所分配的任务处理器编号,p表示信息素挥发系数介于0和1,△Load(i)表示信息素增量,H表示所分配任务处理器的负载不均衡度,disnum表示所分配的任务处理器数。
4. 根据权利要求1‐3任一所述的基于zookeeper实现负载均衡的方法,其特征在于:在输出最优的任务分配方案之后还包括:
将未完成任务插入到任务就绪队列,将已完成任务依照任务的时间松弛度大小插入等待队列,所述等待队列等待下一个任务周期插入到任务就绪队列。
5. 根据权利要求1‐4任一所述的基于zookeeper实现负载均衡的方法,其特征在于:在输出最优的任务分配方案之后还包括,所述步骤F中,更新全部任务处理器的负载信息素:
依据最优任务分配方案的负载不平衡度更新全部任务处理器的负载信息素:
Load'(i)=(1-ρ)Load(i) ρΔLoad(i)
6. 一种基于zookeeper实现负载均衡的系统,其特征在于,包括:
模块A:为采集模块,用于获取任务处理器负载信息素;
模块B:为任务管理模块,用于调用用户发起的任务请求,获取所述任务请求的任务信息并存入任务就绪队列,将任务就绪队列依照任务的时间松弛度从小到大的顺序依序输出待执行任务;
模块C:为任务处理模块,逐个将待执行任务分配给一最大分配概率的任务处理器,并计算每一任务分配方案的负载不均衡度,比较各任务分配方案的负载不均衡度大小并输出最优的任务分配方案;
所述模块C,每一待执行任务分配给一最大分配概率的任务处理器后还包括更新任务处理器的负载信息素的方法,所述更新任务处理器的负载信息素的方法被进一步配置为:
Load'(i)=(1-ρ)Load(i) ρΔLoad(i)
其中,Load'(i)表示更新的负载信息素,i遍历所分配的任务处理器编号,p表示信息素挥发系数介于0和1,△Load(i)表示信息素增量,H表示所分配任务处理器的负载不均衡度,disnum表示所分配的任务处理器数。
7. 根据权利要求6所述的基于zookeeper实现负载均衡的系统,其特征在于:所述模块C被进一步配置为包括用于获取最大分配概率的任务处理器的统计单元,所述统计单元包括建立子单元及概率计算子单元,
建立子单元,用于建立满足条件Ti<Sj的任务处理器选择表,其中Ti表示任务i所需的资源,Sj表示任务处理器j当前持有的资源;
概率计算子单元,用于计算最大分配概率的任务处理器:
其中pij表示任务i分配到任务处理器j的概率,a表示信息素启发因子,b表示期望启发因子,A表示任务处理器选择表中对应的任务处理器集合,n表示任务需求资源与任务处理器持有资源的欧氏距 离的倒数。
8. 根据权利要求6‐7所述的基于zookeeper实现负载均衡的系统,其特征在于:所述系统还包括监听模块,
所述监听模块用于在输出最优的任务分配方案之后,将未完成任务插入到任务就绪队列,将已完成任务依照任务的时间松弛度大小插入等待队列,所述等待队列等待下一个任务周期插入到任务就绪队列。 ”。
申请人(下称复审请求人)对上述驳回决定不服,于2018年02月10日向国家知识产权局提出了复审请求,未修改申请文件。复审请求人认为:权利要求1,6与对比文件1的区别在于:(1)一种基于zookeeper实现负载均衡的方法;(2)将任务就绪队列依照任务的时间松弛度从小到大的顺序依序输出待执行任务;(3)步骤300的所有技术特征。对于区别(1)和区别(2),本申请为了解决各个节点数据均衡处理且容易出现单点故障的问题,采用了zookeeper的方式,其没有被对比文件1公开也不属于本领域的惯用手段。对于区别(3),其与对比文件1的步骤完全不同且实现的功能也不同。本申请基于zookeeper实现负载均衡方法采取全局负载信息素更新策略,使得最终的任务分配方案更优更可靠,采用任务处理模块支持周期任务和单次任务,任务管理模块可以单机或多机部署,可以分布式集群方式部署,从而减少系统受到攻击避免单点故障。
经形式审查合格,国家知识产权局于2018年03月12日依法受理了该复审请求,并将其转送至实质审查部门进行前置审查,实质审查部门在前置审查意见书中坚持驳回决定。
随后,国家知识产权局成立合议组对本案进行审理。
合议组于2019年04 月30 日向复审请求人发出复审通知书,指出权利要求1-8相对于对比文件1和本领域惯用手段的结合不具备专利法第22条第3款规定的创造性。对于复审请求人在提出复审请求时所陈述的意见,合议组认为:1)区别(1)和(2)虽然没有被对比文件1公开,但是对比文件1公开的基于蚁群算法的负载均衡方法同样可以解决数据节点之间的负载均衡问题以及单点故障问题。且zookeeper为现有技术中常见的用于分布式结构中的任务协调软件,为了满足分布式任务调度应用中的负载均衡需求,将对比文件1公开的负载均衡算法应用在采用zookeeper实现任务调度的环境中,对本领域技术人员而言是容易想到的。2)区别(3)中的大部分技术特征已被对比文件1公开,没有公开的技术特征也属于本领域技术人员基于对比文件1公开的内容经过公知的变换容易想到的。
复审请求人于2019 年06 月10 日提交了意见陈述书,未修改申请文件。复审请求人认为:权利要求1,6与对比文件1的区别在于:(1)一种基于zookeeper实现负载均衡的方法;(2)将任务就绪队列依照任务的时间松弛度从小到大的顺序依序输出待执行任务;(3)原始权利要求2的附加技术特征。对于区别(1)和区别(2),本申请为了解决各个节点数据均衡处理的需要以及容易出现单点故障的问题而采用zookeeper的方式,其没有被对比文件1公开也不属于本领域的惯用手段。对于区别(3),其与对比文件1的步骤完全不同且实现的功能也不同。本申请基于zookeeper实现负载均衡方法随着任务数量的不断增加仍可以保持良好的性能与效率,而且采取全局负载信息素更新策略,使得最终的任务分配方案更优更可靠;采用任务处理模块对任务处理器进行统一管理、分配,支持周期任务和单次任务。任务管理模块可以单机或多机部署,可以分布式集群方式部署,减少系统受到攻击,从而避免出现单点故障。
在上述程序的基础上,合议组认为本案事实已经清楚,可以依法作出审查决定。
二、决定的理由
审查文本的认定
复审请求人提出复审请求和答复复审通知书时均未对申请文件进行修改,本复审请求审查决定所针对的审查文本与驳回决定和复审通知书所针对的审查文本相同,为:2017年08月07日提交的权利要求第1-8项;申请日2016年11月23日提交的说明书第1-15页、说明书附图第1-5页、说明书摘要和摘要附图。
关于专利法第22条第3款
专利法第22条第3款规定:创造性,是指与现有技术相比,该发明具有突出的实质性特点和显著的进步,该实用新型具有实质性特点和进步。
如果一项权利要求请求保护的技术方案与作为最接近现有技术的对比文件相比存在区别技术特征,但上述区别技术特征是本领域解决相应技术问题的惯用手段,则该权利要求相对于该对比文件和本领域惯用手段的结合不具有突出的实质性特点,不具备创造性。
权利要求1-8不具备专利法第22条第3款规定的创造性。
2.1权利要求1保护一种基于zookeeper实现负载均衡的方法,对比文件1公开了云计算数据中心构建中负载均衡的研究方法,具体特征如下(见正文第14-23页):业务请求资源时管理层将用户请求封装为虚拟机形式进行资源分配,因此负载均衡算法也就是虚拟机放置算法(相当于实现负载均衡的方法);要放置的虚拟机集合V={vm1,vm2,...,vmk}(相当于任务),服务器集合M={m1,m2,...,ml}(相当于任务处理器),信息启发因子a,期望启发因子β,迭代次数Imax,信息素挥发率ρ,蚂蚁个数k,最佳虚拟机放置方案F;虚拟机部署时需要满足一定的约束条件,即虚拟机资源需求的和不能超过服务器的资源总量,如(3-5)所示:
。
该算法包括:
Stepl:初始化迭代次数I=0,初始化蚁群,对所有服务器的信息素进行初始化,k只蚂蚁anti从k个虚拟机进行搜索,所有的蚂蚁的禁忌表tabui=Ф。
服务器的信息素计算公式为:
(相当于步骤A中初始化m个任务处理器负载信息素,计算所有任务处理器i(i=1,2,...,m)的初始负载信息素Load(i))。
Step2:为k只蚂蚁建立禁忌表tabui和躲避列表Ei。
Step3:k只蚂蚁在满足公式(3-5)的情况下按照公式(3-9)选择某台服务器,把虚拟机部署在该服务器上,并且把该服务器加入到对应蚂蚁的禁忌表中。虚拟机vmi在第t次搜索时选择物理机mj的概率 的计算公式为:
式中allowedi=M-tabui表示允许蚂蚁anti下一步进行选择的服务器的集合;Ei是为anti建立的物理机躲避列表,我们期望把不同资源偏好的虚拟机部署在一台物理机上,如果物理机性能标志与anti中虚拟机请求的资源偏好相同,将该物理机加入Ei,从而避免了两个需求类型相同的虚拟机被放置到同一台服务器上; 表示第t次搜索时虚拟机vmi放置在服务器mj上的信息素;a表示信息素启发系数;β表示期望启发系数;表示启发函数,取值为 =1/MDij (t), MDij(t)的值越小,的值越大,值越大,虚拟机vmi选择服务器mj进行放置的期望也就越大(相当于步骤300和步骤B中的逐个将待执行任务分配给一最大分配概率的任务处理器;具体在n个任务中,根据所选的第一个任务计算可执行该任务的处理器j,以及处理器j的任务分配概率pij,选择其中最大概率的处理器完成对要执行的任务的部署)。
Step4:蚂蚁部署完虚拟机后,对所分配的服务器按照公式(3-10)进行单一信息素更新。虚拟机vmi和物理机mj组合上的信息素更新方法如公式(3-10)所示:
。式中ρ代表信息素挥发系数(0<><>
Step5:当k只蚂蚁完成所有虚拟机部署时,得到了k个放置方案(相当于选择下一个任务继续执行上述操作,直至任务全部执行完,得到一种分配方案),根据公式(3-2)计算每个方案的负载不均衡度,并进行对比,得到此次循环中的最佳放置方案和最小负载不均衡度,选择使得负载不均衡度最低的放置方案。服务器群的负载不均衡度为N,计算公式如(3-2)所示:
(3-2)。
式中表示单个服务器mi中资源R的利用率 ,表示资源R的不均衡度, 表示服务器群中资源R的平均利用率。
Step6:当k只蚂蚁完成所有虚拟机的部署后,对最优放置方案选择的虚拟机和服务器按照公式(3-11)进行全局信息素更新(相当于步骤C对所分配的任务处理器按照式(4)进行负载信息素Load’(i)更新,i为参与分配任务的处理器);
式中Ngb(t)代表此次迭代搜索完成为止发现的全局最优解。
Step7:对当前迭代次数I进行判断:如果I
Step8:退出迭代循环,算法结束,输出最佳放置方案F。对比文件1的第15页的倒数第8-12行还记载了“FS表示从V到M的所有可行的放置方案的结合,面向负载均衡的虚拟机放置的优化目标,就是从FS中选择一个使得云计算数据中心负载不均衡度最低的放置方案” (隐含公开比较多种方案的负载不均衡度大小,即比较H(i)的大小,选择最小不均衡度的方案最为最优的任务分配方案),其中,蚂蚁anti在选择路径时,根据各路径上的信息素来进行决定,被选择的服务器都会被记录到禁忌表tabui中, tabui在放置虚拟机的过程中不断地进行更新。
由此可见,权利要求1与对比文件1的区别在于:(1)该负载均衡方法基于zookeeper,还包括获取任务处理器负载信息素,以及调用用户发起的任务请求,获取所述任务请求的任务信息并存入任务就绪队列,将任务就绪队列依照任务的时间松弛度从小到大的顺序依序输出待执行任务的步骤;(2)权利要求1与对比文件1中初始负载信息素的计算方式不同,权利要求1中的计算方式为Load(i)=|Uti(i)-Uti(i).avg|,而对比文件1则为;权利要求1中选择处理器要满足前提条件即Ti<>
(3)所有任务分配完之后,根据公式(5)“”计算方案的负载不均衡度,然后更换所选的第一个任务转至步骤B,直至不同的n种方案处理完毕,再比较n种方案的负载不均衡度大小,选择最优的任务分配方案;最后根据式(6)“”更新全部任务处理器的负载信息素。
基于上述区别确定本申请实际所要解决的技术问题是:1)如何对负载均衡的应用场景进行选择;2)如何计算处理器的初始负载信息素、如何计算处理器的任务分配概率以及如何计算分配方案的负载不均衡度;3)如何进行任务分配方案的迭代计算以得到最优方案以及如何更新负载信息素。对于区别1),在对比文件1公开了用于云计算中心的负载均衡算法的基础上,本领域技术人员公知zookeeper为现有技术中常见的用于分布式结构中的任务协调软件,在使用该软件实现分布式任务调度的应用中也具有公知的负载均衡需求,因而为了满足该需求,而将对比文件1公开的负载均衡算法应用在采用zookeeper实现任务调度的环境中,即将能够解决相同问题的算法应用于不同的应用场景下,对本领域技术人员而言是容易想到的;其次为了保证多任务被有序的执行而将用户发起的任务请求的相关信息存入队列中进行等待,以及为了准确分配任务而在分配任务前获取负载信息素,都属于本领域的惯用手段;此外在多任务调度管理中为了保证紧急任务优先执行,而根据任务的紧急程度给任务分配优先级,松弛度越小的任务越需要优先执行,其优先级越高,也属于本领域的惯用手段;从而容易想到“调用用户发起的任务请求,获取所述任务请求的任务信息并存入任务就绪队列,将任务就绪队列依照任务的时间松弛度从小到大的顺序依序输出待执行任务”。
对于区别2),对比文件1已经公开了 “”来计算服务器的信息素,其对服务器包含的多种资源的信息素进行了数学平均,在对比文件1已经给出了基于多种资源计算信息素的基础上,本领域技术人员根据应用环境和实际需求,仅选择一种资源来计算信息素从而得到计算公式“Load(i)=|Uti(i)-Uti(i).avg|”是容易想到的;对本领域技术人员而言,为了保证任务顺利的实施,处理器的处理能力通常要大于待分配的任务的需要,从而为了使得部署的服务器都满足蚂蚁的需求,设定为在选择服务器时满足特定的前提条件,即满足某个任务需要的资源要小于具体某个服务器具有的资源也就是满足“Ti<>
对于区别3),对比文件1已经公开了在每一个任务分配完服务器之后计算每个方案的负载不均衡度的方法即 ,式中表示单个服务器mi中资源R的利用率 ,其对于服务器中各个资源的负载不均衡度进行了累加求和,本领域技术人员基于对比文件1公开的多个资源负载不均衡度的计算方法基础上,为了计算单个资源的负载不均衡度,容易想到采用N=来计算负载不均衡度,从而也就得到 “”。此外对比文件1公开了当k只蚂蚁部署完之后需要判断当前迭代次数,如果小于Imax值,再进行下一轮k只蚂蚁的部署直到迭代次数达到Imax,而对本领域技术人员而言,为了使得算法较好的收敛而根据实际需要设置特定的迭代次数,属于本领域的惯用手段,基于上述内容,本领域技术人员容易想到将任务的个数作为迭代次数即“更换所选的第一个任务转至步骤B,直至不同的n种方案处理完毕”;以及为了便于后续任务的有效分配,本领域技术人员基于对比文件1公开的在全部蚂蚁完成虚拟机放置之后的全局信息素更新计算公式“
”的基础上,容易想到采用同样的计算方法在选择出最优分配方案之后来更新全部任务处理器的负载信息素即“” 。
因此在对比文件1的基础上结合上述惯用手段得到该权利要求的技术方案对本领域技术人员而言是显而易见的,从而该技术方案不具有突出的实质性特点,因此不符合专利法第22条第3款的规定。
2.2权利要求2的附加技术特征其进一步限定了公式(2)和公式(3)中的各个参数的定义,对比文件1已公开了以下特征(参见同上):k只蚂蚁在满足公式(3-5)的情况下按照公式(3-9)选择某台服务器,把虚拟机部署在该服务器上,并且把该服务器加入到对应蚂蚁的禁忌表中。虚拟机部署时需要满足一定的约束条件,即虚拟机资源需求的和不能超过服务器的资源总量,如(3-5)所示:
。
虚拟机vmi在第t次搜索时选择物理机mj的概率 (t)的计算公式为:
(3-9)
式中allowedi=M-tabui表示允许蚂蚁anti下一步进行选择的服务器的集合,Ei是为anti建立的物理机躲避列表,如果物理机性能标志与anti中虚拟机请求的资源偏好相同,将物理机加入Ei;表示第t次搜索时虚拟机vmi放置在服务器mj上的信息素;a表示信息素启发系数(相当于a表示信息素启发因子);β表示期望启发系数(相当于b表示期望启发因子);j∈allowedi∧j∈Ei即处理器属于资源偏好相同的躲避列表中的处理器,在此基础上本领域技术人员容易想到当处理器属于对资源存在特定要求的集合例如任务处理器选择表中的任务处理器集合,也采用同样的计算方式即A表示任务处理器选择表中对应的任务处理器集合;表示启发函数,取值为 =1/MDij(t), MDij (t)的值越小,的值越大,虚拟机vmi选择服务器mj进行放置的期望也就越大;正文第16页还公开了一种蚂蚁选择服务器概率的计算公式(3-7):
Pij(t)表示t次循环后蚂蚁选择服务器mj的概率;表示能见度因数,其值是资源匹配度的倒数。此外对本领域技术人员而言,采用任务需求资源与任务处理器持有资源的欧氏距离作为资源匹配度度量属于较为常见的方式,从而在对比文件1已经公开的“表示能见度因数,其值是资源匹配度的倒数”基础上容易想到“n表示任务需求资源与任务处理器持有资源的欧氏距离的倒数”。此外“建立满足条件Ti<>
2.3权利要求3的附加技术特征进一步限定了公式(4)和公式(5)中各参数的定义,对比文件1已经公开了(参见同上):将一个虚拟机vmi放置在服务器mj上之后,虚拟机vmi和物理机mj组合上的信息素更新方法如公式(3-10)所示:。式中ρ代表信息素挥发系数(0<><1);1-ρ代表信息素残留系数;△t(t)代表本次迭代中蚂蚁anti在虚拟机vmi和服务器mj组合中的信息素増量。服务器群的负载不均衡度为n,计算公式如(3-2)所示: ,式中表示单个服务器mi中资源r的利用率,表示资源r的不均衡度,="">1);1-ρ代表信息素残留系数;△t(t)代表本次迭代中蚂蚁anti在虚拟机vmi和服务器mj组合中的信息素増量。服务器群的负载不均衡度为n,计算公式如(3-2)所示:>
当k只蚂蚁完成所有虚拟机的部署后,对最优放置方案选择的虚拟机和服务器按照公式(3-11)进行全局信息素更新;
式中Ngb(t)代表此次迭代搜索完成为止发现的全局最优解(相当于更新任务处理器的负载信息素)。
可见对比文件1公开了在每个任务分配之后采用公式(3-10)进行局部信息素更新及采用公式(3-2)计算负载不均衡度,在分配完所有任务后采用公式(3-11)进行全局信息素更新,基于对比文件1公开的上述内容的基础上,本领域技术人员根据应用环境和实际需求容易想到采用公式(3-10)的参数定义来定义公式(3-11)中有关信息素相关的参数;此外在对比文件1已经给出了基于多种资源计算负载不均衡度即“”的基础上,本领域技术人员根据应用环境和实际需求,仅选择一种资源来计算负载不均衡度是容易想到的,从而为了计算所分配的任务处理器的不均衡度也就容易得到“,disnum表示所分配的任务处理器数”。因此在其引用的权利要求不具备创造性的基础上,该权利要求也不符合专利法第22条第3款的规定。
2.4权利要求4的附加技术特征进一步限定了在输出最优任务分配方案之后将待完成的任务按照任务的时间松弛度大小顺序插入队列中等待下一个周期分配,对本领域技术人员而言,为了保证多个任务的顺序完成,而将本周期未完成的任务插入队列等待下一周期完成以及为了保证紧急任务优先完成而按照任务时间松弛度大小的顺序插入队列等待,都属于本领域的惯用手段。因此在其引用的权利要求不具备创造性的基础上,该权利要求也不符合专利法第22条第3款的规定。
2.5权利要求5的附加技术特征进一步限定了步骤F的实现方式,根据对权利要求1的评述可知,本领域技术人员已经有动机在“输出最优的任务分配方案之后更新全部任务处理器的负载信息素”,在此基础上,对比文件1公开了全局信息素的计算公式为“
”,本领域技术人员在该启示下,有动机根据应用环境的实际需求选择公式“”来实现输出最优的任务分配方案之后对全部任务处理器的负载信息素的计算。因此在其引用的权利要求不具备创造性的基础上,该权利要求也不符合专利法第22条第3款的规定。
2.6权利要求6请求保护一种基于zookeeper实现负载均衡的系统,对比文件1公开了云计算数据中心构建中负载均衡的研究方法,具体特征如下(见正文第14-23页):业务请求资源时管理层将用户请求封装为虚拟机形式进行资源分配,因此负载均衡算法也就是虚拟机放置算法(相当于实现负载均衡,则必然存在用于实现负载均衡的系统);要放置的虚拟机集合V={vm1,vm2,...,vmk}(相当于任务),服务器集合M={m1,m2,...,ml}(相当于任务处理器),信息启发因子a,期望启发因子β,迭代次数Imax,信息素挥发率ρ,蚂蚁个数k,最佳虚拟机放置方案F,虚拟机部署时需要满足一定的约束条件,即虚拟机资源需求的和不能超过服务器的资源总量,如(3-5)所示:
。
该算法包括:
Stepl:初始化迭代次数I=0,初始化蚁群,对所有服务器的信息素进行初始化,k只蚂蚁anti从k个虚拟机进行搜索,所有的蚂蚁的禁忌表tabui=Ф。
服务器的信息素计算公式为:(相当于获取任务处理器负载信息素,必然存在对应的获取模块)。
Step2:为k只蚂蚁建立禁忌表tabui和躲避列表Ei。
Step3:k只蚂蚁在满足公式(3-5)的情况下按照公式(3-9)选择某台服务器,把虚拟机部署在该服务器上,并且把该服务器加入到对应蚂蚁的禁忌表中。虚拟机vmi在第t次搜索时选择物理机mj的概率 的计算公式为:
式中allowedi=M-tabui表示允许蚂蚁anti下一步进行选择的服务器的集合;Ei是为anti建立的物理机躲避列表,如果物理机性能标志与anti中虚拟机请求的资源偏好相同,将物理机加入Ei;表示第t次搜索时虚拟机vmi放置在服务器mj上的信息素;a表示信息素启发系数;β表示期望启发系数;表示启发函数,取值为=1/MDij (t), MDij(t)的值越小,的值越大,值越大,虚拟机vmi选择服务器mj进行放置的期望也就越大(相当于逐个将待执行任务分配给一最大分配概率的任务处理器,必然存在对应的任务处理器模块)。
Step4:蚂蚁部署完虚拟机后,对所分配的服务器按照公式(3-10)进行单一信息素更新。虚拟机vmi和物理机mj组合上的信息素更新方法如公式(3-10)所示:
式中ρ代表信息素挥发系数(0<><>
服务器群的负载不均衡度为N,计算公式如(3-2)所示:
(3-2)
式中表示单个服务器mi中资源R的利用率 ,表示资源R的不均衡度, 表示服务器群中资源R的平均利用率(相当于每一待执行任务分配给一最大分配概率的任务处理器后还包括更新任务处理器的负载信息素的方法,所述更新任务处理器的负载信息素的方法被进一步配置为:
Load'(i)=(1-ρ)Load(i) ρΔLoad(i)
,其中Load'(i)表示更新的负载信息素,i遍历所分配的任务处理器编号,ρ表示信息素挥发系数介于0和1,△Load(i)表示信息素增量,H表示所分配任务处理器的负载不均衡度)。
Step5:当k只蚂蚁完成所有虚拟机部署时,得到了k个放置方案,根据公式(3-2)计算每个方案的负载不均衡度,并进行对比,得到此次循环中的最佳放置方案和最小负载不均衡度,选择使得负载不均衡度最低的放置方案(相当于计算每一任务分配方案的负载不均衡度,比较各任务分配方案的负载不均衡度大小并输出最优的任务分配方案)。
由此可见,权利要求6与对比文件1的区别在于:1)系统基于zookeeper,还包括任务管理模块,用于调用用户发起的任务请求,获取所述任务请求的任务信息并存入任务就绪队列,将任务就绪队列依照任务的时间松弛度从小到大的顺序依序输出待执行任务;2)权利要求6与对比文件1中的任务处理器负载不均衡度的计算方式不同,权利要求6中为,而对比文件1中则为。
基于上述区别,本申请实际要解决的技术问题是:如何基于zookeeper为多任务的负载均衡做准备以及如何计算负载不均衡度。
对于区别1),在对比文件1公开了用于云计算中心的负载均衡算法的基础上,本领域技术人员公知zookeeper为现有技术中常见的用于分布式结构中的任务协调软件,在使用该软件实现分布式任务调度的应用中也具有公知的负载均衡需求,因而为了满足该需求,而将对比文件1公开的负载均衡算法应用在采用zookeeper实现任务调度的系统中即将能够解决相同问题的算法应用于不同的应用场景下,对本领域技术人员而言是容易想到的;其次为了保证多任务被有序的执行而将用户发起的任务请求的相关信息存入队列中进行等待,属于本领域的惯用手段;此外在多任务调度管理中为了保证紧急任务优先执行,而根据任务的紧急程度给任务分配优先级,松弛度越小的任务越需要优先执行,其优先级越高,也属于本领域的惯用手段;从而容易想到设置任务管理模块用于“调用用户发起的任务请求,获取所述任务请求的任务信息并存入任务就绪队列,将任务就绪队列依照任务的时间松弛度从小到大的顺序依序输出待执行任务”。
对于区别2),在对比文件1已经公开了基于多种资源计算负载不均衡度即“”的基础上,本领域技术人员根据应用环境和实际需求,仅选择一种资源来计算负载不均衡度是容易想到的,从而为了计算所分配处理器的不均衡度也就容易得到“,disnum表示所分配的任务处理器数”。
因此在对比文件1的基础上结合上述惯用手段得到该权利要求的技术方案对本领域技术人员而言是显而易见的,从而该技术方案不具有突出的实质性特点,因此不符合专利法第22条第3款的规定。
2.7权利要求7-8的附加技术特征与权利要求2,4的附加技术特征相对应,基于对权利要求2,4的评述,在其引用的权利要求不具备创造性的基础上,权利要求7-8也不符合专利法第22条第3款的规定。
对复审请求人相关意见的评述
对于复审请求人答复复审通知书时提出的意见,合议组认为:
区别(1)虽然没有被对比文件1公开,但是对比文件1公开的基于蚁群算法的负载均衡方法同样可以解决数据节点之间的负载均衡问题以及单点故障问题, 且本领域技术人员公知基于zookeeper的应用中也具有负载均衡和避免单点故障的需求,比如《Hadoop应用开发实战详解 修订版》(万川梅 等著,中国铁道出版社,2014年8月出版)第369页记载了“将计算集群中的所有节点都纳入ZooKeeper管理,选择两个节点为Master服务节点,ZooKeeper自动在两个服务器节点中选择一个主服务节点,当主服务节点出现故障时,ZooKeeper自动将剩下的服务节点提升为主服务节点来管理,保证并行计算的分发和调度处理不会出现单点故障”以及“主节点能有效地将计算任务分发到不同的计算节点,实现并行计算任务在整个节点中的负载均衡”,其公开了通过zookeeper对集群节点进行管理来避免单点故障以及实现负载均衡,因此为了满足zookeeper场景下的该具体需求,而将对比文件1公开的负载均衡算法应用在采用zookeeper实现任务调度的系统中仅是将能够解决相同问题的算法应用于类似的应用场景下,对本领域技术人员而言是容易想到的。对于区别(2),其属于本领域的惯用手段,具体可见2.1条中的评述意见。
对于区别(3),针对权利要求1,区别(3)中的大部分技术特征已被对比文件1公开,没有公开的技术特征也属于本领域技术人员基于对比文件1公开的内容经过公知的变换容易想到的,具体参考2.1条中的评述意见。虽然本申请的方法可以随着任务数量增加而进行有效的任务管理,支持周期任务以及单次任务,但是其属于多任务调度管理中常见的例如采用任务松弛度对任务排序、将任务插入等待队列以及就绪队列等方式带来的常见的技术效果;至于采用全局负载信息素更新策略,对比文件1已经公开了在每次迭代中选出最优放置方案之后进行全局信息素更新,基于对比文件1公开的上述内容的基础上,本领域技术人员为了便于后续任务的有效分配而在n种方案都处理完选择出最优的任务分配方案之后再进行全局信息素的更新是容易想到的,且采用全局负载信息素更新策略使得分配方案更优的效果是可以合理预期的;对于任务管理模块采用单机或多机等部署方式,其在权利要求1中没有具体限定,仅仅是权利要求1的主题限定为基于zookeeper实现负载均衡的方法,而zookeeper用于分布式的任务协调管理属于本领域的惯用手段,因此其减少系统受到攻击的效果也是可以预期的。
三、决定
维持国家知识产权局于2017 年11 月16 日对本申请作出的驳回决定。
如对本复审请求审查决定不服,根据专利法第41条第2款的规定,复审请求人可以自收到本复审请求审查决定之日起三个月内向北京知识产权法院起诉。
郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。