一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

基于容器集群的软件授权方法、装置以及存储介质与流程

2022-10-29 01:06:52 来源:中国专利 TAG:


1.本技术涉及信息技术领域,特别是涉及一种基于容器集群的软件授权方法、装置以及存储介质。


背景技术:

2.虚拟机集群部署情况下,在集群中当一台控制服务器(即虚拟机)发生故障或负荷较重时,会把虚拟机的控制转到集群中的另一台控制服务器(即虚拟机)上,此现象称为虚拟机漂移。虚拟机集群部署的这个特性使虚机集群部署可以保证业务运行的连续性,不会因为控制服务器的故障或流量激增而导致虚机中断运行,以及提高整体硬件利用率和软件服务的连续性。当前虚拟机集群部署由于其特有的优势越来越受到软件商家的青睐。但虚拟机漂移的存在给软件授权带来了新的挑战。
3.在最基础的层面上,虚拟机是容器运行的绝佳场所。当使用容器化进行部署时,授权程序收集机器码有两种方式:1.使用容器的机器码2.使用宿主机的机器码。由于容器的机器码比较容易伪造,授权程序收集客户的机器码一般用宿主机的机器码。然而,在虚拟机集群部署情况下可能存在容器漂移的情况,就算是指定获取cpu编号,可能在下一次验证时,cpu编号就会发生改变,此时授权程序收集到的机器码与授权文件中的机器码不一致,从而导致授权文件失效,软件授权服务中断。
4.针对上述的现有技术中存在的当容器因异常发生漂移时,授权程序收集到的机器码发生了改变,从而导致软件授权服务中断的技术问题,目前尚未提出有效的解决方案。


技术实现要素:

5.本技术的实施例提供了一种基于容器集群的软件授权方法、装置以及存储介质,以至少解决现有技术中存在的当容器因异常发生漂移时,授权程序收集到的机器码发生了改变,从而导致软件授权服务中断的技术问题。
6.根据本技术实施例的一个方面,提供了一种基于容器集群的软件授权方法,包括:授权检测服务器将用于申请软件授权服务能力的申请文件发送至对应的软件开发商,其中授权检测服务器为物理机,申请文件包括物理机的机器码;授权检测服务器在从软件开发商接收到对应的授权文件的情况下,将授权文件的授权信息同步至容器集群中的所有容器,其中授权文件为软件开发商根据机器码生成的文件,容器集群中的所有容器均在授权检测服务器中成功注册;授权检测服务器的第一容器接收第二容器发送的授权请求信息,其中第一容器和第二容器均为容器集群中的容器,第一容器具有向容器集群中的所有容器提供软件授权服务的能力;以及第一容器响应于授权请求信息,根据当前软件资源数据向第二容器提供软件授权服务,其中当前软件资源数据包括当前允许的软件服务类型和剩余的并发量。
7.根据本技术实施例的另一个方面,还提供了一种存储介质,存储介质包括存储的程序,其中,在程序运行时由处理器执行以上任意一项的方法。
8.根据本技术实施例的另一个方面,还提供了一种基于容器集群的软件授权装置,包括:申请文件发送模块,用于授权检测服务器将用于申请软件授权服务能力的申请文件发送至对应的软件开发商,其中授权检测服务器为物理机,申请文件包括物理机的机器码;授权信息同步模块,用于授权检测服务器在从软件开发商接收到对应的授权文件的情况下,将授权文件的授权信息同步至容器集群中的所有容器,其中授权文件为软件开发商根据机器码生成的文件,容器集群中的所有容器均在授权检测服务器中成功注册;授权请求信息接收模块,用于授权检测服务器的第一容器接收第二容器发送的授权请求信息,其中第一容器和第二容器均为容器集群中的容器,第一容器具有向容器集群中的所有容器提供软件授权服务的能力;以及授权请求信息响应模块,用于第一容器响应于授权请求信息,根据当前软件资源数据向第二容器提供软件授权服务,其中当前软件资源数据包括当前允许的软件服务类型和剩余的并发量。
9.根据本技术实施例的另一个方面,还提供了一种基于容器集群的软件授权装置,包括:处理器;以及存储器,与处理器连接,用于为处理器提供处理以下处理步骤的指令:授权检测服务器将用于申请软件授权服务能力的申请文件发送至对应的软件开发商,其中授权检测服务器为物理机,申请文件包括物理机的机器码;授权检测服务器在从软件开发商接收到对应的授权文件的情况下,将授权文件的授权信息同步至容器集群中的所有容器,其中授权文件为软件开发商根据机器码生成的文件,容器集群中的所有容器均在授权检测服务器中成功注册;授权检测服务器的第一容器接收第二容器发送的授权请求信息,其中第一容器和第二容器均为容器集群中的容器,第一容器具有向容器集群中的所有容器提供软件授权服务的能力;以及第一容器响应于授权请求信息,根据当前软件资源数据向第二容器提供软件授权服务,其中当前软件资源数据包括当前允许的软件服务类型和剩余的并发量。
10.在本技术实施例中,授权检测服务器将用于申请软件授权服务能力的申请文件发送至对应的软件开发商,之后从软件开发商接收到对应的授权文件,将授权文件的授权信息同步至容器集群中的所有容器,然后授权检测服务器的第一容器接收第二容器发送的授权请求信息,第一容器响应于授权请求信息,根据当前软件资源数据向第二容器提供软件授权服务。一方面,本技术方案的授权检测服务器利用不容易伪造的物理机的机器码向软件开发商申请软件授权服务,对比容易伪造的容器的机器码,提高了软件授权的安全性。另一方面,在需要限制软件使用并发量的情况下,授权检测服务器通过部署多个容器,允许每个容器只申请少量并发授权,从而满足了授权检测服务器大并发的需求。另外与软件开发商主动为容器集群中的每个容器都进行软件授权相比,本技术方案的软件开发商只需要向容器集群中的一个容器发放软件授权,使得该容器(下文称软件授权容器)具有向容器集群中的所有容器提供软件授权服务的能力。从而,在容器集群中的其他容器需要获取软件授权服务的情况下,可以直接向软件授权容器发送授权请求信息,由软件授权容器根据当前软件授权资源执行为请求对象提供相应的软件授权服务,从而减少了软件开发商为每个容器都进行软件授权所产生的部署和维护的工作量。
11.并且,本技术技术方案的软件授权容器利用其物理机的机器码向软件开发商申请授权文件,使得授权程序在进行授权检测过程中收集的是软件授权容器的机器码,因此当容器集群中除软件授权容器之外的其他容器发生漂移时,授权程序收集到的机器码也不会
改变,不会中断软件授权服务,从而软件授权容器仍能够继续为发生漂移后的各个容器提供软件授权服务。此外,当软件授权容器发生漂移时,不同于传统的解决容器漂移的方法,本技术方案只需要从容器集群的其他容器中重新推选出一个容器来作为新的软件授权容器,由新的软件授权容器继续向容器集群中的所有容器提供软件授权服务。从而,当容器集群中的各个容器因异常发生漂移时,可以自动将原容器申请的资源进行回收,并给新容器重新分配资源。当容器集群内的软件授权容器故障时自动推选出新的软件授权容器,保证软件授权服务不中断。而且软件授权容器也部署在容器集群中,不需要用户开通公网访问,适用于对安全性要求较高的场景。进而解决了现有技术中存在的当容器因异常发生漂移时,授权程序收集到的机器码发生了改变,从而导致软件授权服务中断的技术问题。
附图说明
12.此处所说明的附图用来提供对本技术的进一步理解,构成本技术的一部分,本技术的示意性实施例及其说明用于解释本技术,并不构成对本技术的不当限定。在附图中:
13.图1是用于实现根据本技术实施例1所述的方法的计算设备的硬件结构框图;
14.图2是根据本技术实施例1所述的基于容器集群的软件授权系统的示意图;
15.图3是根据本技术实施例1的第一个方面所述的基于容器集群的软件授权方法的流程示意图;
16.图4是根据本技术实施例1的第一个方面所述的基于容器集群的软件授权方法的另一个流程示意图;
17.图5是根据本技术实施例2所述的基于容器集群的软件授权装置的示意图;以及
18.图6是根据本技术实施例3所述的基于容器集群的软件授权装置的示意图。
具体实施方式
19.为了使本技术领域的人员更好地理解本技术的技术方案,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例仅仅是本技术一部分的实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本技术保护的范围。
20.需要说明的是,本技术的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本技术的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
21.实施例1
22.根据本实施例,提供了一种基于容器集群的软件授权方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所
示出或描述的步骤。
23.本实施例所提供的方法实施例可以在移动终端、计算机终端、服务器或者类似的计算设备中执行。图1示出了一种用于实现基于容器集群的软件授权方法的计算设备的硬件结构框图。如图1所示,计算设备可以包括一个或多个处理器(处理器可以包括但不限于微处理器mcu或可编程逻辑器件fpga等的处理装置)、用于存储数据的存储器、以及用于通信功能的传输装置。除此以外,还可以包括:显示器、输入/输出接口(i/o接口)、通用串行总线(usb)端口(可以作为i/o接口的端口中的一个端口被包括)、网络接口、电源和/或相机。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,计算设备还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。
24.应当注意到的是上述一个或多个处理器和/或其他数据处理电路在本文中通常可以被称为“数据处理电路”。该数据处理电路可以全部或部分的体现为软件、硬件、固件或其他任意组合。此外,数据处理电路可为单个独立的处理模块,或全部或部分的结合到计算设备中的其他元件中的任意一个内。如本技术实施例中所涉及到的,该数据处理电路作为一种处理器控制(例如与接口连接的可变电阻终端路径的选择)。
25.存储器可用于存储应用软件的软件程序以及模块,如本技术实施例中的基于容器集群的软件授权方法对应的程序指令/数据存储装置,处理器通过运行存储在存储器内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的应用程序的基于容器集群的软件授权方法。存储器可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器可进一步包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至计算设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
26.传输装置用于经由一个网络接收或者发送数据。上述的网络具体实例可包括计算设备的通信供应商提供的无线网络。在一个实例中,传输装置包括一个网络适配器(network interface controller,nic),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置可以为射频(radio frequency,rf)模块,其用于通过无线方式与互联网进行通讯。
27.显示器可以例如触摸屏式的液晶显示器(lcd),该液晶显示器可使得用户能够与计算设备的用户界面进行交互。
28.此处需要说明的是,在一些可选实施例中,上述图1所示的计算设备可以包括硬件元件(包括电路)、软件元件(包括存储在计算机可读介质上的计算机代码)、或硬件元件和软件元件两者的结合。应当指出的是,图1仅为特定具体实例的一个实例,并且旨在示出可存在于上述计算设备中的部件的类型。
29.图2是根据本实施例所述的基于容器集群10的软件授权系统的示意图。参照图2所示,该系统包括:物理机110~130以及容器111~132。其中,物理机110包括容器111~112,物理机120包括容器121~122,以及物理机130包括容器131~132。
30.在上述运行环境下,根据本实施例的第一个方面,提供了一种基于容器集群的软件授权方法,图3示出了该方法的流程示意图,参考图3所示,该方法包括:
31.s302:授权检测服务器将用于申请软件授权服务能力的申请文件发送至对应的软
件开发商,其中授权检测服务器为物理机,申请文件包括物理机的机器码;
32.s304:授权检测服务器在从软件开发商接收到对应的授权文件的情况下,将授权文件的授权信息同步至容器集群中的所有容器,其中授权文件为软件开发商根据机器码生成的文件,容器集群中的所有容器均在授权检测服务器中成功注册;
33.s306:授权检测服务器的第一容器接收第二容器发送的授权请求信息,其中第一容器和第二容器均为容器集群中的容器,第一容器具有向容器集群中的所有容器提供软件授权服务的能力;以及
34.s308:第一容器响应于授权请求信息,根据当前软件资源数据向第二容器提供软件授权服务,其中当前软件资源数据包括当前允许的软件服务类型和剩余的并发量。
35.具体的,参考图2所示,容器集群10部署在一个或者多个物理机上,用户可以选择其中的一个物理机(例如物理机110)作为授权检测服务器。授权检测服务器将用于申请软件授权服务能力的申请文件发送至对应的软件开发商。具体地,授权检测服务器收集该物理机的机器码,其中该机器码为硬件序列号经过一系列加密、散列之后形成的一串序列号。之后授权检测服务器将该机器码加密保存到文件中,将此文件发送给软件开发商,向软件开发商申请授权。其中授权检测服务器可以向多个软件开发商申请授权(s302)。
36.进一步地,授权检测服务器在从软件开发商接收到对应的授权文件的情况下,将授权文件的授权信息同步至容器集群10中的所有容器。具体地,在软件开发商根据机器码生成授权文件,并将授权文件向授权检测服务器发送后,授权检测服务器从软件开发商接收到对应的授权文件。其中授权文件包括但不限于:服务类型、有效期、请求的资源数和机器码。之后授权检测服务器将授权文件的授权信息同步至容器集群10中的所有容器。其中,授权信息包括软件服务类型和允许授权的数量。在授权检测服务器将授权信息同步至所有容器之前,容器需要向授权检测服务器发送注册消息,注册消息中携带ip地址和唯一身份标识例如容器id、uuid和时间戳。之后授权检测服务器对注册消息进行响应,响应消息中携带授权检测服务器的ip地址。然后该容器注册成功,加入容器集群10中,因此容器集群10中的所有容器均为在授权检测服务器中成功注册的容器(s304)。
37.进一步地,授权检测服务器的第一容器接收第二容器发送的授权请求信息,其中第一容器和第二容器均为容器集群中的容器。具体地,授权检测服务器选择某个物理机(例如物理机110)中的第一容器(例如容器111)作为软件授权容器,该软件授权容器用于向容器集群10中的所有容器(即容器111~132)提供软件授权服务。在第二容器(例如容器121)向容器111发送授权请求信息后,授权检测服务器的第一容器(即容器111)可以接收到第二容器(即容器121)发送的授权请求信息。其中,授权请求信息包括软件服务类型及其数量。此外,第一容器(即容器111)也可以向自身发送授权请求信息(s306)。
38.进一步地,容器111(即第一容器)接收到容器121(即第二容器)发送的授权请求信息后,响应于该授权请求信息,根据当前软件资源数据向第二容器提供软件授权服务。其中容器111(即第一容器)存储的当前软件资源数据包括当前允许的软件服务类型和剩余的并发量。例如容器111(即第一容器)存储的当前软件资源数据中当前允许的软件服务类型为软件服务类型1~5,每种软件服务类型的剩余并发量均为10个。当容器111(即第一容器)接收的容器121(即第二容器)发送的授权请求信息例如为:软件服务类型1,数量为2个。容器111(即第一容器)则根据当前软件资源数据判断可以为容器121(即第二容器)提供软件授
权服务,从而向容器121(即第二容器)提供软件服务类型为1,数量为2个的软件授权服务。此外,容器111(即第一容器)向容器121(即第二容器)提供软件授权服务后,当前软件资源数据中的软件资源服务类型为软件资源服务类型1~5,软件资源服务类型1的剩余并发量为8个,软件资源服务类型2~5的剩余并发量为每种10个(s308)。
39.此外,尽管此处以容器121为例说明与容器111(即第一容器)进行交互的过程,对于其他容器111~121和容器121~132,也同样适用于该过程。此处不再赘述。
40.正如背景技术中所述的,当使用容器化进行部署时,授权程序收集机器码有两种方式:1.使用容器的机器码2.使用宿主机的机器码。由于容器的机器码比较容易伪造,授权程序收集客户的机器码一般用宿主机的机器码。然而,在虚拟机集群部署情况下可能存在容器漂移的情况,就算是指定获取cpu编号,可能在下一次验证时,cpu编号就会发生改变,此时授权程序收集到的机器码与授权文件中的机器码不一致,从而导致授权文件失效,软件授权服务中断。
41.针对以上所述的技术问题,通过本技术实施例的技术方案,授权检测服务器将用于申请软件授权服务能力的申请文件发送至对应的软件开发商,之后从软件开发商接收到对应的授权文件,将授权文件的授权信息同步至容器集群中的所有容器,然后授权检测服务器的第一容器接收第二容器发送的授权请求信息,第一容器响应于授权请求信息,根据当前软件资源数据向第二容器提供软件授权服务。一方面,本技术方案的授权检测服务器利用不容易伪造的物理机的机器码向软件开发商申请软件授权服务,对比容易伪造的容器的机器码,提高了软件授权的安全性。另一方面,在需要限制软件使用并发量的情况下,授权检测服务器通过部署多个容器,允许每个容器只申请少量并发授权,从而满足了授权检测服务器大并发的需求。另外与软件开发商主动为容器集群中的每个容器都进行软件授权相比,本技术方案的软件开发商只需要向容器集群中的一个容器发放软件授权,使得该容器(下文称软件授权容器)具有向容器集群中的所有容器提供软件授权服务的能力。从而,在容器集群中的其他容器需要获取软件授权服务的情况下,可以直接向软件授权容器发送授权请求信息,由软件授权容器根据当前软件授权资源执行为请求对象提供相应的软件授权服务,从而减少了软件开发商为每个容器都进行软件授权所产生的部署和维护的工作量。并且,本技术技术方案的软件授权容器利用其物理机的机器码向软件开发商申请授权文件,使得授权程序在进行授权检测过程中收集的是软件授权容器的机器码,因此当容器集群中除软件授权容器之外的其他容器发生漂移时,授权程序收集到的机器码也不会改变,不会中断软件授权服务,从而软件授权容器仍能够继续为发生漂移后的各个容器提供软件授权服务,保证软件授权服务不中断。进而解决了现有技术中存在的当容器因异常发生漂移时,授权程序收集到的机器码发生了改变,从而导致软件授权服务中断的技术问题。
42.可选地,方法还包括:第一容器在向第二容器发放软件授权的情况下,生成资源变化数据,其中资源变化数据用于记录向第二容器发放的软件资源;第一容器根据资源变化数据更新当前软件资源数据;以及第一容器将资源变化数据和更新后的当前软件资源数据同步至容器集群中的所有容器。
43.具体地,第一容器在向第二容器发放软件授权的情况下,生成资源变化数据,其中资源变化数据用于记录向第二容器发放的软件资源。参考图2所示,例如容器111(即第一容器)在向容器121(即第二容器)发放软件授权后,会生成记录有容器111(即第一容器)向容
器121(即第二容器)发放软件资源的资源变化数据。其中,容器111(即第一容器)向容器121(即第二容器)发放的软件资源包括软件服务类型1,数量为2个,则生成的资源变化数据为:容器111(即第一容器)向容器121(即第二容器)发放软件服务类型1,其数量为2个。之后容器111(即第一容器)根据资源变化数据更新当前软件资源数据,则更新后的当前软件资源数据为:软件资源服务类型为软件资源服务类型1~5,软件资源服务类型1的剩余并发量为8个,软件资源服务类型2~5的剩余并发量为每种10个。然后容器111(即第一容器)将资源变化数据和更新后的当前软件资源数据同步至容器集群10中的所有容器。从而本技术方案中第一容器在向第二容器发放软件授权的情况下,生成资源变化数据,并更新当前软件资源数据。之后第一容器将资源变化数据和更新后的当前软件资源数据同步至容器集群中的所有容器。从而当第一容器发生故障,无法进行软件授权服务时,也不会因此而丢失数据,之后再重新选择新的授权服务容器向容器集群中的所有容器提供软件授权服务,该新的授权服务容器就可以通过自身存储的资源变化数据和当前软件资源数据,了解软件资源授权情况,明确应向已发生故障的容器回收资源的授权资源类型及其数量,并继续向容器集群内的所有容器提供授权服务,保证了数据的完整性。
44.可选的,方法还包括:第一容器在检测到第二容器丢失心跳的情况下,回收发放至第二容器上的软件资源;第一容器根据回收的操作,更新资源变化数据和当前软件资源数据;以及第一容器将更新后的资源变化数据和当前软件资源数据同步至容器集群中的所有容器。
45.具体地,参考图2以及图4所示,容器121(即第二容器)会定时向容器集群10中的其他容器定时发送心跳消息,其中心跳消息携带容器121(即第二容器)唯一身份标识。容器111(即第一容器)在检测到容器121(即第二容器)丢失心跳后,会回收发放至容器121(即第二容器)的软件资源。例如容器121(即第二容器)拥有2个软件服务类型1的软件资源,容器111(即第一容器)检测到容器121(即第二容器)丢失心跳后,回收容器121(即第二容器)拥有的2个软件服务类型1的软件资源。之后容器111(即第一容器)根据回收的软件资源,更新资源变化数据和当前软件资源数据。例如容器111(即第一容器)根据回收的2个软件服务类型1的软件资源,更新的资源变化数据为:向容器121回收软件服务类型1,其数量为2个。并且,容器111根据上述回收的操作,更新后的当前软件资源数据为:软件资源服务类型1~5,软件资源服务类型1~5的剩余并发量为每种10个。之后容器111(即第一容器)将更新后的资源变化数据和当前软件资源数据同步至容器集群10中的所有容器。从而本技术方案通过第一容器检测第二容器心跳是否丢失的方式,维护了容器集群。第一容器在检测到第二容器丢失心跳的情况下,回收发放至第二容器上的软件资源,使第一容器可发放的可用资源增加,提高软件资源的利用率。此外,本技术方案通过更新资源变化数据和当前软件资源数据,并通过第一容器将更新后的资源变化数据和当前软件资源数据同步至容器集群中的所有容器。从而当第一容器发生故障,无法进行软件授权服务时,也不会因此而丢失数据,之后再重新选择新的授权服务容器向容器集群中的所有容器提供软件授权服务,该新的授权服务容器就可以通过自身存储的资源变化数据和当前软件资源数据,了解软件资源授权情况,明确应向已发生故障的容器回收资源的授权资源类型及其数量,并继续向容器集群内的所有容器提供授权服务,保证了数据的完整性。
46.可选的,方法还包括:在检测到第一容器丢失心跳的情况下,容器集群中的其他容
器使用预设的算法推选出一个目标容器作为新的软件授权容器,其中推选出的目标容器具有向容器集群中的其他容器提供软件授权服务的能力;以及目标容器向容器集群中的所有容器发送通知信息,其中通知信息用于通告由目标容器向容器集群中的所有容器提供软件授权服务。
47.具体地,参考图2所示,容器111(即第一容器)会定时向容器集群10中的其他容器定时发送心跳消息,其中心跳消息携带容器111(即第一容器)唯一身份标识。其他容器在检测到容器111(即第一容器)丢失心跳后,容器集群10中的其他容器使用预设的算法推选出一个目标容器作为新的软件授权容器。其中推选算法是通过对容器集群10中所有容器的唯一身份标识进行排序,选择最大容器作为新的软件授权容器,并且推选出的目标容器具有向容器集群中的所有容器提供软件授权服务的能力。例如容器集群中的百分之八十以上的容器检测到容器111(即第一容器)丢失心跳后,容器集群10中的其他容器使用预设的算法推选出一个目标容器作为新的软件授权容器,向容器集群中的所有容器提供软件授权服务。
48.在推选出的目标容器与原先的软件授权服务器不存在同一个物理机中的情况下,需要确定新的软件授权容器所在的物理机,将该物理机设置为新的授权检测服务器,再由新的授权检测服务器利用该物理机的机器码(即cpu编号)重新向软件开发商申请授权服务能力。例如推选出的目标容器为容器122,将容器122作为新的软件授权容器。原先的软件授权服务器设置于物理机110中,此时新的软件授权容器(即容器122)与原先的软件授权服务器并不在同一个物理机中。因此需要确定新的软件授权容器(即容器122)所在的物理机(即物理机120),从而在将物理机120设置为新的授权检测服务器后,由新的授权检测服务器基于其cpu编号重新向软件开发商申请授权服务能力。之后由容器122向容器集群中的所有容器提供软件授权服务。
49.另外,在推选出的目标容器与原先的软件授权服务器处在同一个物理机中的情况下则就无需重新获取cpu编号向软件开发商申请授权服务能力,目标容器作为新的软件授权容器可以直接向容器集群中的所有容器提供软件授权服务。例如当推选出的目标容器为容器112时,将容器112作为新的软件授权容器,并且由于容器112与原先的软件授权服务器设置与同一个物理机(即物理机110)中,则无需重新获取cpu编号向软件开发商申请授权服务能力,目标容器(即容器112)就可以直接向容器集群中的所有容器提供软件授权服务。
50.然后目标容器例如容器122向容器集群10中的所有容器发送通知信息,通告此后由目标容器例如容器122向容器集群10中的所有容器提供软件授权服务。从而本技术方案通过其他容器检测第一容器心跳是否丢失的方式,维护了容器集群。在其他容器检测到第一容器心跳丢失的情况下,其他容器则会在容器集群中推选出一个目标容器作为新的软件授权容器,继续向容器集群中的所有容器提供软件授权服务,保证授权服务不中断。然后目标容器向容器集群中的所有容器发送通知信息,通告由目标容器向容器集群中的所有容器提供软件授权服务。从而,当容器集群中的容器需要软件授权时,就可以找到该目标容器获得软件授权。
51.可选的,方法还包括:第二容器在检测到已全部丢失容器集群中的其他容器的心跳的情况下,重启第二容器;和/或第一容器在检测到已全部丢失容器集群中的其他容器的心跳的情况下,重启第一容器。
52.具体地,参考图2所示,容器121(即第二容器)和容器111(即第一容器)会定时向容器集群10中的其他容器定时发送心跳消息,其中心跳消息携带容器121(即第二容器)和容器111(即第一容器)各自的唯一身份标识。容器121(即第二容器)在检测到已全部丢失容器集群10中的其他容器的心跳的情况下,进行自动重启容器121(即第二容器)的操作。容器111(即第一容器)在检测到已全部丢失容器集群10中的其他容器的心跳的情况下,进行自动重启容器111(即第一容器)的操作。从而容器集群中的容器在检测到已全部丢失容器集群中的其他容器的心跳的情况下,通过自动重启的方式,尝试解决例如卡顿等微小原因而造成的心跳丢失的情况。
53.可选的,方法还包括:容器集群中的各个容器在容器集群中广播注册消息,其中注册消息包括容器的唯一身份标识;授权检测服务器对注册消息进行响应,并将响应消息发送至对应的容器,其中响应消息包括授权检测服务器的ip地址;以及授权检测服务器记录所有已注册的容器,生成注册容器列表,并将注册容器列表同步至所有已注册的容器。
54.具体地,参考图2以及图4所示,容器集群10中的各个容器在容器集群中广播注册消息,其中注册消息包括容器的唯一身份标识。例如,容器121在申请注册时,会在容器集群中广播包括容器121的唯一身份标识的广播注册消息。之后授权检测服务器会对容器121的注册消息进行响应,并将响应消息发送至容器集群10中的容器121,其中响应消息包括授权检测服务器的ip地址。然后授权检测服务器记录所有已注册的容器,生成注册容器列表,并将注册容器列表同步至所有已注册的容器。从而,在各个容器向授权检测服务器申请注册时,可以将包括有各自容器的唯一身份标识的注册消息在容器集群10中进行广播,从而通知容器集群10中的所有容器,有新的容器加入,从而在检测心跳消息时,参与维护容器集群。此外,授权检测服务器对注册消息进行响应,并将包括授权检测服务器的ip地址的响应消息发送至对应的容器,从而当该容器需要软件授权时,可以准确找到授权检测服务器ip地址,获得软件授权。之后,授权检测服务器记录所有已注册的容器,生成注册容器列表,从而可以更好地管理容器集群中的所有容器,将注册容器列表同步至所有已注册的容器,使得所有容器可以维护注册容器列表,保证了数据的完整性。
55.可选的,方法还包括:已注册的各个容器根据接收到的其他容器发送的心跳消息维护注册容器列表。从而,通过这种方式,已注册的各个容器在检测到注册容器列表中的某个容器丢失心跳后,及时删除注册容器列表中的已丢失心跳的容器,回收该容器上的软件资源,增加可用资源,提高软件资源的利用率。
56.此外,参照图4所示,本实施例所提出的基于容器集群的软件授权方法的整体实施步骤如下:
57.1)虚拟机集群中选择一台物理机作为授权检测服务器启动授权程序,授权程序收集客户主机的机器码,一般为主机的硬件序列号经过一系列加密、散列之后形成的一串序列号作为机器码。机器码加密保存到文件中,使用此文件向软件开发商申请授权。
58.2)容器集群中的所有容器广播注册消息。注册消息中携带唯一身份标识及ip地址,可以使用如容器id、uuid、时间戳等作为唯一身份标识。
59.3)授权检测服务器对注册消息进行响应,响应消息中携带自己的ip地址,并记录所有注册容器,生成注册容器列表。
60.4)软件开发商使用授权检测服务器的机器码生成授权文件。授权文件中包括但不
限于如下控制项:服务类型、有效期、请求的资源数和机器码。
61.5)客户使用授权文件在步骤1)中选中的授权检测服务器中启动程序。
62.6)授权检测成功后,由授权检测服务器将授权信息进行加密。
63.7)授权检测服务器将加密的授权信息同步给注册容器列表内的所有容器。
64.8)容器集群内的每个容器向集群内所有其他容器发送心跳消息。心跳消息中携带唯一身份标识。
65.9)每个容器根据收到的其他容器发送的心跳消息维护注册容器列表。
66.10)每个容器向软件授权容器发送授权请求消息,请求消息中包括但不限于容器的唯一身份标识,本容器所需要的服务类型及资源数量。
67.11)软件授权容器根据当前允许的服务类型及剩余的并发量对集群内的容器发放授权,授权信息包含容器的唯一身份标识。
68.12)授权检测服务器定时将授权信息同步给容器集群内的所有容器;当授权检测服务器上的授权信息发生变化时(如,收到其他容器的授权请求,导致的可用资源减少;申请了新的授权,导致可用资源变化;集群内的某容器心跳丢失,回收此容器上的资源,导致可用资源增加),将此变化同步给容器集群内的所有容器。
69.13)当软件授权容器检测到某个容器心跳丢失时将此容器从容器注册列表中删除,回收此容器上的资源,导致可用资源增加。通过步骤12)将可用资源变化同步给容器集群内的所有容器。
70.14)当容器集群内的软件授权容器心跳丢失时,容器间使用相同的算法重新推选出一台物理机做为新的授权检测服务器。推选出的授权检测服务器向所有容器发送通知消息,通告自己授权检测服务器的身份。推选算法可以使用对容器注册列表中容器的唯一身份标识进行排序,选择最大容器作为新的软件授权容器。
71.15)当软件授权容器检测到自己丢失了所有其他容器的心跳时,主动重启当前容器。
72.16)当软件授权容器检测到自己丢失了所有其他容器的心跳时,主动重启当前容器。
73.17)当有新的容器加入容器集群时,该容器同样通过广播注册消息进行注册。注册成功后软件授权容器将加密的授权信息同步给新加入的容器,新加入的容器通过向软件授权容器发送授权请求消息,请求本容器所需要的服务类型及资源数量。新加入的容器向容器集群内的所有容器发送心跳消息,从而维护自己的容器注册列表。
74.从而,本技术只需要对集群中的一台容器做授权,再通过此容器将授权信息同步给容器集群内的所有容器。当容器集群中的各个容器因异常发生漂移时,可以自动将原容器申请的资源进行回收,并给新容器重新分配资源。当容器集群内的软件授权容器故障时自动推选出新的软件授权容器,保证授权服务不中断。而且软件授权容器也部署在容器集群中,不需要用户开通公网访问,适用于对安全性要求较高的场景。
75.此外,参考图1所示,根据本实施例的第二个方面,提供了一种存储介质。所述存储介质包括存储的程序,其中,在所述程序运行时由处理器执行以上任意一项所述的方法。
76.从而根据本实施例,授权检测服务器将用于申请软件授权服务能力的申请文件发送至对应的软件开发商,之后从软件开发商接收到对应的授权文件,将授权文件的授权信
息同步至容器集群中的所有容器,然后授权检测服务器的第一容器接收第二容器发送的授权请求信息,第一容器响应于授权请求信息,根据当前软件资源数据向第二容器提供软件授权服务。一方面,本技术方案的授权检测服务器利用不容易伪造的物理机的机器码向软件开发商申请软件授权服务,对比容易伪造的容器的机器码,提高了软件授权的安全性。另一方面,在需要限制软件使用并发量的情况下,授权检测服务器通过部署多个容器,允许每个容器只申请少量并发授权,从而满足了授权检测服务器大并发的需求。另外与软件开发商主动为容器集群中的每个容器都进行软件授权相比,本技术方案的软件开发商只需要向容器集群中的一个容器发放软件授权,使得该容器(下文称软件授权容器)具有向容器集群中的所有容器提供软件授权服务的能力。从而,在容器集群中的其他容器需要获取软件授权服务的情况下,可以直接向软件授权容器发送授权请求信息,由软件授权容器根据当前软件授权资源执行为请求对象提供相应的软件授权服务,从而减少了软件开发商为每个容器都进行软件授权所产生的部署和维护的工作量。
77.并且,本技术技术方案的软件授权容器利用其物理机的机器码向软件开发商申请授权文件,使得授权程序在进行授权检测过程中收集的是软件授权容器的机器码,因此当容器集群中除软件授权容器之外的其他容器发生漂移时,授权程序收集到的机器码也不会改变,不会中断软件授权服务,从而软件授权容器仍能够继续为发生漂移后的各个容器提供软件授权服务。此外,当软件授权容器发生漂移时,不同于传统的解决容器漂移的方法,本技术方案只需要从容器集群的其他容器中重新推选出一个容器来作为新的软件授权容器,由新的软件授权容器继续向容器集群中的所有容器提供软件授权服务。从而,当容器集群中的各个容器因异常发生漂移时,可以自动将原容器申请的资源进行回收,并给新容器重新分配资源。当容器集群内的软件授权容器故障时自动推选出新的软件授权容器,保证软件授权服务不中断。而且软件授权容器也部署在容器集群中,不需要用户开通公网访问,适用于对安全性要求较高的场景。进而解决了现有技术中存在的当容器因异常发生漂移时,授权程序收集到的机器码发生了改变,从而导致软件授权服务中断的技术问题。
78.需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
79.通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
80.实施例2
81.图5示出了根据本实施例所述的基于容器集群的软件授权装置500,该装置500与根据实施例1的第一个方面所述的方法相对应。参考图5所示,该装置500包括:申请文件发送模块510,用于授权检测服务器将用于申请软件授权服务能力的申请文件发送至对应的
软件开发商,其中授权检测服务器为物理机,申请文件包括物理机的机器码;授权信息同步模块520,用于授权检测服务器在从软件开发商接收到对应的授权文件的情况下,将授权文件的授权信息同步至容器集群中的所有容器,其中授权文件为软件开发商根据机器码生成的文件,容器集群中的所有容器均在授权检测服务器中成功注册;授权请求信息接收模块530,用于授权检测服务器的第一容器接收第二容器发送的授权请求信息,其中第一容器和第二容器均为容器集群中的容器,第一容器具有向容器集群中的所有容器提供软件授权服务的能力;以及授权请求信息响应模块540,用于第一容器响应于授权请求信息,根据当前软件资源数据向第二容器提供软件授权服务,其中当前软件资源数据包括当前允许的软件服务类型和剩余的并发量。
82.可选地,装置500还包括:数据生成模块,用于第一容器在向第二容器发放软件授权的情况下,生成资源变化数据,其中资源变化数据用于记录向第二容器发放的软件资源;第一数据更新模块,用于第一容器根据资源变化数据更新当前软件资源数据;以及第一数据同步模块,用于第一容器将资源变化数据和更新后的当前软件资源数据同步至容器集群中的所有容器。
83.可选地,装置500还包括:资源回收模块,用于第一容器在检测到第二容器丢失心跳的情况下,回收发放至第二容器上的软件资源;第二数据更新模块,用于第一容器根据回收的操作,更新资源变化数据和当前软件资源数据;以及第二数据同步模块,用于第一容器将更新后的资源变化数据和当前软件资源数据同步至容器集群中的所有容器。
84.可选地,装置500还包括:容器推选模块,用于在检测到第一容器丢失心跳的情况下,容器集群中的其他容器使用预设的算法推选出一个目标容器作为新的软件授权容器,其中推选出的目标容器具有向容器集群中的所有容器提供软件授权服务的能力;以及通知消息发送模块,用于目标容器向容器集群中的所有容器发送通知信息,其中通知信息用于通告由目标容器向容器集群中的所有容器提供软件授权服务。
85.可选地,装置500还包括:第二容器重启模块,用于第二容器在检测到已全部丢失容器集群中的其他容器的心跳的情况下,重启第二容器;和/或第一容器重启模块,用于第一容器在检测到已全部丢失容器集群中的其他容器的心跳的情况下,重启第一容器。
86.可选地,装置500还包括:注册消息广播模块,用于容器集群中的各个容器在容器集群中广播注册消息,其中注册消息包括容器的唯一身份标识;注册消息响应模块,用于授权检测服务器对注册消息进行响应,并将响应消息发送至对应的容器,其中响应消息包括授权检测服务器的ip地址;以及列表同步模块,用于授权检测服务器记录所有已注册的容器,生成注册容器列表,并将注册容器列表同步至所有已注册的容器。
87.可选地,装置500还包括:维护模块,用于已注册的各个容器根据接收到的其他容器发送的心跳消息维护注册容器列表。
88.从而根据本实施例,授权检测服务器将用于申请软件授权服务能力的申请文件发送至对应的软件开发商,之后从软件开发商接收到对应的授权文件,将授权文件的授权信息同步至容器集群中的所有容器,然后授权检测服务器的第一容器接收第二容器发送的授权请求信息,第一容器响应于授权请求信息,根据当前软件资源数据向第二容器提供软件授权服务。一方面,本技术方案的授权检测服务器利用不容易伪造的物理机的机器码向软件开发商申请软件授权服务,对比容易伪造的容器的机器码,提高了软件授权的安全性。另
一方面,在需要限制软件使用并发量的情况下,授权检测服务器通过部署多个容器,允许每个容器只申请少量并发授权,从而满足了授权检测服务器大并发的需求。另外与软件开发商主动为容器集群中的每个容器都进行软件授权相比,本技术方案的软件开发商只需要向容器集群中的一个容器发放软件授权,使得该容器(下文称软件授权容器)具有向容器集群中的所有容器提供软件授权服务的能力。从而,在容器集群中的其他容器需要获取软件授权服务的情况下,可以直接向软件授权容器发送授权请求信息,由软件授权容器根据当前软件授权资源执行为请求对象提供相应的软件授权服务,从而减少了软件开发商为每个容器都进行软件授权所产生的部署和维护的工作量。
89.并且,本技术技术方案的软件授权容器利用其物理机的机器码向软件开发商申请授权文件,使得授权程序在进行授权检测过程中收集的是软件授权容器的机器码,因此当容器集群中除软件授权容器之外的其他容器发生漂移时,授权程序收集到的机器码也不会改变,不会中断软件授权服务,从而软件授权容器仍能够继续为发生漂移后的各个容器提供软件授权服务。此外,当软件授权容器发生漂移时,不同于传统的解决容器漂移的方法,本技术方案只需要从容器集群的其他容器中重新推选出一个容器来作为新的软件授权容器,由新的软件授权容器继续向容器集群中的所有容器提供软件授权服务。从而,当容器集群中的各个容器因异常发生漂移时,可以自动将原容器申请的资源进行回收,并给新容器重新分配资源。当容器集群内的软件授权容器故障时自动推选出新的软件授权容器,保证软件授权服务不中断。而且软件授权容器也部署在容器集群中,不需要用户开通公网访问,适用于对安全性要求较高的场景。进而解决了现有技术中存在的当容器因异常发生漂移时,授权程序收集到的机器码发生了改变,从而导致软件授权服务中断的技术问题。
90.实施例3
91.图6示出了根据本实施例的第一个方面所述的基于容器集群的软件授权装置600,该装置600与根据实施例1的第一个方面所述的方法相对应。参考图6所示,该装置600包括:处理器610;以及存储器620,与处理器610连接,用于为处理器610提供处理以下处理步骤的指令:授权检测服务器将用于申请软件授权服务能力的申请文件发送至对应的软件开发商,其中授权检测服务器为物理机,申请文件包括物理机的机器码;授权检测服务器在从软件开发商接收到对应的授权文件的情况下,将授权文件的授权信息同步至容器集群中的所有容器,其中授权文件为软件开发商根据机器码生成的文件,容器集群中的所有容器均在授权检测服务器中成功注册;授权检测服务器的第一容器接收第二容器发送的授权请求信息,其中第一容器和第二容器均为容器集群中的容器,第一容器具有向容器集群中的所有容器提供软件授权服务的能力;以及第一容器响应于授权请求信息,根据当前软件资源数据向第二容器提供软件授权服务,其中当前软件资源数据包括当前允许的软件服务类型和剩余的并发量。
92.可选地,存储器620还用于为处理器610提供处理以下处理步骤的指令:第一容器在向第二容器发放软件授权的情况下,生成资源变化数据,其中资源变化数据用于记录向第二容器发放的软件资源;第一容器根据资源变化数据更新当前软件资源数据;以及第一容器将资源变化数据和更新后的当前软件资源数据同步至容器集群中的所有容器。
93.可选地,存储器620还用于为处理器610提供处理以下处理步骤的指令:第一容器在检测到第二容器丢失心跳的情况下,回收发放至第二容器上的软件资源;第一容器根据
回收的操作,更新资源变化数据和当前软件资源数据;以及第一容器将更新后的资源变化数据和当前软件资源数据同步至容器集群中的所有容器。
94.可选地,存储器620还用于为处理器610提供处理以下处理步骤的指令:在检测到第一容器丢失心跳的情况下,容器集群中的其他容器使用预设的算法推选出一个目标容器作为新的软件授权容器,其中推选出的目标容器具有向容器集群中的所有容器提供软件授权服务的能力;以及目标容器向容器集群中的所有容器发送通知信息,其中通知信息用于通告由目标容器向容器集群中的所有容器提供软件授权服务。
95.可选地,存储器620还用于为处理器610提供处理以下处理步骤的指令:第二容器在检测到已全部丢失容器集群中的其他容器的心跳的情况下,重启第二容器;和/或第一容器在检测到已全部丢失容器集群中的其他容器的心跳的情况下,重启第一容器。
96.可选地,存储器620还用于为处理器610提供处理以下处理步骤的指令:容器集群中的各个容器在容器集群中广播注册消息,其中注册消息包括容器的唯一身份标识;授权检测服务器对注册消息进行响应,并将响应消息发送至对应的容器,其中响应消息包括授权检测服务器的ip地址;以及授权检测服务器记录所有已注册的容器,生成注册容器列表,并将注册容器列表同步至所有已注册的容器。
97.可选地,存储器620还用于为处理器610提供处理以下处理步骤的指令:已注册的各个容器根据接收到的其他容器发送的心跳消息维护注册容器列表。
98.从而根据本实施例,授权检测服务器将用于申请软件授权服务能力的申请文件发送至对应的软件开发商,之后从软件开发商接收到对应的授权文件,将授权文件的授权信息同步至容器集群中的所有容器,然后授权检测服务器的第一容器接收第二容器发送的授权请求信息,第一容器响应于授权请求信息,根据当前软件资源数据向第二容器提供软件授权服务。一方面,本技术方案的授权检测服务器利用不容易伪造的物理机的机器码向软件开发商申请软件授权服务,对比容易伪造的容器的机器码,提高了软件授权的安全性。另一方面,在需要限制软件使用并发量的情况下,授权检测服务器通过部署多个容器,允许每个容器只申请少量并发授权,从而满足了授权检测服务器大并发的需求。另外与软件开发商主动为容器集群中的每个容器都进行软件授权相比,本技术方案的软件开发商只需要向容器集群中的一个容器发放软件授权,使得该容器(下文称软件授权容器)具有向容器集群中的所有容器提供软件授权服务的能力。从而,在容器集群中的其他容器需要获取软件授权服务的情况下,可以直接向软件授权容器发送授权请求信息,由软件授权容器根据当前软件授权资源执行为请求对象提供相应的软件授权服务,从而减少了软件开发商为每个容器都进行软件授权所产生的部署和维护的工作量。
99.并且,本技术技术方案的软件授权容器利用其物理机的机器码向软件开发商申请授权文件,使得授权程序在进行授权检测过程中收集的是软件授权容器的机器码,因此当容器集群中除软件授权容器之外的其他容器发生漂移时,授权程序收集到的机器码也不会改变,不会中断软件授权服务,从而软件授权容器仍能够继续为发生漂移后的各个容器提供软件授权服务。此外,当软件授权容器发生漂移时,不同于传统的解决容器漂移的方法,本技术方案只需要从容器集群的其他容器中重新推选出一个容器来作为新的软件授权容器,由新的软件授权容器继续向容器集群中的所有容器提供软件授权服务。从而,当容器集群中的各个容器因异常发生漂移时,可以自动将原容器申请的资源进行回收,并给新容器
重新分配资源。当容器集群内的软件授权容器故障时自动推选出新的软件授权容器,保证软件授权服务不中断。而且软件授权容器也部署在容器集群中,不需要用户开通公网访问,适用于对安全性要求较高的场景。进而解决了现有技术中存在的当容器因异常发生漂移时,授权程序收集到的机器码发生了改变,从而导致软件授权服务中断的技术问题。
100.上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
101.在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
102.在本技术所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
103.所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
104.另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
105.所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
106.以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献