一种基于访问链路的告警检测方法和装置与流程

文档序号:18923536发布日期:2019-10-19 03:47阅读:205来源:国知局
一种基于访问链路的告警检测方法和装置与流程

本发明涉及计算机技术领域,尤其涉及一种基于访问链路的告警检测方法和装置。



背景技术:

在基于模块的访问关系形成访问链路的过程中,相同业务功能的机器的访问关系通过抓包获取后,汇集成各个模块的访问关系,再使用网络图来描述出模块与模块之间的访问关系,该网络图是无头无尾的一个网状互连结构。现有的网络图中出现告警时需要从网络图中挖掘出告警模块以及挖掘出使告警模块真正产生告警的原因,目前采用的方法是对网络图中的每个模块进行分析,但是网络图中模块众多,连接关系复杂,致使挖掘告警模块以及告警原因都产生极大的困难。因此,需要对网络图中各个模块之间的访问关系抽象成一条条的访问链路,各个访问链路之间通过公共的模块产生连接交叉。

现有技术中在针对访问链路来查找告警模块和挖掘告警原因时,仍需要针对每个访问链路来逐条查找,而一个告警模块可能相关联的访问链路就有上百条之多,每条访问链路中都是多个模块需要分析,因此在挖掘告警模块以及挖掘告警原因时仍存在很大的复杂性。例如,访问链路共有100条,分别为:A0-B0-C0-D0、A0-B1-C1-D1、…、A0-B99-C99-C99,其中A0出现告警,其它链路中都有模块出现告警,这种情况下至少有两种实现场景:场景一,各个链路中的模块告警数都相同,比如100条链路,在一定时间范围内每个链路中都两个模块告警;场景二,各个链路中的模块告警数不同,比如100条链路,在一定时间范围内,有些链路中有两个模块出现告警,有些链路是三个模块出现告警,有些链路中全部模块出现告警。按照现有技术,在判断告警模块以及判断告警的真正原因时仍存在需要逐个链路来查找,而在访问链路中模块告警数相同或不同,告警模块相同或不同这些复杂的原因都会导致现有技术中存在判断告警的复杂性问题。



技术实现要素:

本发明实施例提供了一种基于访问链路的告警检测方法和装置,用于简化告警的检测流程,提升告警定位效率。

为解决上述技术问题,本发明实施例提供以下技术方案:

第一方面,本发明实施例提供一种基于访问链路的告警检测方法,包括:

获取已产生告警的第一模块所属的第一访问链路集,所述第一访问链路集包括:所述第一模块所在的多个访问链路;

根据所述第一模块的主被调关系从所述第一访问链路集中过滤掉对所述第一模块无效的访问链路,得到第二访问链路集,所述第二访问链路集包括:对所述第一模块有效的多个访问链路;

以所述第一模块产生告警的时间点作为基准时间窗口,从所述第二访问链路集中获取在所述基准时间窗口之前以及之后的预置时间段内已产生告警的第二模块;

根据产生告警的根源条件分别判断所述第一模块、所述第二模块中产生的告警原因是否满足所述根源条件,从所述第一模块和所述第二模块中检测出告警原因满足所述根源条件的模块。

第二方面,本发明实施例还提供一种基于访问链路的告警检测装置,包括:

第一获取单元,用于获取已产生告警的第一模块所属的第一访问链路集,所述第一访问链路集包括:所述第一模块所在的多个访问链路;

第二获取单元,用于根据所述第一模块的主被调关系从所述第一访问链路集中过滤掉对所述第一模块无效的访问链路,得到第二访问链路集,所述第二访问链路集包括:对所述第一模块有效的多个访问链路;

告警模块确定单元,用于以所述第一模块产生告警的时间点作为基准时间窗口,从所述第二访问链路集中获取在所述基准时间窗口之前以及之后的预置时间段内已产生告警的第二模块;

告警检测单元,用于根据产生告警的根源条件分别判断所述第一模块、所述第二模块中产生的告警原因是否满足所述根源条件,从所述第一模块和所述第二模块中检测出告警原因满足所述根源条件的模块。

从以上技术方案可以看出,本发明实施例具有以下优点:

在本发明实施例中,在确定第一模块已产生告警后,将该第一模块所属的第一访问链路集中对第一模块无效的访问链路过滤掉,得到第二访问链路集,第二访问链路集中相比于第一访问链路集访问链路的个数减少,并且进一步的获取到在基准时间窗口之前以及之后的预置时间段内第二访问链路集中已产生告警的第二模块,最后根据产生告警的根源条件对已产生告警的第一模块、已产生告警的第二模块进行告警原因的检测,最后可以从第一模块和第二模块中检测出告警原因满足根源条件的模块,本发明中需要进行告警检测的模块个数按照第一模块的主被调关系、基准时间窗口之前以及之后的预置时间段进行了筛选,只需要对已产生告警的第一模块和第二模块进行告警原因的检测即可,可以简化告警的检测流程,提升告警定位效率。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的技术人员来讲,还可以根据这些附图获得其他的附图。

图1为本发明实施例提供的一种基于访问链路的告警检测方法的流程方框示意图;

图2-a为本发明实施例提供的第一访问链路集的实现方式示意图;

图2-b为本发明实施例提供的第二访问链路集的实现方式示意图;

图2-c为本发明实施例提供的从第二访问链路集中选择出第二模块的实现方式示意图;

图2-d为本发明实施例提供的从第二模块中检测出告警原因满足根源条件的模块的实现方式示意图;

图3-a为本发明实施例提供的一种基于访问链路的告警检测装置的组成结构示意图;

图3-b为本发明实施例提供的另一种基于访问链路的告警检测装置的组成结构示意图;

图4为本发明实施例提供的基于访问链路的告警检测方法应用于服务器的组成结构示意图。

具体实施方式

本发明实施例提供了一种基于访问链路的告警检测方法和装置,用于简化告警的检测流程,提升告警定位效率。

为使得本发明的发明目的、特征、优点能够更加的明显和易懂,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,下面所描述的实施例仅仅是本发明一部分实施例,而非全部实施例。基于本发明中的实施例,本领域的技术人员所获得的所有其他实施例,都属于本发明保护的范围。

本发明的说明书和权利要求书及上述附图中的术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,以便包含一系列单元的过程、方法、系统、产品或设备不必限于那些单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它单元。

以下分别进行详细说明。

本发明基于访问链路的告警检测方法的一个实施例,具体可以应用于集群中访问链路的模块告警的检查中,请参阅图1所示,本发明一个实施例提供的基于访问链路的告警检测方法,可以包括如下步骤:

101、获取已产生告警的第一模块所属的第一访问链路集,第一访问链路集包括:第一模块所在的多个访问链路。

在本发明实施例中,当有模块产生告警时,获取到产生告警的模块所属的第一访问链路集,本发明实施例中模块也可以称之为节点,接下来以第一模块产生告警为例进行说明,其中,第一模块可以为已产生告警的一个模块或多个模块,模块的告警是由模块自身设置的一些运营指标来确定,具体可以指模块的某些运营指标不满足规定的标准,例如磁盘使用达到100%时磁盘调度模块就会产生告警,或者进程的内核(英文:core)掉时进程模块就会产生告警等。需要说明的是,在本发明实施例中,模块产生告警是由一个系统里配置告警阈值来确定的,例如10分钟内8次进行分间隔扫描都发现进程不存在,因此就可以产生进程告警,这是由监控系统和监控配置系统对访问链路监控的结果。

在本发明实施例中,已产生告警的第一模块属于第一访问链路集,第一访问链路集包括第一模块所在的多个访问链路,具体的,第一模块所在的多个访问链路可以通过机器上端口抓包的关系来生成。该第一访问链路集中包括了第一模块所在的多个访问链路,第一模块所在的访问链路中可能存在对已产生告警的第一模块无效的访问链路,也存在对第一模块有效的访问链路,因此在步骤101获取到第一访问链路集之后,还需要触发执行步骤102。

102、根据第一模块的主被调关系从第一访问链路集中过滤掉对第一模块无效的访问链路,得到第二访问链路集,第二访问链路集包括:对第一模块有效的多个访问链路。

在本发明实施例中,在第一模块产生告警时获取到了第一访问链路集,接下来对第一访问链路集中的所有访问链路进行过滤,具体的,根据第一模块的主被调关系从第一访问链路集中过滤掉对第一模块无效的访问链路,得到第二访问链路集,则在第二访问链路集中剩余了对第一模块有效的多个访问链路,对第一模块无效的访问链路通过第一模块的主被调关系被过滤掉。其中,第一模块的主被调关系包括:在第一访问链路集中第一模块调用其它模块以及第一模块被其它模块调用的关系,即第一模块的主被调关系包括:第一模块的主调关系和第一模块的被调关系,举例说明,主调就是第一模块去调用第一访问链路集中的其它模块,被调就是第一模块被第一访问链路集中的其它模块调用,比如一个访问链路中的访问关系为:模块B->模块A->模块C,则模块A的主调就是模块B,模块A本身就是被调了,相对模块C,模块C的主调就是模块A,模块C本身就成被调了。本发明实施例中通过第一模块的主被调关系对第一访问链路集中对第一模块无效的访问链路进行过滤,得到了第二访问链路集,第二访问链路集比第一访问链路集中的访问链路个数少,使得接下来进行告警检测时需要判断的模块个数极大减少,降低了告警检测的复杂度。

在本发明的一些实施例中,步骤102根据第一模块的主被调关系从第一访问链路集中过滤掉对第一模块无效的访问链路,得到第二访问链路集,具体可以包括如下步骤:

1021、根据第一模块的主被调关系判断第一访问链路集的各个模块是否与第一模块存在主调关系或者被调关系,则与第一模块存在主调关系或者被调关系的模块所在的访问链路为对第一模块有效的访问链路,与第一模块不存在主调关系、也不存在被调关系的模块所在的访问链路为对第一模块无效的访问链路,将对第一模块有效的访问链路组合得到第二访问链路集。

其中,步骤1021中在确定第一模块产生告警时,对第一访问链路集中的所有模块分别判断是否与第一模块存在主被调关系,第一访问链路集中无论第一模块存在主调关系或者存在被调关系的模块所在的访问链路都可以作为对第一模块有效的访问链路。

103、以第一模块产生告警的时间点作为基准时间窗口,从第二访问链路集中获取在基准时间窗口之前以及之后的预置时间段内已产生告警的第二模块。

在本发明实施例中,对第一访问链路集进行筛选,得到第二访问链路集之后,将第一模块产生告警的时间点作为基准时间窗口,从基准时间窗口往前确定出第一时间段,以及从基准时间窗口往后确定出第二时间段,则第一时间段和第二时间段可以为预置的时间段,从第二访问链路集中获取在基准时间窗口之前以及之后的预置时间段内已产生告警的第二模块,第二模块可以为在预置时间段内已产生告警的一个模块或多个模块,也就是说,根据基准时间窗口之前以及之后的预置时间段可以从第二访问链路集中选择出一个或多个的第二模块,从第二访问链路集中获取到的第二模块为已产生告警的模块,第二模块与第一模块产生告警的时间不同,但是第二模块是根据第一模块产生告警的时间点以及预置的时间段来选择的。举例说明,在上午10点整模块A出现了告警,则以时间点10作为基准时间点,可以自定义在9:45到10:15为预置的时间段,则在9:45到10:15之间第二访问链路集中出现告警的所有模块即为获取到的第二模块。

需要说明的是,在本发明实施例中,第一模块和第二模块都是产生告警的模块,但是这两类模块产生告警的时间点不同,另外这两类模块产生告警的原因可以相同或者不同。

在本发明的一些实施例中,步骤103以第一模块产生告警的时间点作为基准时间窗口,从第二访问链路集中获取在基准时间窗口之前或之后的预置时间段内已产生告警的第二模块,具体可以包括如下步骤:

1031、以第一模块产生告警的时间点作为基准时间窗口,同时判断第二访问链路集中的所有访问链路在基准时间窗口之前以及之后的预置时间段内是否有模块产生告警,从第二访问链路集的所有访问链路中获取到已产生告警的第二模块。

其中,步骤1031中对第二访问链路集中的所有访问链路同时判断在基准时间窗口之前以及之后的预置时间段内是否有模块产生告警,将在上述时间段内产生告警的模块作为第二模块。其中,第二访问链路集中所有访问链路同时做判断可以通过并行的处理方式来实现,按照访问关系对每个访问链路中的各个模块依次判断在上述时间段内是否有告警产生。

104、根据产生告警的根源条件分别判断第一模块、第二模块中产生的告警原因是否满足根源条件,从第一模块和第二模块中检测出告警原因满足根源条件的模块。

在本发明实施例中,从第二访问链路集中获取到已产生告警的第二模块之后,本发明实施例中已经获取到有第一模块和第二模块都产生了告警,接下来根据产生告警的根源条件分别判断第一模块、第二模块中产生的告警原因是否满足根源条件,从第一模块和第二模块中检测出告警原因满足根源条件的模块。其中,模块产生告警的根源条件可以由对访问链路进行监控的监控系统或者监控管理系统来设定,通过前述步骤获取到已产生告警的第一模块和第二模块之后,对两类模块产生告警的告警原因进行判断,将告警原因满足根源条件的告警模块检测出。在本发明的一些实施例中,产生告警的根源条件可以包括如下四种类型:模块发布变更、模块机器丢包、模块下程序崩溃时产生core文件、模块下机器死机。其中,模块发布变更是指在访问链路中有新的模块(或节点)发布,或者在访问链路中有模块的配置发生变更,模块机器丢包是指在访问链路中有模块发生丢包,模块下程序崩溃时产生core文件指当程序出现内存越界的时候,操作系统会中止当前进程,并将当前内存状态倒出到core文件中,模块下机器死机是指在访问链路中出现死机或者卡死的情况。

在本发明的一些实施例中,步骤104根据产生告警的根源条件分别判断第一模块、第二模块中产生的告警原因是否满足根源条件,从第一模块和第二模块中检测出告警原因满足根源条件的模块之后,本发明实施例提供的基于访问链路的告警检测方法还可以包括如下步骤:

将告警原因满足根源条件的模块发送给用户。

在本发明实施例中,检测出告警原因满足根源条件的模块之后,可以将告警原因满足根源条件的模块发送给用户,由用户来对产生告警的模块进行调整以解决告警的问题,实现对链路告警的快速检测和调整。

通过以上实施例对本发明实施例的描述可知,在确定第一模块已产生告警后,将该第一模块所属的第一访问链路集中对第一模块无效的访问链路过滤掉,得到第二访问链路集,第二访问链路集中相比于第一访问链路集访问链路的个数减少,并且进一步的获取到在基准时间窗口之前以及之后的预置时间段内第二访问链路集中已产生告警的第二模块,最后根据产生告警的根源条件对已产生告警的第一模块、已产生告警的第二模块进行告警原因的检测,最后可以从第一模块和第二模块中检测出告警原因满足根源条件的模块,本发明中需要进行告警检测的模块个数按照第一模块的主被调关系、基准时间窗口之前以及之后的预置时间段进行了筛选,只需要对已产生告警的第一模块和第二模块进行告警原因的检测即可,可以简化告警的检测流程,提升告警定位效率。

为便于更好的理解和实施本发明实施例的上述方案,下面举例相应的应用场景来进行具体说明。本发明适用于集群中的访问链路,当访问链路上模块告警时,可以实现快速计算产生告警的根源条件对应的模块。

第一步、模块A有告警,首先提取第一访问链路集,如图2-a所示,第一访问链路集共有五条链路,分别为链路1、链路2、链路3、链路4、链路5,链路1包括的模块A、模块B0、模块C0、模块D0、模块E0,链路2包括的模块A、模块B1、模块C1、模块D1、模块E1,链路3包括的模块A、模块B2、模块C2、模块D2、模块E2,链路4包括的模块A、模块B3、模块C3、模块D3、模块E3,链路5包括的模块A、模块B4、模块C4、模块D4、模块E4。

第二步、根据模块A的主调、被调关系对第一访问链路集进行过滤,得到第二访问链路集,如图2-b所示,比如模块A的下一跳被调有B0、B2、B4三个模块,通过对链路中A-B0、A-B2、A-B4三个对链路进行过滤,过滤掉链路集中无效的两条链路:链路2、链路4,留下链路1、链路3、链路5三条链路。

第三步、以模块A产生告警的时间点为基准时间窗口,往前推8个时间窗,往后推4个时间窗(每个时间窗5分钟)共12个时间窗内所有的已产生告警的都叠加到第二访问链路集上,得到第二模块,如图2-c所示,比如在12个时间窗内共有A、B2、D2、B4、C4、D4、E4这7个模块有告警,6个模块B2、D2、B4、C4、D4、E4为第二模块,图2-c中选择出已告警的第一模块和第二模块用实线标表示,其它模块用虚线表示。

第四步、分析已告警的第一模块和第二模块的告警原因,并且按照预先规定的根源条件(模块发布变更、模块机器丢包、模块下程序崩溃时产生core文件、模块下机器死机),其中模块下机器死机还可以包括专线拥塞,这四种情况作为产生告警的根源条件,分别判断A、B2、D2、B4、C4、D4、E4这7个模块产生告警的告警原因是否满足根源条件,从A、B2、D2、B4、C4、D4、E4这7个模块中选择出告警原因满足根源条件的模块,如图2-d所示,经判断后可知,模块B2的告警原因为模块下程序core,即满足模块下程序崩溃时产生core文件,模块C4的告警原因为有配置发布,即满足模块发布变更,因此链路3的模块B2和链路5中的模块C4的告警原因满足根源条件,模块B2和模块C4即为检测出的告警原因满足根源条件的模块。

第五步、把分析到的告警原因满足根源条件的模块B2和模块C4直接推送给用户。因此模块A告警的根源是因为模块B2有程序core和模块C4有人为配置发布。例如,本发明实施例用于base.qzone.qq.comSET_A02这个模块的自动化测试告警中,按照前述方法进行告警检测后,向用户反馈因为base.qzone.qq.comSET_A02模块由于变更导致告警。

通过前述举例说明可知,本发明可以在成千条的访问链路中快速分析定位到产生告警的根源,极大提升告警定位效率。

需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。

为便于更好的实施本发明实施例的上述方案,下面还提供用于实施上述方案的相关装置。

请参阅图3-a所示,本发明实施例提供的一种基于访问链路的告警检测装置300,可以包括:第一获取单元301、第二获取单元302、告警模块确定单元303、告警检测单元304,其中,

第一获取单元301,用于获取已产生告警的第一模块所属的第一访问链路集,所述第一访问链路集包括:所述第一模块所在的多个访问链路;

第二获取单元302,用于根据所述第一模块的主被调关系从所述第一访问链路集中过滤掉对所述第一模块无效的访问链路,得到第二访问链路集,所述第二访问链路集包括:对所述第一模块有效的多个访问链路;

告警模块确定单元303,用于以所述第一模块产生告警的时间点作为基准时间窗口,从所述第二访问链路集中获取在所述基准时间窗口之前以及之后的预置时间段内已产生告警的第二模块;

告警检测单元304,用于根据产生告警的根源条件分别判断所述第一模块、所述第二模块中产生的告警原因是否满足所述根源条件,从所述第一模块和所述第二模块中检测出告警原因满足所述根源条件的模块。

在本发明的一些实施例中,所述告警模块确定单元303,具体用于以所述第一模块产生告警的时间点作为基准时间窗口,同时判断所述第二访问链路集中的所有访问链路在所述基准时间窗口之前以及之后的预置时间段内是否有模块产生告警,从所述第二访问链路集的所有访问链路中获取到已产生告警的第二模块。

在本发明的一些实施例中,所述第二获取单元302,用于根据所述第一模块的主被调关系判断所述第一访问链路集的各个模块是否与所述第一模块存在主调关系或者被调关系,则与所述第一模块存在主调关系或者被调关系的模块所在的访问链路为对所述第一模块有效的访问链路,与所述第一模块不存在主调关系、也不存在被调关系的模块所在的访问链路为对所述第一模块无效的访问链路,将对所述第一模块有效的访问链路组合得到第二访问链路集。

在本发明的一些实施例中,请参阅如图3-b所示,所述基于访问链路的告警检测装置300,还包括:告警推送单元305,用于所述告警检测单元304根据产生告警的根源条件分别判断所述第一模块、所述第二模块中产生的告警原因是否满足所述根源条件,从所述第一模块和所述第二模块中检测出告警原因满足所述根源条件的模块之后,将告警原因满足所述根源条件的模块发送给用户。

在本发明的一些实施例中,所述产生告警的根源条件包括:模块发布变更、模块机器丢包、模块下程序崩溃时产生内核core文件、模块下机器死机。

通过以上实施例对本发明实施例的描述可知,在确定第一模块已产生告警后,将该第一模块所属的第一访问链路集中对第一模块无效的访问链路过滤掉,得到第二访问链路集,第二访问链路集中相比于第一访问链路集访问链路的个数减少,并且进一步的获取到在基准时间窗口之前以及之后的预置时间段内第二访问链路集中已产生告警的第二模块,最后根据产生告警的根源条件对已产生告警的第一模块、已产生告警的第二模块进行告警原因的检测,最后可以从第一模块和第二模块中检测出告警原因满足根源条件的模块,本发明中需要进行告警检测的模块个数按照第一模块的主被调关系、基准时间窗口之前以及之后的预置时间段进行了筛选,只需要对已产生告警的第一模块和第二模块进行告警原因的检测即可,可以简化告警的检测流程,提升告警定位效率。

图4是本发明实施例提供的一种服务器结构示意图,该服务器400可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(central processing units,CPU)422(例如,一个或一个以上处理器)和存储器432,一个或一个以上存储应用程序442或数据444的存储介质430(例如一个或一个以上海量存储设备)。其中,存储器432和存储介质430可以是短暂存储或持久存储。存储在存储介质430的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对服务器中的一系列指令操作。更进一步地,中央处理器422可以设置为与存储介质430通信,在服务器400上执行存储介质430中的一系列指令操作。

服务器400还可以包括一个或一个以上电源426,一个或一个以上有线或无线网络接口450,一个或一个以上输入输出接口458,和/或,一个或一个以上操作系统441,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM等等。

上述实施例中如图1所示的基于访问链路的告警检测方法执行的步骤可以基于该图4所示的服务器结构。

通过以上实施例对本发明实施例的描述可知,在确定第一模块已产生告警后,将该第一模块所属的第一访问链路集中对第一模块无效的访问链路过滤掉,得到第二访问链路集,第二访问链路集中相比于第一访问链路集访问链路的个数减少,并且进一步的获取到在基准时间窗口之前以及之后的预置时间段内第二访问链路集中已产生告警的第二模块,最后根据产生告警的根源条件对已产生告警的第一模块、已产生告警的第二模块进行告警原因的检测,最后可以从第一模块和第二模块中检测出告警原因满足根源条件的模块,本发明中需要进行告警检测的模块个数按照第一模块的主被调关系、基准时间窗口之前以及之后的预置时间段进行了筛选,只需要对已产生告警的第一模块和第二模块进行告警原因的检测即可,可以简化告警的检测流程,提升告警定位效率。

另外需说明的是,以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。另外,本发明提供的装置实施例附图中,模块之间的连接关系表示它们之间具有通信连接,具体可以实现为一条或多条通信总线或信号线。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。

通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件的方式来实现,当然也可以通过专用硬件包括专用集成电路、专用CPU、专用存储器、专用元器件等来实现。一般情况下,凡由计算机程序完成的功能都可以很容易地用相应的硬件来实现,而且,用来实现同一功能的具体硬件结构也可以是多种多样的,例如模拟电路、数字电路或专用电路等。但是,对本发明而言更多情况下软件程序实现是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在可读取的存储介质中,如计算机的软盘,U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。

综上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照上述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对上述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

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