应用程序许可管理系统及方法

文档序号:1921780 发布日期:2021-12-03 浏览:13次 >En<

阅读说明:本技术 应用程序许可管理系统及方法 (Application program permission management system and method ) 是由 李鑫 胡伟琪 于 2021-08-11 设计创作,主要内容包括:本申请公开了一种应用程序许可管理系统,包括:许可边车容器,应用程序接口服务器和许可服务器,部署在云端的许可管理器;许可边车容器,用于获得应用程序发出的第一许可验证请求消息,并向应用程序接口服务器发送第二许可验证请求消息;应用程序接口服务器,用于根据第二许可验证请求消息,创建针对许可令牌的用户自定义资源实例,将第二许可验证请求消息携带的待验证许可数据存储到用户自定义资源实例中;许可服务器,用于获得待验证许可数据,并获得许可有效性数据,根据许可有效性数据对待验证许可数据进行验证,获得第一验证结果;许可管理器,用于根据有效性数据获取请求消息获得许可有效性数据,将许可有效性数据返回给许可服务器。(The application discloses an application program license management system, including: the system comprises a license side car container, an application program interface server, a license server and a license manager deployed at the cloud end; the license sidecar container is used for acquiring a first license verification request message sent by the application program and sending a second license verification request message to the application program interface server; the application program interface server is used for creating a user-defined resource instance aiming at the license token according to the second license verification request message and storing the license data to be verified carried by the second license verification request message into the user-defined resource instance; the license server is used for obtaining license data to be verified, obtaining license validity data, verifying the license data to be verified according to the license validity data and obtaining a first verification result; and the license manager is used for acquiring the license validity data according to the validity data acquisition request message and returning the license validity data to the license server.)

应用程序许可管理系统及方法

技术领域

本申请涉及计算机技术领域,具体涉及一种应用程序许可管理系统,两种应用程序许可管理方法。

背景技术

随着4G/5G等无线通讯技术的发展,分散式应用架构逐渐被用户使用,其主要是将计算资源部署至贴近用户的边缘计算节点上。该分散式应用架构的优势在于,可以降低响应延迟、降低用户设备与云端之间网络开销、增强隐私数据保护等。常见的应用类型有CDN(Content Delivery Network,内容分发网络)、人工智能、视频流转码并上传等。

在边缘环境,为了提升应用程序/软件工程的效率应用,一般是采用容器的方式部署到集群中,例如采用容器的方式部署到[email protected](Acknowledge [email protected],边缘容器服务)集群中,此时集群中的机器实际是由用户提供并加入[email protected]集群,用户对于Edge集群的API Server(Application Programming Interface Server,应用程序接口服务器)以及集群中的服务器有完全的访问控制权限。由此就带来了应用软件的License管理问题,例如,用户可能会取得应用镜像的链接,在集群外运行此应用;用户有权限访问API Server会在集群中对应用进行扩容操作,从而违反许可证的方式来运行此应用。

目前业界的通用License方案是采集服务器的Series Number、MAC地址(MediaAccess Control Address)等硬件指纹信息并结合用户邮件地址等信息计算出一个License,在应用软件运行时会读取本机的硬件信息,并与License信息中留存的数据进行对比,如果不相符则启动失败,通过这种方式保证此应用与这台硬件设备绑定运行。

但是,现有的License方案有如下几个缺点:

(1)传统方案下License与硬件设备有绑定,导致应用容器不能在集群中做跨主机调度,导致Kubernetes集群无法在主机当机的情况下对此应用容器做高可用调度;或者在这种情况下需要对整个集群的服务器做License授权。

(2)边缘计算场景下,基于涉及安全问题,所以无法直接开放公网的HTTP访问,也就是说除了云端的API Server的访问,其它公网服务端口基本不可访问,所以无法访问部署在云端的License Server进行License信息同步。

(3)传统方案下License的管理方无法做运行时的License使用情况收集,也就是如果用户对运行应用的服务器做了升配置操作,比如将4C8G的服务器升级至8C16G,那么License的管理方是不掌握这个信息的。

发明内容

本申请实施例提供一种应用程序许可管理系统,以解决现有技术中存在的问题。本申请实施例同时还提供两种应用程序许可管理方法。

本申请实施例提供一种应用程序许可管理系统,包括:部署在边缘容器集群中的与应用程序对应的许可边车容器、应用程序接口服务器和许可服务器,以及部署在云端的许可管理器;

所述许可边车容器,用于获得应用程序发出的第一许可验证请求消息,并向所述应用程序接口服务器发送第二许可验证请求消息;

所述应用程序接口服务器,用于根据所述第二许可验证请求消息,创建针对许可令牌的用户自定义资源实例,将所述第二许可验证请求消息携带的待验证许可数据存储到所述用户自定义资源实例中;

所述许可服务器,用于访问所述用户自定义资源实例,获得所述待验证许可数据,并向所述许可管理器发出用于获取与所述应用程序对应的许可有效性数据的有效性数据获取请求消息,获得所述许可管理器返回的与所述应用程序对应的许可有效性数据,根据所述许可有效性数据对所述待验证许可数据进行验证,获得第一验证结果,将所述第一验证结果存储到所述用户自定义资源实例中;

所述许可管理器,用于根据所述有效性数据获取请求消息获得所述许可有效性数据,将所述许可有效性数据返回给所述许可服务器;

所述应用程序接口服务器还用于从用户自定义资源实例中获得所述第一验证结果,将所述第一验证结果返回给所述许可边车容器;

所述许可边车容器还用于将所述第一验证结果返回给所述应用程序。

可选的,所述许可边车容器具体用于获得所述应用程序在启动时发出的第一许可验证请求消息;

所述第一验证结果用于所述应用程序确定是否继续启动。

可选的,所述许可服务器具体用于在监听到所述用户自定义资源实例被创建后,访问所述用户自定义资源实例,获得所述待验证许可数据。

可选的,所述许可服务器还用于生成用于针对所述应用程序的运行进行许可验证的令牌数据,将所述令牌数据提供给所述应用程序接口服务器;

所述应用程序接口服务器还用于将所述令牌数据发送给所述许可边车容器;

所述许可边车容器还用于将所述令牌数据发送给所述应用程序。

可选的,所述第一许可验证请求消息携带有所述令牌数据,所述待验证许可数据包括所述令牌数据,所述许可有效性数据包括所述令牌数据的有效期信息;

所述许可服务器具体用于根据所述许可有效性数据包括的有效期信息判断所述待验证许可数据包括的所述令牌数据是否有效,获得第一判断结果,根据所述第一判断结果生成所述第一验证结果。

可选的,所述待验证许可数据包括所述应用程序启动时所在的电子设备所属的集群信息;

所述许可服务器具体用于判断所述集群信息与所述边缘容器集群的集群信息是否相同,获得第二判断结果,根据所述第二判断结果生成所述第一验证结果。

可选的,所述待验证许可数据包括使用所述应用程序的用户信息,所述许可有效性数据包括被许可使用所述应用程序的用户信息;

所述许可服务器具体用于判断使用所述应用程序的用户信息是否与被许可使用所述应用程序的用户信息中的至少一个用户信息相同,获得第三判断结果,根据所述第三判断结果生成所述第一验证结果。

可选的,所述许可服务器具体用于如果判断使用所述应用程序的用户信息与被许可使用所述应用程序的用户信息中的至少一个用户信息相同,则将所述使用所述应用程序的用户信息作为被许可用户信息,判断当前正在通过所述被许可用户信息运行所述应用程序的设备数量是否超过被许可设备数量阈值,获得第四判断结果,根据所述第四判断结果生成所述第一验证结果,其中,所述许可有效性数据包括所述被许可设备数量阈值。

可选的,所述许可边车容器还用于缓存所述令牌数据。

可选的,所述许可服务器还用于当所述许可服务器无法与所述许可管理器进行信息交互时,将用于指示所述许可边车容器对所述待验证许可数据进行验证的第一指示信息发送给所述应用程序接口服务器,或者将用于表示所述许可服务器无法对所述待验证许可数据进行验证的第一状态信息发送给所述应用程序接口服务器,或者将用于表示所述许可服务器无法与所述许可管理器进行信息交互的第二状态信息发送给所述应用程序接口服务器;

所述应用程序接口服务器还用于将所述第一指示信息、所述第一状态信息或所述第二状态信息发送给所述许可边车容器;

所述许可边车容器还用于根据所述第一指示信息、所述第一状态信息或所述第二状态信息,根据缓存的所述令牌数据对所述待验证许可数据进行验证,获得第二验证结果,并将所述第二验证结果返回给所述应用程序。

可选的,所述待验证许可数据包括所述令牌数据;

所述许可边车容器具体用于判断所述待验证许可数据包括的所述令牌数据与缓存的所述令牌数据是否相同,获得第六判断结果,根据所述第六判断结果获得所述第二验证结果。

可选的,所述许可服务器还用于获得所述应用程序接口服务器提供的正在运行所述应用程序的所有用户信息和/或正在运行所述应用程序的所有设备的运行环境数据,将所述正在运行所述应用程序的所有用户信息和/或正在运行所述应用程序的所有设备的运行环境数据发送给所述许可管理器;

所述许可管理器具体用于在获得所述有效性数据获取请求消息后,根据所述正在运行所述应用程序的所有用户信息和/或正在运行所述应用程序的所有设备的运行环境数据,生成所述许可有效性数据。

本申请实施例提供一种应用程序许可管理方法,包括:

获得许可边车容器发送的第二许可验证请求消息;

根据所述第二许可验证请求消息,创建针对许可令牌的用户自定义资源实例,并将所述第二许可验证请求消息携带的待验证许可数据存储到所述用户自定义资源实例中;

从用户自定义资源实例中获得第一验证结果,将所述第一验证结果返回给所述许可边车容器。

本申请实施例提供一种应用程序许可管理方法,包括:

访问用户自定义资源实例,获得待验证许可数据;

向许可管理器发出用于获取与应用程序对应的许可有效性数据的有效性数据获取请求消息,以获得所述许可管理器返回的与所述应用程序对应的许可有效性数据;

根据所述许可有效性数据对所述待验证许可数据进行验证,获得第一验证结果,将所述第一验证结果存储到所述用户自定义资源实例中。

与现有技术相比,本申请具有以下优点:

本申请实施例提供一种应用程序许可管理系统,包括:与应用程序对应的许可边车容器,部署在边缘容器集群中的应用程序接口服务器和许可服务器,以及部署在云端的许可管理器;所述许可边车容器,用于获得应用程序发出的第一许可验证请求消息,并向所述应用程序接口服务器发送第二许可验证请求消息;所述应用程序接口服务器,用于根据所述第二许可验证请求消息,创建针对许可令牌的用户自定义资源实例,将所述第二许可验证请求消息携带的待验证许可数据存储到所述用户自定义资源实例中;所述许可服务器,用于访问所述用户自定义资源实例,获得所述待验证许可数据,并向所述许可管理器发出用于获取与所述应用程序对应的许可有效性数据的有效性数据获取请求消息,获得所述许可管理器返回的与所述应用程序对应的许可有效性数据,根据所述许可有效性数据对所述待验证许可数据进行验证,获得第一验证结果,将所述第一验证结果存储到所述用户自定义资源实例中;所述许可管理器,用于根据所述有效性数据获取请求消息获得所述许可有效性数据,将所述许可有效性数据返回给所述许可服务器;所述应用程序接口服务器还用于从用户自定义资源实例中获得所述第一验证结果,将所述第一验证结果返回给所述许可边车容器;所述许可边车容器还用于将所述第一验证结果返回给所述应用程序。本申请实施例通过许可边车容器和应用程序接口服务器创建携带有待验证许可数据的用户自定义资源实例,并通过存储在云端的许可有效性数据验证待验证许可数据,实现了边缘计算公网访问受限场景下应用程序的许可验证。

附图说明

图1是本申请第一实施例提供的应用场景的示意图。

图2为本申请第一实施例提供的应用程序许可管理系统的流程图。

图3为本申请第二实施例提供的应用程序许可管理方法的流程图。

图4为本申请第三实施例提供的应用程序许可管理方法的流程图。

图5为本申请第四实施例提供的软件应用许可管理装置的示意图。

图6为本申请第五实施例提供的软件应用许可管理装置的示意图。

图7为本申请第六实施例提供的电子设备的示意图。

具体实施方式

在下面的描述中阐述了很多具体细节以便于充分理解本申请实施例。但是本申请实施例能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本申请实施例内涵的情况下做类似推广,因此本申请实施例不受下面公开的具体实施的限制。

为了使本领域的技术人员更好的理解本申请方案,下面基于本申请提供的应用程序许可管理系统对其实施例的具体应用场景进行详细描述,如图1所示,其为本申请第一实施例提供的应用场景的示意图。

本场景对应本申请第一实施例提供的软件应用许可管理系统,该场景中,用户通过软件应用许可使用应用软件,且具有的软件应用许可还在有效期内。用户通过启动应用程序向许可服务器发送验证请求,具体的,在应用程序启动的过程中,应用程序会在启动代码中加入许可验证逻辑,并请求本地主机的端口,发出验证请求并发送给许可边车容器(License Sidecar),许可边车容器在收到验证请求后,将访问应用程序接口服务器,应用程序接口服务器根据验证请求,创建针对许可令牌的用户自定义资源实例(CustomResource Definition),然后获得对应于用户自定义资源实例的创建完成指令,并根据创建完成指令,将待验证许可数据存储到用户自定义资源实例中。其中,边车容器是指实现具体验证码验证的客户端逻辑的边车,边车是应用部署的一种模式,一部分逻辑从应用中迁移到边车得以实现。

在应用程序接口服务器将待验证许可数据存储到用户自定义资源实例中后,会对应生成待验证许可数据的创建完成指令,并将该创建完成指令发送给许可服务器(LicenseServer),许可服务器在检测到用户自定义资源实例被创建后,会根据创建完成指令获得待验证许可数据。并且,许可服务器会向许可管理器(License Manager)发送用于获取与应用程序对应的许可有效性数据的有效性数据获取请求消息,以获得部署在云端的许可管理器存储的许可有效性数据。而后,通过许可有效性数据对待验证许可数据进行验证,获得第一验证结果,并将第一验证结果存储到用户自定义资源实例中。然后,许可边车容器监听到第一验证结果,并将该第一验证结果发回给应用程序,应用程序根据此验证结果确定是否继续启动或者停止运行。

需要补充的是,基于许可边车容器可以缓存应用程序接口服务模块中的所有用户自定义资源实例,所以在弱网或者是端网(如图1虚线箭头表示,边缘与云端不通)的时候,可以通过缓存应用程序接口服务模块中的所有用户自定义资源实例完成对待验证许可数据的验证。

与上述场景相对应的,本申请第一实施例提供一种应用程序许可管理系统,如图2所示,图2为本申请第一实施例提供的一种应用软件许可管理系统的示意。

在本申请第一实施例中,所述系统包括:部署在边缘容器集群中的与应用程序对应的许可边车容器201、应用程序接口服务器202和许可服务器203,以及部署在云端的许可管理器204。

其中,在本申请第一实施例中,集群可以是边缘容器集群([email protected]集群)。许可边车容器201是容器组中的一个辅助容器,边车容器是指实现具体验证码验证的客户端逻辑的边车,边车是应用部署的一种模式,一部分逻辑从应用中迁移到边车得以实现。在本申请第一实施例中,许可边车容器201与组件应用实例部署在同一个容器组内,负责与许可服务器通信,履行应用程序许可验证等职责。应用程序接口服务器是提供了各类资源对象的增删改查,是整个系统的数据总线和数据中心。提供了集群管理的认证授权、数据校验以及集群状态变更;提供其他模块之间的数据交互和通信的枢纽(其他模块通过应用程序接口服务器查询或修改数据,只有应用程序接口服务器直接操作etcd)。在本申请第一实施例中,应用程序接口服务器,用于创建针对许可令牌的用户自定义资源实例,并将待验证许可数据存储到所述用户自定义资源实例中。许可服务器部署在ACK/[email protected]集群内的托管组件,负责应用程序许可有效性验证、Token生成等,定时统计容器组实例的CPU用量并上报到许可管理器。

以下将具体描述许可边车容器201、应用程序接口服务器202、许可服务器203以及部署在云端的许可管理器204对应的功能作用。

在本申请第一实施例中,所述许可边车容器201(License Sidecar),用于获得应用程序发出的第一许可验证请求消息,并向所述应用程序接口服务器202发送第二许可验证请求消息。其中,第一许可验证请求消息与第二许可验证请求消息为同一许可验证请求消息。

具体的,在本申请第一实施例中,许可边车容器201具体用于获得应用程序在启动时发出的第一许可验证请求消息。在应用程序启动的过程中,应用程序会在启动代码中加入许可验证逻辑,并请求本地主机的端口,发出第一验证请求并发送给许可边车容器201,许可边车容器201在收到第一验证请求后,并向应用程序接口服务器202(API Server,Application Programming Interface Server)发送第二许可验证请求消息。

在本申请第一实施例中,应用程序接口服务器202,用于根据第二许可验证请求消息,创建针对许可令牌的用户自定义资源实例,将所述第二许可验证请求消息携带的待验证许可数据存储到所述用户自定义资源实例中。

在本申请第一实施例中,所述许可服务器203,用于访问所述用户自定义资源实例,获得所述待验证许可数据。具体的,在用户自定义资源实例被创建后,许可服务器203(License Server)可以监听到用户自定义资源实例被创建,而后访问所述用户自定义资源实例,获得待验证许可数据。

在获得待验证许可数据后,许可服务器203还用于向许可管理器204(LicenseManager)发出用于获取与应用程序对应的许可有效性数据的有效性数据获取请求消息,并获得所述许可管理器204返回的与所述应用程序对应的许可有效性数据,根据所述许可有效性数据对所述待验证许可数据进行验证,获得第一验证结果,将所述第一验证结果存储到所述用户自定义资源实例中。其中,第一验证结果用于所述应用程序确定是否继续启动。

进一步的,许可服务器203还用于生成用于针对所述应用程序的运行进行许可验证的令牌数据,将令牌数据提供给应用程序接口服务器202。对应的,应用程序接口服务器202还用于将令牌数据发送给许可边车容器201,许可边车容器201还用于将所述令牌数据发送给应用程序,以使应用程序根据该令牌数据进行运行。当然,在本申请第一实施例中,许可边车容器201还用于缓存所述令牌数据。

在本申请第一实施例中,第一许可验证请求消息携带有所述令牌数据,且基于第一许可验证请求消息与第二许可验证请求消息为相同的许可验证请求消息,所以第二许可验证请求消息同样携带有所述令牌数据,且基于第二许可验证请求消息携带有待验证许可数据,所以待验证许可数据包括令牌数据,且许可有效性数据包括所述令牌数据的有效期信息。对应的,许可服务器203具体用于根据许可有效性数据包括的有效期信息判断待验证许可数据包括的令牌数据是否有效,获得第一判断结果,根据所述第一判断结果生成所述第一验证结果。

举例说明,其中,有效期信息是生产该软件应用许可标定的使用时段,例如,规定该有效期信息的时段是2020年6月至2020年9月,那么待验证许可数据包括的令牌数据在未到2020年6月或超过2020年9月后就不能再继续使用了。举例说明,若许可有效性数据包括的有效期信息是2020年6月至2020年9月,待验证许可数据包括的令牌数据是2020年7月至2020年8月,在验证后,获得第一判断结果,根据第一判断结果生成所述第一验证结果。

在本申请第一实施例中,待验证许可数据包括应用程序启动时所在的电子设备所属的集群信息,对应的,许可服务器203具体用于判断所述集群信息与边缘容器集群的集群信息是否相同,若相同,则获得第二判断结果,根据所述第二判断结果生成所述第一验证结果。

在本申请第一实施例中,待验证许可数据包括使用应用程序的用户信息,许可有效性数据包括被许可使用所述应用程序的用户信息,对应的,许可服务器203具体用于判断使用所述应用程序的用户信息是否与被许可使用所述应用程序的用户信息中的至少一个用户信息相同,若相同,则获得第三判断结果,根据所述第三判断结果生成所述第一验证结果。具体的,许可服务器203具体用于如果判断使用所述应用程序的用户信息与被许可使用所述应用程序的用户信息中的至少一个用户信息相同,则将所述使用所述应用程序的用户信息作为被许可用户信息,判断当前正在通过所述被许可用户信息运行所述应用程序的设备数量是否超过被许可设备数量阈值,若未超过,则获得第四判断结果,根据所述第四判断结果生成所述第一验证结果,其中,所述许可有效性数据包括所述被许可设备数量阈值。

举例说明,规定被许可设备数量阈值是5个,若当前正在通过所述被许可用户信息运行所述应用程序的设备数量是3个,在判断后,当前正在通过所述被许可用户信息运行所述应用程序的设备数量未超过被许可设备数量阈值,获得第四判断结果,根据所述第四判断结果生成所述第一验证结果。反之,若规定被许可设备数量阈值是5个,当前正在通过所述被许可用户信息运行所述应用程序的设备数量是6个(在前五个软件应用许可同时启用后,第六个软件应用许可被使用启动时进行验证),在验证后,会验证此次启动是超限额的。

在本申请第一实施例中,待验证许可数据包括请求运行应用程序的设备的运行环境数据;其中,运行环境数据至少包括CPU运行数据和存储器的存储数据。对应的,许可服务器203具体用于如果判断使用应用程序的用户信息与被许可使用所述应用程序的用户信息中的至少一个用户信息相同,则将所述使用所述应用程序的用户信息作为被许可用户信息,判断请求运行所述应用程序的设备的运行环境数据是否满足所述被许可用户信息对应的运行所述应用程序的设备的运行环境条件,获得第五判断结果,根据所述第五判断结果生成所述第一验证结果,其中,所述许可有效性数据包括所述被许可用户信息对应的运行所述应用程序的设备的运行环境条件。具体的,在用户购买一个软件应用的使用权时,判断请求运行所述应用程序的设备的CPU运行数据是否满足应用程序的设备的运行速度条件等,或者断请求运行所述应用程序的设备的存储器的存储数据是否满足应用程序的设备的存储容量条件等。

在许可服务器203获得第一验证结果后,应用程序接口服务器202还用于从用户自定义资源实例中获得所述第一验证结果,将所述第一验证结果返回给所述许可边车容器201,对应的,所述许可边车容器201还用于将所述第一验证结果返回给所述应用程序。

在本申请第一实施例中,待验证许可数据包括所述应用程序启动时所在的电子设备所属的集群信息,对应的,许可服务器203具体用于判断所述集群信息与所述边缘容器集群的集群信息是否相同,获得第二判断结果,根据所述第二判断结果生成所述第一验证结果。通过采集集群信息,从而使得软件应用许可与硬件设备解绑,也使得应用可以自由在集群内的服务器上迁移,即实现应用在集群中做跨主机调度,使得集群在主机当机的情况下对此应用做高可用调度。

在本申请第一实施例中,许可服务器203还用于当所述许可服务器203无法与所述许可管理器204进行信息交互(例如弱网或断网的情况)时,将用于指示许可边车容器201对所述待验证许可数据进行验证的第一指示信息发送给应用程序接口服务器202,或者将用于表示许可服务器203无法对待验证许可数据进行验证的第一状态信息发送给所述应用程序接口服务器202,或者将用于表示许可服务器203无法与许可管理器204进行信息交互的第二状态信息发送给应用程序接口服务器202;对应的,应用程序接口服务器202还用于将第一指示信息、第一状态信息或第二状态信息发送给许可边车容器201;许可边车容器201还用于根据第一指示信息、第一状态信息或第二状态信息,根据缓存的令牌数据对所述待验证许可数据进行验证,获得第二验证结果,并将所述第二验证结果返回给所述应用程序。进一步的,待验证许可数据包括所述令牌数据,对应的,许可边车容器201具体用于判断所述待验证许可数据包括的所述令牌数据与缓存的所述令牌数据是否相同,获得第六判断结果,根据所述第六判断结果获得所述第二验证结果。

在本申请第一实施例中,所述许可管理器204,用于根据所述有效性数据获取请求消息获得所述许可有效性数据,将所述许可有效性数据返回给所述许可服务器203。其中,对应于前述内容,在本申请第一实施例中,许可服务器203还用于获得所述应用程序接口服务器202提供的正在运行所述应用程序的所有用户信息和/或正在运行所述应用程序的所有设备的运行环境数据,将所述正在运行所述应用程序的所有用户信息和/或正在运行所述应用程序的所有设备的运行环境数据发送给所述许可管理器204。对应的,所述许可管理器204具体用于在获得所述有效性数据获取请求消息后,根据所述正在运行所述应用程序的所有用户信息和/或正在运行所述应用程序的所有设备的运行环境数据,生成所述许可有效性数据。

在本申请第一实施例中,还包括:部署在云端的许可数据库,用于存储所述许可有效性数据中的全部数据或者部分数据;所述许可管理器204还用于根据所述有效性数据获取请求消息,从所述许可数据库中获得所述许可有效性数据中的全部数据或者部分数据。需要补充的是,每当许可服务器203读取到相关应用程序的待验证许可数据后,许可服务器203会定时将该待验证许可数据上传云端,并存储在云端的许数据库中,这样可以使得软件应用许可的相关信息被保存在云端,从而完成了集群中使用某个软件应用许可的所有应用实例的规格信息的统计与收集。而且,这些被存储的信息可作为下次验证该软件应用许可的许可有效性数据。

本申请第一实施例提供一种应用程序许可管理系统,包括:与应用程序对应的许可边车容器201,部署在边缘容器集群中的应用程序接口服务器202和许可服务器203,以及部署在云端的许可管理器204;所述许可边车容器201,用于获得应用程序发出的第一许可验证请求消息,并向所述应用程序接口服务器202发送第二许可验证请求消息;所述应用程序接口服务器202,用于根据所述第二许可验证请求消息,创建针对许可令牌的用户自定义资源实例,将所述第二许可验证请求消息携带的待验证许可数据存储到所述用户自定义资源实例中;所述许可服务器203,用于访问所述用户自定义资源实例,获得所述待验证许可数据,并向所述许可管理器204发出用于获取与所述应用程序对应的许可有效性数据的有效性数据获取请求消息,获得所述许可管理器204返回的与所述应用程序对应的许可有效性数据,根据所述许可有效性数据对所述待验证许可数据进行验证,获得第一验证结果,将所述第一验证结果存储到所述用户自定义资源实例中;所述许可管理器204,用于根据所述有效性数据获取请求消息获得所述许可有效性数据,将所述许可有效性数据返回给所述许可服务器203;所述应用程序接口服务器202还用于从用户自定义资源实例中获得所述第一验证结果,将所述第一验证结果返回给所述许可边车容器201;所述许可边车容器201还用于将所述第一验证结果返回给所述应用程序。本申请第一实施例通过许可边车容器201和应用程序接口服务器202创建携带有待验证许可数据的用户自定义资源实例,并通过存储在云端的许可有效性数据验证待验证许可数据,实现了边缘计算公网访问受限场景下应用程序的许可验证。

与上述系统相对应的,本申请第二实施例提供一种应用程序许可管理方法,所述方法的执行主体是应用程序接口服务器。如图3所示,图3为本申请第二实施例提供的一种应用程序许可管理方法的流程图。所述方法包括如下步骤:

步骤S301,获得许可边车容器发送的第二许可验证请求消息。

在本步骤中,许可边车容器是容器组中的一个辅助容器,边车容器是指实现具体验证码验证的客户端逻辑的边车,边车是应用部署的一种模式,一部分逻辑从应用中迁移到边车得以实现。许可边车容器(License Sidecar)用于获得应用程序发出的第一许可验证请求消息,并向应用程序接口服务器发送第二许可验证请求消息。其中,第一许可验证请求消息与第二许可验证请求消息为同一许可验证请求消息。

步骤S302,根据所述第二许可验证请求消息,创建针对许可令牌的用户自定义资源实例,并将所述第二许可验证请求消息携带的待验证许可数据存储到所述用户自定义资源实例中。

在步骤中,第二许可验证请求消息携带有待验证许可数据,在获得第二许可验证请求消息后,可根据所述第二许可验证请求消息,创建针对许可令牌的用户自定义资源实例,并将所述第二许可验证请求消息携带的待验证许可数据存储到所述用户自定义资源实例中。

步骤S303,从用户自定义资源实例中获得第一验证结果,将所述第一验证结果返回给所述许可边车容器。

在本步骤中,第一验证结果通过许可有效性数据对用户自定义资源实例中的所述待验证许可数据进行验证获得,具体的,根据许可有效性数据包括的有效期信息判断待验证许可数据包括的令牌数据是否有效,获得第一判断结果,根据所述第一判断结果生成所述第一验证结果。举例说明,其中,有效期信息是生产该软件应用许可标定的使用时段,例如,规定该有效期信息的时段是2020年6月至2020年9月,那么待验证许可数据包括的令牌数据在未到2020年6月或超过2020年9月后就不能再继续使用了。举例说明,若许可有效性数据包括的有效期信息是2020年6月至2020年9月,待验证许可数据包括的令牌数据是2020年7月至2020年8月,在验证后,获得第一判断结果,根据第一判断结果生成所述第一验证结果。在获得第一验证结果,将所述第一验证结果返回给所述许可边车容器。

与上述系统相对应的,本申请第三实施例提供一种应用程序许可管理方法,所述方法应用于许可服务器。如图4所示,图4为本申请第三实施例提供的一种应用程序许可管理方法的流程图。所述方法包括如下步骤:

步骤S401,访问用户自定义资源实例,获得待验证许可数据。

在本步骤中,用户自定义资源实例基于应用程序接口服务器根据验证请求创建,并获得对应于用户自定义资源实例的创建完成指令,根据创建完成指令,将待验证许可数据存储到用户自定义资源实例中。在许可服务器监听到用户自定义资源实例后,访问用户自定义资源实例,获得待验证许可数据。

步骤S402,向许可管理器发出用于获取与应用程序对应的许可有效性数据的有效性数据获取请求消息,以获得所述许可管理器返回的与所述应用程序对应的许可有效性数据。

在获得待验证许可数据后,可向许可管理器发出用于获取与应用程序对应的许可有效性数据的有效性数据获取请求消息。其中,许可管理器为部署在云端的管理器,用于提供与应用程序对应的许可有效性数据的有效性数据。有效性数据可以对待验证许可数据进行验证。详见步骤S403。

步骤S403,根据所述许可有效性数据对所述待验证许可数据进行验证,获得第一验证结果,将所述第一验证结果存储到所述用户自定义资源实例中。

具体的,根据许可有效性数据包括的有效期信息判断待验证许可数据包括的令牌数据是否有效,获得第一判断结果,根据所述第一判断结果生成所述第一验证结果。举例说明,其中,有效期信息是生产该软件应用许可标定的使用时段,例如,规定该有效期信息的时段是2020年6月至2020年9月,那么待验证许可数据包括的令牌数据在未到2020年6月或超过2020年9月后就不能再继续使用了。举例说明,若许可有效性数据包括的有效期信息是2020年6月至2020年9月,待验证许可数据包括的令牌数据是2020年7月至2020年8月,在验证后,获得第一判断结果,根据第一判断结果生成所述第一验证结果。在获得第一验证结果,将所述第一验证结果返回给所述许可边车容器。

在本申请第一实施例中,待验证许可数据包括使用应用程序的用户信息,许可有效性数据包括被许可使用所述应用程序的用户信息,对应的,许可服务器具体用于判断使用所述应用程序的用户信息是否与被许可使用所述应用程序的用户信息中的至少一个用户信息相同,若相同,则获得第三判断结果,根据所述第三判断结果生成所述第一验证结果。具体的,许可服务器具体用于如果判断使用所述应用程序的用户信息与被许可使用所述应用程序的用户信息中的至少一个用户信息相同,则将所述使用所述应用程序的用户信息作为被许可用户信息,判断当前正在通过所述被许可用户信息运行所述应用程序的设备数量是否超过被许可设备数量阈值,若未超过,则获得第四判断结果,根据所述第四判断结果生成所述第一验证结果,其中,所述许可有效性数据包括所述被许可设备数量阈值。

举例说明,规定被许可设备数量阈值是5个,若当前正在通过所述被许可用户信息运行所述应用程序的设备数量是3个,在判断后,当前正在通过所述被许可用户信息运行所述应用程序的设备数量未超过被许可设备数量阈值,获得第四判断结果,根据所述第四判断结果生成所述第一验证结果。反之,若规定被许可设备数量阈值是5个,当前正在通过所述被许可用户信息运行所述应用程序的设备数量是6个(在前五个软件应用许可同时启用后,第六个软件应用许可被使用启动时进行验证),在验证后,会验证此次启动是超限额的。

在本申请第三实施例中,待验证许可数据包括请求运行应用程序的设备的运行环境数据;其中,运行环境数据至少包括CPU运行数据和存储器的存储数据。对应的,许可服务器具体用于如果判断使用应用程序的用户信息与被许可使用所述应用程序的用户信息中的至少一个用户信息相同,则将所述使用所述应用程序的用户信息作为被许可用户信息,判断请求运行所述应用程序的设备的运行环境数据是否满足所述被许可用户信息对应的运行所述应用程序的设备的运行环境条件,获得第五判断结果,根据所述第五判断结果生成所述第一验证结果,其中,所述许可有效性数据包括所述被许可用户信息对应的运行所述应用程序的设备的运行环境条件。具体的,在用户购买一个软件应用的使用权时,判断请求运行所述应用程序的设备的CPU运行数据是否满足应用程序的设备的运行速度条件等,或者断请求运行所述应用程序的设备的存储器的存储数据是否满足应用程序的设备的存储容量条件等。

在许可服务器获得第一验证结果后,应用程序接口服务器还用于从用户自定义资源实例中获得所述第一验证结果,将所述第一验证结果返回给所述许可边车容器,对应的,所述许可边车容器还用于将所述第一验证结果返回给所述应用程序。

在本申请第三实施例中,待验证许可数据包括所述应用程序启动时所在的电子设备所属的集群信息,对应的,许可服务器具体用于判断所述集群信息与所述边缘容器集群的集群信息是否相同,获得第二判断结果,根据所述第二判断结果生成所述第一验证结果。通过采集集群信息,从而使得软件应用许可与硬件设备解绑,也使得应用可以自由在集群内的服务器上迁移,即实现应用在集群中做跨主机调度,使得集群在主机当机的情况下对此应用做高可用调度。

与本申请第二实施例提供的应用程序许可管理方法相对应的,本申请第四实施例对应提供一种应用程序许可管理装置。由于装置实施例基本相似于第二实施例,所以描述得比较简单,相关之处参见第二实施例的部分说明即可。下述描述的装置实施例仅仅是示意性的。

请参照图5,其为本申请第四实施例提供的一种应用程序许可管理装置的示意图。该应用程序许可管理装置包括:第二许可验证请求消息获得单元501,用于获得许可边车容器发送的第二许可验证请求消息;待验证许可数据处理单元502,用于根据所述第二许可验证请求消息,创建针对许可令牌的用户自定义资源实例,并将所述第二许可验证请求消息携带的待验证许可数据存储到所述用户自定义资源实例中;第一验证结果处理单元503,用于从用户自定义资源实例中获得第一验证结果,将所述第一验证结果返回给所述许可边车容器。

与本申请第三实施例提供的应用程序许可管理方法相对应的,本申请第五实施例对应提供一种应用程序许可管理装置。由于装置实施例基本相似于第三实施例,所以描述得比较简单,相关之处参见第三实施例的部分说明即可。下述描述的装置实施例仅仅是示意性的。

请参照图6,其为本申请第五实施例提供的一种应用程序许可管理装置的示意图。该应用程序许可管理装置包括:待验证许可数据获得单元601,用于访问用户自定义资源实例,获得待验证许可数据;许可有效性数据处理单元602,用于许可有效性数据向许可管理器发出用于获取与应用程序对应的许可有效性数据的有效性数据获取请求消息,以获得所述许可管理器返回的与所述应用程序对应的许可有效性数据;第一验证结果处理单元603,用于根据所述许可有效性数据对所述待验证许可数据进行验证,获得第一验证结果,将所述第一验证结果存储到所述用户自定义资源实例中。

与本申请第二实施例、第三实施例的应用程序许可管理方法相对应的,本申请第六实施例还提供一种电子设备。如图7所示,图7为本申请第六实施例中提供的一种电子设备的示意图。该电子设备,包括:处理器601;存储器602,用于存储计算机程序,该计算机程序被处理器运行,执行第二实施例、第三实施例的应用程序许可管理方法。

与本申请第二实施例、第三实施例的应用程序许可管理方法相对应的,本申请第七实施例还提供一种计算机存储介质,所述计算机存储介质存储有计算机程序,该计算机程序被处理器运行,执行第二实施例、第三实施例的应用程序许可管理方法。

本申请虽然以较佳实施例公开如上,但其并不是用来限定本申请,任何本领域技术人员在不脱离本申请的精神和范围内,都可以做出可能的变动和修改,因此本申请的保护范围应当以本申请权利要求所界定的范围为准。

在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。

内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。

计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括非暂存电脑可读媒体(transitory media),如调制的数据信号和载波。

本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。

20页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:unity代码安全防护方法、计算机可读介质

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类