一种基于请求响应的多CA自动调度方法与流程

文档序号:19729534发布日期:2020-01-18 03:47阅读:191来源:国知局
一种基于请求响应的多CA自动调度方法与流程

本发明涉及数字证书申请技术领域,具体涉及一种基于请求响应的多ca自动调度方法。



背景技术:

电子合同是目前安全高效的合同订立方法,符合国家法律法规。现有各第三方电子签名公司,往往采用集中托管数字证书私钥的方式,提供电子签名服务。数字证书私钥的效力相当于实体公章或签名,尽管电子签名公司可能会对数字证书私钥进行安全的加密存储,但实际比较难于约束和监管是否确实有效执行,所以秘钥的保存还是存在诸多风险的。

ca(certificateauthority)中心,又称为数字证书认证中心,作为电子商务交易中受信任的第三方,专门解决公钥体系中公钥的合法性问题。ca中心为每个使用公开密钥的用户发放一个数字证书,数字证书的作用是证明证书中列出的用户名称与证书中列出的公开密钥相对应。ca中心的数字签名使得攻击者不能伪造和篡改数字证书。

ra(registrationauthority),数字证书注册审批机构。ra系统是ca的证书发放、管理的延伸。它负责证书申请者的信息录入、审核以及证书发放等工作;同时,对发放的证书完成相应的管理功能。发放的数字证书可以存放于ic卡、硬盘或软盘等介质中。ra系统是整个ca中心得以正常运营不可缺少的一部分。



技术实现要素:

针对现有证书机制技术的前提是建立ca(certificateauthority–数字证书认证中心)以及配套的注册管理机构ra的系统。本发明的目的在于对当前的ca已经可以作为权威的、公正的、可信赖的第三方时,为其设计一个ra系统,能够使得用户更方便的以自己的名义获取证书,并且提高证书存储的可靠性,对数字证书进行有效的管理;同时可以针对不同的ca机构能够提供一个统一的接口实现完成证书的申请,对于不同的ca机构之间的流量划分,提供了一种基于请求响应的多ca自动调度方法,可以动态实时的调整分给各个ca机构的请求比例,来维护整个ra平台的正常运行。

一种基于请求响应的多ca自动调度方法,包括以下步骤:

s1.在电子合同的数字证书申请过程中,使用多ca机构对接一个ra,对ra整个流量划分,划分的过程设置一个计时器将其构造为一个定时任务;

s2.为定时任务设置一个分布式锁;

s3.获取ca的开关状态,并筛选出在线的ca列表;

s4.从步骤s3中在线的ca列表中获取ca的工作状态,若是运行状态,则直接获取数据,若是特殊状态,则对特殊状态进行处理:

所述的特殊状态包括:探测状态、试运行状态;

s5.获取运行状态下的ca的流量数据(包括成功调用的时间、超时时间、失败的个数、请求时间的平均值),对于不同类型的申请请求计算对应的流量划分值。

总的来说,在ra系统通过接入到多个ca机构的能力实现超高吞吐量能力的情况下,本发明解决各个ca机构之间的一个流量划分的问题,通过一个动态的调整策略实时最优的将用户的请求分配给各个ca机构。

具体地,该流量划分方法完成的工作包括:为流量划分过程设置定时任务、为定时任务设置分布式锁、获取在线的ca列表、获取各个ca的运行状态、处理特殊状态的ca机构、获取正常状态下的ca机构的请求数据的相关参数、对于不同类型的申请数据计算对应的流量划分值。

步骤s1中,所述的计时器的定时时间为10s~30s,能够定时计算流量,使得后面的流量分配更加准确;

步骤s2中,所述的分布式锁的有效时间为10s,该有效时间为最长占用时间,避免多机器同时执行,从而避免流量计算产生交叉,保证流量计算的准确性。

步骤s3中,首先,获取ca的开关状态,即ca可能因为内部或者外部原因而停止提供服务,本方法设置了对应各个ca开关状态的字段,若ca开关状态的字段没有数据则进行初始化设置默认值。其次,从已获取的ca开关状态中筛选出在线即开启的ca机构。

步骤s4中,所述的工作状态包括运行状态、探测状态、试运行状态;

查找各个在线ca的工作状态,该工作状态分为三种,其中两种是特殊状态,即探测状态、试运行状态,一种是正常状态,即运行状态。

若是运行状态,则直接获取数据,若是特殊状态,则对特殊状态进行处理,具体包括:

对于探测状态、试运行状态、运行状态三种工作状态,设置相应的字段,对于任意一个在线的ca机构,若查找结果是运行状态,则直接获取到该ca的相关数据,该数据包括成功调用的时间、超时时间、失败的个数、请求时间的平均值(即响应时间的平均值);若是探测状态与试运行状态,则对探测状态进行计数并自增,再针对不同的计数值定义不同的轮次进行处理;

进一步,针对不同的计数值定义不同的轮次进行处理,具体包括:

如是探测状态,设置多个轮次,当计数值依次增加经过不同的轮次,当计数值达到最后一轮,再使用一次向ca发送数字证书申请请求,如成功,则进入试运行状态;

如进入试运行状态,计算试运行状态的流量数据(包括连接失败率和超时个数),判断是否满足ca流量下线的条件,当流量数据中的连接失败率和超时个数达到设定的条件时,则该ca的状态设置回探测状态,当连接失败率和超时个数未达到设定的条件时,则设置多个轮次,当计数值依次增加经过不同的轮次,当计数值达到最后一轮,再计算试运行状态的流量数据,当计算的流量数据中的连接失败率和超时个数未达到设定的条件时,则进入运行状态。

获取ca的运行状态,得到该ca的流量数据,该流量数据包括成功调用的时间、超时时间、失败的个数、请求时间的平均值(即响应时间的平均值)。

处理特殊状态(探测状态、试运行状态)的ca,对于探测状态而言,将不同的计数值定义为不同的轮次,若当前轮次值等于设定的最后一轮的阈值时,则最后使用一个请求数据去向该ca发送证书申请请求,若申请成功,则进入试运行阶段,否则,轮次回滚至第一轮。

步骤s4中,不同类型的申请请求包括个人的申请请求和组织机构的申请请求;

对于不同类型的申请请求计算对应的流量划分值,具体包括:

若处于运行状态下的ca满足ca流量下线的条件,当连接失败率和超时个数达到设定的条件时,则该ca的状态设置回探测状态,若处于运行状态下的ca不满足ca流量下线的条件,则计算并分配流量;

进一步,计算并分配流量具体包括:

获取所有未下线的ca机构所对应的各个响应时间的平均值,每个未下线的ca机构对应一个响应时间的平均值t1,t2,t3…tn,n为ca机构的个数,从各个响应时间的平均值中选出最小值,将该最小值对应的ca机构为最大权重weightmax,计算出各个ca机构的权重分别为根据各个ca机构的权重计算各个在线的ca机构所占的百分比,根据该计算的百分比作为流量划分值。

利用之前计算出的各个未下线的ca机构的权重值,先求和计算出权重和,其次再计算出各个在线的ca机构所占的百分比。

查找出所有的试运行状态的ca机构,以及处于打开状态的试运行ca机构的百分比总量,将其从之前计算的在线ca机构所占权重中剔除,来重新计算出非试运行状态的各个ca机构所占的百分比,最后将该值存储方便下次的分流计算。

总体而言,通过本发明所构思的以上技术方案与现有技术相比,具有以下有益效果:

一、在当前的电子签名与电子签约领域,大部分ra与ca体系下的ra系统都是仅面向单ca机构的,随着时代的发展,伴随着国家政策的完善与丰富,电子签约在各行各业的普及率将会大大提高,数据量将会成倍的增长,面对大数据时代的电子签约行业,ra仅面向单ca机构的模式将会变成面向多个ca,但是多ca情况下,还没有很好的流量划分策略。本发明提出了一种实时动态的流量划分策略,准确高效地将用户的请求合理分配给不同的可用ca机构,维护了ra系统的稳定运行。

二、相比于传统的ra与ca体系,ra只能被动的依靠ca的状态来确定自身的状态,本发明可以根据ca的状态来主动控制ra的状态。在由于ca的内部因素或者网络状态等外部因素导致请求响应的时间过长的情况下,本方案可以通过请求响应的时间来自动控制ca机构的状态(上线、下线),来实现高可用,然后对当前在线的ca进行流量分配,达到高并发的目标。

三、相比于在其他领域的流量分配方案,本方案具有实时监测的优势,通过定时任务来实时监测请求响应的时间,达到实时更新流量分配的目标;相较于其他领域的流量分配方案,在电子合同领域,还没有提出类似的方案,因此本发明提出了一个新的流量分配方案,分配指标是请求响应的时长、请求响应的成功率等。

附图说明

图1为本发明基于请求响应的多ca自动调度方法的流程示意图;

图2为本发明实施例提供的一种应用于ra上的分流模块图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

如图1所示,一种基于请求响应的多ca自动调度方法,包括以下步骤:

s1.在电子合同的数字证书申请过程中,使用多ca机构对接一个ra,对ra整个流量划分,划分的过程设置一个计时器将其构造为一个定时任务;

s2.为定时任务设置一个分布式锁;

s3.获取ca的开关状态,并筛选出在线的ca列表;

s4.从步骤s3中在线的ca列表中获取ca的工作状态,若是运行状态,则直接获取数据,若是特殊状态,则对特殊状态进行处理:

所述的特殊状态包括:探测状态、试运行状态;

s5.获取运行状态下的ca的流量数据(包括成功调用的时间、超时时间、失败的个数、请求时间的平均值),对于不同类型的申请请求计算对应的流量划分值。

步骤s1中,所述的计时器的定时时间为10s~30s,能够定时计算流量,使得后面的流量分配更加准确;

步骤s2中,所述的分布式锁的有效时间为10s,该有效时间为最长占用时间,避免多机器同时执行,从而避免流量计算产生交叉,保证流量计算的准确性。

步骤s3中,首先,获取ca的开关状态,即ca可能因为内部或者外部原因而停止提供服务,本方法设置了对应各个ca开关状态的字段,若ca开关状态的字段没有数据则进行初始化设置默认值。其次,从已获取的ca开关状态中筛选出在线即开启的ca机构。

步骤s4中,所述的工作状态包括运行状态、探测状态、试运行状态;

查找各个在线ca的工作状态,该工作状态分为三种,其中两种是特殊状态,即探测状态、试运行状态,一种是正常状态,即运行状态。

若是运行状态,则直接获取数据,若是特殊状态,则对特殊状态进行处理,具体包括:

对于探测状态、试运行状态、运行状态三种工作状态,设置相应的字段,对于任意一个在线的ca机构,若查找结果是运行状态,则直接获取到该ca的相关数据,该数据包括成功调用的时间、超时时间、失败的个数、请求时间的平均值(即响应时间的平均值);若是探测状态与试运行状态,则对探测状态进行计数并自增,再针对不同的计数值定义不同的轮次进行处理;

进一步,针对不同的计数值定义不同的轮次进行处理,具体包括:

如是探测状态,设置多个轮次,当计数值依次增加经过不同的轮次,当计数值达到最后一轮,再使用一次向ca发送数字证书申请请求,如成功,则进入试运行状态;

如进入试运行状态,计算试运行状态的流量数据(包括连接失败率和超时个数),判断是否满足ca流量下线的条件,当流量数据中的连接失败率和超时个数达到设定的条件时,则该ca的状态设置回探测状态,当连接失败率和超时个数未达到设定的条件时,则设置多个轮次,当计数值依次增加经过不同的轮次,当计数值达到最后一轮,再计算试运行状态的流量数据,当计算的流量数据中的连接失败率和超时个数未达到设定的条件时,则进入运行状态。

获取ca的运行状态,得到该ca的流量数据,该流量数据包括成功调用的时间、超时时间、失败的个数、请求时间的平均值(即响应时间的平均值)。

处理特殊状态(探测状态、试运行状态)的ca,对于探测状态而言,将不同的计数值定义为不同的轮次,若当前轮次值等于设定的最后一轮的阈值时,则最后使用一个请求数据去向该ca发送证书申请请求,若申请成功,则进入试运行阶段,否则,轮次回滚至第一轮。

步骤s4中,不同类型的申请请求包括个人的申请请求和组织机构的申请请求;

对于不同类型的申请请求计算对应的流量划分值,具体包括:

若处于运行状态下的ca满足ca流量下线的条件,当连接失败率和超时个数达到设定的条件时,则该ca的状态设置回探测状态,若处于运行状态下的ca不满足ca流量下线的条件,则计算并分配流量;

进一步,计算并分配流量具体包括:

获取所有未下线的ca机构所对应的各个响应时间的平均值,每个未下线的ca机构对应一个响应时间的平均值t1,t2,t3…tn,n为ca机构的个数,从各个响应时间的平均值中选出最小值,将该最小值对应的ca机构为最大权重weightmax,计算出各个ca机构的权重分别为根据各个ca机构的权重计算各个在线的ca机构所占的百分比,根据该计算的百分比作为流量划分值。

如图2所示,一种应用于ra上的分流模块图,包括:请求接入层、请求处理层和信息交互层,请求接入层包括ra证书申请模块,请求处理层包括信息校验模块、第三方服务模块、黑名单模块和ra证书服务模块,信息交互层包括kmc交互模块、分流模块、oss服务模块。

一种基于请求响应的多ca自动调度方法,包括。该方案包括以下5个步骤,以ca1、ca2、ca3为例,假设有具体实施方式如下:

步骤s1.完成30s的定时任务tt30的构造。

步骤s2.设置一个有效时长为10s的分布式锁dk10,来启动任务,同时也可以通过设置对应的值paunum来强制暂停定时任务的执行。

步骤s3.首先,获取ca的开关状态onoffstatus(),即ca可能因为内部或者外部原因而停止提供服务,本方法设置了对应各个ca开关状态的字段,即onoffstatus(ca1),若ca开关状态的字段没有数据则进行初始化设置默认值,,即initdefault=onoffstatus(ca1)。

其次,从已获取的ca开关状态中筛选出在线即开启的ca机构,所有的开关状态的ca机构用一个集合表示,即setonoff(ca1,ca2,ca3),从中筛选出在线的ca机构用一个集合表示,即seton(ca1,ca3)

步骤s4.查找各个在线ca机构的工作状态,该运行状态分为三种,其中两种是特殊状态,即探测状态、试运行状态,一种是正常状态。用runningstatus()表示运行状态,即runningstatus(ca1)。

对于每一种工作状态,我们都设置了相应的字段,对于任意一个在线的ca机构,若查找结果是运行状态,将处于运行状态的ca机构用集合表示为setrunning(ca1,ca3),则直接获取到该ca的相关数据,该数据包括成功调用的时间、超时时间、失败的个数、请求时间的平均值(即响应时间的平均值),该数据表示为dataca≡(tcsuccess,tcout,numfair,tcavg);若是探测状态与试运行状态,则对探测状态进行计数并自增,再针对不同的计数值使用不同的进行处理。

对于探测状态而言,可以表示为explorestatus(),将不同的计数值定义为不同的轮次,例如:计数值calnum1-10为第一轮roud1,11-20为第二轮,21-30第三轮以此类推,91-100为最后一轮roudlast,即explorestatus(roudn),若当前轮次值等于设定的最后一轮的阈值roudn=roudlast时,则最后使用一个请求数据去向该ca发送证书申请请求,若申请成功,则进入试运行阶段,否则,轮次回滚至第一轮。

对于试运行状态而言,可以表示为testrunstatus(),首先对试运行中的数据是否已填充满,若已填充满,则删除试运行的计数值,取消试运行状态,进入后续的ca的数据获取阶段。若未填充满,则继续进行探测,直到当前轮次值等于设定的最后一轮的阈值。

步骤s5.根据各个ca机构的开关状态数据,即onoffstatus(),来获取当前请求类型的所有处于打开状态的ca机构,即seton(ca1,ca3),利用已经得到的所有ca的数据,以ca1为例,即datacfca≡(tcsuccess,tcout,numfair,tcavg),过滤出处于打开状态的ca机构的数据,对该数据进行计算并保存。

对于过滤得到的处于打开状态的ca机构的数据,以及对应的申请类型进行权重的计算,具体地计算过程如下:

第一步,判断处于打开状态的ca机构的数据是否需要进行切换,即通过该ca机构数据中的超时请求的时间tcout或者失败的次数numfair大于所设的阈值threshold1与threshold2,若有任意一个数据大于对应的阈值,则说明需要对该ca的运行状态进行切换,并将该ca机构设置为下线状态,即onoffstatus(ca1)=off。若该ca机构处于下线状态且不是唯一支持该请求类型的ca机构,则该ca机构的权重将会被设置为0,并返回该值,否则设置为最大值并返回该值;若该ca机构不处于下线状态则进入第二步骤。

第二步,对于每一个未下线状态的ca机构,根据与所有未下线的ca机构的平均最小值的比例,以时间作为标准,则是所有的ca机构中的平均请求时间最小指以及最大权重值来计算出该ca机构的权重值,假设未下线的ca机构为seton(ca1,ca2,…),n为ca机构的个数,平均请求时间为若其中的最小值为ca2的t2,最大的权重值为weightmax,那么各个ca的权重值为

利用之前计算出的各个未下线的ca机构的权重值,先求和计算出权重和,其次再计算出各个在线的ca机构所占的百分比,令各个ca机构的百分比为

查找出所有的试运行状态的ca机构,以及处于打开状态的试运行ca机构的百分比总量,将其从之前计算的在线ca机构所占权重中剔除,来重新计算出非试运行状态的各个ca机构所占的百分比,最后将该值进行存储方便下次的分流计算。

本发明重点在于在当前的电子合同与电子签约领域,大部分ra与ca体系下的ra系统都是仅面向单ca机构的,随着时代的发展,伴随着国家政策的完善与丰富,电子签约在各行各业的普及率将会大大提高,数据量将会成倍的增长,面对大数据时代的电子签约行业,ra仅面向单ca机构的模式将会变成面向多个ca,但是多ca情况下,还没有很好的流量划分策略。本发明提出了一种实时动态的流量划分策略,准确高效地将用户的请求合理分配给不同的可用ca机构,维护了ra系统的稳定运行。具体地处理流程可以分为5个步骤,通过该流量划分方法,能够有效的保证在高吞吐量背景下的多ca接入的ra系统中,保持ra系统的稳定运行。

以上,仅为本申请较佳的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应该以权利要求的保护范围为准。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1