运维方法、运维装置、电子设备和介质转让专利

申请号 : CN201910828369.4

文献号 : CN112445549A

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 魏颖许江川徐晟晨田野王双仇艮祥刘超千刘晓光强群力

申请人 : 网联清算有限公司

摘要 :

本公开提供了一种运维方法、运维装置、电子设备和介质,该运维方法包括:接收第一运维请求指令,所述第一运维请求指令包括运维操作类型信息和节点信息;响应于所述第一运维请求指令,创建预设线程任务,所述预设线程任务针对与所述节点信息对应的节点,其中,所述运维操作类型信息和所述预设线程任务之间存在映射关系;执行所述预设线程任务,以实现对所述节点信息对应节点进行运维。

权利要求 :

1.一种运维方法,包括:

接收第一运维请求指令,所述第一运维请求指令包括运维操作类型信息和节点信息;

响应于所述第一运维请求指令,创建预设线程任务,所述预设线程任务针对与所述节点信息对应的节点,其中,所述运维操作类型信息和所述预设线程任务之间存在映射关系;

以及

执行所述预设线程任务,以实现对所述节点信息对应节点进行运维。

2.根据权利要求1所述的方法,其中:

所述第一运维请求指令还包括运维许可证信息;

所述方法还包括:

响应于所述第一运维请求指令,在创建所述预设线程任务之前,确定所述运维许可证信息是否满足运维许可条件;以及所述创建预设线程任务包括:如果确定所述运维许可证信息满足运维许可条件,则创建所述预设线程任务。

3.根据权利要求2所述的方法,其中,所述确定所述运维许可证信息是否满足运维许可条件包括:获取运维实例的运行状态;

如果确定所述运行状态均为非运维状态,则确定是否存在与所述运维许可证信息对应的运维实例;

如果确定存在与所述运维许可证信息对应的运维实例,则获取与所述运维许可证信息对应的运维实例的运行状态和当前登录账户的权限等级中的至少一个;以及如果确定与所述维许可证信息对应的运维实例的运行状态为指定状态,或确定所述当前登录账户的权限等级达到指定等级,则确定所述运维许可证信息满足运维许可条件。

4.根据权利要求3所述的方法,在获取运维实例的运行状态之后,所述方法还包括:如果确定至少一个所述运维实例的运行状态处于运维状态,则获取所述至少一个所述运维实例的运行时长;

确定所述至少一个所述运维实例中是否存在运行时长超过设定时长的运维实例;以及如果存在运行时长超过设定时长的运维实例,则展示运行时长超过设定时长的运维实例关联信息。

5.根据权利要求1所述的方法,还包括:在执行所述预设线程任务的过程中,获取当前执行的线程任务的标识,所述线程任务具有包括多个关键节点的排序信息在内的节点顺序列表,所述多个关键节点具有执行进度信息;

将所述当前执行的线程任务的标识在所述节点顺序列表中进行匹配,获得线程任务的执行进度;以及展示所述线程任务的执行进度。

6.根据权利要求1所述的方法,还包括:

在执行所述预设线程任务的过程中,或完成所述预设线程任务后,存储线程任务的执行进度信息。

7.根据权利要求1所述的方法,还包括:响应于所述第一运维请求指令,在创建针对所述节点信息对应节点的线程任务之前,获取共用锁,所述共用锁为应用发布与应用运维之间的共用锁;以及如果获取共用锁失败,则禁止创建针对所述节点信息对应节点的线程任务。

8.根据权利要求1所述的方法,还包括:在创建所述预设线程任务之前,从第一数据集合中获取候选IP地址,所述第一数据集合中存储已接入节点的IP地址;

将所述候选IP地址在可运维节点数据集合中进行匹配;

将匹配失败的候选IP地址添加到所述可运维节点数据集合,并将匹配失败的候选IP地址的属性设置为优先检测级别;以及以设定周期按照检测级别对所述可运维节点数据集合的至少一个IP地址对应节点进行检测。

9.根据权利要求1所述的方法,其中,所述运维操作类型包括启动应用;所述创建预设线程任务包括:在容器中启动应用;

检测应用健康状态;以及

如果确定所述应用健康状态为健康状态,则通过调用服务治理应用接口提升所述节点信息对应节点的应用可占用资源权重。

10.根据权利要求1所述的方法,其中,所述运维操作类型包括停止应用;所述创建预设线程任务包括:通过调用服务治理应用接口以降低所述节点信息对应节点的应用可占用资源权重直至达到停止权重阈值;

设置所述应用的状态为禁用状态;以及

停止容器。

11.根据权利要求1所述的方法,其中,所述运维操作类型包括重启应用,所述创建预设线程任务包括:通过调用服务治理应用接口以降低所述节点信息对应节点的应用可占用资源权重直至达到停止权重阈值;以及在经过指定延迟时间后,通过调用服务治理应用接口以提升所述节点信息对应节点的应用可占用资源权重。

12.根据权利要求1所述的方法,其中,所述运维操作类型包括隔离应用;所述创建预设线程任务包括:通过调用服务治理应用接口以降低所述节点信息对应节点的应用可占用资源权重直至达到停止权重阈值;

通过调用服务治理应用接口禁止所述节点信息对应节点提供服务;以及返回提示信息,所述提示信息用于提示解除隔离操作方法信息。

13.一种运维装置,包括:

指令接收模块,用于接收第一运维请求指令,所述第一运维请求指令包括运维操作类型信息和节点信息;

任务创建模块,用于响应于所述第一运维请求指令,响应于所述第一运维请求指令,创建预设线程任务,所述预设线程任务针对与所述节点信息对应的节点,其中,所述运维操作类型信息和所述预设线程任务之间存在映射关系;以及任务执行模块,用于执行所述线程任务,以实现对所述节点信息对应节点进行运维。

14.根据权利要求13所述的装置,还包括:许可条件确定模块,用于响应于所述第一运维请求指令,在创建所述预设线程任务之前,确定所述运维许可证信息是否满足运维许可条件;以及所述任务创建模块具体用于如果确定所述运维许可证信息满足运维许可条件,则创建所述预设线程任务。

15.根据权利要求13所述的装置,还包括:地址获取模块,用于从第一数据集合中获取候选IP地址,所述第一数据集合中存储已接入节点的IP地址;

地址匹配模块,用于将所述候选IP地址在可运维节点数据集合中进行匹配;

地址更新模块,用于将匹配失败的候选IP地址添加到所述可运维节点数据集合,并将匹配失败的候选IP地址的属性设置为优先检测级别;以及定时检测模块,用于定时按照优先级对所述可运维节点数据集合的至少一个IP地址对应节点进行检测。

16.一种电子设备,包括:

一个或多个处理器;

存储装置,用于存储可执行指令,所述可执行指令在被所述处理器执行时,实现根据权利要求1~12中任一项所述的方法。

17.一种计算机可读存储介质,其上存储有可执行指令,该指令被处理器执行时实现根据权利要求1~12中任一项所述的方法。

说明书 :

运维方法、运维装置、电子设备和介质

技术领域

[0001] 本公开涉及互联网技术领域,更具体地,涉及一种运维方法、运维装置、电子设备和介质。

背景技术

[0002] 随着计算机技术和互联网技术的发展,数据中心(Data Center,简称DC)的规模越来越大,数据中心内网络设备的种类也越来越多,对网络设备的运维也提出了更高的要求。
[0003] 现有技术中,对于某一网络设备的运维,运维人员通常手工输入指令的方式进行运维,例如,输入该网络设备的网际协议(Internet Protocol,简称IP)地址、端口号、登录该网络设备的系统所采用的用户名和密码等信息,以建立客户端与该网络设备之间的连接,进而完成运维操作。
[0004] 在实现本公开构思的过程中,发明人发现现有技术中至少存在如下问题:各应用的运行状态,如启动、停止、重启和故障隔离操作等,运维许可管控在信息层面和操作层面都没有统一的标准,导致信息表述方式不统一,造成了理解困难或者易于出现操作错误。此外,由于操作层面没有统一的标准,造成了在运维操作时依赖运维人员经验,不同应用的操作流程不一样,增加了人为操作失误的风险。

发明内容

[0005] 有鉴于此,本公开提供了一种运维方法、运维装置、电子设备和介质。
[0006] 本公开的一个方面提供了一种运维方法,包括:首先,接收第一运维请求指令,所述第一运维请求指令包括运维操作类型信息和节点信息,响应于所述第一运维请求指令,创建预设线程任务,所述预设线程任务针对与所述节点信息对应的节点,其中,所述运维操作类型信息和所述预设线程任务之间存在映射关系,然后,执行所述预设线程任务,以实现对所述节点信息对应节点进行运维。
[0007] 本公开的实施例提供的运维方法,分别针对不同的运维操作预设对应的预设线程,当运维人员需要进行运维操作时,只需执行预设线程任务,这样就实现了统一信息层面和操作层面的运维标准,同时降低了运维操作的难度,可以有效降低因运维人员经验不足、或不同应用的运维操作流程不一样而导致的人为操作失误的风险。
[0008] 根据本公开的实施例,所述第一运维请求指令还包括运维许可证信息。相应地,所述方法还可以包括如下操作,响应于所述第一运维请求指令,在创建所述预设线程任务之前,确定所述运维许可证信息是否满足运维许可条件。相应地,所述创建预设线程任务可以包括如果确定所述运维许可证信息满足运维许可条件,则创建所述预设线程任务。这样可以实现运维许可管控,运维人员只有拥有运维许可证信息,如对应的工单号,才能开启应用的运维许可状态。
[0009] 根据本公开的实施例,所述确定所述运维许可证信息是否满足运维许可条件可以包括如下操作,首先,获取运维实例的运行状态,然后,如果确定所述运行状态均为非运维状态,则确定是否存在与所述运维许可证信息对应的运维实例,接着,如果确定存在与所述运维许可证信息对应的运维实例,则获取与所述运维许可证信息对应的运维实例的运行状态和当前登录账户的权限等级中的至少一个,然后,如果确定与所述维许可证信息对应的运维实例的运行状态为指定状态,或确定所述当前登录账户的权限等级达到指定等级,则确定所述运维许可证信息满足运维许可条件。这样便于运维人员在希望对某个节点进行运维时,先确定当前是否存在处于运维状态的运维实例,避免重复执行同样的运维实例或不同的运维实例之间的冲突。当不存在处于运维状态的运维实例时,可以进一步确定是否存在与所述运维许可证信息对应的运维实例,如果存在,则可以直接运行该运维许可证信息对应的运维实例。此外,如果当前登录账户的权限表明当前运维人员的运维操作熟练度很高,如当前运维人员具有管理员权限,则当前运维人员可以通过非预设线程的运维操作进行运维。这样即保证了运维的安全性,同时还能灵活地满足各种非常规的运维需求。
[0010] 根据本公开的实施例,在获取运维实例的运行状态之后,所述方法还可以包括如下操作,如果确定至少一个所述运维实例的运行状态处于运维状态,则获取所述至少一个所述运维实例的运行时长,然后,确定所述至少一个所述运维实例中是否存在运行时长超过设定时长的运维实例,如果存在运行时长超过设定时长的运维实例,则展示运行时长超过设定时长的运维实例关联信息。这样便于及时发现和结束超时运行的运维实例和异常。
[0011] 根据本公开的实施例,所述方法还可以包括如下操作,在执行所述预设线程任务的过程中,获取当前执行的线程任务的标识,所述线程任务具有包括多个关键节点的排序信息在内的节点顺序列表,所述多个关键节点具有执行进度信息。然后,将所述当前执行的线程任务的标识在所述节点顺序列表中进行匹配,获得线程任务的执行进度,这样就便于确定运维的执行进度,并便于展示所述线程任务的执行进度。
[0012] 根据本公开的实施例,所述方法还可以包括如下操作,在执行所述预设线程任务的过程中,或完成所述预设线程任务后,存储线程任务的执行进度信息。这样便于查询历史运维事件以及运维过程中的进度信息,进行异常分析等。
[0013] 根据本公开的实施例,所述方法还可以包括如下操作,响应于所述第一运维请求指令,在创建针对所述节点信息对应节点的线程任务之前,获取共用锁,所述共用锁为应用发布与应用运维之间的共用锁,然后,如果获取共用锁失败,则禁止创建针对所述节点信息对应节点的线程任务。在应用发布过程中应避免应用运维而导致应用使用异常,同时,在应用运维的过程中应避免应用发布而防止发生异常,因此,可以设置应用发布与应用运维之间的共用锁,从而避免上述情况发生。
[0014] 根据本公开的实施例,所述方法还可以包括如下操作,在创建所述预设线程任务之前,从第一数据集合中获取候选IP地址,所述第一数据集合中存储已接入节点的IP地址。然后,将所述候选IP地址在可运维节点数据集合中进行匹配。接着,将匹配失败的候选IP地址添加到所述可运维节点数据集合,并将匹配失败的候选IP地址的属性设置为优先检测级别。然后,以设定周期按照检测级别对所述可运维节点数据集合的至少一个IP地址对应节点进行检测。这样可以实现对新接入节点以及较长时间没有进行过运维的节点进行周期性健康检测,进而实现对所有接入节点进行健康检测。
[0015] 根据本公开的实施例,所述运维操作类型为启动应用时,相应地,所述创建预设线程任务可以包括如下操作。首先,在容器中启动应用。然后,检测应用健康状态。接着,如果确定所述应用健康状态为健康状态,则通过调用服务治理应用接口提升所述节点信息对应节点的应用可占用资源权重。通过在容器中提升应用可占用资源权重来启动应用,可以有效提升运维的便捷性和安全性。
[0016] 根据本公开的实施例,所述运维操作类型为停止应用时,相应地,所述创建预设线程任务可以包括如下操作。首先,通过调用服务治理应用接口以降低所述节点信息对应节点的应用可占用资源权重直至达到停止权重阈值。然后,设置所述应用的状态为禁用状态。接着,停止容器。
[0017] 根据本公开的实施例,所述运维操作类型为重启应用时,相应地,所述创建预设线程任务可以包括如下操作。首先,通过调用服务治理应用接口以降低所述节点信息对应节点的应用可占用资源权重直至达到停止权重阈值。然后,在经过指定延迟时间后,通过调用服务治理应用接口以提升所述节点信息对应节点的应用可占用资源权重。
[0018] 根据本公开的实施例,所述运维操作类型为隔离应用时,相应地,所述创建预设线程任务可以包括如下操作。首先,通过调用服务治理应用接口以降低所述节点信息对应节点的应用可占用资源权重直至达到停止权重阈值。然后,通过调用服务治理应用接口禁止所述节点信息对应节点提供服务。接着,返回提示信息,所述提示信息用于提示解除隔离操作方法信息。
[0019] 本公开的另一个方面提供了一种运维装置,该装置可以包括指令接收模块、任务创建模块和任务执行模块。其中,所述指令接收模块用于接收第一运维请求指令,所述第一运维请求指令包括运维操作类型信息和节点信息。所述任务创建模块用于响应于所述第一运维请求指令,响应于所述第一运维请求指令,创建预设线程任务。所述预设线程任务针对与所述节点信息对应的节点,其中,所述运维操作类型信息和所述预设线程任务之间存在映射关系。所述任务执行模块用于执行所述线程任务,以实现对所述节点信息对应节点进行运维。
[0020] 根据本公开的实施例,所述第一运维请求指令还包括运维许可证信息。相应地,所述装置还可以包括许可确定模块,该许可确定模块用于响应于所述第一运维请求指令,在创建所述预设线程任务之前,确定所述运维许可证信息是否满足运维许可条件。相应地,所述任务创建模块具体用于如果确定所述运维许可证信息满足运维许可条件,则创建所述预设线程任务。
[0021] 根据本公开的实施例,所述许可确定模块可以包括状态获取单元、实例确定单元、许可信息获取单元和许可单元。其中,所述状态获取单元用于获取运维实例的运行状态。所述实例确定单元用于如果确定所述运行状态均为非运维状态,则确定是否存在与所述运维许可证信息对应的运维实例。所述许可信息获取单元用于如果确定存在与所述运维许可证信息对应的运维实例,则获取与所述运维许可证信息对应的运维实例的运行状态和当前登录账户的权限等级中的至少一个。所述许可单元用于如果确定与所述维许可证信息对应的运维实例的运行状态为指定状态,或确定所述当前登录账户的权限等级达到指定等级,则确定所述运维许可证信息满足运维许可条件。
[0022] 根据本公开的实施例,所述装置还可以包括运行时长获取模块、超时实例确定模块和超时实例展示模块,其中,所述运行时长获取模块用于如果确定至少一个所述运维实例的运行状态处于运维状态,则获取所述至少一个所述运维实例的运行时长。所述超时实例确定模块用于确定所述至少一个所述运维实例中是否存在运行时长超过设定时长的运维实例。所述超时实例展示模块用于如果存在运行时长超过设定时长的运维实例,则展示运行时长超过设定时长的运维实例关联信息。
[0023] 根据本公开的实施例,所述装置还可以包括:任务标识获取模块、标识匹配模块和进度展示模块。其中,所述任务标识获取模块用于在执行所述预设线程任务的过程中,获取当前执行的线程任务的标识,所述线程任务具有包括多个关键节点的排序信息在内的节点顺序列表,所述多个关键节点具有执行进度信息。所述标识匹配模块用于将所述当前执行的线程任务的标识在所述节点顺序列表中进行匹配,获得线程任务的执行进度。所述进度展示模块用于展示所述线程任务的执行进度。
[0024] 根据本公开的实施例,所述装置还可以包括:进度存储模块,该进度存储模块用于在执行所述预设线程任务的过程中,或完成所述预设线程任务后,存储线程任务的执行进度信息。
[0025] 根据本公开的实施例,所述装置还包括共用锁获取模块和禁止运维模块。其中,所述共用锁获取模块用于响应于所述第一运维请求指令,在创建针对所述节点信息对应节点的线程任务之前,获取共用锁,所述共用锁为应用发布与应用运维之间的共用锁。所述禁止运维模块用于如果获取共用锁失败,则禁止创建针对所述节点信息对应节点的线程任务。
[0026] 根据本公开的实施例,所述装置还可以包括地址获取模块、地址匹配模块、地址更新模块和定时检测模块。其中,所述地址获取模块用于从第一数据集合中获取候选IP地址,所述第一数据集合中存储已接入节点的IP地址。所述地址匹配模块用于将所述候选IP地址在可运维节点数据集合中进行匹配。所述地址更新模块用于将匹配失败的候选IP地址添加到所述可运维节点数据集合,并将匹配失败的候选IP地址的属性设置为优先检测级别。所述定时检测模块用于定时按照优先级对所述可运维节点数据集合的至少一个IP地址对应节点进行检测。
[0027] 根据本公开的实施例,所述任务创建模块可以包括第一启动单元、第一检测单元和第一权重提升单元。其中,所述第一启动单元用于在容器中启动应用,所述第一检测单元用于检测应用健康状态,所述第一权重提升单元用于如果确定所述应用健康状态为健康状态,则通过调用服务治理应用接口提升所述节点信息对应节点的应用可占用资源权重。
[0028] 根据本公开的实施例,所述任务创建模块可以包括第一权重降低单元、状态设置单元和容器停止单元。其中,所述第一权重降低单元用于通过调用服务治理应用接口以降低所述节点信息对应节点的应用可占用资源权重直至达到停止权重阈值。所述状态设置单元用于设置所述应用的状态为禁用状态。所述容器停止单元用于停止容器。
[0029] 根据本公开的实施例,所述任务创建模块可以包括第二权重降低单元、第二权重提升单元。其中,所述第二权重降低单元用于通过调用服务治理应用接口以降低所述节点信息对应节点的应用可占用资源权重直至达到停止权重阈值。所述第二权重提升单元用于在经过指定延迟时间后,通过调用服务治理应用接口以提升所述节点信息对应节点的应用可占用资源权重。
[0030] 根据本公开的实施例,所述任务创建模块可以包括第三权重降低单元、服务禁止单元和信息提示单元。其中,所述第三权重降低单元用于通过调用服务治理应用接口以降低所述节点信息对应节点的应用可占用资源权重直至达到停止权重阈值。所述服务禁止单元用于通过调用服务治理应用接口禁止所述节点信息对应节点提供服务。所述信息提示单元用于返回提示信息。所述提示信息用于提示解除隔离操作方法信息。
[0031] 本公开的另一方面提供了一种电子设备,包括一个或多个处理器以及存储装置,其中,所述存储装置用于存储可执行指令,所述可执行指令在被所述处理器执行时,实现如上所述的方法。
[0032] 本公开的另一方面提供了一种计算机可读存储介质,存储有计算机可执行指令,所述指令在被执行时用于实现如上所述的方法。
[0033] 本公开的另一方面提供了一种计算机程序,所述计算机程序包括计算机可执行指令,所述指令在被执行时用于实现如上所述的方法。

附图说明

[0034] 通过以下参照附图对本公开实施例的描述,本公开的上述以及其他目的、特征和优点将更为清楚,在附图中:
[0035] 图1A示意性示出了根据本公开实施例的运维方法、运维装置、电子设备和介质的应用场景;
[0036] 图1B示意性示出了根据本公开实施例的适用运维方法、运维装置和电子设备的系统架构;
[0037] 图2示意性示出了根据本公开实施例的用于多个机器人中每个机器人的通信方法的流程图;
[0038] 图3A示意性示出了根据本公开实施例的是否满足运维许可条件的逻辑图;
[0039] 图3B示意性示出了根据本公开实施例的存储线程任务的执行进度信息的逻辑图;
[0040] 图3C示意性示出了根据本公开实施例的定时运维的逻辑图;
[0041] 图4A示意性示出了根据本公开实施例的创建启动应用的预设线程的流程图;
[0042] 图4B示意性示出了根据本公开实施例的创建停止应用的预设线程的流程图;
[0043] 图4C示意性示出了根据本公开实施例的创建重启应用的预设线程的流程图;
[0044] 图4D示意性示出了根据本公开实施例的创建隔离应用的预设线程的流程图;
[0045] 图5示意性示出了根据本公开实施例的运维装置的框图;以及
[0046] 图6示意性示出了根据本公开实施例的电子设备的方框图。

具体实施方式

[0047] 以下,将参照附图来描述本公开的实施例。但是应该理解,这些描述只是示例性的,而并非要限制本公开的范围。在下面的详细描述中,为便于解释,阐述了许多具体的细节以提供对本公开实施例的全面理解。然而,明显地,一个或多个实施例在没有这些具体细节的情况下也可以被实施。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本公开的概念。
[0048] 在此使用的术语仅仅是为了描述具体实施例,而并非意在限制本公开。在此使用的术语“包括”、“包含”等表明了所述特征、步骤、操作和/或部件的存在,但是并不排除存在或添加一个或多个其他特征、步骤、操作或部件。
[0049] 在此使用的所有术语(包括技术和科学术语)具有本领域技术人员通常所理解的含义,除非另外定义。应注意,这里使用的术语应解释为具有与本说明书的上下文相一致的含义,而不应以理想化或过于刻板的方式来解释。
[0050] 在使用类似于“A、B和C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有A、B和C中至少一个的系统”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的系统等)。在使用类似于“A、B或C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有A、B或C中至少一个的系统”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的系统等)。术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个所述特征。
[0051] 本公开的实施例提供了一种运维方法、运维装置、电子设备和介质。该方法包括线程创建过程和线程执行过程。在线程创建过程中,接收第一运维请求指令,响应于所述第一运维请求指令,创建针对与所述节点信息对应的节点的预设线程任务,在创建线程之后,进入线程执行过程,执行所述预设线程任务,以实现对所述节点信息对应节点进行运维。
[0052] 图1A示意性示出了根据本公开实施例的运维方法、运维装置、电子设备和介质的应用场景。
[0053] 随着计算机技术和互联网技术的发展,网络设备所支持的协议的类型越来越多,运维人员需要基于不同的协议手动对待运维节点进行运维操作,期间需要输入如IP地址、账号、开启应用、重启应用等相关的操作指令,导致易于出错。
[0054] 如图1A所示,运维人员10可以在运维平台上输入(或选取)节点、运维实例标识(operation instance identification,简称operation instance id)和运维操作后点击开始按钮,由执行运维的节点自动创建运维实例标识对应的预设线程,无需在操作时依赖运维人员的经验来手动对节点进行运维。其中,该运维平台可以由运维人员使用远程终端登录,如在远程终端以网页的形式展示该运维平台。
[0055] 图1B示意性示出了根据本公开实施例的适用运维方法、运维装置和电子设备的系统架构。需要注意的是,图1B所示仅为可以应用本公开实施例的系统架构的示例,以帮助本领域技术人员理解本公开的技术内容,但并不意味着本公开实施例不可以用于其他设备、系统、环境或场景。
[0056] 如图1B所示,根据该实施例的系统架构100可以包括终端设备101、102,接入节点103,网络104和服务器105。网络104用以在终端设备101、102、接入节点103和服务器105之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
[0057] 用户可以使用终端设备101、102通过网络104与服务器105交互,以接收或发送消息等。终端设备101、102可以是具有显示屏并且支持网络(web)应用,如支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。
[0058] 接入节点103为与服务器105连接的各种可运维的电子设备,包括但不限于数据节点、网关节点、终端、后台服务器等。
[0059] 服务器105可以是提供各种服务的服务器,例如可提供对接入节点103进行运维服务的服务器。又例如,对用户利用终端设备101、102所浏览的网站提供支持的管理服务器,以便于对接入节点103进行运维(仅为示例)。后台管理服务器可以对接收到的用户请求等数据进行分析等处理,并将处理结果(例如根据用户请求获取或生成的网页、信息、或数据等)反馈给终端设备。
[0060] 需要说明的是,本公开实施例所提供的运维方法一般可以由服务器105执行。相应地,本公开实施例所提供的运维装置一般可以设置于服务器105中。应该理解,终端设备、接入节点、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、接入节点、网络和服务器。
[0061] 图2示意性示出了根据本公开实施例的用于多个机器人中每个机器人的通信方法的流程图。
[0062] 如图2所示,该方法包括操作S201~操作S205。
[0063] 在操作S201,接收第一运维请求指令,所述第一运维请求指令包括运维操作类型信息和节点信息。
[0064] 在本实施例中,可以由运维人员直接在执行运维的节点上输入第一运维请求指令,也可以是由运维人员远程登录运维平台,然后在如网页上进行运维操作。
[0065] 运维操作类型信息包括但不限于:应用停止、应用启动、应用重启、故障隔离、健康检测等。节点信息包括但不限于:节点标识信息、网际协议(Internet Protocol,简称IP)地址、端口信息等。
[0066] 在操作S203,响应于所述第一运维请求指令,创建预设线程任务,所述预设线程任务针对与所述节点信息对应的节点,其中,所述运维操作类型信息和所述预设线程任务之间存在映射关系。
[0067] 在本实施例中,针对一个节点的运维操作对应的预设线程任务是一定的,例如,应用开启对应一个预设线程任务,应用关闭对应另一个预设线程任务。
[0068] 需要说明的是,相同运维操作对应的预设线程任务,对于不同的节点可能不同,这是由不同的节点的协议、适用线程任务可能不同,因此,预设线程任务可以是针对每个节点分别设置的。此外,也可以是针对一个集合中包括的节点设置的,例如,一个集合中记录的节点信息对应节点(同型号或使用相同的协议等)都可以基于相同的预设线程任务进行运维,如同型号节点对应的应用开启的预设线程任务为线程任务1,应用重启的预设线程任务为线程任务2等。
[0069] 在操作S205,执行所述预设线程任务,以实现对所述节点信息对应节点进行运维。
[0070] 在一个具体实施例中,前端对维护(maintain)接口发起含有运维操作类型信息(action)、节点(nodes)的请求,创建对应维护任务(maintenance_job),生成线程执行剧本(playbook)脚本,返回请求结果。其中,运维功能包括但不限于以下所示,运维许可状态:运维人员拥有工单时才能开启应用的运维许可状态。应用启动:运维人员可以一键启动待运维节点,并且自动完成健康检测和服务暴露。应用停止:运维人员可以一键停止待运维节点,并且自动禁用服务和降低服务权重。应用重启:运维人员可以一键重启待运维节点,并且过程中自动完成健康检测、禁用服务、启用服务等操作。健康检测:运维人员可以一键对待运维节点进行健康检测操作,自动判断应用节点是否健康、服务状态是否正常。故障隔离:运维人员可以一键对待运维节点进行故障隔离操作,避免业务流量发往故障待运维节点。
[0071] 本公开提供的运维方法,分别针对不同的运维操作预设对应的预设线程任务,当运维人员需要进行运维操作时,只需执行该预设线程任务,这样就降低了运维操作的难度,可以有效降低因操作人员经验不足、或不同应用的运维操作流程不一样而导致的人为操作失误的风险。
[0072] 在另一个实施例中,所述第一运维请求指令还包括运维许可证信息。相应地,所述方法还可以包括操作S207。
[0073] 在操作S207,响应于所述第一运维请求指令,在创建所述预设线程任务之前,确定所述运维许可证信息是否满足运维许可条件。
[0074] 相应地,所述创建预设线程任务具体可以包括:如果确定所述运维许可证信息满足运维许可条件,则创建所述预设线程任务。
[0075] 下面参考图3A~图3C,结合具体实施例对图2所示的方法做进一步说明。
[0076] 在本实施例中,所述确定所述运维许可证信息是否满足运维许可条件可以包括如下操作。
[0077] 首先,获取运维实例的运行状态。其中,运维实例的运行状态可以包括运维状态和非运维状态。
[0078] 然后,如果确定所述运行状态均为非运维状态,则确定是否存在与所述运维许可证信息对应的运维实例。即,当前不存在处于运维状态的运维实例时,确定是否存在与所述运维许可证信息对应的运维实例。这样可以使得每个运维人员可以首先得知各运维实例的运行状态,以便于在存在异常状态时进行及时处理,且有助于避免重复执行相同的运维操作和避免同时运行的多个运维实例之间存在冲突等。
[0079] 接着,如果确定存在与所述运维许可证信息对应的运维实例,则获取与所述运维许可证信息对应的运维实例的运行状态和当前登录账户的权限等级中的至少一个。
[0080] 然后,如果确定与所述维许可证信息对应的运维实例的运行状态为指定状态,或确定所述当前登录账户的权限等级达到指定等级,则确定所述运维许可证信息满足运维许可条件。例如,当与所述维许可证信息对应的运维实例的运行状态为“执行完成”时,或者当前登录账户为高级管理员账户,则可以进行运维操作。这样即保证了运维的安全性,同时还能灵活地满足各种非常规的运维需求。
[0081] 图3A示意性示出了根据本公开实施例的是否满足运维许可条件的逻辑图。
[0082] 在一个具体实施例中,如图3A所示,加载运维页面时,前端首先请求后台节点(nodes)接口,获取app.job_templates.stage_templates中所有主机(hosts)对应的节点(node)表中数据,渲染节点列表组件。然后,前端请求查询活动运维实例接口,以判断是否存在活跃(active)状态的运维实例许可证(operation_instance)。如果存在,则确定处于运维状态,如果不存在,则确定处于非运维状态。
[0083] 开启运维状态时,页面弹出对话框提示运维人员输入工单号,如果运维人员输入工单号后点击确定,则后台请求事务跟踪工具(JIRA)判断该工单号是否存在。如果存在,则在弹窗中展示工单号对应工单信息,并提示运维人员在执行完运维操作后及时关闭维护。如果不存在,则返回提示信息。运维人员确认工单号正确后,通过点击确定来请求后台创建operation_instance。后台检查工单号对应运维实例的运行状态和当前登录账户权限(如运维人员权限),如果工单号对应运维实例的运行状态为“待执行”、“变更中”或“执行完成”等预设状态中的一种,或者运维人员拥有管理员权限,则可以生成operation_instance。结束运维状态时,后台判断是否存在正在运行状态的maintenance_job。如果存在,则不结束运维状态,提示运维人员存在正在运行的maintenance_job。如果不存在,则结束运维状态,将operation_instance状态设置为关闭状态。
[0084] 需要说明的是,前端还可以判断运维人员输入的工单号是否可用(如后台反馈的信息表明是否存在该工单号对应的运维实例,或者,输入的工单号格式是否正确),如果工单号不可用,且运维人员不具有管理员权限,则设置确定按钮为禁用(disable)状态。
[0085] 在另一个实施例中,在获取运维实例的运行状态之后,所述方法还可以包括如下操作。
[0086] 首先,如果确定至少一个所述运维实例的运行状态处于运维状态,则获取所述至少一个所述运维实例的运行时长。例如,通过JIRA来获取运维实例的运行时长。
[0087] 接着,确定所述至少一个所述运维实例中是否存在运行时长超过设定时长的运维实例。该设定时长可以根据经验等设定,如1小时、6小时、12小时、1天、2天、5天等。
[0088] 然后,如果存在运行时长超过设定时长的运维实例,则展示运行时长超过设定时长的运维实例关联信息。
[0089] 在一个具体实施例中,首先,如果确定至少一个所述运维实例的运行状态处于运维状态,则获取处于active状态的operation_instance中最新的maintenance_job,将maintenance_job的信息置入摘要字段(summary_field)中。接着,渲染节点列表组件,页面显示operation_instance对应的工单号,如果运维人员点击页面显示的工单号,则可跳转至JIRA,若maintenance_job已开启超过24小时,在页面显示醒目红字提醒。
[0090] 在另一个实施例中,为了便于运维人员得知当前运维的执行进度,在执行所述预设线程任务的过程中,所述方法还可以包括如下操作。
[0091] 首先,获取当前执行的线程任务的标识,所述线程任务具有包括多个关键节点的排序信息在内的节点顺序列表,所述多个关键节点具有执行进度信息。
[0092] 然后,将所述当前执行的线程任务的标识在所述节点顺序列表中进行匹配,获得线程任务的执行进度。
[0093] 接着,展示所述线程任务的执行进度。
[0094] 此外,为了便于调用历史运维数据进行异常分析、历史数据分析等,所述方法还可以包括如下操作,在执行所述预设线程任务的过程中,或完成所述预设线程任务后,存储线程任务的执行进度信息。例如,进行关键操作时,在数据库中记录对应信息。
[0095] 图3B示意性示出了根据本公开实施例的存储线程任务的执行进度信息的逻辑图。
[0096] 如图3B所示,在一个具体实施例中,在Maintenance_job表中,阶段(steps)字段存储代表剧本(playbook)中关键节点信息的列表,列表内容为playbook中任务(task)的名字(name),其中,task name在playbook执行过程中唯一。创建回调(callback)时传入关键节点信息列表,随playbook执行过程,通过在callback中匹配playbook的task name与任务监测点列表(task_checkpoint_list)判断线程脚本执行到哪一步。前端在触发维护操作时自动弹出任务弹窗,按照对应maintenance_job信息展示任务进度条。如果运维人员关闭弹窗,可在节点列表组件点击正在运行任务节点的运行状态(如运行中/失败/完成),重新弹出任务弹窗。
[0097] 另外,为了避免重复执行运维操作或线程冲突等,所述方法还可以包括如下操作。
[0098] 在响应于所述第一运维请求指令,在创建针对所述节点信息对应节点的线程任务之前,获取共用锁,所述共用锁为应用发布与应用运维之间的共用锁。如果获取共用锁失败,则禁止创建针对所述节点信息对应节点的线程任务。
[0099] 在一个具体实施例中,线程任务执行过程中,通过回调(callback)获取线程任务的脚本执行情况,将回调结果写入maintenance_job表中,playbook中的节点顺序列表执行结束后,将执行结果写入maintenance_job表。如果维护操作为应用启动、应用停止和应用重启中一种,则在创建maintenance_job前尝试获取共用锁(与发布流程共用锁),获取失败则返回异常。运维人员执行服务隔离操作时,可以通过弹窗方式提示运维人员需访问服务治理系统恢复服务。
[0100] 其中,Playbook是自动化运维工具(ansible)用于配置、部署和管理托管主机的剧本,通过playbook的详细描述,执行其中的一系列任务(tasks),可以让远端主机达到预期状态。ansible由计算机进行安装,部署应用,提供对外服务,以及组织计算机处理各种各样的事务。Playbook包括:target、variable、tasks和handler。其中,target为要执行playbook的远程主机组。variable为playbook运行时需要使用的变量。tasks为将要在远程主机上执行的任务列表。handler定义task执行完成以后需要调用的任务。
[0101] 需要说明的是,为了进一步提升运维人员操作的便捷度,可以进行可视化处理。例如,运维人员在应用维护页面可以勾选需要执行维护操作的主机,然后点击健康检测/启动/停止/重启/服务隔离等图标执行对应的维护任务。页面可以限制运维人员单次可操作主机数量。
[0102] 在另一个实施例中,为了便于自动对接入节点进行健康检测,所述方法还可以包括如下操作。
[0103] 首先,在创建所述预设线程任务之前,从第一数据集合中获取候选IP地址,所述第一数据集合中存储已接入节点的IP地址。
[0104] 然后,将所述候选IP地址在可运维节点数据集合中进行匹配。
[0105] 接着,将匹配失败的候选IP地址添加到所述可运维节点数据集合,并将匹配失败的候选IP地址的属性设置为优先检测级别。这样就可以优先对新接入的节点进行健康检测。
[0106] 然后,以设定周期按照检测级别对所述可运维节点数据集合的至少一个IP地址对应节点进行检测。
[0107] 图3C示意性示出了根据本公开实施例的定时运维的逻辑图。
[0108] 如图3C所示,在一个具体实施例中,首先,后台定时任务会定时读取任务样板(Job Template)表,在任务样板表中取所有主机(hosts)的IP地址,如果在节点(node)表中没有该IP地址对应数据,则将该IP地址插入node表中,同时将节点状态为初始状态(INIT),并将上一次健康检测的执行时间设置为最旧,如早于node表中其它节点的上一次健康检测的执行时间。
[0109] 然后,按照预设周期定时对node表中节点检查时间最旧的前N(Top N)条数据对应的节点进行健康检测,并将检测结果写入数据库。如每分钟执行一次。其中,node表中节点,如分布式调度系统(Hippo)的节点执行健康检测定时任务的时间应与执行上述预设线程任务之间相互错开。将健康检测结果回写数据库。
[0110] 下面参考图4A~图4D,对创建预设线程任务做进一步说明。
[0111] 图4A示意性示出了根据本公开实施例的创建启动应用的预设线程的流程图。
[0112] 如图4A所示,所述运维操作类型为启动应用,所述创建预设线程任务可以包括操作S401~操作S405。
[0113] 在操作S401,在容器中启动应用。
[0114] 在操作S403,检测应用健康状态。
[0115] 在操作S405,如果确定所述应用健康状态为健康状态,则通过调用服务治理应用接口提升所述节点信息对应节点的应用可占用资源权重。
[0116] 其中,应用可占用资源权重包括但不限于:被分配的服务在全部可提供服务的占比、当前被分配的服务在当前所有提供的服务的占比、允许分配的服务的占比、CPU可占用比例、内存可占用比例、硬盘可占用比例和网速可占用比例等中至少一项。
[0117] 例如,首先,启动应用Playbook,然后,启动jetty应用,接着,检查应用健康状态,然后,提升权重,在提升权重的过程中检查服务状态,直至权重提升至预设阈值。
[0118] 图4B示意性示出了根据本公开实施例的创建停止应用的预设线程的流程图。
[0119] 如图4B所示,所述运维操作类型为停止应用时,所述创建预设线程任务可以包括操作S411~操作S415。
[0120] 在操作S411,通过调用服务治理应用接口以降低所述节点信息对应节点的应用可占用资源权重直至达到停止权重阈值。
[0121] 在操作S413,设置所述应用的状态为禁用状态。
[0122] 在操作S415,停止容器。
[0123] 例如,首先,停止应用Playbook,然后,调整权重,接着,禁用服务,然后,停止jetty容器,在停止容器之后检测服务状态,如果服务状态为禁止服务,则结束。
[0124] 图4C示意性示出了根据本公开实施例的创建重启应用的预设线程的流程图。
[0125] 如图4C所示,所述运维操作类型包括重启应用,所述创建预设线程任务包括操作S421~操作S423。
[0126] 在操作S421,通过调用服务治理应用接口以降低所述节点信息对应节点的应用可占用资源权重直至达到停止权重阈值。
[0127] 在操作S423,在经过指定延迟时间后,通过调用服务治理应用接口以提升所述节点信息对应节点的应用可占用资源权重。
[0128] 例如,首先,停止应用,在停止应用之后延迟指定时长,接着,启动应用。
[0129] 图4D示意性示出了根据本公开实施例的创建隔离应用的预设线程的流程图。
[0130] 如图4D所示,所述运维操作类型包括隔离应用;所述创建预设线程任务包括操作S431~操作S435。
[0131] 在操作S431,通过调用服务治理应用接口以降低所述节点信息对应节点的应用可占用资源权重直至达到停止权重阈值。
[0132] 在操作S433,通过调用服务治理应用接口禁止所述节点信息对应节点提供服务。
[0133] 在操作S435,返回提示信息,所述提示信息用于提示解除隔离操作方法信息。
[0134] 例如,首先,调用服务治理接口降低节点权重,然后,检测权重信息,接着,调用服务治理接口禁止节点提供服务,然后进行服务状态检测,并将检测结果写入数据库。
[0135] 通过以上预设线程任务可以对节点进行多种运维操作。
[0136] 图5示意性示出了根据本公开实施例的运维装置的框图。
[0137] 如图5所示,该装置500可以包括指令接收模块510、任务创建模块530和任务执行模块550。
[0138] 其中,所述指令接收模块510用于接收第一运维请求指令,所述第一运维请求指令包括运维操作类型信息和节点信息。
[0139] 所述任务创建模块530用于响应于所述第一运维请求指令,响应于所述第一运维请求指令,创建预设线程任务,所述预设线程任务针对与所述节点信息对应的节点,其中,所述运维操作类型信息和所述预设线程任务之间存在映射关系。
[0140] 所述任务执行模块550用于执行所述线程任务,以实现对所述节点信息对应节点进行运维。
[0141] 此外,所述第一运维请求指令还可以包括运维许可证信息。相应地,所述装置500还可以包括许可确定模块570。
[0142] 所述许可确定模块570用于响应于所述第一运维请求指令,在创建所述预设线程任务之前,确定所述运维许可证信息是否满足运维许可条件。
[0143] 相应地,所述任务创建模块530具体用于如果确定所述运维许可证信息满足运维许可条件,则创建所述预设线程任务。
[0144] 其中,所述许可确定模块570可以包括状态获取单元、实例确定单元、许可信息获取单元和许可单元。
[0145] 具体地,所述状态获取单元用于获取运维实例的运行状态。
[0146] 所述实例确定单元用于如果确定所述运行状态均为非运维状态,则确定是否存在与所述运维许可证信息对应的运维实例。
[0147] 所述许可信息获取单元用于如果确定存在与所述运维许可证信息对应的运维实例,则获取与所述运维许可证信息对应的运维实例的运行状态和当前登录账户的权限等级中的至少一个。
[0148] 所述许可单元用于如果确定与所述维许可证信息对应的运维实例的运行状态为指定状态,或确定所述当前登录账户的权限等级达到指定等级,则确定所述运维许可证信息满足运维许可条件。
[0149] 在一个实施例中,所述装置500还可以包括运行时长获取模块、超时实例确定模块和超时实例展示模块。
[0150] 其中,所述运行时长获取模块用于如果确定至少一个所述运维实例的运行状态处于运维状态,则获取所述至少一个所述运维实例的运行时长。
[0151] 所述超时实例确定模块用于确定所述至少一个所述运维实例中是否存在运行时长超过设定时长的运维实例。
[0152] 所述超时实例展示模块用于如果存在运行时长超过设定时长的运维实例,则展示运行时长超过设定时长的运维实例关联信息。
[0153] 此外,所述装置500还可以包括:任务标识获取模块、标识匹配模块和进度展示模块.
[0154] 其中,所述任务标识获取模块用于在执行所述预设线程任务的过程中,获取当前执行的线程任务的标识,所述线程任务具有包括多个关键节点的排序信息在内的节点顺序列表,所述多个关键节点具有执行进度信息。
[0155] 所述标识匹配模块用于将所述当前执行的线程任务的标识在所述节点顺序列表中进行匹配,获得线程任务的执行进度。
[0156] 所述进度展示模块用于展示所述线程任务的执行进度。
[0157] 进一步地,所述装置500还可以包括:进度存储模块。
[0158] 该进度存储模块用于在执行所述预设线程任务的过程中,或完成所述预设线程任务后,存储线程任务的执行进度信息。
[0159] 在另一个实施例中,所述装置500还包括共用锁获取模块和禁止运维模块。
[0160] 其中,所述共用锁获取模块用于响应于所述第一运维请求指令,在创建针对所述节点信息对应节点的线程任务之前,获取共用锁,所述共用锁为应用发布与应用运维之间的共用锁。
[0161] 所述禁止运维模块用于如果获取共用锁失败,则禁止创建针对所述节点信息对应节点的线程任务。
[0162] 在另一实施例中,所述装置500还可以包括地址获取模块、地址匹配模块、地址更新模块和定时检测模块。
[0163] 其中,所述地址获取模块用于从第一数据集合中获取候选IP地址,所述第一数据集合中存储已接入节点的IP地址。
[0164] 所述地址匹配模块用于将所述候选IP地址在可运维节点数据集合中进行匹配。
[0165] 所述地址更新模块用于将匹配失败的候选IP地址添加到所述可运维节点数据集合,并将匹配失败的候选IP地址的属性设置为优先检测级别。
[0166] 所述定时检测模块用于定时按照优先级对所述可运维节点数据集合的至少一个IP地址对应节点进行检测。
[0167] 例如,所述任务创建模块530可以包括第一启动单元、第一检测单元和第一权重提升单元。
[0168] 其中,所述第一启动单元用于在容器中启动应用。
[0169] 所述第一检测单元用于检测应用健康状态。
[0170] 所述第一权重提升单元用于如果确定所述应用健康状态为健康状态,则通过调用服务治理应用接口提升所述节点信息对应节点的应用可占用资源权重。
[0171] 又例如,所述任务创建模块530可以包括第一权重降低单元、状态设置单元和容器停止单元。
[0172] 其中,所述第一权重降低单元用于通过调用服务治理应用接口以降低所述节点信息对应节点的应用可占用资源权重直至达到停止权重阈值。
[0173] 所述状态设置单元用于设置所述应用的状态为禁用状态,所述容器停止单元用于停止容器。
[0174] 又例如,所述任务创建模块530可以包括第二权重降低单元、第二权重提升单元。
[0175] 其中,所述第二权重降低单元用于通过调用服务治理应用接口以降低所述节点信息对应节点的应用可占用资源权重直至达到停止权重阈值。
[0176] 所述第二权重提升单元用于在经过指定延迟时间后,通过调用服务治理应用接口以提升所述节点信息对应节点的应用可占用资源权重。
[0177] 又例如,所述任务创建模块530可以包括第三权重降低单元、服务禁止单元和信息提示单元。
[0178] 其中,所述第三权重降低单元用于通过调用服务治理应用接口以降低所述节点信息对应节点的应用可占用资源权重直至达到停止权重阈值。
[0179] 所述服务禁止单元用于通过调用服务治理应用接口禁止所述节点信息对应节点提供服务。
[0180] 所述信息提示单元用于返回提示信息,所述提示信息用于提示解除隔离操作方法信息。
[0181] 根据本公开的实施例的模块、单元中的任意多个、或其中任意多个的至少部分功能可以在一个模块中实现。根据本公开实施例的模块、单元中的任意一个或多个可以被拆分成多个模块来实现。根据本公开实施例的模块、单元中的任意一个或多个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上系统、基板上的系统、封装上的系统、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式的硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,根据本公开实施例的模块、单元中的一个或多个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
[0182] 例如,指令接收模块510、任务创建模块530、任务执行模块550以及许可确定模块570中的任意多个可以合并在一个模块中实现,或者其中的任意一个模块可以被拆分成多个模块。或者,这些模块中的一个或多个模块的至少部分功能可以与其他模块的至少部分功能相结合,并在一个模块中实现。根据本公开的实施例,指令接收模块510、任务创建模块
530、任务执行模块550以及许可确定模块570中的至少一个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上系统、基板上的系统、封装上的系统、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式等硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,指令接收模块510、任务创建模块530、任务执行模块550以及许可确定模块570中的至少一个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
[0183] 图6示意性示出了根据本公开实施例的电子设备的方框图。图6示出的电子设备仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
[0184] 如图6所示,根据本公开实施例的电子设备600包括处理器601,其可以根据存储在只读存储器(ROM)602中的程序或者从存储部分608加载到随机访问存储器(RAM)603中的程序而执行各种适当的动作和处理。处理器601例如可以包括通用微处理器(例如CPU)、指令集处理器和/或相关芯片组和/或专用微处理器(例如,专用集成电路(ASIC)),等等。处理器601还可以包括用于缓存用途的板载存储器。处理器601可以包括用于执行根据本公开实施例的方法流程的不同动作的单一处理单元或者是多个处理单元。
[0185] 在RAM 603中,存储有电子设备600操作所需的各种程序和数据。处理器601、ROM 602以及RAM 603通过总线604彼此相连。处理器601通过执行ROM 602和/或RAM 603中的程序来执行根据本公开实施例的方法流程的各种操作。需要注意,所述程序也可以存储在除ROM 602和RAM 603以外的一个或多个存储器中。处理器601也可以通过执行存储在所述一个或多个存储器中的程序来执行根据本公开实施例的方法流程的各种操作。
[0186] 根据本公开的实施例,电子设备600还可以包括输入/输出(I/O)接口605,输入/输出(I/O)接口605也连接至总线604。电子设备600还可以包括连接至I/O接口605的以下部件中的一项或多项:包括键盘、鼠标等的输入部分606;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分607;包括硬盘等的存储部分608;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分609。通信部分609经由诸如因特网的网络执行通信处理。驱动器610也根据需要连接至I/O接口605。可拆卸介质611,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器610上,以便于从其上读出的计算机程序根据需要被安装入存储部分608。
[0187] 根据本公开的实施例,根据本公开实施例的方法流程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读存储介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分609从网络上被下载和安装,和/或从可拆卸介质611被安装。在该计算机程序被处理器601执行时,执行本公开实施例的系统中限定的上述功能。根据本公开的实施例,上文描述的系统、设备、装置、模块、单元等可以通过计算机程序模块来实现。
[0188] 本公开还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中描述的设备/装置/系统中所包含的;也可以是单独存在,而未装配入该设备/装置/系统中。上述计算机可读存储介质承载有一个或者多个程序,当上述一个或者多个程序被执行时,实现根据本公开实施例的方法。
[0189] 根据本公开的实施例,计算机可读存储介质可以是非易失性的计算机可读存储介质,例如可以包括但不限于:便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。例如,根据本公开的实施例,计算机可读存储介质可以包括上文描述的ROM 602和/或RAM 603和/或ROM 602和RAM 603以外的一个或多个存储器。
[0190] 附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
[0191] 本领域技术人员可以理解,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合,即使这样的组合或结合没有明确记载于本公开中。特别地,在不脱离本公开精神和教导的情况下,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合。所有这些组合和/或结合均落入本公开的范围。
[0192] 以上对本公开的实施例进行了描述。但是,这些实施例仅仅是为了说明的目的,而并非为了限制本公开的范围。尽管在以上分别描述了各实施例,但是这并不意味着各个实施例中的措施不能有利地结合使用。本公开的范围由所附权利要求及其等同物限定。不脱离本公开的范围,本领域技术人员可以做出多种替代和修改,这些替代和修改都应落在本公开的范围之内。