服务调用链的分析方法、装置及电子设备与流程

文档序号:31793572发布日期:2022-10-14 16:39阅读:117来源:国知局
服务调用链的分析方法、装置及电子设备与流程

1.本技术涉及新兴信息技术领域,具体而言,涉及一种服务调用链的分析方法、装置及电子设备。


背景技术:

2.目前针对云原生和微服务架构的系统采用pinpoint进行监控,展示应用节点间的调用关系图,通过点击获取一段时间内的调用明细数据,但pinpoint产生大量调用链数据时,数据分布零散,可读性较低,无法快速查看指定服务级的调用统计数据,服务间调用关系展示图等,也无法对指定服务进行精准分类监控。
3.针对上述的问题,目前尚未提出有效的解决方案。


技术实现要素:

4.本技术实施例提供了一种服务调用链的分析方法、装置及电子设备,以至少解决现有技术使用pinpoint产生大量调用链数据时,无法快速查看指定服务级的调用统计数据的技术问题。
5.根据本技术实施例的一个方面,提供了一种服务调用链的分析方法,包括:获取目标服务中的第一数据;确定与第一数据存在调用关系的第二数据,形成调用链路;确定目标服务在调用链路上的统计指标,其中,统计指标包括以下至少之一:调用量、调用失败量、调用失败率和调用时延,调用量为调用链路的数量;在统计指标中的任意一个指标超过对应的预设阈值时,生成告警信息。
6.可选地,确定与第一数据存在调用关系的第二数据,形成调用链路之后,方法还包括:在判断出调用链路的根节点为目标值的情况下,获取数据库中的服务配置信息;判断服务配置信息中的第一字段与第一数据中的第一字段是否一致,其中,第一字段用于表示服务配置信息对应的服务是否为目标服务;在判断结果为是的情况下,判断调用链路是否发生变化。
7.可选地,判断调用链路是否发生变化,包括:依据数据库中存储的原始调用关系,判断调用链路中的调用关系与原始调用关系是否一致;在调用链路中的调用关系与原始调用关系不一致的情况下,依据调用链路中的调用关系更新数据库中的原始调用关系;在数据库中不存在与调用链路相关的调用关系的情况下,将调用链路中的调用关系存储在数据库中。
8.可选地,确定目标服务在调用链路上的统计指标,包括:依据调用链路的数量,确定调用量;依据调用链路中每个环节的第二字段满足预设条件的次数,确定调用失败量,其中,第二字段用于表示调用链路是否存在异常;依据调用量和调用失败量,确定调用失败率。
9.可选地,确定目标服务在调用链路上的统计指标,包括:获取调用链路中根节点数据所需的调用时长;依据调用时长和调用量,确定调用时延。
10.可选地,生成告警信息,包括:从调用链路中获取目标数据进行拼接,生成并展示告警信息,其中,目标数据为调用链路中与告警信息相关的字段。
11.可选地,生成告警信息之后,方法还包括:展示告警信息对应的关联数据,其中,关联数据包括以下至少之一:统计指标、调用链路中的调用关系、异常明细、服务配置信息。
12.根据本技术实施例的另一方面,还提供了一种服务调用链的分析装置,包括:获取模块,用于获取目标服务中的第一数据;第一确定模块,用于确定与第一数据存在调用关系的第二数据,形成调用链路;第二确定模块,用于确定目标服务在调用链路上的统计指标,其中,统计指标包括以下至少之一:调用量、调用失败量、调用失败率和调用时延,调用量为调用链路的数量;处理模块,用于在统计指标中的每个指标超过对应的预设阈值时,生成告警信息。
13.根据本技术实施例的又一方面,还提供了一种电子设备,包括:存储器,用于存储程序指令;处理器,与存储器连接,用于执行实现以下功能的程序指令:获取目标服务中的第一数据;确定与第一数据存在调用关系的第二数据,形成调用链路;确定目标服务在调用链路上的统计指标,其中,统计指标包括以下至少之一:调用量、调用失败量、调用失败率和调用时延,调用量为调用链路的数量;在统计指标中的每个指标超过对应的预设阈值时,生成告警信息。
14.根据本技术实施例的再一方面,还提供了一种非易失性存储介质,该非易失性存储介质包括存储的程序,其中,在程序运行时控制该非易失性存储介质所在设备执行上述服务调用链的分析方法。
15.在本技术实施例中,通过获取目标服务中的第一数据;确定与第一数据存在调用关系的第二数据,形成调用链路;确定目标服务在调用链路上的统计指标,其中,统计指标包括以下至少之一:调用量、调用失败量、调用失败率和调用时延;在统计指标中的任意一个指标超过对应的预设阈值时,生成告警信息,达到了对服务调用链进行分析与告警的目的,从而实现了根据告警信息确定异常的技术效果,进而解决了现有技术使用pinpoint产生大量调用链数据时,无法快速查看指定服务级的调用统计数据的技术问题。
附图说明
16.此处所说明的附图用来提供对本技术的进一步理解,构成本技术的一部分,本技术的示意性实施例及其说明用于解释本技术,并不构成对本技术的不当限定。在附图中:
17.图1是根据本技术实施例的一种用于实现服务调用链的分析方法的计算机终端(或电子设备)的硬件结构框图;
18.图2是根据本技术实施例的一种服务调用链的分析方法的流程图;
19.图3是根据本技术实施例的一种判断调用链路是否发生变化的流程图;
20.图4是根据本技术实施例的一种如何判断调用链路是否发生变化的流程图;
21.图5是根据本技术实施例的一种确定目标服务在调用链路上的统计指标的流程图;
22.图6是根据本技术实施例的一种确定调用时延的流程图;
23.图7是根据本技术实施例的一种服务调用链的分析装置结构图;
24.图8a是根据本技术实施例的一种服务调用链的分析流程图;
25.图8b是根据本技术实施例的一种服务调用关系的示意图。
具体实施方式
26.为了使本技术领域的人员更好地理解本技术方案,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分的实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本技术保护的范围。
27.需要说明的是,本技术的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本技术的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
28.本技术实施例所提供的服务调用链的分析方法实施例可以在移动终端、计算机终端或者类似的运算装置中执行。图1示出了一种用于实现服务调用链的分析方法的计算机终端(或电子设备)的硬件结构框图。如图1所示,计算机终端10(或电子设备10)可以包括一个或多个(图中采用102a、102b,
……
,102n来示出)处理器(处理器可以包括但不限于微处理器mcu或可编程逻辑器件fpga等的处理装置)、用于存储数据的存储器104、以及用于通信功能的传输模块106。除此以外,还可以包括:显示器、输入/输出接口(i/o接口)、通用串行总线(usb)端口(可以作为i/o接口的端口中的一个端口被包括)、网络接口、电源和/或相机。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,计算机终端10还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。
29.应当注意到的是上述一个或多个处理器和/或其他数据处理电路在本文中通常可以被称为“数据处理电路”。该数据处理电路可以全部或部分的体现为软件、硬件、固件或其他任意组合。此外,数据处理电路可为单个独立的处理模块,或全部或部分的结合到计算机终端10(或电子设备)中的其他元件中的任意一个内。如本技术实施例中所涉及到的,该数据处理电路作为一种处理器控制(例如与接口连接的可变电阻终端路径的选择)。
30.存储器104可用于存储应用软件的软件程序以及模块,如本技术实施例中的服务调用链的分析方法对应的程序指令/数据存储装置,处理器通过运行存储在存储器104内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的服务调用链的分析方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至计算机终端10。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
31.传输模块106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括计算机终端10的通信供应商提供的无线网络。在一个实例中,传输装置106包括一个网络适
配器(network interface controller,nic),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置106可以为射频(radio frequency,rf)模块,其用于通过无线方式与互联网进行通讯。
32.显示器可以例如触摸屏式的液晶显示器(lcd),该液晶显示器可使得用户能够与计算机终端10(或电子设备)的用户界面进行交互。
33.此处需要说明的是,在一些可选实施例中,上述图1所示的计算机设备(或电子设备)可以包括硬件元件(包括电路)、软件元件(包括存储在计算机可读介质上的计算机代码)、或硬件元件和软件元件两者的结合。应当指出的是,图1仅为特定具体实例的一个实例,并且旨在示出可存在于上述计算机设备(或电子设备)中的部件的类型。
34.在上述运行环境下,本技术实施例提供了一种服务调用链的分析方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
35.图2是根据本技术实施例的一种服务调用链的分析方法的流程图,如图2所示,该方法包括如下步骤:
36.步骤s202,获取目标服务中的第一数据;
37.步骤s204,确定与第一数据存在调用关系的第二数据,形成调用链路;
38.在上述步骤中,第一数据和第二数据可以为pinpoint数据,又称为span数据,把获取到的pinpoint(span)数据按照事务标识分组,并写入缓存中,间隔固定时间后把服务调用链中数据取出进行分析,根据配置的服务入口地址进行对比,通过父子span标识构建指定服务调用链树形关系数据并入库,该指定服务调用链树形关系数据即调用链路。
39.步骤s206,确定目标服务在调用链路上的统计指标,其中,统计指标包括以下至少之一:调用量、调用失败量、调用失败率和调用时延,调用量为调用链路的数量;
40.在上述步骤中,根据span数据所属的目标服务自动实时按分钟、小时和天的频率规整统计监控指标,具体对服务中的每个调用环节进行监控指标统计,统计指标包括:调用量、调用失败量、调用失败率、调用时延,当到达统计周期后,数据保存入库。
41.步骤s208,在统计指标中的任意一个指标超过对应的预设阈值时,生成告警信息。
42.在上述步骤中,根据统计指标与调用链路中的调用关系,对统计指标进行阈值判断,将超过预设阈值的指标进行告警与展示。
43.在本技术实施例中,通过将span数据进行规整与统计,自动生成服务内部的调用链关系,增强其原始pinpoint调用链的可视性,使其调用关系与业务进行关联,通过确定目标服务的统计指标,自动生成按天、小时、分钟时间维度的调用量、调用失败量、调用失败率、调用时延等指标,对服务的运行情况进行指标量化,通过对统计指标进行阈值判断,同时结合span的基础数据与调用链关系展示,达到了对指定服务的调用链分析与告警的目的,增强服务告警后的问题分析效率以及运维的易用性。
44.在上述服务调用链的分析方法中的步骤s204中,确定与第一数据存在调用关系的第二数据,形成调用链路之后,如图3所示的流程图,具体还包括如下步骤:
45.步骤s302,在判断出调用链路的根节点为目标值的情况下,获取数据库中的服务配置信息;
46.在本技术实施例中,当判断调用链路的根节点parentspanid为-1时,表示判断成功,并获取服务配置信息。
47.步骤s304,判断服务配置信息中的第一字段与第一数据中的第一字段是否一致,其中,第一字段用于表示服务配置信息对应的服务是否为目标服务;
48.步骤s306,在判断结果为是的情况下,判断调用链路是否发生变化。
49.在上述步骤s304至步骤s306中,第一字段可以为rpc字段+endpoint字段,若判断出服务配置信息中的第一字段与第一数据(即span数据)中的第一字段一致的情况下,即表示该第一数据与服务配置信息均表示目标服务。
50.在上述服务调用链的分析方法中的步骤s306中,判断调用链路是否发生变化,如图4所示的流程图,具体包括如下步骤:
51.步骤s402,依据数据库中存储的原始调用关系,判断调用链路中的调用关系与原始调用关系是否一致;
52.步骤s404,在调用链路中的调用关系与原始调用关系不一致的情况下,依据调用链路中的调用关系更新数据库中的原始调用关系;
53.步骤s406,在数据库中不存在与调用链路相关的调用关系的情况下,将调用链路中的调用关系存储在数据库中。
54.在上述服务调用链的分析方法中的步骤s206中,确定目标服务在调用链路上的统计指标,如图5所示的流程图,具体包括如下步骤:
55.步骤s502,依据调用链路的数量,确定调用量;
56.步骤s504,依据调用链路中每个环节的第二字段满足预设条件的次数,确定调用失败量,其中,第二字段用于表示调用链路是否存在异常;在本技术实施例中,第二字段可以为调用链路中每个环节中的exception字段或errorcode字段,当exception字段不为0或者exception字段不为空,则表示此次调用为异常,其中只要有一个环节异常则异常量增加1,也即失败量增加1。
57.步骤s506,依据调用量和调用失败量,确定调用失败率。具体计算公式为:失败率=失败量/调用量。
58.在上述服务调用链的分析方法中的步骤s206中,确定目标服务在调用链路上的统计指标,如图6所示的流程图,具体还包括如下步骤:
59.步骤s602,获取调用链路中根节点数据所需的调用时长;
60.步骤s604,依据调用时长和调用量,确定调用时延。
61.在上述步骤s602至步骤s604中,获取调用链关系根节点span数据,对根节点数据字段中的调用时长,即elapsed耗时(单位:毫秒)字段进行汇总统计,统计公式为:调用总时长/调用量。
62.以服务名称+统计指标名称+时间维度为key值,把每个统计指标的统计值放入到系统内存中,时间维度分为天、小时、分钟,统计逻辑如下:
63.a)1分钟统计:获取调用链关系根节点的starttime字段,截取当前调用服务的分钟段(00至59),在一个分钟段周期内统计完成后,进行失败率与平均耗时的计算;
64.b)1小时/1天统计:参考1分钟统计逻辑,把统计周期改为小时段和天进行统计即可(00至23)(01至28.29.30.31具体以当月的天数为准)。
65.在上述服务调用链的分析方法中的步骤s208中,生成告警信息,具体包括如下步骤:从调用链路中获取目标数据进行拼接,生成并展示告警信息,其中,目标数据为调用链路中与告警信息相关的字段。
66.具体地,通过调用链路中的span数据,拼装pinpoint异常明细地址用于展示,并将拼装地址保存入库,拼装地址如下:
67.http://{pinpoint_url}/transactionview/{agentid}/{transactionid}/{collectoraccepttime}/{spanid}
68.在上述服务调用链的分析方法中的步骤s208中,生成告警信息之后,方法还包括如下步骤:展示告警信息对应的关联数据,其中,关联数据包括以下至少之一:统计指标、调用链路中的调用关系、异常明细、服务配置信息。需要说明的是,统计指标中包含历史趋势,异常明细包含在告警信息中。
69.图7是根据本技术实施例的一种服务调用链的分析装置结构图,如图7所示,该装置包括:
70.获取模块702,用于获取目标服务中的第一数据;
71.第一确定模块704,用于确定与第一数据存在调用关系的第二数据,形成调用链路;
72.第二确定模块706,用于确定目标服务在调用链路上的统计指标,其中,统计指标包括以下至少之一:调用量、调用失败量、调用失败率和调用时延,调用量为调用链路的数量;
73.处理模块708,用于在统计指标中的每个指标超过对应的预设阈值时,生成告警信息。
74.在上述服务调用链的分析装置中的第一确定模块,确定与第一数据存在调用关系的第二数据,形成调用链路之后,该模块还包括如下过程:在判断出调用链路的根节点为目标值的情况下,获取数据库中的服务配置信息;判断服务配置信息中的第一字段与第一数据中的第一字段是否一致,其中,第一字段用于表示服务配置信息对应的服务是否为目标服务;在判断结果为是的情况下,判断调用链路是否发生变化。
75.在上述服务调用链的分析装置中,判断调用链路是否发生变化,具体包括如下过程:依据数据库中存储的原始调用关系,判断调用链路中的调用关系与原始调用关系是否一致;在调用链路中的调用关系与原始调用关系不一致的情况下,依据调用链路中的调用关系更新数据库中的原始调用关系;在数据库中不存在与调用链路相关的调用关系的情况下,将调用链路中的调用关系存储在数据库中。
76.在上述服务调用链的分析装置中的第二确定模块中,确定目标服务在调用链路上的统计指标,具体包括如下过程:依据调用链路的数量,确定调用量;依据调用链路中每个环节的第二字段满足预设条件的次数,确定调用失败量,其中,第二字段用于表示调用链路是否存在异常;依据调用量和调用失败量,确定调用失败率。
77.在上述服务调用链的分析装置中的第二确定模块中,确定目标服务在调用链路上的统计指标,具体还包括如下过程:获取调用链路中根节点数据所需的调用时长;依据调用时长和调用量,确定调用时延。
78.在上述服务调用链的分析装置中的处理模块中,生成告警信息,具体包括如下过
程:从调用链路中获取目标数据进行拼接,生成并展示告警信息,其中,目标数据为调用链路中与告警信息相关的字段。
79.在上述服务调用链的分析装置中的处理模块中,生成告警信息之后,该模块还包括如下过程:展示告警信息对应的关联数据,其中,关联数据包括以下至少之一:统计指标、调用链路中的调用关系、异常明细、服务配置信息。
80.需要说明的是,图7所示的服务调用链的分析装置用于执行图2所示的服务调用链的分析方法,因此上述服务调用链的分析方法中的相关解释说明也适用于该服务调用链的分析装置,此处不再赘述。
81.图8a是根据本技术实施例的一种服务调用链的分析流程图,如图8a所示:
82.步骤801,读取配置信息:span过滤关键字、现有服务调用关系数据、指定服务配置、服务指标告警阈值等信息放入内存中;
83.步骤802,获取transactionid字段内容,把内容中的3个字段拼装为一个字段,格式如(agentstarttime^agentid^transactionsequence);
84.步骤803,把数据保存到redis缓存中,只保留一些关键字段信息,key值为transactionid,作为后续调用链清洗获取的基础数据,设置失效时间为20s;
85.步骤804,把transactionid写入一个带淘汰机制的集合中,设置超时时间为10s;
86.步骤805,当达到10s的超时时间后,通过淘汰出来的transactionid获取redis中span数据,通过2层循环遍历通过spanid与parentspanid进行对比,获取到完整的调用链关系树形链条数据;
87.步骤806,通过步骤805中的调用关系数据,判断调用关系根节点parentspanid是否等于-1,判断成功则进入步骤807;
88.步骤807,通过对比配置服务的rpc字段+endpoint字段,进行对比,如对比成功,则进入步骤808;
89.步骤808,对比步骤801中现有调用关系数据,判断对比环节数与环节名称是否发生变化,如发生变化,则进入步骤809,如数据未找到已存在的调用关系,则进入步骤810;
90.步骤809,更新保存服务级调用关系数据,服务调用关系图8b所示,在图8b中,查询服务器在1分钟内的调用量统计,经过70ms查询到环节a的调用量为100,失败量为0,失败率为0%,经过10ms查询到环节b的调用量为100,失败量为0,失败率为0%;
91.步骤810,新增保存服务级调用关系数据;
92.步骤811,对步骤809和步骤810中对比成功的服务进行规整,也即规整服务级统计指标,统计指标包含:调用量、调用失败量、调用失败率、调用时延具体统计逻辑如下:a)调用量指标:一条主调用链关系即为一次调用,调用量指标+1;b)调用异常量:根据获取到的调用链关系数据,分析判断每个环节中的exception字段是否为空或者errorcode字段是否为0,不为0或者exception字段不为空则此次调用为异常,其中只要有一个环节异常则异常量+1;c)调用失败率:计算公式为:异常量/调用量,具体统计方法参考步骤812;d)调用时延:获取调用链关系根节点span数据,对根节点数据字段中的elapsed耗时(单位:毫秒)字段进行汇总统计,统计公式为:调用总耗时/调用量,具体统计方法参考步骤812;
93.步骤812,以服务名称+指标名称+时间维度为key值,把每个统计指标的统计值放入到系统内存中,时间维度分为天、小时、分钟统计逻辑如下:a)1分钟统计:获取调用链关
系根节点的starttime字段,截取当前调用服务的分钟段(00至59),在一个分钟段周期内统计完成后,进行失败率与平均耗时的计算;b)1小时/1天统计:参考1分钟统计逻辑,把统计周期改为小时段和天进行统计即可(00至23)(01至28.29.30.31具体以当月的天数为准);
94.步骤813,数据统计完成后,按照统计时段进行数据保存,最新一个时段的数据存入数据库中,采用复写方式,同时保存数据至hbase中,用于历史趋势查看;
95.步骤814,通过步骤801中的服务告警阈值,判断指标是否在阈值范围内,如不在阈值范围内则把告警信息写入数据库触发告警操作,并进入步骤815;
96.步骤815,通过调用链关系span数据,拼装pinpoint异常明细地址用于展示,同时保存入库,拼装地址如下:
97.http://{pinpoint_url}/transactionview/{agentid}/{transactionid}/{collectoraccepttime}/{spanid};
98.步骤816,对已经告警的服务,通过步骤809、810、813、814、815保存的数据,集中展示告警的关联数据,包括:配置的指定服务信息、告警信息(包括pinpoint异常明细])、服务调用关系数据、统计指标数据(包括历史趋势)。
99.在另一种可选的实施例中,服务调用链路的分析方法包括如下步骤:
100.s901:读取配置信息:span过滤关键字、现有服务调用关系数据、指定服务配置、服务指标告警阈值等信息放入内存中;
101.s902:把span数据放入缓存中,并将事务id保存在内存中;
102.s903:定时或实时对span数据进行处理分析,通过事务id获取内存数据库中的span数据,将spanid与parentspanid字段进行循环对比,比对完成后,将形成的树形调用关系数据保存在内存集合中;
103.s904:通过与s901步骤中读取的指定服务配置进行比对,对比成功则与s901步骤中读取的现有服务调用关系数据进行比对,比对成功且关系发生变化,则更新调用关系并入库,如对比不成功则新增入库保存;
104.s905:为指定服务构造统计指标数据(调用量、时延、失败率、失败量),以服务名称+指标名称+时间维度为key值,把每个统计指标的统计值放入到系统内存中,当达到指定统计周期后,把统计数据放入到数据库中,并把热数据与历史数据分开存放在不同的数据库中
105.s906:通过服务指标数据与s901步骤中读取的告警阈值数据进行对比,判断是否在阈值范围内,如不在阈值范围内则进行服务告警,并通过span数据拼装服务异常明细地址,保存入库,地址如下:
106.(http://{pinpoint_url}/transactionview/{agentid}/{transactionid}/{collectoracceptti me}/{spanid})
107.s907:对已告警的服务通过步骤s904、s905、s906保存的数据,集中展示告警的关联数据(包含:服务信息、告警信息、服务调用关系、指标数据)。
108.本技术实施例还提供了一种非易失性存储介质,该非易失性存储介质包括存储的程序,其中,在程序运行时控制该非易失性存储介质所在设备执行以下服务调用链的分析方法:获取目标服务中的第一数据;确定与第一数据存在调用关系的第二数据,形成调用链路;确定目标服务在调用链路上的统计指标,其中,统计指标包括以下至少之一:调用量、调
用失败量、调用失败率和调用时延,调用量为调用链路的数量;在统计指标中的任意一个指标超过对应的预设阈值时,生成告警信息。
109.上述本技术实施例序号仅仅为了描述,不代表实施例的优劣。
110.在本技术的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
111.在本技术所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
112.所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
113.另外,在本技术各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
114.所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本技术各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
115.以上所述仅是本技术的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本技术原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本技术的保护范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1