发明内容
针对现有技术存在的问题,本发明提供了一种集群环境下密码服务网络并行化的方法与系统,该方法在保证密码服务系统可靠性和低延时的前提下,通过增强密码服务系统的可扩展性,从而提高了密码服务系统对密码服务请求的并行处理能力。
本发明是这样实现的,一种集群环境下密码服务网络并行化的方法,包括:
在多密码模块-多密码服务器下,当客户端提交密码服务请求时,首先由密码服务控制调度单元(以下亦简称:控制节点)接收密码服务请求;一方面,采用双密码服务控制调度单元形成“主备工作模式”分发客户端的密码服务请求;另一方面,处于“主工作模式”的密码服务控制调度单元采用“先检测密码计算单元是否可用,再转发密码服务请求”(以下简称“先检测,再转发”) 的策略,选取检测响应时间最短的密码计算单元(以下亦简称:密码服务器) 作为转发密码服务请求的对象,并忽略其它密码计算单元的检测响应;
然后,密码计算单元接收到由密码服务控制调度单元转发而来的密码服务请求,通过“先检测密码计算单元上密码模块是否可用,再转发密码服务请求”的策略,选取检测响应时间最短的密码模块作为密码服务请求的处理模块,并忽略其它密码模块的检测响应;
最后,密码模块处理完密码服务请求后,将相应的密码服务响应返回给密码计算单元,再由密码服务计算单元返回给密码服务控制调度单元,并最终由密码服务控制调度单元返回给客户端。
进一步,所述集群环境下密码服务网络并行化的方法在多密码模块-多密码服务器下,客户端通过密码服务控制调度单元向密码计算单元提交密码服务请求,由密码计算单元选取本单元上响应最快的密码模块完成密码请求处理并返回处理结果;
具体包括:
采用双密码服务控制调度单元分发客户端的密码请求,双密码服务控制调度单元形成主备工作模式;主密码服务控制调度单元出现故障,备密码服务控制调度单元立刻接管密码请求分发服务;
密码服务控制调度单元对密码计算单元的选取和密码服务器对密码模块的选取采取先检测是否可用,再转发密码服务请求的策略;在只有一台密码计算单元在线,所述密码计算单元只有一块密码模块正常工作下,客户端密码服务请求得到响应。
进一步,所述集群环境下密码服务网络并行化的方法进一步包括:
先检测是否可用,再转发密码服务请求的策略,选取检测响应最快的密码计算单元和密码模块作为转发密码服务请求的对象,丢弃其它密码计算单元和密码模块的响应,进行密码服务请求处理。
进一步,所述先检测是否可用,再转发密码服务请求的策略选取密码计算单元进行服务,对每次密码服务请求,在线的密码计算单元数目不同;
密码计算单元为多个密码计算单元;每个密码计算单元上含多个密码模块。
本发明的另一目的在于提供一种集群环境下密码服务网络并行化系统包括:
密码服务中间件,用于向应用系统(即客户端)提供密码服务接口,适配网络后台密码服务设备(含密码服务调度控制单元和密码计算单元);向密码服务调度控制单元发送密码服务请求;
密码服务控制调度单元,采用主备工作模式,每个密码服务控制调度单元对客户端实施身份认证、接收并分发来自客户端的密码服务请求,选取响应最快的密码计算单元转发密码服务请求;
密码计算单元,密码服务控制调度单元的调度,选取本单元上响应最快的密码模块完成密码运算任务,并将密码运算结果返回给密码服务控制调度单元;
密码模块,用于进行密码运算,并将运算结果返回给密码计算单元;
接口协议模块,包含密码服务接口、密码服务中间件与密码服务控制调度单元、密码服务控制调度单元间、密码服务控制调度单元与密码计算单元之间的信息交互协议,以及密码计算单元与密码模块之间的交互的协议。
本发明另一目的在于提供一种利用上述的集群环境下密码服务网络并行化的方法的商业化运行平台。
本发明另一目的在于提供一种实现所述集群环境下密码服务网络并行化的方法的计算机程序。
本发明另一目的在于提供一种搭载有所述计算机程序的计算机。
本发明另一目的在于提供一种计算机可读存储介质,包括指令,当其在计算机上运行时,使得计算机执行所述的集群环境下密码服务网络并行化的方法。
本发明的优点及积极效果为:
本发明构建集群密码服务的新模式,为系统提供高性能、高可用、低延迟、可扩展的信息传输密码服务,为开发新型密码服务系统提供了技术支撑。
本发明提供的集群环境下密码服务网络并行化系统具有以下优点:
高可用。一方面,采用双密码服务控制调度单元分发客户端的密码请求,双密码服务控制调度单元节点形成主备工作模式,即:主密码服务控制调度单元出现故障,备密码服务控制调度单元立刻接管密码请求分发服务;另一方面,密码服务控制调度单元对密码计算单元的选取和密码计算单元对密码模块的选取采取“先检测是否可用,再转发密码服务请求”(以下简称“先检测,再转发”)的策略,保证在“只有一台密码计算单元在线,该密码计算单元只有一块密码模块正常工作”的情况下,客户端的密码服务能够得到响应。
低延迟。基于“先检测,再转发”的策略,选取检测响应最快的密码计算单元和密码模块作为转发密码服务请求的对象,丢弃其它密码计算单元和密码模块的响应,检测开销与网络故障时等待开销相比,可以忽略不计,因此达到密码服务请求处理低延迟的目的。
可扩展,即支持密码服务单元的在线接入和退出。由于每次密码服务请求采用“先检测、再转发”的策略选取密码计算单元进行服务,所以针对每次密码服务请求,在线的密码计算单元数目可以不同。一个密码计算单元的加入或退出系统,并不影响其它密码计算单元和整个系统的工作。
高性能。系统支持多个密码计算单元(每个密码计算单元上含多个密码模块)和多个密码模块同时工作,提高了密码服务的并行处理能力和性能。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
下面结合附图及具体实施例对本发明的应用原理作进一步描述。
图1,本发明实施例提供的集群环境下密码服务网络并行化的方法,包括:
S101:在多密码模块-多密码服务器下,当客户端提交密码服务请求时,首先由密码服务控制调度单元接收密码服务请求;一方面,采用双密码服务控制调度单元形成“主备工作模式”分发客户端的密码服务请求;另一方面,处于“主工作模式”的密码服务控制调度单元采用“先检测密码计算单元是否可用,再转发密码服务请求”(以下简称“先检测,再转发”)的策略,选取检测响应时间最短的密码计算单元作为转发密码服务请求的对象,并忽略其它密码计算单元的检测响应;
S102:然后,密码计算单元接收到由密码服务控制调度单元转发而来的密码服务请求,通过“先检测密码计算单元上密码模块是否可用,再转发密码服务请求”的策略,选取检测响应时间最短的密码模块作为密码服务请求的处理模块,并忽略其它密码模块的检测响应;
S103:最后,密码模块处理完密码服务请求后,将相应的密码服务响应返回给密码计算单元,再由密码服务计算单元返回给密码服务控制调度单元,并最终由密码服务控制调度单元返回给客户端。
下面结合具体分析对本发明作进一步描述。
本发明实施例提供的集群环境下密码服务网络并行化的方法,在多密码模块-多密码服务器下,客户端通过密码请求分发控制单元向密码服务器提交密码服务请求;
由密码服务器选取本单元上响应最快的密码模块完成密码请求处理并返回处理结果。
包括:
采用双控制节点分发客户端的密码请求,双控制节点形成主备工作模式;主控制节出现故障,备控制节点立刻接管密码请求分发服务;
控制节点对密码服务器的选取和密码服务器对密码模块的选取采取先检测是否可用,再转发密码服务请求的策略;在只有一台密码服务器在线,所述密码服务器只有一块密码模块正常工作下,客户端密码服务得到响应。
所述集群环境下密码服务网络并行化的方法进一步包括:
先检测是否可用,再转发密码服务请求的策略,选取检测响应最快的密码服务器和密码模块作为转发密码服务请求的对象,丢弃其它密码服务器和密码模块的响应,进行密码服务请求处理。
所述先检测是否可用,再转发密码服务请求的策略选取密码服务器进行服务,对每次密码服务请求,在线的密码服务器元数目不同;
密码服务器为多个密码服务器;每个密码服务器上含多个密码模块。
如图2所示,本发明提供的集群环境下密码服务网络并行化系统包括:
密码服务中间件,用于向应用系统提供密码服务接口和身份认证接口,适配网络后台密码服务设备;向控制中心发送密码服务请求;
密码服务控制调度单元,采用主备工作模式,每个控制节点对密码服务调用者实施身份认证、接收密码计算任务和密码运算任务分发处理,选取响应最快的密码计算单元转发密码服务请求;与密码计算节点处于同一个物理实体上,或单独存在于一台计算机上;
密码计算单元,用于接受控制单元的调度,选取本单元上响应最快的密码模块完成密码运算任务,并将密码运算结果返回给控制单元;
密码模块,用于进行密码运算,并将运算结果返回给密码计算单元;
接口协议模块,包含密码服务接口、密码服务中间件与控制节点、控制节点间、控制节点与计算节点之间的信息交互协议,以及密码计算单元与密码模块之间的交互的协议。
下面结合附图及具体实施例对本发明的应用原理作进一步描述。
图2,本发明实施例提供的集群环境下密码服务网络并行化系统,
主要由以下要素构成:
a.密码服务中间件【与调用密码服务的“应用软件”部署在同一台计算机中】:向应用系统提供密码服务接口和身份认证接口,适配网络后台密码服务设备;向控制中心发送密码服务请求。
b.密码服务控制调度单元【逻辑实体,包含密码服务控制调度软件】:采用主备工作模式,每个控制节点具备对密码服务调用者实施身份认证、接收密码计算任务和密码运算任务分发处理的功能,选取响应最快的密码计算单元转发密码服务请求。该实体为逻辑实体,可与密码计算节点处于同一个物理实体上,也可以单独存在于一台计算机上。
c.密码计算单元【逻辑实体,包含密码计算服务软件】:接受控制单元的调度,选取本单元上响应最快的密码模块完成密码运算任务,并将密码运算结果返回给控制单元。
d.密码模块:完成密码运算任务,并将运算结果返回给密码计算单元。
e.接口协议:包含密码服务接口、密码服务中间件与控制节点、控制节点间、控制节点与计算节点之间的信息交互协议,以及密码计算服务软件与密码模块之间的交互的协议。
由于采用通用的本地接口调用方法和消息传递系统,所以本方法适用于操作系统类型没有限制。
下面结合软件组成对本发明作进一步描述。
软件组成
集群密码服务器软件主要组成如下所示。
(1)密码服务中间件;
(2)密码服务调度控制软件;
(3)密码计算服务软件;
(4)密码模块驱动;
(5)操作系统。
根据软件组成,集群密码服务器的密码服务软件流程如图3所示。
下面结合软件分布对本发明作进一步描述。
本发明实施例提供的集群环境下密码服务网络并行化系统,软件之间的网络连接全部采用TCP/IP连接,保证连接的可靠性;同时,通过采用心跳检测和响应检测的方法,保证连接的高可靠性和低延迟。
本发明实施例提供的集群环境下密码服务网络并行化系统软件分布如图4 所示,其中:
(1)密码服务中间件:向上为应用系统提供身份认证接口和密码服务请求接口,向下转发应用的密码服务请求交由集群密码服务器处理。注意:只有通过身份认证的应用,密码服务中间件才将密码服务请求转发给控制节点。
(2)密码调度控制软件:一方面,在主控制节点和备用控制节点之间发送心跳信息,实时检测两个控制节点是否可用;另一方面,接收并转发来自客户端(密码服务中间件)的密码服务请求,选取响应时间最短的密码计算节点作为服务节点;
(3)密码计算服务软件:接收来自控制节点转发的密码服务请求,选取本地响应最快的密码模块作为服务模块,并向控制节点返回密码模块的计算结果。
下面结合密码服务中间件对本发明作进一步描述。
1、密码服务中间件,如图5应用与密码服务中间件处理流程图。
密码服务中间件向上为应用系统提供身份认证接口和密码服务请求接口,向下转发应用的密码服务请求交由集群密码服务器处理,处理流程如图5所示。
(1)应用调用“身份认证接口”,向密码服务中间件发送“身份认证请求” (具体实现形式:预置的数字证书),等待身份认证结果;
(2)密码服务中间件将应用发送的“身份认证请求”,转发给控制节点,并等待控制节点返回身份认证请求的验证结果;
(3)如果证书验证失败,则身份认证不通过,控制节点将验证失败信息返回给密码服务中间件,密码服务中间件拒绝向应用提供密码服务,密码服务停止;
(4)如果证书验证成功,则身份认证通过,控制节点将验证成功信息返回给密码服务中间件,则应用调用“密码服务接口”,向密码服务中间件发送“密码服务请求”;
(5)密码服务中间件接收到应用发送的“密码服务请求”后,将请求转发给控制节点上运行的密码调度控制软件进行处理;
(6)密码服务中间件接收返回的密码调度控制软件的“密码服务请求”的计算结果,并将请求的计算结果返回给应用。
下面结合密码调度控制软件对本发明作进一步描述。
如图6所示,图中:(a)、两个控制节点服务正常图;(b)、单控制节点服务出现故障图。
密码调度控制软件,一方面,在主控制节点和备用控制节点之间发送心跳信息,实时检测两个控制节点是否可用,保证集群密码服务器的高可用性;另一方面,接收并转发来自客户端(密码服务中间件)的密码服务请求,选取响应时间最短的密码计算节点作为服务节点,保证集群密码服务器的低延迟。
其中,在高可用方面。通过组建高可用集群,当其中一台密码调度控制单元发生故障时,另一台密码调度控制单元能够通过接管密码调度和控制服务。同时,可以保证在2台(数量可扩展)密码计算单元组成的密码服务器集群中的任意一台密码计算单元出现故障时,其它密码计算单元仍能保持对外不间断地(极小的时延)提供服务。
在整个过程中,对于外部用户来说都感觉不到应用出现了故障,如图6所示。最后,当集群中出现故障的密码计算单元和密码调度控制单元从故障中恢复后,高可用集群又能够重新恢复工作。通过这种部署方式,在充分利用硬件资源的情况下,最大限度地保证的集群的高可用性。
在低延迟方面,密码服务作为密码应用和服务的安全关键操作,其传输和处理的延时大小直接关系到密码业务处理流程的实时性。因此,对于密码服务请求处理流程来说,低延时是一个非常重要的指标。在本发明中,当有服务请求到达控制节点时,控制节点实时检测后端所有密码计算节点的密码请求响应状况,选请求响应时间最短的密码计算节点作为服务节点,自动屏蔽响应慢或者因故障无法提供服务的节点,从而保证密码网络服务的高可靠和低延迟。上述控制调度结构如图7所示,选取检测响应时间最快的节点,作为服务节点。此处示例为1号节点响应最快。
图中:表示用户请求与响应;表示检测与响应信息。
下面结合密码计算服务软件对本发明作进一步描述。
密码计算服务软件接收来自控制节点转发的密码服务请求,选取本地响应最快的密码模块作为服务模块,并向控制节点返回密码模块的计算结果。
密码模块的选取和密码服务请求发送的原理、方法和过程与图7类似,
图7是通过网络检测和转发密码服务请求,而密码模块的选取是通过操作系统下打开、使用和关闭设备的方法,向密码模块传送密码服务请求,并接收相应返回。
下面结合接口协议设计对本发明作进一步描述。
1、密码服务接口
因为密码服务中间件在操作系统下以动态链接库的形式存在,所以应用通过操作系统下调用动态链接库的方法,调用密码服务中间件提供的密码服务接口,具体接口调用格式包括:客户端函数名、请求类型、密钥句柄和密码操作正文,其中:请求类型、密钥句柄和密码操作正文3个部分共同组成“密码服务请求正文”。
2、密码服务中间件与控制节点之间通信协议内容与格式:
密码服务中间件将转发应用发送的密码请求,并包装成约定的内容和格式,具体内容和格式如下。
密码服务请求:[客户请求标记][密码服务请求序号][密码服务请求正文];
密码服务返回:[客户返回标记][密码服务请求序号][密码服务返回正文] 控制节点之间心跳同步通信协议内容与格式
控制节点之间主要存在心跳检测通信和日志信息同步通信,两种通信都是定时通信,其中,心跳检测通信是1000ms的发送周期,如果2000ms无法检测到心跳,则判断控制节点故障,完成控制节点的主备切换。
控制节点之间的心跳检测报文内容和格式如下。
心跳检测报文格式:[心跳检测标记][本节点运行状态];
心跳应答报文格式:[心跳响应标记][OK]。
3、控制节点与计算节点之间的通信协议内容与格式:
控制节点与计算节点之间主要存在低延迟检测报文和密码服务请求报文。
其中,低延迟检测报文是控制节点实时检测后端所有密码计算节点的密码请求响应状况所用的报文,由于可能多次的检测查询,因此需要使用“检测序号”对每个低延迟检测报文进行编号,同时每个低延迟检测请求需要带上“密码服务请求池序号”,以区分不同密码服务请求的检测信号。
低延迟检测的应答报文的内容和格式如下。
低延迟检测:[低延迟检测标记][密码服务请求序号][检测序号];
低延迟应答:[低延迟响应标记][密码服务请求序号][检测序号][OK]。
在确定服务的密码服务器之后,控制节点将转发应用发送的密码服务请求,格式与之前的密码服务请求相同;在密码服务器处理完请求之后,密码服务响应携带了“返回正文”,密码服务请求和返回报文的内容和格式如下。
密码服务请求:[密码服务请求标记][密码服务请求序号][密码服务请求正文]。
密码服务响应:[密码服务返回标记][密码服务请求序号][密码服务返回正文]。
4、密码计算服务软件与密码模块之间交互的协议内容和格式:
密码计算服务软件是通过操作系统下打开、使用和关闭设备的方法选取和使用密码模块的。
其中,对密码模块的检测是通过调用密码模块提供的自检命令完成的。
对密码模块传递的密码服务请求内容和格式如下:
密码服务请求:[请求类型][密钥句柄][密码操作正文];
密码服务响应:[请求类型][密码操作返回正文];
由“密码操作返回正文”组成“密码服务返回正文”。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用全部或部分地以计算机程序产品的形式实现,所述计算机程序产品包括一个或多个计算机指令。在计算机上加载或执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输)。所述计算机可读取存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如, DVD)、或者半导体介质(例如固态硬盘SolidState Disk(SSD))等。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。