得到瞬时接口访问统计量的方法、装置和设备
技术领域
本公开涉及计算机领域,尤其涉及得到瞬时接口访问统计量的方法、得到瞬时接口访问统计量的装置以及得到瞬时接口访问统计量的设备。
背景技术
网络中,服务器通常需要根据当前接口的访问量的不同来执行不同的应对策略。例如,随着访问压力的变动,服务器可能动态地去掉/增加一个脆弱的模块;服务器可能需要基于当前接口的访问量来决定是否从备份的API接口拿数据。
现有技术中通常对一个统计周期内的访问数量求平均来衡量当前的系统负载。主要有以下两种方法。
第一种,对从当前统计周期起始时刻至感兴趣时刻的访问量求平均。感兴趣时刻可以是接收到系统负载信息请求的时刻,当前统计周期指该感兴趣时刻所在的统计周期。这种方法可能会因统计量不足而导致严重偏差。
例如,设统计周期为T,当前统计周期起点为tini,感兴趣时刻为tcur,如果tcur是刚进入当前统计周期后的某一时刻,即tcur与tini的间隔Δt相比于T非常小,此时,基于从tini至tcur间的接口访问情况得到的系统负载数据很可能并不合理反应真实接口访问量,原因在于由于刚刚切入新的统计周期,统计量不足,难以做出判定。例如,在某高负载环境下,也可能在Δt这一很短的时间间隔内的访问量是空的或者很小的,则仅基于这一小段样本可以得出结论:目前处于低负载,执行低负载下的处理策略。
第二种,对上一统计周期的访问量求平均,用上一统计周期的负载评估当前统计周期的负载。这种方法具有一定滞后性,难以应对访问量剧变的情况。
例如,统计周期为T,上一统计周期起点为tini_2,当前统计周期的起点为tini_2(即tini_1+T),则可以用[tini_1,tini_1+T-1]期间的平均负载作为[tini_2,tini_2+T-1]期间的负载。假设从tini_2时刻开始服务器突然遭受爬虫攻击而导致访问量暴增,而根据这种方法,在tini_2之后的一段时间内,每次响应于系统负载信息请求得到的反馈依然是:目前处于低负载,执行低负载下的处理策略。
上述现有技术都可能在特定情况下导致系统瘫痪。因此,希望得到一种能够准确及时地反映系统接口实时负载的手段。
发明内容
有鉴于此,本公开要解决的技术问题是如何准确及时地获取系统的访问接口的实时负载情况。
为了解决上述技术问题,根据本公开的一实施例,提供了一种得到瞬时接口访问统计量的方法,该方法包括:沿时间轴设置多个连续的时间盒子,每个时间盒子覆盖设定的时间段;确定感兴趣时刻tcur所在的时间盒子,作为当前时间盒子;得到与所述感兴趣时刻tcur关联的N个连续的时间盒子中每个时间盒子的平均每秒请求量QPS,所述N个连续的时间盒子包括所述当前时间盒子和位于所述当前时间盒子之前的N-1个时间盒子,其中N是大于1的整数;对所述N个连续的时间盒子的N个平均每秒请求量QPS进行加权平均以计算所述感兴趣时刻tcur的瞬时接口访问统计量,其中,相比于远离所述感兴趣时刻tcur的时间盒子的QPS,接近于所述感兴趣时刻tcur的时间盒子的QPS被赋予更高的权重值。
为了解决上述技术问题,根据本公开的另一实施例,提供了一种得到瞬时接口访问统计量的装置,该装置包括:时间盒子设置单元,用于沿时间轴设置多个连续的时间盒子,每个时间盒子覆盖设定的时间段;当前时间盒子确定单元,用于确定感兴趣时刻tcur所在的时间盒子,作为当前时间盒子;QPS获取单元,用于得到与所述感兴趣时刻tcur关联的N个连续的时间盒子中每个时间盒子的平均每秒请求量QPS,所述N个连续的时间盒子包括所述当前时间盒子和位于所述当前时间盒子之前的N-1个时间盒子,其中N是大于1的整数;瞬时接口访问统计量计算单元,用于对所述N个连续的时间盒子的N个平均每秒请求量QPS进行加权平均以计算所述感兴趣时刻tcur的瞬时接口访问统计量,其中,相比于远离所述感兴趣时刻tcur的时间盒子的QPS,接近于所述感兴趣时刻tcur的时间盒子的QPS被赋予更高的权重值。
为了解决上述技术问题,根据本公开的另一实施例,提供了一种得到瞬时接口访问统计量的设备,该设备包括用于存储处理器可执行指令的存储器和处理器,其特征在于,所述处理器被配置为:沿时间轴设置多个连续的时间盒子,每个时间盒子覆盖设定的时间段;确定感兴趣时刻tcur所在的时间盒子,作为当前时间盒子;得到与所述感兴趣时刻tcur关联的N个连续的时间盒子中每个时间盒子的平均每秒请求量QPS,所述N个连续的时间盒子包括所述当前时间盒子和位于所述当前时间盒子之前的N-1个时间盒子,其中N是大于1的整数;对所述N个连续的时间盒子的N个平均每秒请求量QPS进行加权平均以计算所述感兴趣时刻tcur的瞬时接口访问统计量,其中,相比于远离所述感兴趣时刻tcur的时间盒子的QPS,接近于所述感兴趣时刻tcur的时间盒子的QPS被赋予更高的权重值。
为了解决上述技术问题,根据本公开的另一实施例,提供了一种非易失性计算机可读存储介质,当所述存储介质中的指令由终端和/或服务器的处理器执行时,使得终端和/或服务器能够执行上述方法。
在本公开的各个实施例中,利用紧邻感兴趣时刻的一段时间的加权平均值来衡量感兴趣时刻的系统负载,其能够在保证统计量的情况下及时反映负载变化,同时,在进行加权平均时,对接近感兴趣时刻的负载赋予更高权重,有利于进一步提高所获得的负载数据的准确性和及时性。
根据下面参考附图对示例性实施例的详细说明,本公开的其它特征及方面将变得清楚。
附图说明
包含在说明书中并且构成说明书的一部分的附图与说明书一起示出了本公开的示例性实施例、特征和方面,并且用于解释本公开的原理。
图1示出了根据本公开的一个实施例的衡量服务器当前负载的示例性场景示意图。
图2示出了根据本公开的一个实施例的得到瞬时接口访问统计量的方法流程图。
图3示出了根据本公开的一个实施例的计算瞬时接口访问统计量的示例性示意图。
图4示出了根据本公开的一个实施例的设置时间盒子的示例性示意图。
图5示出了根据本公开的一个实施例的不同区间对应的权重值组的示例性示意图。
图6示出了根据本公开的一个实施例的得到瞬时接口访问统计量的装置的结构框图。
图7示出了本公开的一个实施例的得到瞬时接口访问统计量的设备的结构框图。
具体实施方式
以下将参考附图详细说明本公开的各种示例性实施例、特征和方面。附图中相同的附图标记表示功能相同或相似的元件。尽管在附图中示出了实施例的各种方面,但是除非特别指出,不必按比例绘制附图。
在这里专用的词“示例性”意为“用作例子、实施例或说明性”。这里作为“示例性”所说明的任何实施例不必解释为优于或好于其它实施例。
另外,为了更好的说明本公开,在下文的具体实施方式中给出了众多的具体细节。本领域技术人员应当理解,没有某些具体细节,本公开同样可以实施。在一些实例中,对于本领域技术人员熟知的方法、手段、元件和电路未作详细描述,以便于凸显本公开的主旨。
图1示出了根据本公开的一个实施例的衡量瞬时接口访问统计量的示例性场景示意图。如图所示,多个终端设备1021、1022、1023、1024访问同一个服务器101,服务器101则根据当前的负载量(即来自终端设备1021、1022、1023、1024的访问请求)来执行相应的处理策略。及时准确地获知当前负载,有利于服务器101合理调配资源,避免资源浪费或者服务器拥塞甚至瘫痪。
实施例1
图2示出了根据本公开的一个实施例的衡量瞬时接口访问统计量的方法流程图,该方法可以在如图1中的服务器101中实施。如图2所示,该方法主要包括:
步骤202,沿时间轴设置多个连续的时间盒子,每个时间盒子覆盖设定的时间段;
步骤204,确定感兴趣时刻tcur所在的时间盒子,作为当前时间盒子;
步骤206,得到与所述感兴趣时刻tcur关联的N个连续的时间盒子中每个时间盒子的平均每秒请求量QPS,所述N个连续的时间盒子包括所述当前时间盒子和位于所述当前时间盒子之前的N-1个时间盒子,其中N是大于1的整数;
步骤208,对所述N个连续的时间盒子的N个平均每秒请求量QPS进行加权平均以计算所述感兴趣时刻tcur的瞬时接口访问统计量,其中,相比于远离所述感兴趣时刻tcur的时间盒子的QPS,接近于所述感兴趣时刻tcur的时间盒子的QPS被赋予更高的权重值。
在本实施例中,利用紧邻感兴趣时刻的一段时间的加权平均值来衡量感兴趣时刻的系统负载,其能够在保证统计量的情况下及时反映负载变化,同时,在进行加权平均时,对接近感兴趣时刻的负载赋予更高权重,有利于进一步提高所获得的负载数据的准确性和及时性。
图3示出了根据本公开的一个实施例的计算瞬时接口访问统计量的示例性示意图。如图3所示,感兴趣时刻位于编号为N-1的时间盒子中,则可对编号为N-1的时间盒子以及向前追溯的N-1个盒子的QPS进行加权平均,以计算tcur时刻的瞬时接口访问统计量Ecur。
在图3中,针对编号为i的时间盒子,如果编号为i的时间盒子为当前时间盒子,即i=N-1,可通过下式计算其平均每秒请求量QPSi:
QPSi=Ci/Δt,其中,Ci表示在当前时间盒子中直至时刻tcur接收到的接口访问请求的数量,Δt表示在当前时间盒子中直至时刻tcur所经历的时间长度;
如果编号为i的时间盒子不是当前时间盒子,即i∈[0,N-2],可通过下式计算其平均每秒请求量QPSi:
QPSi=Ci/Ti,其中,Ci表示在编号为i的时间盒子期间接收到的接口访问请求的数量,Ti表示编号为i的时间盒子所覆盖的时间长度。
可基于下式计算图3中tcur时刻的瞬时接口访问统计量Ecur:
其中,wN-1,wN-2,...,w1,w0可被视为依次赋予编号为N-1~编号为0的N时间盒子的一组权重值,可称为一个权重值组。考虑到越接近时刻tcur时所采集的QPSi越能反应时刻tcur的实际系统负载,因此,相比于远离时刻tcur的时间盒子的QPS(例如,QPS0),接近于时刻tcur的时间盒子的QPS(例如,QPSN-1)可被赋予更高的权重值。在一些示例实施方式中,可考虑设置wN-1>wN-2>...>w1>w0。
图4示出了根据本公开的一个实施例的设置时间盒子的示例性示意图。如图4所示,可以设置N+M个连续的时间盒子,依此编号为0,1,…,(N+M-1),M是大于等于1的整数,每个时间盒子覆盖长度为T(例如10s)的时间段。可以设第一个编号为0的时间盒子的起始时刻为时刻0,则可基于下式确定所述感兴趣时刻tcur所在的时间盒子的编号i_cur:
其中,表示向下取整。
从而可将该N+M个连续的时间盒子视为首尾相接的循环,图中箭头标识出随着时间推移当前时间盒子的循环方向。在本示例性实施例中,可仅监控这N+M个时间盒子,有利于减少资源消耗。
进一步地,可针对所述N+M个连续的时间盒子中每个时间盒子设置对应的计数器,其中,针对编号为i的时间盒子,在该时间盒子期间,每接收到一个接口访问请求,则该时间盒子对应的计数器的值Ci增加1,i=0,1,...,N+M-1。在本示例中,仅需这N+M个计数器即可实现对接口访问请求数量的全程监控和存储,可有效减少所消耗的内存空间,加快反应速度。在一些示例中,M可以取1,以极小化计数器数量。
需要注意的是,由于计数器是循环利用的,因此,针对编号为i的任意时间盒子,i=0,1,...,N+M-1,均可设置生存期,并可在生存期达到阈值L的下一时刻立即将该计数器置零,避免对后续统计造成干扰。针对编号为i的时间盒子对应的计数器,以编号为i的时间盒子的起始时刻为其生存期的计时起点,则可设置N*T≤L<(N+M)*T,即可在从编号为(i+N)mod(N+M)的时间盒子的起始时刻开始至再次进入编号为i的时间盒子之前将编号为i的时间盒子对应的计数器清零,i=0,1,...,N+M-1。例如,设M=1,i=0(即当前时间盒子是编号为0的时间盒子),则可以在从编号为N的时间盒子的起始时刻至再次进入编号为0的时间盒子之前将编号为0的时间盒子对应的计数器清零,换言之,可以在编号为N的时间盒子期间将编号为0的时间盒子对应的计数器清零。
在图4所示的示例中,设第一个编号为0的时间盒子的起始时刻为时刻0,则在编号为i的时间盒子是当前时间盒子的情况下,可基于下式得到该时间盒子的平均每秒请求量QPSi:
QPSi=Ci/(tcurmodT+1),其中,Ci为在当前时间盒子中直至时刻tcur接收到的接口访问请求的数量;
在编号为i的时间盒子是当前时间盒子的情况下,可基于下式得到该时间盒子的平均每秒请求量QPSi:
QPSi=Ci/T,Ci为在所述编号为i的时间盒子期间接收到的接口访问请求的数量。
设当前时间盒子之前的第N-1个时间盒子的编号为j,则可基于下式计算感兴趣时刻tcur的瞬时接口访问统计量Ecur,以衡量当前系统负载:
其中,w(j+N-1)mod(N+M),...,w(j+1)mod(N+M),wj,表示一组权重值,且相比于远离感兴趣时刻tcur的时间盒子的QPS,接近于感兴趣时刻tcur的时间盒子的QPS被赋予更高的权重值。需要注意的是,由于N+M个时间盒子构成循环结构,因此,上式中,所表示的i从(j+N-1)mod(N+M)遍历至j,是指沿图4中标识的方向逆向追溯。
利用图4所示的循环的时间盒子,可进一步简化运算。例如,设每个时间盒子覆盖的时间长度均为T=10s,N=5,M=1,即时间盒子的编号依此为0,1,2,3,4,5,第一个编号为0的时间盒子的起始时刻的时间戳为0,感兴趣时刻的时间戳为1481005821(即tcur=1481005821),则根据:
可容易地确定当前时间盒子是编号为2的时间盒子。
之后,可得到编号为2、1、0、5、4这5个时间盒子的QPS,并对这5个时间盒子的QPS进行加权平均,得到时刻tcur的瞬时接口访问统计量。其中,编号为2、1、0、5、4的时间盒子的QPS的权重值可依次递减。
在实施中,为确保统计数据正确,可以在统计编号为i(i=0,1,...,N+M-1)的时间盒子期间,对编号为(i+1)mod(N+M)的时间盒子对应的计数器清零。例如,如果当前时间盒子的编号为2,则可在当前时间盒子期间,对编号为3的时间盒子对应的计数器清零。
在根据本实施例的一个示例性实施例中,可基于在长度为T的时间段内的接收到的访问请求的数量CT与位于所述时间长度为T的时间段之前的长度为T的倍数的时间段内接收到的请求的总数量CKT之间的相关性,确定N的值。例如,可得到某个长度为T的时间段内的访问量,并得到位于该时间段之前的长度为5*T和6*T的时间段内的访问量,并分别求取其相关系数,即求取该长度为T的时间段与位于其之前的长度为5*T的时间段的访问量的相关系数H5、该长度为T的时间段与位于其之前的长度为6*T的时间段的访问量的相关系数H6,如果H5大于等于相关系数阈值(例如0.9),而H6小于该相关系数阈值,则可确定N=5。
在一些可能的实施方式中,当前时间盒子可以被划分为多个区间,当感兴趣时刻tcur位于不同区间时,可以给与其关联的N个连续的时间盒子赋予与区间对应的权重值组。可知每个权重值组包括N个权重值。不同区间对应的权重值组可以是不同的。
特别地,感兴趣时刻tcur越靠近当前时间盒子的后端,则意味着当前时间盒子中的有效时间段越长,其获取样本数量越大,其QPS越可靠,同时意味着感兴趣时刻tcur与远离自己的时间盒子(例如,当前时间盒子之前的第N-1个时间盒子)间的距离越远,相关性越低。因此,设所述多个区间中的某两个区间分别为第一区间和第二区间,其中第一区间位于第二区间之前,第一区间对应第一权重值组,第二区间对应第二权重值组,则可以考虑相对于第一权重值组,第二权重值组接近于所述感兴趣时刻tcur的时间盒子被赋予的权重值更高。换言之,相对于第一权重值组,第二权重值组更偏重于接近于时刻tcur的时间盒子。
图5示出了根据本公开的一个实施例的不同区间对应的权重值组的示例性示意图。如图所示,设N=4,当前时间盒子为编号为3的时间盒子,并且其可被划分为3个区间。当感兴趣时刻tcur位于当前时间盒子的前1/3时段时,对应的权重值组是[0.4,0.3,0,2,0,1],换言之,在进行加权平均时,与其关联的4个时间盒子的QPS,即编号为3、2、1、0的4个时间盒子的QPS,依此被赋予权重值0.4、0.3、0.2和0.1;当感兴趣时刻tcur位于当前时间盒子的中间1/3时段时,对应的权重值组是[0.5,0.25,0,2,0,1],换言之,在进行加权平均时,与其关联的4个时间盒子的QPS,即编号为3、2、1、0的4个时间盒子的QPS,依此被赋予权重值0.5、0.25、0.2和0.1;当感兴趣时刻tcur位于当前时间盒子的后1/3时段时,对应的权重值组是[0.7,0.15,0,1,0,05],换言之,在进行加权平均时,与其关联的4个时间盒子的QPS,即编号为3、2、1、0的4个时间盒子的QPS,依此被赋予权重值0.7、0.15、0.1和0.05。
实施例2
图6示出了根据本公开的一个实施例的评估网站资源位的装置600的结构框图。如图所示,装置600包括时间盒子设置单元602、当前时间盒子确定单元604、QPS获取单元606和瞬时接口访问统计量计算单元608。
时间盒子设置单元602用于沿时间轴设置多个连续的时间盒子,每个时间盒子覆盖设定的时间段。当前时间盒子确定单元604用于确定感兴趣时刻tcur所在的时间盒子,作为当前时间盒子。QPS获取单元606用于得到与所述感兴趣时刻tcur关联的N个连续的时间盒子中每个时间盒子的平均每秒请求量QPS,所述N个连续的时间盒子包括所述当前时间盒子和位于所述当前时间盒子之前的N-1个时间盒子,其中N是大于1的整数。瞬时接口访问统计量计算单元608用于对所述N个连续的时间盒子的N个平均每秒请求量QPS进行加权平均以计算所述感兴趣时刻tcur的瞬时接口访问统计量,其中,相比于远离所述感兴趣时刻tcur的时间盒子的QPS,接近于所述感兴趣时刻tcur的时间盒子的QPS被赋予更高的权重值。
在一种可能的实施方式中,装置600还可以包括权重值分配单元(未示出)。所述当前时间盒子可以被划分为多个区间,当所述感兴趣时刻tcur位于不同区间时,权重值分配单元可以用于给所述N个连续的时间盒子赋予与所述区间对应的权重值组。在一些示例中,所述多个区间可以包括第一区间和第二区间,其中所述第一区间位于所述第二区间之前,所述第一区间对应第一权重值组,所述第二区间对应第二权重值组,则相对于所述第一权重值组,所述第二权重值组中与接近于所述感兴趣时刻tcur的时间盒子对应的权重值可以更高。
在一些可能的实施方式中,在QPS获取单元606中,得到与所述感兴趣时刻关联的N个连续的时间盒子中每个时间盒子的平均每秒请求量QPS,可以包括:在编号为i的时间盒子是所述当前时间盒子的情况下,可以基于下式计算所述编号为i的时间盒子的平均每秒请求量QPSi:
QPSi=Ci/Δt,其中,Ci表示在所述当前时间盒子中直至所述感兴趣时刻tcur接收到的接口访问请求的数量,Δt表示在所述当前时间盒子中直至所述感兴趣时刻tcur所经历的时间长度;
在编号为i的时间盒子不是所述当前时间盒子的情况下,可以基于下式计算所述编号为i的时间盒子的平均每秒请求量QPSi:
QPSi=Ci/Ti,其中,Ci为在所述编号为i的时间盒子期间接收到的接口访问请求的数量,Ti表示所述编号为i的时间盒子所覆盖的时间长度。
在一些可能的实施方式中,在时间盒子设置单元602中,设置多个连续的时间盒子可以包括:设置N+M个连续的时间盒子,所述N+M个连续的时间盒子依次编号为0、1、…、(N+M-1),M是大于等于1的整数,每个时间盒子可以均覆盖长度为T的时间段。并且,在当前时间盒子确定单元604中,确定感兴趣时刻tcur所在的时间盒子可以包括:设第一个编号为0的时间盒子的起始时刻为时刻0,则可以基于下式确定所述感兴趣时刻tcur所在的时间盒子的编号i_cur:
其中,表示向下取整。
在一些可能的实施方式中,在装置600中,可以针对所述N+M个连续的时间盒子中每个时间盒子设置对应的计数器(未示出)。其中,在编号为i的时间盒子期间,每接收到一个接口访问请求,则所述编号为i的时间盒子对应的计数器的值Ci增加1,并且在从编号为(i+N)mod(N+M)的时间盒子的起始时刻开始至再次进入所述编号为i的时间盒子之前将所述编号为i的时间盒子对应的计数器清零,其中,i=0,1,...,N+M-1。
在一些可能的实施方式中,在QPS获取单元606中,得到与所述感兴趣时刻关联的N个连续的时间盒子中每个时间盒子的平均每秒请求量QPS,可以包括:在编号为i的时间盒子是所述当前时间盒子的情况下,可以基于下式计算所述编号为i的时间盒子的平均每秒请求量QPSi:
QPSi=Ci/(tcurmodT+1),其中,Ci为在当前时间盒子中直至所述感兴趣时刻tcur接收到的接口访问请求的数量;
在编号为i的时间盒子不是所述当前时间盒子的情况下,可以基于下式计算所述编号为i的时间盒子的平均每秒请求量QPSi:
QPSi=Ci/T,其中,Ci为在所述编号为i的时间盒子期间接收到的接口访问请求的数量。
在一些每个时间盒子均覆盖长度为T的时间段的一些示例中,装置600还可以包括统计周期确定单元(未示出),其可以用于基于在长度为T的时间段内的接收到的接口访问请求的数量CT与位于所述长度为T的时间段之前的时间长度为T的倍数的时间段内接收到的请求的总数量CKT之间的相关性来确定N的值。
实施例3
图7是根据一示例性实施例示出的一种用于评估网站资源位的装置700的框图。例如,装置700可以被提供为一服务器。参照图7,装置700包括处理组件722,其进一步包括一个或多个处理器,以及由存储器732所代表的存储器资源,用于存储可由处理组件722的执行的指令,例如应用程序。存储器732中存储的应用程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理组件722被配置为执行指令,以执行上述方法。
装置700还可以包括一个电源组件726被配置为执行装置700的电源管理,一个有线或无线网络接口750被配置为将装置700连接到网络,和一个输入输出(I/O)接口758。装置700可以操作基于存储在存储器732的操作系统,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM或类似。
在示例性实施例中,还提供了一种包括指令的非易失性计算机可读存储介质,例如包括指令的存储器732,上述指令可由装置700的处理组件722执行以完成上述方法。
本公开可以是系统、方法和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于使处理器实现本公开的各个方面的计算机可读程序指令。
计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是――但不限于――电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
用于执行本公开操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如Smalltalk、C++等,以及常规的过程式编程语言—诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本公开的各个方面。
这里参照根据本公开实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本公开的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
附图中的流程图和框图显示了根据本公开的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
以上已经描述了本公开的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。