本申请涉及互联网领域,具体而言,涉及一种服务部署方法和装置。
背景技术:
有一些公司使用salt作为批量部署管理工具,被管控的客户端需要安装salt-minion(操作系统配置管理)程序,该程序的配置文件中,需要填写指向的master地址,以及自身唯一表示的minion_id。这意味着每个服务器的配置文件都不一样,给批量化安装部署带来困难。目前的部署安装手段是首先通过salt管理的key库和cmdb(configurationmanagementdatabase,配置管理数据库)系统的服务器资产列表求差,找出在cmdb中存在的,但是在salt管理的key库中不存在的服务器,得到未安装salt-minion的服务器列表。再通过调用一个脚本,遍历这个需要安装salt-minion的服务器列表,在cmdb中逐台根据每台服务器的ip查询该服务器所对应的独特配置,再将这些配置通过ssh发到目标服务器上进行安装与配置。
现有技术方法比较复杂,并且不够自动化,无法实现让客户端本身全自动的安装与配置salt-minion的状态。
针对上述的问题,目前尚未提出有效的解决方案。
技术实现要素:
本申请实施例提供了一种服务部署方法和装置,以至少解决现有技术中客户端无法自动安装操作系统配置管理程序的技术问题。
根据本申请实施例的一个方面,提供了一种服务部署方法,包括:根据第一身份标识号id对目标客户端发送第一命令,以使所述目标客户端接收所述第一命令之后,向第一服务器发送第一网络互连协议ip,其中,所述第一命令用于抓取所述目标客户端的ip,其中,所述目标客户端的配置文件中的所述目标客户端的id被指定为所述第一身份标识号id,所述目标客户端指向的服务器被指定为所述第一服务器,其中,所述第一网络互连协议ip是所述目标客户端的ip;向cmdb站点发送查询信息,其中,所述查询信息携带所述第一网络互连协议ip,以使所述cmdb站点接收到所述查询信息之后,根据所述查询信息生成查询结果,并向所述第一服务器发送所述查询结果;根据所述cmdb站点返回的所述查询结果生成第一配置文件;向所述目标客户端发送所述第一配置文件,以使所述目标客户端接收所述第一配置文件之后,使用所述第一配置文件替换原有的配置文件;向所述目标客户端发送第二命令,其中,所述第二命令用于重启所述目标客户端的目标服务。
进一步地,根据所述cmdb站点返回的查询结果生成第一配置文件,包括:提取所述查询结果中的第二ip和第二id,其中,所述第二ip是所述查询结果指示的所述目标客户端所指向的服务器的ip,所述第二id是所述查询结果指示的所述目标客户端的id;根据所述第二ip和所述第二id生成所述第一配置文件。
进一步地,根据第一身份标识号id对目标客户端发送第一命令,包括:在多个客户端中查找id为所述第一身份标识号id的客户端;将查找出的客户端作为所述目标客户端;向所述目标客户端发送所述第一命令。
进一步地,在向所述目标客户端发送第二命令之后,所述方法还包括:删除所述第一服务器的管理控制列表中的所述目标客户端。
进一步地,在删除所述第一服务器的管理控制列表中的所述目标客户端之后,所述方法还包括:在多个客户端中查找id为所述第一身份标识号id的客户端;在查找成功的情况下,将查找到的客户端作为所述目标客户端,并根据第一身份标识号id对目标客户端发送所述第一命令。
根据本申请实施例的另一方面,还提供了一种服务部署装置,包括:第一发送单元,用于根据第一身份标识号id对目标客户端发送第一命令,以使所述目标客户端接收所述第一命令之后,向第一服务器发送第一网络互连协议ip,其中,所述第一命令用于抓取所述目标客户端的ip,其中,所述目标客户端的配置文件中的所述目标客户端的id被指定为所述第一身份标识号id,所述目标客户端指向的服务器被指定为所述第一服务器,其中,所述第一网络互连协议ip是所述目标客户端的ip;第二发送单元,用于向cmdb站点发送查询信息,其中,所述查询信息携带所述第一网络互连协议ip,以使所述cmdb站点接收到所述查询信息之后,根据所述查询信息生成查询结果,并向所述第一服务器发送所述查询结果;生成单元,用于根据所述cmdb站点返回的所述查询结果生成第一配置文件;第三发送单元,用于向所述目标客户端发送所述第一配置文件,以使所述目标客户端接收所述第一配置文件之后,使用所述第一配置文件替换原有的配置文件;第四发送单元,用于向所述目标客户端发送第二命令,其中,所述第二命令用于重启所述目标客户端的目标服务。
进一步地,所述生成单元包括:提取子单元,用于提取所述查询结果中的第二ip和第二id,其中,所述第二ip是所述查询结果指示的所述目标客户端所指向的服务器的ip,所述第二id是所述查询结果指示的所述目标客户端的id;生成子单元,用于根据所述第二ip和所述第二id生成所述第一配置文件。
进一步地,所述第一发送单元包括:查找子单元,用于在多个客户端中查找id为所述第一身份标识号id的客户端;确定子单元,用于将查找出的客户端作为所述目标客户端;发送子单元,用于向所述目标客户端发送所述第一命令。
进一步地,所述装置还包括:删除单元,用于在所述第四发送单元向所述目标客户端发送第二命令之后,删除所述第一服务器的管理控制列表中的所述目标客户端。
进一步地,所述装置还包括:查找单元,用于在所述删除单元删除所述第一服务器的管理控制列表中的所述目标客户端之后,在多个客户端中查找id为所述第一身份标识号id的客户端;确定单元,用于在查找成功的情况下,将查找到的客户端作为所述目标客户端,并根据第一身份标识号id对目标客户端发送所述第一命令。
在本申请实施例中,对于刚刚使用模板开通的客户端,修改其初始模板,在模板中将操作系统配置管理服务提前安装好,将配置文件中的客户端的id指定为固定名称的第一身份标识号id,将该客户端指向的服务器的ip指定为固定的第一服务器的ip,这样配置后,在客户端被开通后,在第一服务器的客户端列表上会增加一个id为第一身份标识号id的客户端,该客户端即为目标客户端。第一服务器对目标客户端发送用于抓取目标客户端的ip的第一命令,目标客户端接收第一命令之后,向第一服务器发送第一网络互连协议ip。第一服务器接收第一网络互连协议ip之后,向cmdb站点发送查询信息,其中,查询信息携带第一网络互连协议ip,cmdb站点接收到查询信息之后,根据查询信息生成查询结果,并向第一服务器发送查询结果。第一服务器接收cmdb站点返回的查询结果,根据查询结果生成第一配置文件。第一服务器向目标客户端发送第一配置文件,其中,在目标客户端接收第一配置文件之后,使用第一配置文件替换原有的配置文件。第一服务器向目标客户端发送第二命令,其中,第二命令用于重启目标客户端的目标服务。目标客户端接收第二命令之后重启自身的目标服务,这样,目标客户端所指向的服务器就从原来的第一服务器变成了第二ip所代表的服务器,与第一服务器脱离了关系,接下来由第二ip所代表的服务器对目标服务器进行管理,达到了客户端自动安装操作系统配置管理程序的技术效果,进而解决了现有技术中客户端无法自动安装操作系统配置管理程序的技术问题。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1是根据本申请实施例的一种服务部署方法的流程图;
图2是根据本申请实施例的一种服务部署装置的示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
根据本申请实施例,提供了一种服务部署方法的实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
图1是根据本申请实施例的一种服务部署方法的流程图。如图1所示,该方法包括如下步骤:
步骤s102,根据第一id对目标客户端发送第一命令,以使目标客户端接收第一命令之后,向第一服务器发送第一网络互连协议ip,其中,第一命令用于抓取目标客户端的ip,其中,目标客户端的配置文件中的目标客户端的id被指定为第一身份标识号id,目标客户端指向的服务器被指定为第一服务器,其中,第一网络互连协议ip是目标客户端的ip。
步骤s104,向cmdb站点发送查询信息,其中,查询信息携带第一网络互连协议ip,以使cmdb站点接收到查询信息之后,根据查询信息生成查询结果,并向第一服务器发送查询结果。
步骤s106,根据cmdb站点返回的查询结果生成第一配置文件。
步骤s108,向目标客户端发送第一配置文件,以使目标客户端接收第一配置文件之后,使用第一配置文件替换原有的配置文件。
步骤s110,向目标客户端发送第二命令,其中,第二命令用于重启目标客户端的目标服务。目标服务可以是操作系统配置管理(salt-minion)服务。
在本申请实施例中,对于刚刚使用模板开通的客户端,修改其初始模板,在模板中将操作系统配置管理服务提前安装好,将配置文件中的客户端的id指定为固定名称的第一身份标识号id,将该客户端指向的服务器的ip指定为固定的第一服务器的ip,这样配置后,在客户端被开通后,在第一服务器的客户端列表上会增加一个id为第一身份标识号id的客户端,该客户端即为目标客户端。第一服务器对目标客户端发送用于抓取目标客户端的ip的第一命令,目标客户端接收第一命令之后,向第一服务器发送第一网络互连协议ip。第一服务器接收第一网络互连协议ip之后,向cmdb站点发送查询信息,其中,查询信息携带第一网络互连协议ip,cmdb站点接收到查询信息之后,根据查询信息生成查询结果,并向第一服务器发送查询结果。第一服务器接收cmdb站点返回的查询结果,根据查询结果生成第一配置文件。第一服务器向目标客户端发送第一配置文件,其中,在目标客户端接收第一配置文件之后,使用第一配置文件替换原有的配置文件。第一服务器向目标客户端发送第二命令,其中,第二命令用于重启目标客户端的目标服务。目标客户端接收第二命令之后重启自身的目标服务,这样,目标客户端所指向的服务器就从原来的第一服务器变成了第二ip所代表的服务器,与第一服务器脱离了关系,接下来由第二ip所代表的服务器对目标服务器进行管理,解决了客户端无法自动安装操作系统配置管理程序的技术问题,达到了客户端自动安装操作系统配置管理程序的技术效果。
可选地,根据cmdb站点返回的查询结果生成第一配置文件,包括:提取查询结果中的第二ip和第二id,其中,第二ip是查询结果指示的目标客户端所指向的服务器的ip,第二id是查询结果指示的目标客户端的id;根据第二ip和第二id生成第一配置文件。可选地,在向目标客户端发送第二命令之后,方法还包括:删除第一服务器的管理控制列表中的目标客户端。
根据目标客户端原有的配置文件,目标客户端所指向的服务器是第一服务器,由第一服务器对目标客户端进行管理。
第一服务器向cmdb站点发送查询信息,其中,查询信息携带第一网络互连协议ip,cmdb站点接收到查询信息之后,在预先设置的数据库查找与第一网络互连协议ip相关联的第二ip和第二id,根据第二ip和第二id生成查询结果,并向第一服务器发送查询结果。
第一服务器接收到查询结果后,提取查询结果中的第二ip和第二id,根据第二ip和第二id生成第一配置文件。第一服务器将第一配置文件发送给目标客户端。目标客户端接收第一配置文件之后,使用第一配置文件替换掉原有的配置文件。这样,在重启目标客户端的目标服务之后,目标客户端不再由第一服务器进行管理(即目标客户端与第一服务器脱离关系),而是由第二ip所表示的服务器进行管理。之后,将第一服务器的管理控制列表中的目标客户端进行删除。
可选地,根据第一身份标识号id对目标客户端发送第一命令,包括:在多个客户端中查找id为第一身份标识号id的客户端;将查找出的客户端作为目标客户端;向目标客户端发送第一命令。
可选地,在删除第一服务器的管理控制列表中的目标客户端之后,方法还包括:在多个客户端中查找id为第一身份标识号id的客户端;在查找成功的情况下,将查找到的客户端作为目标客户端,并根据第一身份标识号id对目标客户端发送第一命令。
本申请实施例提供了一种循环执行的服务部署方法。当第一服务器删除掉管理控制列表中原有的目标客户端之后,还可能会有新的目标客户端。新的目标客户端也用第一身份标识号id来与第一服务器进行建联。
在删除第一服务器的管理控制列表中的目标客户端之后,在多个客户端中查找id为第一身份标识号id的客户端,如果查找失败,则说明暂时没有新的目标客户端,这种情况下,继续查找;在查找成功的情况下,将查找到的客户端作为新的目标客户端,并根据第一身份标识号id对新的目标客户端发送第一命令。第一命令用于抓取新的目标客户端的ip,其中,新的目标客户端的配置文件中的新的目标客户端的id被指定为第一身份标识号id,新的目标客户端指向的服务器被指定为第一服务器,新的目标客户端接收第一命令之后,向第一服务器发送第一网络互连协议ip。第一服务器向cmdb站点发送查询信息,其中,查询信息携带第一网络互连协议ip,cmdb站点接收到查询信息之后,根据查询信息生成查询结果,并向第一服务器发送查询结果。第一服务器根据cmdb站点返回的查询结果生成第一配置文件。第一服务器向新的目标客户端发送第一配置文件,其中,在新的目标客户端接收第一配置文件之后,使用第一配置文件替换原有的配置文件。第一服务器向新的目标客户端发送第二命令,其中,第二命令用于重启新的目标客户端的目标服务。
本方案包括3个部分:
系统开通模板的初始配置:
修改centos服务器的初始模板,在模板中将salt-minion(目标服务)提前安装好,并把配置文件中的minion_id指定为固定名称“nonename”(第一身份标识号id),master_ip指定为一个固定的salt-master的ipx.x.x.x,在此专利中我们将这个初始的master(第一服务器)命名为“前期master”。这样配置后,一个新的centos服务器被开通后,在初始master的客户端列表上就会增加一个叫“nonename”的minion。
特殊配置查询模块
该模块部署在cmdb站点中,cmdb中针对每个ip记录了salt配置文件中,预先存储好了要用到的master_ip和minion_id两个字段的值,该模块开放一个对外的http接口,可以接收其他服务器来的post请求,提取postdata中的“ip”字段(第一网络互连协议ip)的值,到cmdb的数据库中查询对应的master_ip(第二ip)和minion_id(第二id)值,并整理成data样式如下返回:
{‘master_ip’:1.1.1.1,‘minion_id’:‘xxxxx’}
minion配置模块
该模块被部署在前期master上,不断的循环执行:
1)调用salt,指定对minion_id为“nonename”的客户端(目标客户端)下发一个抓取客户端ip的命令。
2)得到nonename(目标客户端)的ip(第一身份标识号id),将该ip整理成data{“ip”:x.x.x.x},post到特殊配置查询模块提供的httpapi上,会得到api返回的查询结果。
3)根据步骤2的api返回的master_ip(第二ip)和minion_id(第二id),使用jinja生成一份独有的minion的配置文件(第一配置文件)。
4)调用salt,指定对minion_id为“nonename”的客户端下发这份配置文件(第一配置文件),替换掉该minion原有的文件。
5)调用salt,指定对minion_id为“nonename”的客户端下发shell命令(第二命令),使用service重启salt-minion服务(目标服务)。这步完成后,minion就用新的id转到新的master上管理了,并与前期master脱离了联系。
6)调用前期master本机的salt-key命令,删除掉管控列表中名为nonename的minion。
7)当第6步完成后,再重复跳回第1步,还重复上述步骤。因为当前期master删除了这个nonename后,还有另外的其他的刚刚使用模板开通的centos机器,也可能用nonename的命名来与这个前期master进行建联了。
现有技术方法比较复杂,并且不够自动化,无法实现让服务器本身全自动的安装与配置salt-minion的状态。本申请实施例提供的服务部署方法不需要远程,也不需要特意获取没安装salt-minion的ip列表,让服务器自己配置自己的minion_id和master_ip,完成了全自动,无需外部程序介入的minion部署方式,解决了每个minion都需要自身独有的minion_id和master_ip的大批量配置问题,同时也保持了minion上的配置与cmdb中的记录是保持统一的。
本申请实施例还提供了一种服务部署装置,该服务部署装置用于执行上述服务部署方法,上述服务部署方法根据该服务部署装置实施。
如图2所示,该服务部署装置包括:第一发送单元10、第二发送单元20、生成单元30、第三发送单元40、第四发送单元50。
第一发送单元10,用于根据第一身份标识号id对目标客户端发送第一命令,以使目标客户端接收第一命令之后,向第一服务器发送第一网络互连协议ip,其中,第一命令用于抓取目标客户端的ip,其中,目标客户端的配置文件中的目标客户端的id被指定为第一身份标识号id,目标客户端指向的服务器被指定为第一服务器,其中,第一网络互连协议ip是目标客户端的ip。
第二发送单元20,用于向cmdb站点发送查询信息,其中,查询信息携带第一网络互连协议ip,以使cmdb站点接收到查询信息之后,根据查询信息生成查询结果,并向第一服务器发送查询结果。
生成单元30,用于根据cmdb站点返回的查询结果生成第一配置文件。
第三发送单元40,用于向目标客户端发送第一配置文件,以使目标客户端接收第一配置文件之后,使用第一配置文件替换原有的配置文件。
第四发送单元50,用于向目标客户端发送第二命令,其中,第二命令用于重启目标客户端的目标服务。
可选地,生成单元30包括:提取子单元、生成子单元。提取子单元,用于提取查询结果中的第二ip和第二id,其中,第二ip是查询结果指示的目标客户端所指向的服务器的ip,第二id是查询结果指示的目标客户端的id。生成子单元,用于根据第二ip和第二id生成第一配置文件。
可选地,第一发送单元10包括:查找子单元、确定子单元、发送子单元。查找子单元,用于在多个客户端中查找id为第一身份标识号id的客户端。确定子单元,用于将查找出的客户端作为目标客户端。发送子单元,用于向目标客户端发送第一命令。
可选地,装置还包括:删除单元。删除单元,用于在第四发送单元50向目标客户端发送第二命令之后,删除第一服务器的管理控制列表中的目标客户端。
可选地,装置还包括:查找单元、确定单元。查找单元,用于在删除单元删除第一服务器的管理控制列表中的目标客户端之后,在多个客户端中查找id为第一身份标识号id的客户端。确定单元,用于在查找成功的情况下,将查找到的客户端作为目标客户端,并根据第一身份标识号id对目标客户端发送第一命令。
服务部署装置包括处理器和存储器,上述第一发送单元10、第二发送单元20、生成单元30、第三发送单元40、第四发送单元50等均作为程序单元存储在存储器中,由处理器执行存储在存储器中的上述程序单元来实现相应的功能。
处理器中包含内核,由内核去存储器中调取相应的程序单元。内核可以设置一个或以上,通过调整内核参数来在客户端自动部署目标服务。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flashram),存储器包括至少一个存储芯片。
本申请实施例提供了一种存储介质,其上存储有程序,该程序被处理器执行时实现所述服务部署方法。
本申请实施例提供了一种处理器,所述处理器用于运行程序,其中,所述程序运行时执行所述服务部署方法。
本申请实施例提供了一种设备,设备包括处理器、存储器及存储在存储器上并可在处理器上运行的程序,处理器执行程序时实现以下步骤:
根据第一身份标识号id对目标客户端发送第一命令,以使目标客户端接收第一命令之后,向第一服务器发送第一网络互连协议ip,其中,第一命令用于抓取目标客户端的ip,其中,目标客户端的配置文件中的目标客户端的id被指定为第一身份标识号id,目标客户端指向的服务器被指定为第一服务器;向cmdb站点发送查询信息,其中,查询信息携带第一网络互连协议ip,以使cmdb站点接收到查询信息之后,根据查询信息生成查询结果,并向第一服务器发送查询结果;根据cmdb站点返回的查询结果生成第一配置文件;向目标客户端发送第一配置文件,以使目标客户端接收第一配置文件之后,使用第一配置文件替换原有的配置文件;向目标客户端发送第二命令,其中,第二命令用于重启目标客户端的目标服务。
提取查询结果中的第二ip和第二id,其中,第二ip是查询结果指示的目标客户端所指向的服务器的ip,第二id是查询结果指示的目标客户端的id;根据第二ip和第二id生成第一配置文件。
在多个客户端中查找id为第一身份标识号id的客户端;将查找出的客户端作为目标客户端;向目标客户端发送第一命令。
删除第一服务器的管理控制列表中的目标客户端。
在多个客户端中查找id为第一身份标识号id的客户端;在查找成功的情况下,将查找到的客户端作为目标客户端,并根据第一身份标识号id对目标客户端发送第一命令。
本文中的设备可以是服务器、pc、pad、手机等。
本申请还提供了一种计算机程序产品,当在数据处理设备上执行时,适于执行初始化有如下方法步骤的程序:
根据第一身份标识号id对目标客户端发送第一命令,以使目标客户端接收第一命令之后,向第一服务器发送第一网络互连协议ip,其中,第一命令用于抓取目标客户端的ip,其中,目标客户端的配置文件中的目标客户端的id被指定为第一身份标识号id,目标客户端指向的服务器被指定为第一服务器,目标客户端接收第一命令之后,向第一服务器发送第一网络互连协议ip;向cmdb站点发送查询信息,其中,查询信息携带第一网络互连协议ip,以使cmdb站点接收到查询信息之后,根据查询信息生成查询结果,并向第一服务器发送查询结果;根据cmdb站点返回的查询结果生成第一配置文件;向目标客户端发送第一配置文件,以使目标客户端接收第一配置文件之后,使用第一配置文件替换原有的配置文件;向目标客户端发送第二命令,其中,第二命令用于重启目标客户端的目标服务。
提取查询结果中的第二ip和第二id,其中,第二ip是查询结果指示的目标客户端所指向的服务器的ip,第二id是查询结果指示的目标客户端的id;根据第二ip和第二id生成第一配置文件。
在多个客户端中查找id为第一身份标识号id的客户端;将查找出的客户端作为目标客户端;向目标客户端发送第一命令。
删除第一服务器的管理控制列表中的目标客户端。
在多个客户端中查找id为第一身份标识号id的客户端;在查找成功的情况下,将查找到的客户端作为目标客户端,并根据第一身份标识号id对目标客户端发送第一命令。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(cpu)、输入/输出接口、网络接口和内存。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flashram)。存储器是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitorymedia),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
以上仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。