一种告警消息的处理方法、装置及设备与流程

文档序号:26405870发布日期:2021-08-24 16:20阅读:99来源:国知局
一种告警消息的处理方法、装置及设备与流程

本发明涉及信息处理技术领域,特别是指一种告警消息的处理方法、装置及设备。



背景技术:

告警消息是运维领域一种常见的信息来源,是运维人员了解系统运行状况的重要途径。通常情况下,一套系统会配备不同的监控中心,它们时时刻刻检测着系统的运行状态,并在系统出现故障时,发出描述该故障信息的告警消息。

告警消息中包含着这一故障现象的时间,来源,级别,描述等信息。然而,实际情况下,由于大部分系统设备节点多,测量节点多,不同监控中心产生告警的标准不同,导致产生的告警消息数目庞大,信息混杂,需要运维人员人工筛选。这极大的浪费了运维人员的精力,延长了故障的定位与修复时间。

传统的告警压缩方法多是通过设定大量的规则过滤告警消息,比如只关注特定几个节点的告警消息,或仅保留出现次数超过某一阈值的告警消息等。

然而这些方法往往需要大量的时间成本才能设计出针对该系统的合理的规则,同时要求运维人员对该系统有足够的了解,才能设计并不断改进这些规则,这导致此类方法泛化性能较差,无法直接应用于新系统。



技术实现要素:

本发明要解决的技术问题是如何提供一种告警消息的处理方法、装置及设备。解决现有技术中需要大量的时间成本才能设计出针对该系统的合理的规则,同时要求运维人员对该系统有足够的了解,才能设计并不断改进这些规则,这导致此类方法泛化性能较差,无法直接应用于新系统的问题。

为解决上述技术问题,本发明的技术方案如下:

一种告警消息的处理方法,包括:

获取告警消息的发生时间以及所述告警消息所属的警报标签;

按照所述告警消息的发生时间将所述告警消息划分为多个序列,每一个序列中包括按照时间顺序排列的警报标签;

根据所述多个序列,构造规则树,所述规则树存储频繁项及频繁项在各序列中出现的次数,所述频繁项是序列中的一个对象;

根据所述规则树,确定频繁序列规则;

根据所述频繁序列规则确定事件。

可选的,获取所述告警消息所属的警报标签,包括:

获取所述告警消息的描述信息;

根据所述告警消息的描述信息,获得所述告警消息所属的警报标签。

可选的,所述警报标签通过以下过程标记:

将运维系统中同一运维节点下的告警消息的描述信息的相似度大于第一预设值的告警消息标记相同的警报标签。

可选的,根据所述多个序列,构造规则树,包括:

从一树结构的根节点出发,添加至少一个叶子节点,得到所述规则树;所述叶子节点存储所述多个序列中的频繁项以及频繁项在所述多个序列中出现的次数;所述规则树的一条路径指从根节点到一个叶子节点走过的所有节点所组成的序列。

可选的,根据所述规则树,确定频繁序列规则,包括:

按照预设的规则树的路径总数阈值以及规则树的单个路径的最大长度阈值,确定频繁序列规则。

可选的,按照预设的规则树的路径总数阈值以及规则树的单个路径的最大长度阈值,确定频繁序列规则,包括:

步骤1,遍历规则树的路径总数;

步骤2,如果路径总数超出路径总数阈值,则从规则树中挖掘所有序列规则,并输出;

步骤3,找出序列规则数据集中的频繁项,复制数据集,去除复制后得到的数据集中的不频繁项,并作为新的数据集;

步骤4,选取一个尚未处理的频繁项,创建一个叶子节点,叶子节点内存储该频繁项与出现次数;标记当前频繁项为已处理过的频繁项,转移到其对应的叶子节点,判断从根节点到当前叶子节点走过的路径长度是否超出单个路径的最大长度阈值,如果超过,则重复该步骤4;

步骤5,从序列规则数据集中获取当前频繁项的后缀集,如果后缀集存在,则将后缀集作为新的数据集,返回步骤2;

步骤6,如果后缀集不存在,检测是否存在尚未处理的不频繁项,若存在,返回步骤4;

步骤7,如果所有的频繁项都已被处理完成,则对构建好的规则树进行遍历,生成频繁序列规则,并返回所有频繁序列规则。

可选的,告警消息的处理方法,还包括:

根据所述频繁序列规则,获得历史规则库;

当一新的告警消息的序列个数小于一预设值时,将所述新的告警消息与所述历史规则库中存储的频繁告警序列规则进行匹配,如果匹配成功,将匹配到的目标频繁告警序列规则输出。

本发明的实施例还提供一种告警消息的处理装置,包括:

获取模块,用于获取告警消息的发生时间以及所述告警消息所属的警报标签;

划分模块,用于按照所述告警消息的发生时间将所述告警消息划分为多个序列,每一个序列中包括按照时间顺序排列的警报标签;

构造模块,用于根据所述多个序列,构造规则树,所述规则树存储频繁项及频繁项在各序列中出现的次数,所述频繁项是序列中的一个对象;

第一确定模块,用于根据所述规则树,确定频繁序列规则;

第二确定模块,用于根据所述频繁序列规则确定事件。

本发明的实施例还提供一种电子设备,包括:处理器、存储有计算机程序的存储器,所述计算机程序被处理器运行时,执行如上所述的方法。

本发明的实施例还提供一种计算机可读存储介质,存储指令,当所述指令在计算机上运行时,使得计算机执行如上所述的方法。

本发明的上述方案至少包括以下有益效果:

通过获取告警消息的发生时间以及所述告警消息所属的警报标签;按照所述告警消息的发生时间将所述告警消息划分为多个序列,每一个序列中包括按照时间顺序排列的警报标签;根据所述多个序列,构造规则树,所述规则树存储频繁项及频繁项在各序列中出现的次数,所述频繁项是序列中的一个对象;根据所述规则树,确定频繁序列规则;根据所述频繁序列规则确定事件。防止极端情况下大量无意义序列规则的产生,为运维人员提供更高效的压缩方法,不再需要手动设置事件生成的规则,极大的节约了时间成本,产生的结果可以被用于根因分析,故障定位等。

附图说明

图1是本发明实施例的告警消息的处理方法的流程示意图;

图2是本发明实施例的告警消息的处理方法中序列的示意图;

图3是本发明实施例的告警消息的处理方法中基于图2所示的序列的规则树结构示意图;

图4是本发明实施例的告警消息的处理方法的一具体实现流程图;

图5是本发明实施例的一实现实例的告警消息合并以及关联的示意图;

图6是本发明实施例的一实现实例的历史规则库的示意图;

图7是本发明实施例的一实现实例的历史规则库的另一示意图;

图8是本发明实施例的改进prefixspan算法挖掘过程示例图;

图9是本发明实施例的改进prefixspan算法规则树示例图;

图10是本发明实施例的一实现实例的序列集示意图;

图11是本发明实施例的改进prefixspan算法,限制条件下的规则树示意图;

图12是本发明实施例的告警消息的处理装置的模块框示意图。

具体实施方式

下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。

本发明的以下实施例中,运维节点是指:运维系统中实现单一功能的实体模块或抽象模块,例如业务系统、模块、服务、中间件集群、中间件、虚拟机、微服务、服务器集群、主机等。告警消息:监控中心发出的对被监控节点的故障的描述,包含有时间,节点,详细信息等。

警报:同一节点下部分告警消息的集合,每个警报用于描述对应节点下的一个故障。

事件:多个相关性较高的警报的集合,包含某一故障产生的告警消息和该故障在系统中引发的其他故障产生的告警消息。

如图1所示,本发明的实施例提供一种告警消息的处理方法,包括:

步骤11,获取告警消息的发生时间以及所述告警消息所属的警报标签;

步骤12,按照所述告警消息的发生时间将所述告警消息划分为多个序列,每一个序列中包括按照时间顺序排列的警报标签;

步骤13,根据所述多个序列,构造规则树,所述规则树存储频繁项及频繁项在各序列中出现的次数,所述频繁项是序列中的一个对象;

步骤14,根据所述规则树,确定频繁序列规则;

步骤15,根据所述频繁序列规则确定事件。

该实施例中,通过获取告警消息的发生时间以及所述告警消息所属的警报标签;按照所述告警消息的发生时间将所述告警消息划分为多个序列,每一个序列中包括按照时间顺序排列的警报标签;根据所述多个序列,构造规则树,所述规则树存储频繁项及频繁项在各序列中出现的次数,所述频繁项是序列中的一个对象;根据所述规则树,确定频繁序列规则;根据所述频繁序列规则确定事件。防止极端情况下大量无意义序列规则的产生,为运维人员提供更高效的压缩方法,不再需要手动设置事件生成的规则,极大的节约了时间成本,产生的结果可以被用于根因分析,故障定位等。

本发明的一可选的实施例中,步骤11可以包括:

步骤111,获取所述告警消息的描述信息;

步骤112,根据所述告警消息的描述信息,获得所述告警消息所属的警报标签。

该实施例中,所述警报标签通过以下过程标记:将运维系统中同一运维节点下的告警消息的描述信息的相似度大于第一预设值的告警消息标记相同的警报标签。具体的,将同一运维节点下的描述相同故障现象的告警消息聚合在一起,每条告警消息都将被赋予所属警报的标签。主要方法是计算告警消息中描述信息的文本相似度聚合告警消息。比如,对于告警消息a,“节点x的cpu容量达到80%,cpu容量过高”,告警消息b,“节点x的cpu容量达到85%,cpu容量过高”。这两条告警消息a和b,描述了同一个故障现象,即cpu容量过高,两者可以通过计算文本相似程度聚合为一个警报。

本发明的一可选的实施例中,步骤12中,例如,以每5分钟为一个窗口,将告警消息按照发生时间切分为多个序列,每个序列内是按照先后顺序排列的警报标签。

具体的序列如图2所示,本发明的实施例中,序列主要指被排成一列的对象,比如[a,d,a,b,c]就是一个由a,d,a,b,c三个对象组成的序列。

子序列:序列的一部分所组成新序列即是原序列的子序列,比如[a,b,c]就是[a,d,a,b,c]的子序列。

项:序列中的一个对象,比如[a,b,c]中a就是一个项。

前缀:对于一个序列[a,b,c],其中项a就是项b的前缀,[a,b]就是c的前缀序列。

后缀,对于一个序列[a,b,c],其中项b就是项a的后缀,[b,c]就是a的后缀序列。

本发明的一可选的实施例中,步骤13可以包括:

从一树结构的根节点出发,添加至少一个叶子节点,得到所述规则树;所述叶子节点存储所述多个序列中的频繁项以及频繁项在所述多个序列中出现的次数;所述规则树的一条路径指从根节点到一个叶子节点走过的所有节点所组成的序列。

该实施例采用基于改进prefixspan(前缀投影的模式挖掘)算法,从数据中挖掘出频繁序列规则。这些规则将被用于创建事件。事件将被用于通知负责的运维人员,对应的运维人员查看事件中的警报序列规则,结合警报内告警消息的描述以及运维经验,可以快速排除故障,具体构造规则树的解释如下:

如图3所示,基于图2所示的序列,在prefixspan算法基础上引入了树结构,用于存储prefixspan挖掘过程中产生的频繁项及其出现次数。

规则树的根节点为root节点,不具有任何特殊含义,除根节点外的每个节点为一个挖掘过程中产生的频繁项。一条路径指从根节点到一个叶子节点的过程中所走过的所有节点所组成的序列。算法的输入仍为序列集。输出为从规则树中遍历得出的序列规则。

本发明的一可选的实施例中,步骤14可以包括:

步骤141,按照预设的规则树的路径总数阈值以及规则树的单个路径的最大长度阈值,确定频繁序列规则。

首先,对输入的告警消息进行切分,分为多个序列。同时为规则树创建根节点。该步骤141具体可以包括:

步骤1,遍历规则树的路径总数;

步骤2,如果路径总数超出路径总数阈值max_num,则从规则树中挖掘所有序列规则,并输出序列规则数据集;

步骤3,找出序列规则数据集中的频繁项,复制数据集,去除复制后得到的数据集中的不频繁项,并作为新的数据集;

步骤4,选取一个尚未处理的频繁项,创建一个叶子节点,叶子节点内存储该频繁项与出现次数;标记当前频繁项为已处理过的频繁项,转移到其对应的叶子节点,判断从根节点到当前叶子节点走过的路径长度是否超出单个路径的最大长度阈值max_len,如果超过,则重复该步骤4;

步骤5,从序列规则数据集中获取当前频繁项的后缀集,如果后缀集存在,则将后缀集作为新的数据集,返回步骤2;

步骤6,如果后缀集不存在,检测是否存在尚未处理的不频繁项,若存在,返回步骤4;

步骤7,如果所有的频繁项都已被处理完成,则对构建好的规则树进行遍历,生成频繁序列规则,并返回所有频繁序列规则。

其中,参数max_num的选择可以参考运维人员的处理能力,取处理能力的极限值作为该参数的值。

参数max_len的选择可以参考系统调用链的长度,选取最长的调用关系的长度作为该参数的值。

本发明的该实施例,通过可调整的参数max_num,用于限制树的路径总数,当路径总数超过该数值时,将停止prefixspan算法,返回算法结果。

本发明的该实施例,通过可调整的参数max_len,用于限制树单个路径的最大长度,当任意路径的长度超过该数值时,将切换到一个新的未处理过的叶子节点(即一个新的频繁项),当不存在未处理的频繁项时,返回算法结果。

本发明的该实施例中,从规则树产生序列规则的方法如下,比如对于如图3所示的规则树,在遍历树获得路径的过程中,将路径按照出现次数,即count进行切分,比如对于路径[d,c,b],它的出现次数由末尾的b决定,在数据集中共出现了2次。但是由于序列中c的出现次数为3,b的出现次数为2,因此[d,c,b]中可以产生新的序列规则[d,c],出现次数为3次。而由于d的出现次数与c相同,因此不会产生新的规则序列。最终通过这种方式遍历规则树,可以找出所有出现次数大于要求次数的频繁序列规则。

本发明的一可选的实施例中,告警消息的处理方法,还可以包括:

步骤16,根据所述频繁序列规则,获得历史规则库;

步骤17,当一新的告警消息的序列个数小于一预设值时,将所述新的告警消息与所述历史规则库中存储的频繁告警序列规则进行匹配,如果匹配成功,将匹配到的目标频繁告警序列规则输出。

该实施例中,采用基于历史规则库的序列规则挖掘时,历史规则库中存储的规则将被逐一取出,并与新的告警消息做比较,比如[a,b,c]这一规则,存在于新的数据[a,d,b,e,f,c]中,则该条规则将作为结果之一返回。

具体的流程如下:

1)、从历史规则库中取出一条序列规则,标记为已处理;

2)、选取序列规则中的一个项,检查该项是否存在于新的数据中,假如不存在,则返回步骤1);

3)在数据中找到该项的位置,获取该项的后缀数据;

4)判断该项是否为序列规则的最后一项。如果是,则该序列规则也出现在了新的数据中,作为结果之一存储。如果不是,判断该项的后缀数据是否为空,如果为空,返回步骤1),如果不为空,返回步骤2);

5)判断历史库中是否还有未处理的序列规则,如果有返回步骤1)。如果没有,返回所有的序列规则。

下面结合具体实施例说明上述方法的实现流程:

(1)输入告警消息数据;

(2)切分数据,获取多个序列的数据集;

(3)创建规则树的根节点root;

(4)遍历规则树的现有路径,统计路径总数;

(5)已有路径总数超出max_num,如果不是,找出数据集中的频繁项,如果是,返回所有序列规则;

(6)复制父节点数据集,去除其中的不频繁项;

(7)选取一个未处理的频繁项,标记为已处理;

(8)用频繁项创建一个叶子节点,并转移到该节点;

(9)从根节点到当前叶子节点,经过的节点总数超出max_len,如果不是,判断频繁项存在后缀数据集,如果是,返回步骤(7);

(10)判断频繁项存在后缀数据集,如果是,后缀数据集作为新的数据集,并返回步骤(4),如果不是,判断存在尚未处理的频繁项;

(11)判断存在尚未处理的频繁项,如果是,返回步骤(7),如果不是,遍历所有路径,将路径按照出现次数进行切分,生成序列规则;

(12)返回所有序列规则;

(13)输出结果。

下面说明上述实施例的具体实现过程:

实例一:告警管理方法的示例,其中关联阶段采用改进prefixspan算法。

如图5所示,为了更加明确处理过程与产生结果,从海量的告警消息中抽取五条作为示例,这五条告警消息分别属于两个不同的节点,host(运维节点主机)id分别为1041和1043。

在告警合并阶段,五条告警消息[a,b,c,d,e]经过告警合并,生成警报a和警报b。告警消息被赋予对应警报的id;

再经过告警关联前,告警消息需要先根据事件切分为序列,以5分钟为一个事件粒度,这五条告警消息可以被切分为三个序列。[a,b],[c,d],[e]对应警报序列为[a,b],[a,b],[b]。使用改进后的prefixspan算法,假设出现次数大于等于2的序列为频繁序列,则[a,b]为一个频繁序列,对该序列生成事件1。最终五条告警消息被压缩为1个事件,只需要通知一次运维人员,运维人员打开事件后可以很清晰的了解故障现象,在此基础上排查根因。

实施例二:告警管理方法的示例,其中关联阶段采用历史规则库算法。

如图6所示,假设存在以下6条告警消息,他们虽然文本相似,但分别来自四个不同的节点,hostid有四种,经过告警合并,生成了四个警报,选择五分钟为一个时间窗口,经过切分后的告警序列为[a,b]和[c,d,a,b]。

在这种情况下,基于改进的prefixspan算法只能挖掘出[a,b]告警序列,在这种情况下,假设真正的在该系统中频繁出现的序列为[a,b,c,d,a],但由于该序列只出现了一次,且恰好被事件窗口切隔开,prefixspan算法没能有效找出该序列。但出于实际应用和运维经验的角度,由于历史上[a,b,c,d,a]序列频繁出现,可能已经有完善的排障方法,因此找出这一序列对排障的帮助更大。

如图7所示,而有了历史规则库的帮助,不需要基于时间划分序列,因此只有一个序列即[a,b,c,d,a,b],且由于规则库中已经含有了序列[a,b,c,d,a],通过字符串匹配,可以得知这一规则也出现在了当前的告警消息数据组成的序列,因此得到规则[a,b,c,d,a],组成一个事件。

综上所述,对于这种小批量数据,应采用历史规则库方法就代替prefixspan算法,对于这批告警消息数据,再不进行切分的情况下的序列为[a,b,c,d,a,b],由于历史规则库中存在有[a,b,c,d,a]序列,满足匹配的要求,因此该序列作为新数据中也存在的规则被挖掘出,有效的帮助了运维人员。

实施例三:改进prefixspan算法的示例

如图8所示,引入树结构的算法在切分数据的同时。为规则树创建根节点,对于切分后的序列集,统计其中的频繁项,并将不频繁项从序列数据中去除。

选取频繁项中的a项为例,其他频繁项与a的过程相同,为a创建一个新的叶子节点,标记a为已处理过。如图9所示。转移到新创建的a节点,发现频繁项只有d,创建子节点d。发现d不存在后缀项,则查看是否有其他尚未处理的频繁项,存在则转移到其上。最终,规则树的示例图如图8所示。可以看出,该序列集共有频繁序列[a,d],[a],[b],[c],[d]。

实施例四:极端情况下的改进prefixspan算法

实际使用的过程中,很容易出现如图9的情况,一批告警消息切分后生成的两条告警序列中含有大量的重复项。如果采用原始的prefixspan算法,这将导致该序列的任意子序列都是频繁序列。比如[a],[a,c],[a,c,b],[a,c,b,a]........这些子序列的数目非常庞大可能远远超过了运维人员能够处理的极限,导致一种序列风暴。极端情况下,会导致算法在空间占有过高的情况下停止运行。

假设使用了改进后的prefixspan算法,则可以设置max_num和max_len都为2,此处仅选取了一个较小的数字作为范例,实际应用时应根据运维人员处理能力作出调整。

对于如图10所示的序列,将获得如图11的限制条件下的规则树。最终虽然只产生了2条规则,但可以有效防止算法的崩溃,配合适当的限制参数,能够在不影响正常功能的情况下,防止程序在极端情况下崩溃。

本发明的上述实施例在prefixspan算法的基础上引入了树结构,解决了算法在极端情况下内存占用过高,程序容易崩溃的问题。并在此基础上,提出了基于改进后的prefixspan算法和基于历史规则库的告警压缩方法,解决了小批量告警数据无法有效挖掘出规则的问题,并为运维人员提供了更加便利高效的压缩手段,解决了设定规则时间成本高的问题,为进一步自动化和智能化的运维故障排查打下基础。

如图12所示,本发明的实施例还提供一种告警消息的处理装置120,包括:

获取模块121,用于获取告警消息的发生时间以及所述告警消息所属的警报标签;

划分模块122,用于按照所述告警消息的发生时间将所述告警消息划分为多个序列,每一个序列中包括按照时间顺序排列的警报标签;

构造模块123,用于根据所述多个序列,构造规则树,所述规则树存储频繁项及频繁项在各序列中出现的次数,所述频繁项是序列中的一个对象;

第一确定模块124,用于根据所述规则树,确定频繁序列规则;

第二确定模块125,用于根据所述频繁序列规则确定事件。

可选的,获取所述告警消息所属的警报标签,包括:

获取所述告警消息的描述信息;

根据所述告警消息的描述信息,获得所述告警消息所属的警报标签。

可选的,所述警报标签通过以下过程标记:

将运维系统中同一运维节点下的告警消息的描述信息的相似度大于第一预设值的告警消息标记相同的警报标签。

可选的,根据所述多个序列,构造规则树,包括:

从一树结构的根节点出发,添加至少一个叶子节点,得到所述规则树;所述叶子节点存储所述多个序列中的频繁项以及频繁项在所述多个序列中出现的次数;所述规则树的一条路径指从根节点到一个叶子节点走过的所有节点所组成的序列。

可选的,根据所述规则树,确定频繁序列规则,包括:

按照预设的规则树的路径总数阈值以及规则树的单个路径的最大长度阈值,确定频繁序列规则。

可选的,按照预设的规则树的路径总数阈值以及规则树的单个路径的最大长度阈值,确定频繁序列规则,包括:

步骤1,遍历规则树的路径总数;

步骤2,如果路径总数超出路径总数阈值,则从规则树中挖掘所有序列规则,并输出;

步骤3,找出序列规则数据集中的频繁项,复制数据集,去除复制后得到的数据集中的不频繁项,并作为新的数据集;

步骤4,选取一个尚未处理的频繁项,创建一个叶子节点,叶子节点内存储该频繁项与出现次数;标记当前频繁项为已处理过的频繁项,转移到其对应的叶子节点,判断从根节点到当前叶子节点走过的路径长度是否超出单个路径的最大长度阈值,如果超过,则重复该步骤4;

步骤5,从序列规则数据集中获取当前频繁项的后缀集,如果后缀集存在,则将后缀集作为新的数据集,返回步骤2;

步骤6,如果后缀集不存在,检测是否存在尚未处理的不频繁项,若存在,返回步骤4;

步骤7,如果所有的频繁项都已被处理完成,则对构建好的规则树进行遍历,生成频繁序列规则,并返回所有频繁序列规则。

可选的,告警消息的处理装置120,还包括:

匹配模块,用于根据所述频繁序列规则,获得历史规则库;当一新的告警消息的序列个数小于一预设值时,将所述新的告警消息与所述历史规则库中存储的频繁告警序列规则进行匹配,如果匹配成功,将匹配到的目标频繁告警序列规则输出。

需要说明的是,该装置是与上述方法对应的装置,上述方法实施例中的所有实现方式均适用于该装置的实施例中,也能达到相同的技术效果。

本发明的实施例还提供一种电子设备,包括:处理器、存储有计算机程序的存储器,所述计算机程序被处理器运行时,执行如上所述的方法。上述方法实施例中的所有实现方式均适用于该设备的实施例中,也能达到相同的技术效果。

本发明的实施例还提供一种计算机可读存储介质,存储指令,当所述指令在计算机上运行时,使得计算机执行如上所述的数据处理方法。上述方法实施例中的所有实现方式均适用于该设备的实施例中,也能达到相同的技术效果。

本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

在本发明所提供的实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。

所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、rom、ram、磁碟或者光盘等各种可以存储程序代码的介质。

此外,需要指出的是,在本发明的装置和方法中,显然,各部件或各步骤是可以分解和/或重新组合的。这些分解和/或重新组合应视为本发明的等效方案。并且,执行上述系列处理的步骤可以自然地按照说明的顺序按时间顺序执行,但是并不需要一定按照时间顺序执行,某些步骤可以并行或彼此独立地执行。对本领域的普通技术人员而言,能够理解本发明的方法和装置的全部或者任何步骤或者部件,可以在任何计算装置(包括处理器、存储介质等)或者计算装置的网络中,以硬件、固件、软件或者它们的组合加以实现,这是本领域普通技术人员在阅读了本发明的说明的情况下运用他们的基本编程技能就能实现的。

因此,本发明的目的还可以通过在任何计算装置上运行一个程序或者一组程序来实现。所述计算装置可以是公知的通用装置。因此,本发明的目的也可以仅仅通过提供包含实现所述方法或者装置的程序代码的程序产品来实现。也就是说,这样的程序产品也构成本发明,并且存储有这样的程序产品的存储介质也构成本发明。显然,所述存储介质可以是任何公知的存储介质或者将来所开发出来的任何存储介质。还需要指出的是,在本发明的装置和方法中,显然,各部件或各步骤是可以分解和/或重新组合的。这些分解和/或重新组合应视为本发明的等效方案。并且,执行上述系列处理的步骤可以自然地按照说明的顺序按时间顺序执行,但是并不需要一定按照时间顺序执行。某些步骤可以并行或彼此独立地执行。

以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明所述原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1