本发明涉及软件许可技术领域,特别涉及一种软件许可管理方法及装置。
背景技术:
软件许可是软件开发商颁发给软件用户的一种许可文件,使得软件用户能够按照约定的方式行使软件使用权。
现有技术中的软件许可一般是采用以下方法:在软件打包的同时,连同离线许可文件一起打包;这样在运行软件时,会首先查看离线许可文件,获取离线许可文件中的许可信息,根据该许可信息来获得使用软件的相关权限。
这种采用离线许可文件获得许可的方式稳定性比较好,但是却不容易拓展,例如,一旦用户获得离线许可文件,则软件开发商想修改用户的许可信息时,无法进行修改。针对这一问题,在线云许可技术应运而生,但是在线使用云许可技术,却会受到如网络状态、服务端稳定性等因素的影响,稳定性不高,这样对于一些稳定性要求比较高的软件,使用云许可技术会存在较大的风险。
技术实现要素:
有鉴于此,本发明实施例的目的是提供一种能够在线许可和离线许可结合使用的软件许可管理方法及装置。
为了实现上述目的,本发明实施例提供了一种软件许可管理方法,包括:
启动软件时,在线检查是否存在与软件对应的有效的软件许可;
若存在,则基于在线许可信息生成所述软件的离线许可文件;
在软件运行期间,根据所述离线许可文件中记载的许可信息来监控所述软件的运行。
作为优选,所述方法还包括:
在软件运行期间,根据在线许可信息的状态更新所述离线许可文件。
作为优选,在线查询是否存在软件许可,包括:
基于用户账户信息登录服务器来检查是否存在与软件对应的有效的软件许可。
作为优选,生成所述软件的离线许可文件,包括:
基于用户账户信息登录服务器,根据服务器中所存储的在线许可信息,生成所述离线许可文件,并存储至本地缓存。
作为优选,所述方法还包括:
在登出服务器时,删除本地缓存中所存储的所述离线许可文件。作为优选,所述方法还包括:
在登出服务器后,根据所述离线许可文件中记载的许可信息来监控所述软件的运行。
作为优选,所述方法还包括:
所述离线许可文件以预定方式加密。
本发明还提供一种软件许可管理装置,包括:
在线检查模块,配置为在启动软件时,在线检查是否存在与软件对应的有效的软件许可;
生成模块,配置为当在线检查模块检查到存在软件许可时,基于在线许可信息生成所述软件的离线许可文件;
运行模块,配置为在软件运行期间,根据所述离线许可文件中记载的许可信息来监控所述软件的运行。
作为优选,所述装置还包括:
更新模块,配置为在软件运行期间,根据在线许可信息的状态更新所述离线许可文件。
作为优选,所述在线查询模块,包括:
登录子模块,配置为基于用户账户信息登录服务器;
检查子模块,配置为检查服务器上是否存在与用户账户信息对应并与软件对应的有效的软件许可。
作为优选,所述生成模块配置为根据服务器中所存储的与用户账户信息对应的在线许可信息,生成所述离线许可文件,并存储至本地缓存。
作为优选,所述装置还包括:
删除模块,配置为在通过登录子模块登出所述云服务器时,删除本地缓存中所存储的所述离线许可文件。
作为优选,运行模块配置为在通过登录子模块登出服务器后,根据所述离线许可文件中记载的许可信息来监控所述软件的运行。
与现有技术相比,本发明实施例具有以下有益效果:通过生成软件的离线许可文件,并根据所述离线许可文件中记载的许可信息,运行所述软件,这样在使用软件过程中优先使用离线许可文件,保证了所使用软件的稳定性,又对该离线许可文件实时更新,减少和云服务器交互的次数,减少网络等因素带来的不良影响。
附图说明
图1为本发明的软件许可管理方法的实施例一的流程图;
图2为本发明的软件许可管理方法的实施例二的流程图;
图3为本发明的软件许可管理方法的实施例三的流程图;
图4为本发明的软件许可管理装置的实施例一的示意图;
图5为本发明的软件许可管理装置的实施例二的示意图。
具体实施方式
下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。以下实施例用于说明本发明,但不用来限制本发明的范围。
图1为本发明的软件许可管理方法的实施例一的流程图,如图1所示,本实施例的软件许可管理方法,具体可以包括如下步骤:
s101,启动软件时,在线检查是否存在与软件对应的有效的软件许可;若存在,则执行步骤s102;否则,执行步骤s104。
本实施例在具体实施时,可以在云服务器查询软件是否存在软件许可。
s102,基于在线许可信息生成所述软件的离线许可文件。
具体地,在存在软件许可的情况下,可根据云服务器存储的软件许可文件,在本地生成所述软件的离线许可文件,以便于离线使用该软件许可,确保软件运行期间的稳定性,同时确保所生成的离线许可文件是最近的版本。
s103,在软件运行期间,根据所述离线许可文件中记载的许可信息来监控所述软件的运行。
具体地,许可信息可以包括,软件中的哪些功能模块具有权限、软件的加密及签名信息、用户的使用时间或频率等。用户可以根据这些许可信息使用软件的授权使用的模块。
s104,直接运行所述软件。
本实施例中在检查不存在软件许可时默认为软件不需要软件许可,从而直接运行软件。但本发明不限于此,在其他实施例中,当检查不存在软件许可时还可以直接禁止运行软件,或可以禁止运行软件的受限模块。
本发明实施例的技术方案通过生成软件的离线许可文件,并根据所述离线许可文件中记载的许可信息,运行所述软件,这样在使用软件过程中优先使用离线许可文件,保证了所使用软件的稳定性,又对该离线许可文件时时更新,减少和云服务器交互的次数,减少网络等因素带来的不良影响。
图2为本发明的软件许可管理方法的实施例二的流程图,本实施例的软件许可管理方法在上述实施例一的基础上,进一步更加详细地介绍本发明的技术方案。如图2所示,本实施例的软件许可管理方法,具体可以包括如下步骤:
s201,基于用户账户信息登录服务器来检查是否存在与软件对应的有效的软件许可;若存在,则执行步骤s202;否则,执行步骤s206。
本实施例在具体实施时,可以在云服务器查询软件是否存在软件许可。
s202,基于用户账户信息登录服务器,根据服务器中所存储的在线许可信息,生成所述离线许可文件,并存储至本地缓存。
具体地,在存在软件许可的情况下,根据云服务器存储的软件许可文件,在本地生成所述软件的离线许可文件,以便于离线使用该软件许可,确保软件运行期间的稳定性,同时确保所生成的离线许可文件是最近的版本。
s203,在软件运行期间,根据所述离线许可文件中记载的许可信息来监控所述软件的运行。
具体地,许可信息可以包括,软件中的哪些功能模块具有权限、软件的加密及签名信息、用户的使用时间或频率等。用户可以根据这些许可信息使用软件的已授权模块。
s204,在软件运行期间,根据在线许可信息的状态更新所述离线许可文件。
具体地,由于软件开发商可以根据与用户的协议变更软件许可的内容,例如,原来许可使用一年,变更为许可使用半年,或者将许可使用的时间延后等,则可以在在线软件许可文件中做相应的设置。云服务器中的许可文件可以由软件开发商随时进行更新,因此,可以在软件运行期间对离线许可文件进行实时更新。
在具体实施时,可以设定在登录软件许可后的预设时间间隔查看是否存在更新的许可文件。这样,在运行软件期间,优先使用离线许可文件,确保软件运行的稳定性,同时,还保证实时更新离线许可文件,确保所使用的离线许可文件的版本为最新版本,另外,这种方式减少了与云服务器的交互次数,减少网络不稳定带来的风险。
s205,在登出所述云服务器时,删除本地缓存中所存储的所述离线许可文件。
具体地,在登录所述云服务器时,即建立了与云服务器的会话,并生成离线许可文件。所生成的离线许可文件中包含了当前会话的信息,例如,当前用户的用户名和密码、公钥和私钥等,为了确保这些信息不被泄露,则当结束该会话时,可以删除本地缓存中的离线许可文件。
s206,直接运行所述软件。
本发明实施例的技术方案可以在登录云服务器时,更新离线许可文件,以确保离线许可文件为最新版本,使用户获取更新后的软件许可权限;同时在登出云服务器时删除本地缓存中的离线许可文件,以确保用户信息的安全性。
图3为本发明的软件许可管理方法的实施例三的流程图,本实施例的软件许可管理方法在上述实施例一的基础上,进一步更加详细地介绍本发明的技术方案。如图3所示,本实施例的软件许可管理方法,具体可以包括如下步骤:
s301,基于用户账户信息登录服务器来检查是否存在与软件对应的有效的软件许可;若存在,则执行步骤s302;否则,执行步骤s306。
本实施例在具体实施时,可以在云服务器查询软件是否存在软件许可。
s302,根据服务器中所存储的在线许可信息,生成所述离线许可文件,并存储至本地缓存。
具体地,在存在软件许可的情况下,根据云服务器存储的软件许可文件,生成所述软件的离线许可文件,以便于离线使用该软件许可,确保软件运行期间的稳定性,同时确保所生成的离线许可文件是最近的版本。
s303,在软件运行期间,根据所述离线许可文件中记载的许可信息来监控所述软件的运行。
具体地,许可信息可以包括,软件中的哪些功能模块具有权限、软件的加密及签名信息、用户的使用时间或频率等。用户可以根据这些许可信息使用软件的已授权模块。
s304,在软件运行期间,根据在线许可信息的状态更新所述离线许可文件。
具体地,由于软件开发商可以根据与用户的协议变更软件许可的内容,例如,原来许可使用一年,变更为许可使用半年,或者将许可使用的时间延后,则可以在软件许可文件中做相应的设置。云服务器中的许可文件可以由软件开发商随时进行更新,因此,可以在软件运行期间对离线许可文件进行实时更新。
在具体实施时,可以设定在登录软件许可后的预设时间间隔查看是否存在更新的许可文件。这样,在运行软件期间,优先使用离线许可文件,确保软件运行的稳定性,同时,还保证实时更新离线许可文件,确保所使用的离线许可文件的版本为最新版本,另外,这种方式减少了与云服务器的交互次数,减少网络不稳定带来的风险。
s305,在登出服务器后,根据所述离线许可文件中记载的许可信息来监控所述软件的运行。
具体地,本实施例还可以根据用户的实际情况,使用户在离线的情况下,也可以使用软件。因此,在与云服务器建立连接时,生成离线许可文件,在登出云服务器时,并不删除本地缓存中所存储的该离线许可文件,这样可以继续使用该软件。需要说明的是,这里离线许可文件的存续期间与本地的设置有关,例如,实际的许可文件中软件使用期间为一年,本地缓存设置为一个月清除一次,则该离线许可文件可以在本地缓存中保留一个月,则用户在这一个月内可以使用软件。当本地缓存清除后,就需要再次登录云服务器获取软件许可。
s306,直接运行所述软件。
本发明实施例的技术方案在登出云服务器时,并不删除本地缓存中的离线许可文件,使用户在一定时间内不必每次都登录云服务器获取软件许可,方便用户使用。
图4为本发明的软件许可管理装置的实施例一的示意图,如图4所示,本实施例的软件许可管理装置,具体可以包括查询模块41、生成模块42和运行模块43。
在线检查模块41,配置为在启动软件时,在线检查是否存在与软件对应的有效的软件许可;
生成模块42,配置为当在线检查模块41检查到存在软件许可时,基于在线许可信息生成所述软件的离线许可文件;
运行模块43,配置为在软件运行期间,根据所述离线许可文件中记载的许可信息来监控所述软件的运行。
本实施例的软件许可管理装置,通过采用上述模块获取软件许可的实现机制与上述图1所示实施例的软件许可管理方法的实现机制相同,详细可以参考上述图1所示实施例的记载,在此不再赘述。
图5为本发明的软件许可管理装置的实施例二的示意图,本实施例的软件许可管理装置在如图4所示的实施例一的基础上,进一步更加详细地介绍本发明的技术方案。如图5所示,本实施例的软件许可管理装置,进一步可以包括:
更新模块44,配置为在软件运行期间,根据在线许可信息的状态更新所述离线许可文件。
此外,所述在线检查模块41可以进一步包括:
登录子模块411,配置为基于用户账户信息登录服务器;
检查子模块412,配置为检查服务器上是否存在与用户账户信息对应并与软件对应的有效的软件许可。
如图5所示,所述软件许可管理装置还可以包括:
删除模块(未示出),配置为在通过登录子模块411登出所述云服务器时,删除本地缓存中所存储的所述离线许可文件。
本实施例的软件许可管理装置,通过采用上述模块获取软件许可的实现机制与上述图2所示实施例的软件许可管理方法的实现机制相同,详细可以参考上述图2所示实施例的记载,在此不再赘述。
在本发明一个实施例中,运行模块43还可以配置为在通过登录子模块411登出所述云服务器后,根据所述离线许可文件中记载的许可信息来监控所述软件的运行。
本实施例的软件许可管理装置,通过采用上述模块获取软件许可的实现机制与上述图3所示实施例的软件许可管理方法的实现机制相同,详细可以参考上述图3所示实施例的记载,在此不再赘述。
以上实施例仅为本发明的示例性实施例,不用于限制本发明,本发明的保护范围由权利要求书限定。本领域技术人员可以在本发明的实质和保护范围内,对本发明做出各种修改或等同替换,这种修改或等同替换也应视为落在本发明的保护范围内。