CN113806786B - 一种软件授权管理方法、系统、设备及存储介质 - Google Patents
一种软件授权管理方法、系统、设备及存储介质 Download PDFInfo
- Publication number
- CN113806786B CN113806786B CN202111365630.5A CN202111365630A CN113806786B CN 113806786 B CN113806786 B CN 113806786B CN 202111365630 A CN202111365630 A CN 202111365630A CN 113806786 B CN113806786 B CN 113806786B
- Authority
- CN
- China
- Prior art keywords
- service
- license
- license check
- server
- file
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2107—File encryption
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Bioethics (AREA)
- Databases & Information Systems (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明实施例公开了一种软件授权管理方法、系统、设备及存储介质,相较于传统的软件授权实现技术,实施人员需要进行三步操作,具体如下:在服务器上由实施人员手动生成授权码,将授权码发送给服务商,服务商生成license文件由实施人员手动发放到服务器上。本发明实施例简化为:服务自动生成授权码,实施人员复制授权码申请授权文件到下发平台,服务自动拉取授权文件,这样实施人员只需要做一步操作,提高了人效,简化了实施人员需要登录每台服务器发放license文件的操作。
Description
技术领域
本发明实施例涉及软件授权技术领域,具体涉及一种软件授权管理方法、系统、设备及存储介质。
背景技术
软件授权管理的方式通常是在软件所在的服务器本地增加授权文件,授权文件中通常会存储软件服务所在的主机上,在软件运行的过程中动态获取授权文件中的信息。当主机的信息、时间等信息,或授权文件中所存在的信息发生改变时,软件内部会阻止软件的正常运行和使用,实现这些技术的关键在于授权文件中信息的生成、加密、校验。
为了提高软件的安全性,授权文件的生成会由几个步骤相互配合,首先会在软件的使用服务器上会有客户端获取服务器相关的信息,例如内核信息,网卡信息等。并使用客户端内置的加密算法对相关信息进行加密和签名处理生成软件授权码,防止在信息传递的过程中机器信息被篡改,客户端安全性由代码混淆工具和二进制编译文件保证。第二步,会由实施人员将软件授权码交予服务商根据事先协商好的加密和验签方式进行验证,并生成软件所需的授权文件。第三步,将授权文件放在软件所在的服务器上。至此完成软件的授权,软件可以正常运行。
软件使用的过程中,软件内部会定时去获取授权文件中的信息,去进行多种校验,每种校验是为了保证机器与软件的唯一性、使用时间、软件内部功能的限制。软件内部同样会通过解密授权文件中的签名进行校验,来保证授权文件未被篡改,当授权文件签名校验失败、使用时间为通过校验、服务器信息改变等校验不通过时,软件会实时的反馈出校验错误的原因,通知客户及时向服务商申请新的授权。
对于软件授权管理中,通常的软件设计中只是针对于单机服务进行的软件授权管理,这种授权管理有很多缺陷。由于现在的服务很多都比较庞大,采用了微服务的架构,存在多服务、多集群交叉部署的情况,在这种情况下,再对于某个服务进行一对一的授权码生成,授权文件的生成、存放与校验,将变的非常复杂,需要消耗很多的人力。另外还需要对资源管理计算的过程。
发明内容
为此,本发明实施例提供一种软件授权管理方法、系统、设备及介质,以解决目前只针对于单机服务进行的软件授权管理的设计带来的人力消耗过多的问题。
为了实现上述目的,本发明实施例提供如下技术方案:
根据本发明实施例的第一方面,提供了一种软件授权管理方法,所述方法包括:
在应用服务器的每个服务中引入license校验框架,通过第一license校验监测本地服务是否存在license文件;
如果所述服务本地存在license文件,则置所述服务为可用状态,否则置所述服务为不可用状态;
当所述服务为不可用状态时,由所述服务获取本机信息,自动生成授权码并向集中式管理服务器上报;
由所述集中式管理服务器提供接口或者界面,一次性将上报的所有应用服务器对应服务的授权码提供给实施人员用户端;
由所述实施人员用户端复制所述授权码向所述服务商服务器申请license文件,并将所述license文件放入所述集中式管理服务器的后台进行存储;
由所述服务从所述集中式管理服务器定时拉取所述license文件。
进一步地,通过第一license校验监测本地服务是否存在license文件,包括:
在所述服务部署初始化时,在本地固定目录中由所述服务监测license文件是否存在。
进一步地,由所述服务获取本机信息,自动生成授权码并向集中式管理服务器上报,包括:
将所述本机信息作为机器唯一标识;
利用与服务商服务器协定的加密算法进行加密和签名,生成授权码;
取配置文件中所述集中式管理服务器的地址,上报服务状态的和所述授权码;
所述本机信息包括:内核版本信息、mac地址信息、操作系统信息。
进一步地,由所述服务从所述集中式管理服务器定时拉取所述license文件,包括:
由所述服务向当所述集中式管理服务器发送定时拉取请求;
由所述集中式管理服务器判断自身是否存在所述license文件;
若存在所述license文件,向对应服务下发所述license文件。
优选地,向对应服务下发所述license文件时,所述集中式管理服务器根据上报的mac地址信息判定所述应用服务器同一机器上的多个服务,保证每个机器均有一个授权码。
优选地,所述方法还包括:
在所述license文件下发时,由服务商服务器将集群下各个服务的应用服务器IP地址加入所述license文件中;
当本地第一服务完成所述第一license校验后,按照预设心跳周期将自己的第一license校验结果、应用服务器IP地址上报到集群中其他应用服务器的各个第二服务;
由所述第一服务启动一个阻塞的线程来等待各个第二服务上报应用服务器IP地址和第一license校验结果;
在所述第一服务按照预设的第二license校验周期进行第二license校验;
若第二license校验结果通过,则所述服务正常运行;
若第二license校验结果失败,则对此节点的服务报出错误,并停止此节点的正常服务。
进一步地,在所述第一服务按照预设的第二license校验周期进行第二license校验,包括:
由所述第一服务接收到各个第二服务的心跳上报结果;
根据所述应用服务器IP地址设置对应第二服务的第一license校验结果;
记录接收到各个第二服务上报第一license校验结果的时间,对每个第二服务的应用服务器IP地址上报的第一license校验结果设置有效期;
判断在所述有效期内集群中所有服务的第一license校验结果是否为可用状态以及license文件是否被篡改;
若在所述有效期内集群中所有服务的第一license校验结果均为可用状态,且license文件未被篡改,则第二license校验结果通过;
若某个节点的license文件被篡改、所述第一license校验结果的有效期到期或所述第一license校验结果为不可用状态,则第二license校验结果失败。
优先地,在所述第一服务按照预设的第二license校验周期进行第二license校验,还包括:
若第二license校验结果失败,此节点同时向其他节点通知第二license校验失败的结果;
其他节点接收到该节点第二license校验失败通知后,将该节点应用服务器的第二license校验状态更新为失败且不设置过期时间,在下个第二license校验周期停止各自的正常服务。
优选地,在所述第一服务按照预设的第二license校验周期进行第二license校验,还包括:
在所述第二license校验中,监测发送端服务上报心跳时间是否超时,若发送端服务上报心跳时间超时,则当前接收端服务记录该发送端服务的连续超时次数,判断所述连续超时次数是否超过预设次数;如果所述连续超时次数超过所述预设次数,将该接收端服务的第二license校验结果置为失败,并将整个集群服务置为不可用状态,直到接收到该发送端服务的第二license校验结果通过的请求时,覆盖该接收端服务失败的第二license校验结果;如果所述连续超时次数未超过所述预设次数,将该接收端服务正常运行;所述预设次数等于有效期与心跳周期的比值;
在所述第二license校验中,监测接收端服务是否在预设时间内接收到各个发送端服务的心跳上报结果,若所述接收端服务超出所述预设时间接收不到至少一个发送端服务的心跳上报结果,则该接收端服务的第二license校验结果过期,直接将该发送端服务的第二license校验结果置为失败状态,等待该发送端服务的第一license校验结果通过的心跳上报结果重新覆盖。
优选地,所述方法还包括:
按照预设心跳周期上报的信息通过时间戳和预设签名规则来保证数据不被篡改。
优选地,所述方法还包括:
所述心跳周期小于所述有效期,且所述有效期小于所述第二license校验周期。
根据本发明实施例的第二方面,提供了一种软件授权管理系统,所述系统包括:
用于生成license文件的服务商服务器、用于存储、下发license文件的集中式管理服务器、应用服务器和实施人员用户端;
在所述应用服务器的每个服务中引入license校验框架,通过第一license校验监测本地服务是否存在license文件;
如果所述服务本地存在license文件,则置所述服务为可用状态,否则置所述服务为不可用状态;
当所述服务为不可用状态时,由所述服务获取本机信息,自动生成授权码并向集中式管理服务器上报;
由所述集中式管理服务器提供接口或者界面,一次性将上报的所有应用服务器对应服务的授权码提供给实施人员用户端;
由所述实施人员用户端复制所述授权码向所述服务商服务器申请license文件,并将所述license文件放入所述集中式管理服务器的后台进行存储;
由所述服务从所述集中式管理服务器定时拉取所述license文件。
进一步地,通过第一license校验监测本地服务是否存在license文件,包括:
在所述服务部署初始化时,在本地固定目录中由所述服务监测license文件是否存在。
进一步地,由所述服务获取本机信息,自动生成授权码并向集中式管理服务器上报,包括:
将所述本机信息作为机器唯一标识;
利用与服务商服务器协定的加密算法进行加密和签名,生成授权码;
取配置文件中所述集中式管理服务器的地址,上报服务状态的和所述授权码;
所述本机信息包括:内核版本信息、mac地址信息、操作系统信息。
进一步地,由所述服务从所述集中式管理服务器定时拉取所述license文件,包括:
由所述服务向当所述集中式管理服务器发送定时拉取请求;
由所述集中式管理服务器判断自身是否存在所述license文件;
若存在所述license文件,向对应服务下发所述license文件。
优选地,向对应服务下发所述license文件时,所述集中式管理服务器根据上报的mac地址信息判定所述应用服务器同一机器上的多个服务,保证每个机器均有一个授权码。
优选地,在所述license文件下发时,由服务商服务器将集群下各个服务的应用服务器IP地址加入所述license文件中;
当本地第一服务完成所述第一license校验后,按照预设心跳周期将自己的第一license校验结果、应用服务器IP地址上报到集群中其他应用服务器的各个第二服务;
由所述第一服务启动一个阻塞的线程来等待各个第二服务上报应用服务器IP地址和第一license校验结果;
在所述第一服务按照预设的第二license校验周期进行第二license校验;
若第二license校验结果通过,则所述服务正常运行;
若第二license校验结果失败,则对此节点的服务报出错误,并停止此节点的正常服务。
进一步地,在所述第一服务按照预设的第二license校验周期进行第二license校验,包括:
由所述第一服务接收到各个第二服务的心跳上报结果;
根据所述应用服务器IP地址设置对应第二服务的第一license校验结果;
记录接收到各个第二服务上报第一license校验结果的时间,对每个第二服务的应用服务器IP地址上报的第一license校验结果设置有效期;
判断在所述有效期内集群中所有服务的第一license校验结果是否为可用状态以及license文件是否被篡改;
若在所述有效期内集群中所有服务的第一license校验结果均为可用状态,且license文件未被篡改,则第二license校验结果通过;
若某个节点的license文件被篡改、所述第一license校验结果的有效期到期或所述第一license校验结果为不可用状态,则第二license校验结果失败。
优先地,在所述第一服务按照预设的第二license校验周期进行第二license校验,还包括:
若第二license校验结果失败,此节点同时向其他节点通知第二license校验失败的结果;
其他节点接收到该节点第二license校验失败通知后,将该节点应用服务器的第二license校验状态更新为失败且不设置过期时间,在下个第二license校验周期停止各自的正常服务。
优选地,在所述第一服务按照预设的第二license校验周期进行第二license校验,还包括:
在所述第二license校验中,监测发送端服务上报心跳时间是否超时,若发送端服务上报心跳时间超时,则当前接收端服务记录该发送端服务的连续超时次数,判断所述连续超时次数是否超过预设次数;如果所述连续超时次数超过所述预设次数,将该接收端服务的第二license校验结果置为失败,并将整个集群服务置为不可用状态,直到接收到该发送端服务的第二license校验结果通过的请求时,覆盖该接收端服务失败的第二license校验结果;如果所述连续超时次数未超过所述预设次数,将该接收端服务正常运行;所述预设次数等于有效期与心跳周期的比值;
在所述第二license校验中,监测接收端服务是否在预设时间内接收到各个发送端服务的心跳上报结果,若所述接收端服务超出所述预设时间接收不到至少一个发送端服务的心跳上报结果,则该接收端服务的第二license校验结果过期,直接将该发送端服务的第二license校验结果置为失败状态,等待该发送端服务的第一license校验结果通过的心跳上报结果重新覆盖。
优选地,按照预设心跳周期上报的信息通过时间戳和预设签名规则来保证数据不被篡改。
优选地,所述心跳周期小于所述有效期,且所述有效期小于所述第二license校验周期。
根据本发明实施例的第三方面,提供了一种软件授权管理设备,所述设备包括:处理器和存储器;
所述存储器用于存储一个或多个程序指令;
所述处理器,用于运行一个或多个程序指令,用以执行如上任一项所述的一种软件授权管理方法的步骤。
根据本发明实施例的第四方面,提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上任一项所述一种软件授权管理方法的步骤。
本发明实施例具有如下优点:
相较于传统的软件授权实现技术,实施人员需要进行三步操作,具体如下:在服务器上由实施人员手动生成授权码,将授权码发送给服务商,服务商生成license文件由实施人员手动发放到服务器上。本发明实施例简化为:服务自动生成授权码,实施人员复制授权码申请授权文件到下发平台,服务自动拉取授权文件,这样实施人员只需要做一步操作,提高了人效,简化了实施人员需要登录每台服务器发放license文件的操作。
附图说明
为了更清楚地说明本发明的实施方式或现有技术中的技术方案,下面将对实施方式或现有技术描述中所需要使用的附图作简单地介绍。显而易见地,下面描述中的附图仅仅是示例性的,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图引伸获得其它的实施附图。
本说明书所绘示的结构、比例、大小等,均仅用以配合说明书所揭示的内容,以供熟悉此技术的人士了解与阅读,并非用以限定本发明可实施的限定条件,故不具技术上的实质意义,任何结构的修饰、比例关系的改变或大小的调整,在不影响本发明所能产生的功效及所能达成的目的下,均应仍落在本发明所揭示的技术内容得能涵盖的范围内。
图1为本发明一个实施例提供的一种软件授权管理系统的逻辑架构示意图;
图2为本发明一个实施例提供的一种软件授权管理方法的流程示意图;
图3为本发明另一个实施例提供的一种软件授权管理方法的流程示意图;
图4为本发明另一个实施例提供的一种软件授权管理方法中第二license校验的流程示意图。
具体实施方式
以下由特定的具体实施例说明本发明的实施方式,熟悉此技术的人士可由本说明书所揭露的内容轻易地了解本发明的其他优点及功效,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例目的是为了实现快速进行授权文件的生成、下发、更新,提高实施人员的人效,并且规范软件授权文件的管理。
为了实现上述目的,首先,对本发明实施例涉及到的功能实体进行如下介绍,这些功能实体可以为物理功能实体或者逻辑功能实体,单个功能实体可以作为独立设备,或者多个功能实体作为一个合一设备。本技术方案对此不作限定。
参考图1,本发明实施例公开的一种软件授权管理系统包括:服务商服务器1、集中式管理服务器2、应用服务器3和实施人员用户端4。
服务商的服务器1指服务的提供者,用于生成license文件,可以为license文件生成平台,或者也可以为一个生成license文件的服务。集中式管理服务器2用于存储、下发license文件,可以是一个分布式系统的后台,或者也可以是一个存储、下发license文件的服务。应用服务器3可以为多个,实施人员用户端4与各个应用服务器3之间没有交互,各个应用服务器3只和集中式管理服务器2进行交互。
首先要解决的问题是在license文件的实施部署中如何简化实施人员的复杂操作,因为license文件的生成必须要经过实施人员从客户拷贝到服务商的过程。
具体地,在应用服务器3的每个服务中引入license校验框架,通过第一license校验监测本地服务是否存在license文件;如果服务本地存在license文件,则置服务为可用状态,否则置服务为不可用状态;当服务为不可用状态时,由服务获取本机信息,自动生成授权码并向集中式管理服务器2上报;由集中式管理服务器2提供接口或者界面,一次性将上报的所有应用服务器3对应服务的授权码提供给实施人员用户端4;由实施人员用户端4复制所述授权码向服务商服务器1申请license文件,并将license文件放入集中式管理服务器2的后台进行存储;由服务从集中式管理服务器2定时拉取所述license文件。
相较于传统的软件授权实现技术,实施人员需要进行三步操作,具体如下:在服务器上由实施人员手动生成授权码,将授权码发送给服务商,服务商生成license文件由实施人员手动发放到服务器上。本发明实施例简化为:服务自动生成授权码,实施人员复制授权码申请授权文件到下发平台,服务自动拉取授权文件,这样实施人员只需要做一步操作,提高了人效,简化了实施人员需要登录每台服务器发放license文件的操作。
另外,软件授权管理的算法通常也是固定且唯一的,对于不同的机器,每台机器上签名与加密算法都是相同的,并且都与本机的信息有关,一旦一台机器上的加密算法被破解,所有机器的版本控制都将有被破解的风险,并且一台服务器的破解在尝试破解的同时,因为服务之间的分布式,可能并不会影响其他服务的使用,这种情况给破解人提供了有利的环境。
目前的很多license文件管理仅仅做到了单机的软件版权管理,本发明实施例另一个目的是利用分布式的授权文件校验,加强授权文件的安全性,加强整个集群中服务之间对于软件授权的关联。
接下来是实现分布式的license校验,分布式的license校验同样是为了软件版权的管理,主要考虑了CAP原则中的一致性、可用性,且是强一致性,一个节点license校验失败将导致所有节点不可用。
具体地,在license文件下发时,由服务商服务器1将集群下各个服务的应用服务器IP地址加入license文件中;当本地第一服务完成第一license校验后,按照预设心跳周期将自己的第一license校验结果、应用服务器IP地址上报到集群中其他应用服务器3的各个第二服务;由第一服务启动一个阻塞的线程来等待各个第二服务上报应用服务器IP地址和第一license校验结果;在第一服务按照预设的第二license校验周期进行第二license校验;若第二license校验结果通过,则服务正常运行;若第二license校验结果失败,则对此节点的服务报出错误,并停止此节点的正常服务。
进一步地,在第一服务按照预设的第二license校验周期进行第二license校验,包括:由第一服务接收到各个第二服务的心跳上报结果;根据应用服务器IP地址设置对应第二服务的第一license校验结果;记录接收到各个第二服务上报第一license校验结果的时间,对每个第二服务的应用服务器IP地址上报的第一license校验结果设置有效期;判断在有效期内集群中所有服务的第一license校验结果是否为可用状态以及license文件是否被篡改;若在有效期内集群中所有服务的第一license校验结果均为可用状态,则第二license校验结果通过;若某个节点的license文件被篡改、第一license校验结果的有效期到期或第一license校验结果为不可用状态,则第二license校验结果失败。
本发明实施例中上述第二license校验属于分布式的license校验,自然实现了服务状态的监控,每个服务之间都会互相监控,一旦一个服务停止了服务,多个服务会很快监控到服务的不可用状态,会及时的通知运维人员。本发明实施例中针对于集群化服务的第二license校验,让每台应用服务器的license校验关联起来,牺牲非常少量的输入/输出(I/O)增加了软件版权管理的安全性,增加license文件的破解难度。
与上述公开的一种软件授权管理系统相对应,本发明实施例还公开了一种软件授权管理方法。以下结合上述描述的一种软件授权管理系统详细介绍本发明实施例中公开的一种软件授权管理方法。
同样地,首先要解决的问题是在license文件的实施部署中如何简化实施人员的复杂操作,因为license文件的生成必须要经过实施人员从客户拷贝到服务商的过程。
参考图2,本发明实施例公开的一种软件授权管理方法包括:在应用服务器3的每个服务中引入license校验框架,通过第一license校验监测本地服务是否存在license文件;如果服务本地存在license文件,则置服务为可用状态,否则置服务为不可用状态;当服务为不可用状态时,由服务获取本机信息,自动生成授权码并向集中式管理服务器2上报;由集中式管理服务器2提供接口或者界面,一次性将上报的所有应用服务器3对应服务的授权码提供给实施人员用户端4;由实施人员用户端4复制所述授权码向服务商服务器1申请license文件,并将license文件放入集中式管理服务器2的后台进行存储;由服务从集中式管理服务器2定时拉取license文件。
相较于传统的软件授权实现技术,实施人员需要进行三步操作,具体如下:在服务器上由实施人员手动生成授权码,将授权码发送给服务商服务器,服务商服务器生成license文件由实施人员手动发放到服务器上。本发明实施例简化为:服务自动生成授权码,实施人员复制授权码申请授权文件到下发平台,服务自动拉取授权文件,这样实施人员只需要做一步操作,提高了人效,简化了实施人员需要登录每台服务器发放license文件的操作。
进一步地,通过第一license校验监测本地服务是否存在license文件,包括:在所述服务部署初始化时,在本地固定目录中由所述服务监测license文件是否存在。
进一步地,由服务获取本机信息,自动生成授权码并向集中式管理服务器上报,包括:将所述本机信息作为机器唯一标识;利用与服务商服务器1协定的加密算法进行加密和签名,生成授权码;取配置文件中集中式管理服务器2的地址,上报服务状态的和所述授权码;所述本机信息包括:内核版本信息、mac地址信息、操作系统信息。
优选地,向对应服务下发所述license文件时,集中式管理服务器2根据上报的mac地址信息判定应用服务器3同一机器上的多个服务,保证每个机器均有一个授权码,避免冗余。
进一步地,由所述服务从所述集中式管理服务器定时拉取所述license文件,包括:由服务向当集中式管理服务器2发送定时拉取请求;由集中式管理服务器2判断自身是否存在license文件;若存在license文件,向对应服务下发所述license文件。
在本发明实施例中,服务引入的license检验框架会定时拉取license文件,通过第一license校验后会被保存在本地,为了放置license文件的升级,服务会定时从下发服务拉取最新的license文件覆盖本地的文件,考虑到服务占用的资源和校验的效率,服务会把本地的license文件读取在内存中一份,平时的定时校验是使用内存中的license文件进行校验,既可以减少服务器输入/输出(I/O),又可以加快校验的速率,本地文件中的license文件则是原始的授权文件,定时会进行更新保证软件的升级和可用。
另外,软件授权管理的算法通常也是固定且唯一的,对于不同的机器,每台机器上签名与加密算法都是相同的,并且都与本机的信息有关,一旦一台机器上的加密算法被破解,所有机器的版本控制都将有被破解的风险,并且一台服务器的破解在尝试破解的同时,因为服务之间的分布式,可能并不会影响其他服务的使用,这种情况给破解人提供了有利的环境。
目前的很多license文件管理仅仅做到了单机的软件版权管理,本发明实施例另一个目的是利用分布式的授权文件校验,加强授权文件的安全性,加强整个集群中服务之间对于软件授权的关联。
接下来是实现分布式的license校验,分布式的license校验同样是为了软件版权的管理,主要考虑了CAP原则中的一致性、可用性,且是强一致性,一个节点license校验失败将导致所有节点不可用。
参考图3,本发明实施例公开的上述一种软件授权管理方法还包括:在license文件下发时,由服务商服务器1将集群下各个服务的应用服务器IP地址加入license文件中,这样,在license文件中,不仅仅包含各个需要校验的信息,还包含集群下各个应用服务器的地址;当本地第一服务完成第一license校验后,按照预设心跳周期将自己的第一license校验结果、应用服务器IP地址上报到集群中其他应用服务器3的各个第二服务;其中,按照预设心跳周期上报的信息通过时间戳和预设签名规则来保证数据不被篡改;由第一服务启动一个阻塞的线程来等待各个第二服务上报应用服务器IP地址和第一license校验结果;在第一服务按照预设的第二license校验周期进行第二license校验;若第二license校验结果通过,则服务正常运行;若第二license校验结果失败,则对此节点的服务报出错误,并停止此节点的正常服务。
参考图4,具体地,在所述第一服务按照预设的第二license校验周期进行第二license校验,包括:由第一服务接收到各个第二服务的心跳上报结果;根据应用服务器IP地址设置对应第二服务的第一license校验结果;记录接收到各个第二服务上报第一license校验结果的时间,对每个第二服务的应用服务器IP地址上报的第一license校验结果设置有效期;判断在所述有效期内集群中所有服务的第一license校验结果是否为可用状态以及license文件是否被篡改;若在所述有效期内集群中所有服务的第一license校验结果均为可用状态,则第二license校验结果通过;若某个节点的license文件被篡改、所述第一license校验结果的有效期到期或所述第一license校验结果为不可用状态,则第二license校验结果失败。
另外,在所述第一服务按照预设的第二license校验周期进行第二license校验,还包括:若第二license校验结果失败,此节点同时向其他节点通知第二license校验失败的结果;其他节点接收到该节点第二license校验失败通知后,将该节点应用服务器的第二license校验状态更新为失败且不设置过期时间,在下个第二license校验周期停止各自的正常服务。
当然为了保证节点的可用性,初次启动服务进行集群license文件的判断(即第二license校验)后,大多数时间只是会对本地的license文件进行频繁的判断(即第一license校验),集群license文件的判断(即第二license校验)会较长周期判断一次。具体地,所述心跳周期小于所述有效期,且所述有效期小于所述第二license校验周期。这样,可以确保每次校验的准确,不会因为结果的过期而且影响到服务的正常运行。
本发明实施例中上述第二license校验属于分布式的license校验,自然实现了服务状态的监控,每个服务之间都会互相监控,一旦一个服务停止了服务,多个服务会很快监控到服务的不可用状态,会及时的通知运维人员。本发明实施例中针对于集群化服务的第二license校验,让每台应用服务器的license校验关联起来,牺牲非常少量的输入/输出(I/O)增加了软件版权管理的安全性,增加license文件的破解难度。
考虑到容错性,存在两种情况,一种情况为:发送端上报心跳超时,另外一种为:接收端有可能长时间接收不到其他服务的心跳,服务校验结果过期。第一种情况下,在所述第一服务按照预设的第二license校验周期进行第二license校验,还包括:在第二license校验中,监测发送端服务上报心跳时间是否超时,若发送端服务上报心跳时间超时,则当前接收端服务记录该发送端服务的连续超时次数,判断所述连续超时次数是否超过预设次数;如果所述连续超时次数超过所述预设次数,将该接收端服务的第二license校验结果置为失败,并将整个集群服务置为不可用状态,直到接收到该发送端服务的第二license校验结果通过的请求时,覆盖该接收端服务失败的第二license校验结果;如果所述连续超时次数未超过所述预设次数,将该接收端服务正常运行;所述预设次数等于有效期与心跳周期的比值。在上述第二种情况下,在所述第一服务按照预设的第二license校验周期进行第二license校验,还包括:在所述第二license校验中,监测接收端服务是否在预设时间内接收到各个发送端服务的心跳上报结果,若所述接收端服务超出所述预设时间接收不到至少一个发送端服务的心跳上报结果,则该接收端服务的第二license校验结果过期,直接将该发送端服务的第二license校验结果置为失败状态,等待该发送端服务的第一license校验结果通过的心跳上报结果重新覆盖。
本发明上述实施例解决了现有集群化软件版权管理的漏洞,现有的license软件版权管理只有对单个服务的简单校验,当对单个服务进行破解时,其他服务可以正常运行,这是破解人所期望的,可以让破解人员随时进行验证。本发明上述实施例加强了分布式服务之间软件的管理,对某个服务进行破解的同时,会立刻通知到其他的服务,整个集群都将不可使用,不给破解人留机会,并且在服务的稳定性和可用性上,有对服务的容错处理,万一真的发生了网络或其他问题,不会影响正常服务的运行,并且可以监控其他服务的状态,天然支持了服务的监控。
另外,本发明实施例还提供了一种软件授权管理设备,所述设备包括:处理器和存储器;所述存储器用于存储一个或多个程序指令;所述处理器,用于运行一个或多个程序指令,用以执行如上任一项所述的一种软件授权管理方法的步骤。
另外,本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上任一项所述一种软件授权管理方法的步骤。
在本发明实施例中,处理器可以是一种集成电路芯片,具有信号的处理能力。处理器可以是通用处理器、数字信号处理器(Digital Signal Processor,简称DSP)、专用集成电路(Application Specific工ntegrated Circuit,简称ASIC)、现场可编程门阵列(FieldProgrammable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。处理器读取存储介质中的信息,结合其硬件完成上述方法的步骤。
存储介质可以是存储器,例如可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。
其中,非易失性存储器可以是只读存储器(Read-Only Memory,简称ROM)、可编程只读存储器(Programmable ROM,简称PROM)、可擦除可编程只读存储器(Erasable PROM,简称EPROM)、电可擦除可编程只读存储器(Electrically EPROM,简称EEPROM)或闪存。
易失性存储器可以是随机存取存储器(Random Access Memory,简称RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(Static RAM,简称SRAM)、动态随机存取存储器(Dynamic RAM,简称DRAM)、同步动态随机存取存储器(Synchronous DRAM,简称SDRAM)、双倍数据速率同步动态随机存取存储器(Double Data RateSDRAM,简称DDRSDRAM)、增强型同步动态随机存取存储器(EnhancedSDRAM,简称ESDRAM)、同步连接动态随机存取存储器(Synchlink DRAM,简称SLDRAM)和直接内存总线随机存取存储器(DirectRambus RAM,简称DRRAM)。
本发明实施例描述的存储介质旨在包括但不限于这些和任意其它适合类型的存储器。
本领域技术人员应该可以意识到,在上述一个或多个示例中,本发明所描述的功能可以用硬件与软件组合来实现。当应用软件时,可以将相应功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。计算机可读介质包括计算机存储介质和通信介质,其中通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。存储介质可以是通用或专用计算机能够存取的任何可用介质。
虽然,上文中已经用一般性说明及具体实施例对本发明作了详尽的描述,但在本发明基础上,可以对之作一些修改或改进,这对本领域技术人员而言是显而易见的。因此,在不偏离本发明精神的基础上所做的这些修改或改进,均属于本发明要求保护的范围。
Claims (9)
1.一种软件授权管理方法,其特征在于,所述方法包括:
在应用服务器的每个服务中引入license校验框架,通过第一license校验监测本地服务是否存在license文件;
如果所述服务本地存在license文件,则置所述服务为可用状态,否则置所述服务为不可用状态;
当所述服务为不可用状态时,由所述服务获取本机信息,自动生成授权码并向集中式管理服务器上报;
由所述集中式管理服务器提供接口或者界面,一次性将上报的所有应用服务器对应服务的授权码提供给实施人员用户端;
由所述实施人员用户端复制所述授权码向所述服务商服务器申请license文件,并将所述license文件放入所述集中式管理服务器的后台进行存储;
由所述服务从所述集中式管理服务器定时拉取所述license文件;
所述方法还包括:
在所述license文件下发时,由服务商服务器将集群下各个服务的应用服务器IP地址加入所述license文件中;
当本地第一服务完成所述第一license校验后,按照预设心跳周期将自己的第一license校验结果、应用服务器IP地址上报到集群中其他应用服务器的各个第二服务;
由所述第一服务启动一个阻塞的线程来等待各个第二服务上报应用服务器IP地址和第一license校验结果;
在所述第一服务按照预设的第二license校验周期进行第二license校验;
若第二license校验结果通过,则所述服务正常运行;
若第二license校验结果失败,则对此节点的服务报出错误,并停止此节点的正常服务。
2.如权利要求1所述的一种软件授权管理方法,其特征在于,由所述服务获取本机信息,自动生成授权码并向集中式管理服务器上报,包括:
将所述本机信息作为机器唯一标识;
利用与服务商服务器协定的加密算法进行加密和签名,生成授权码;
取配置文件中所述集中式管理服务器的地址,上报服务状态和所述授权码;
所述本机信息包括:内核版本信息、mac地址信息、操作系统信息。
3.如权利要求2所述的一种软件授权管理方法,其特征在于,由所述服务从所述集中式管理服务器定时拉取所述license文件,包括:
由所述服务向所述集中式管理服务器发送定时拉取请求;
由所述集中式管理服务器判断自身是否存在所述license文件;
若存在所述license文件,向对应服务下发所述license文件。
4.如权利要求1所述的一种软件授权管理方法,其特征在于,在所述第一服务按照预设的第二license校验周期进行第二license校验,包括:
由所述第一服务接收到各个第二服务的心跳上报结果;
根据所述应用服务器IP地址设置对应第二服务的第一license校验结果;
记录接收到各个第二服务上报第一license校验结果的时间,对每个第二服务的应用服务器IP地址上报的第一license校验结果设置有效期;
判断在所述有效期内集群中所有服务的第一license校验结果是否为可用状态以及license文件是否被篡改;
若在所述有效期内集群中所有服务的第一license校验结果均为可用状态,且license文件未被篡改,则第二license校验结果通过;
若某个节点的license文件被篡改、所述第一license校验结果的有效期到期或所述第一license校验结果为不可用状态,则第二license校验结果失败。
5.如权利要求4所述的一种软件授权管理方法,其特征在于,在所述第一服务按照预设的第二license校验周期进行第二license校验,还包括:
若第二license校验结果失败,此节点同时向其他节点通知第二license校验失败的结果;
其他节点接收到该节点第二license校验失败通知后,将该节点应用服务器的第二license校验状态更新为失败且不设置过期时间,在下个第二license校验周期停止各自的正常服务。
6.如权利要求5所述的一种软件授权管理方法,其特征在于,在所述第一服务按照预设的第二license校验周期进行第二license校验,还包括:
在所述第二license校验中,监测发送端服务上报心跳时间是否超时,若发送端服务上报心跳时间超时,则当前接收端服务记录该发送端服务的连续超时次数,判断所述连续超时次数是否超过预设次数;如果所述连续超时次数超过所述预设次数,将该接收端服务的第二license校验结果置为失败,并将整个集群服务置为不可用状态,直到接收到该发送端服务的第二license校验结果通过的请求时,覆盖该接收端服务失败的第二license校验结果;如果所述连续超时次数未超过所述预设次数,将该接收端服务正常运行;所述预设次数等于有效期与心跳周期的比值;
在所述第二license校验中,监测接收端服务是否在预设时间内接收到各个发送端服务的心跳上报结果,若所述接收端服务超出所述预设时间接收不到至少一个发送端服务的心跳上报结果,则该接收端服务的第二license校验结果过期,直接将该发送端服务的第二license校验结果置为失败状态,等待该发送端服务的第一license校验结果通过的心跳上报结果重新覆盖。
7.一种软件授权管理系统,其特征在于,所述系统包括:
用于生成license文件的服务商服务器、用于存储、下发license文件的集中式管理服务器、应用服务器和实施人员用户端;
在所述应用服务器的每个服务中引入license校验框架,通过第一license校验监测本地服务是否存在license文件;
如果所述服务本地存在license文件,则置所述服务为可用状态,否则置所述服务为不可用状态;
当所述服务为不可用状态时,由所述服务获取本机信息,自动生成授权码并向集中式管理服务器上报;
由所述集中式管理服务器提供接口或者界面,一次性将上报的所有应用服务器对应服务的授权码提供给实施人员用户端;
由所述实施人员用户端复制所述授权码向所述服务商服务器申请license文件,并将所述license文件放入所述集中式管理服务器的后台进行存储;
由所述服务从所述集中式管理服务器定时拉取所述license文件;
在所述license文件下发时,由服务商服务器将集群下各个服务的应用服务器IP地址加入所述license文件中;
当本地第一服务完成所述第一license校验后,按照预设心跳周期将自己的第一license校验结果、应用服务器IP地址上报到集群中其他应用服务器的各个第二服务;
由所述第一服务启动一个阻塞的线程来等待各个第二服务上报应用服务器IP地址和第一license校验结果;
在所述第一服务按照预设的第二license校验周期进行第二license校验;
若第二license校验结果通过,则所述服务正常运行;
若第二license校验结果失败,则对此节点的服务报出错误,并停止此节点的正常服务。
8.一种软件授权管理设备,其特征在于,所述设备包括:处理器和存储器;
所述存储器用于存储一个或多个程序指令;
所述处理器,用于运行一个或多个程序指令,用以执行如权利要求1至6任一项所述的一种软件授权管理方法的步骤。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至6任一项所述一种软件授权管理方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111365630.5A CN113806786B (zh) | 2021-11-18 | 2021-11-18 | 一种软件授权管理方法、系统、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111365630.5A CN113806786B (zh) | 2021-11-18 | 2021-11-18 | 一种软件授权管理方法、系统、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113806786A CN113806786A (zh) | 2021-12-17 |
CN113806786B true CN113806786B (zh) | 2022-03-18 |
Family
ID=78938490
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111365630.5A Active CN113806786B (zh) | 2021-11-18 | 2021-11-18 | 一种软件授权管理方法、系统、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113806786B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114448986B (zh) * | 2022-01-04 | 2024-03-01 | 上海弘积信息科技有限公司 | 一种基于MC集中管理系统的License控制方法 |
CN114826660A (zh) * | 2022-03-16 | 2022-07-29 | 深圳爱捷云科技有限公司 | 云服务运行方法、电子设备和存储介质 |
CN115802352B (zh) * | 2022-11-04 | 2023-07-25 | 广州爱浦路网络技术有限公司 | 5gc设备授权的处理方法、系统、装置和存储介质 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101146315A (zh) * | 2006-08-03 | 2008-03-19 | 华为技术有限公司 | 许可证文件管理方法、服务器及系统 |
CN101471922A (zh) * | 2007-12-25 | 2009-07-01 | 英业达股份有限公司 | 阶层式授权管理系统及方法 |
CN104580316A (zh) * | 2013-10-24 | 2015-04-29 | 深圳市国信互联科技有限公司 | 软件授权管理方法及系统 |
CN105224832A (zh) * | 2015-10-16 | 2016-01-06 | 浪潮电子信息产业股份有限公司 | 一种License授权集中管理的方法 |
CN107579994A (zh) * | 2017-09-30 | 2018-01-12 | 福建星网智慧软件有限公司 | 一种分布式服务器系统授权控制方法及装置 |
CN110855426A (zh) * | 2019-11-08 | 2020-02-28 | 北京握奇智能科技有限公司 | 一种用于软件使用授权的方法 |
CN111143782A (zh) * | 2019-11-08 | 2020-05-12 | 深圳市元征科技股份有限公司 | 应用软件的权限管理方法、装置、服务器及存储介质 |
CN112913209A (zh) * | 2021-01-27 | 2021-06-04 | 华为技术有限公司 | 一种服务授权管理方法及装置 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1396798A1 (en) * | 2002-09-03 | 2004-03-10 | Hewlett-Packard Company | A license file, a license management module and alicense management system |
US7788489B2 (en) * | 2003-05-06 | 2010-08-31 | Oracle International Corporation | System and method for permission administration using meta-permissions |
-
2021
- 2021-11-18 CN CN202111365630.5A patent/CN113806786B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101146315A (zh) * | 2006-08-03 | 2008-03-19 | 华为技术有限公司 | 许可证文件管理方法、服务器及系统 |
CN101471922A (zh) * | 2007-12-25 | 2009-07-01 | 英业达股份有限公司 | 阶层式授权管理系统及方法 |
CN104580316A (zh) * | 2013-10-24 | 2015-04-29 | 深圳市国信互联科技有限公司 | 软件授权管理方法及系统 |
CN105224832A (zh) * | 2015-10-16 | 2016-01-06 | 浪潮电子信息产业股份有限公司 | 一种License授权集中管理的方法 |
CN107579994A (zh) * | 2017-09-30 | 2018-01-12 | 福建星网智慧软件有限公司 | 一种分布式服务器系统授权控制方法及装置 |
CN110855426A (zh) * | 2019-11-08 | 2020-02-28 | 北京握奇智能科技有限公司 | 一种用于软件使用授权的方法 |
CN111143782A (zh) * | 2019-11-08 | 2020-05-12 | 深圳市元征科技股份有限公司 | 应用软件的权限管理方法、装置、服务器及存储介质 |
CN112913209A (zh) * | 2021-01-27 | 2021-06-04 | 华为技术有限公司 | 一种服务授权管理方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN113806786A (zh) | 2021-12-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113806786B (zh) | 一种软件授权管理方法、系统、设备及存储介质 | |
WO2021073452A1 (zh) | 基于区块链网络的数据处理方法、装置、电子设备及存储介质 | |
Kapitza et al. | CheapBFT: Resource-efficient Byzantine fault tolerance | |
US8990368B2 (en) | Discovery of network software relationships | |
US20220075653A1 (en) | Scheduling method and apparatus, and related device | |
US6665674B1 (en) | Framework for open directory operation extensibility | |
US8667096B2 (en) | Automatically generating system restoration order for network recovery | |
US9940208B2 (en) | Generating reverse installation file for network restoration | |
Aguilera et al. | The impact of RDMA on agreement | |
CN108289098B (zh) | 分布式文件系统的权限管理方法和装置、服务器、介质 | |
CN113645230B (zh) | 一种节点的可信值分析系统及方法 | |
JP2013522793A (ja) | 仮想機械を用いた電子ネットワークにおける複数のクライアントの遠隔保守のためのシステム及び方法 | |
CN110598375B (zh) | 一种数据处理方法、装置及存储介质 | |
CN112131002B (zh) | 数据管理方法及装置 | |
CN114185558A (zh) | 基于K8s的原生应用选主方法、装置及存储介质 | |
CN110163003B (zh) | 一种密码管理方法及装置 | |
CN112015563B (zh) | 消息队列切换方法、装置、电子设备及存储介质 | |
CN112199441B (zh) | 基于大数据平台的数据同步处理方法、装置、设备及介质 | |
CN109842681B (zh) | 一种兼顾集中式与分布式特色的数据管理系统及方法 | |
WO2023125755A1 (zh) | 基于大规模集群的服务请求处理方法、装置、设备及介质 | |
CN111797410A (zh) | 一种多服务器授权控制方法和装置 | |
CN112953951B (zh) | 一种基于国产cpu的用户登录验证和安全性检测方法及系统 | |
CN115442025A (zh) | 一种负载均衡设备中license生成、校验和绑定的方法 | |
Dobre et al. | Proofs of writing for robust storage | |
CN114036560A (zh) | 一种基于区块链的充电桩补贴数据管理方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |