[0068] 如图5所示,假设t是当前时间窗口的索引,a、b、c、d分别表示变化点,其中,d是距离当前时间窗口最近的一个变化点,即最后一个变化点,sj是变化点d对应的时间窗口的索引,sj
[0069] g(t)=ωt+b (2)
[0070] 其中,ω和b都是参数,可以通过最小二乘法计算得到。也就是说,公式(2)采用了线性回归模型来拟合g(t)的变化趋势,该变化趋势具体可以是如图7所示的虚线71。
[0071] S603、根据所述第一关联关系预测所述下一时间的非突发性负载数量。
[0072] 具体的,根据公式(2)可以预测下一时间的非突发性负载数量g(t+1),例如,将公式(2)中的t替换为t+1,则g(t+1)=ω(t+1)+b。g(t+1)是下一时间例如下一时间窗口对应的趋势性QPS。
[0073] 下面结合图7介绍一下如何根据曲线③预测下一时间的突发性负载数量,例如e(t+1)。
[0074] 具体的,在预测e(t+1)之前,需要对如图7所示的支持向量机(support vector machines,SVM)的二分类模型进行训练。在训练过程中,需要采集多个历史时间分别对应的QPS(t),以及多个历史时间分别对应的在线应用的CPU利用率。进一步,将同一个历史时间对应的QPS(t)、在线应用的CPU利用率、以及该历史时间记为一组训练数据,从而得到多组训练数据,并将该多组训练数据作为该二分类模型的输入。针对每一组训练数据,该二分类模型的输出是0或1,0表示在该组训练数据中的历史时间上没有突发事件发生,1表示在该组训练数据中的历史时间上有突发事件发生。例如,针对每一组训练数据,若该组训练数据中的QPS(t)大于或等于第一阈值,且在线应用的CPU利用率大于或等于第二阈值,则说明该组训练数据中的历史时间上有突发事件发生。可以理解的是,在突发事件发生时,很可能会导致在线应用的CPU利用率提高,因此,在训练该二分类模型时,在线应用的CPU利用率可以作为QPS(t)的补充信息。也就是说,在训练该二分类模型的过程中,每一组训练数据可以包括QPS(t)和历史时间,而不包括在线应用的CPU利用率,在这种情况下,若该组训练数据中的QPS(t)大于或等于第一阈值,则说明该组训练数据中的历史时间上有突发事件发生。另外,为了提高二分类模型的精准度,可以采集过去促销活动中在线应用的CPU利用率的时间序列作为正样本。在训练结束后,该二分类模型可用于预测将来的每个时间窗口是否有突发事件发生。例如图7所示,在将该二分类模型训练完成后,可以将下一个时间窗口的索引t+1作为该二分类模型的输入,该二分类模型输出预测结果,该预测结果为0或1,0表示该二分类模型预测出下一个时间窗口没有突发事件发生,1表示该二分类模型预测出下一个时间窗口有突发事件发生。此处,可以采用Ib来表示该二分类模型在使用阶段的输出。
[0075] 具体的,根据所述多个历史时间分别对应的突发性负载数量预测下一时间的突发性负载数量,包括:预测所述下一时间是否有突发事件发生;若所述下一时间有突发事件发生,则根据所述多个历史时间分别对应的突发性负载数量预测所述下一时间的突发性负载数量。
[0076] 例如,一旦该二分类模型预测出下一个时间窗口有突发事件发生,即Ib为1,则需要根据如图7所示的曲线③预测下一时间的突发性负载数量,例如e(t+1)。
[0077] 可选的,根据所述多个历史时间分别对应的突发性负载数量预测所述下一时间的突发性负载数量,包括:根据泊松分布、以及所述多个历史时间分别对应的突发性负载数量,拟合突发性负载数量和任一时间之间的第二关联关系;根据所述第二关联关系预测所述下一时间的突发性负载数量。
[0078] 例如,一旦Ib为1,则需要预测下一个时间窗口下突发性工作负载b(t)的值,b(t)和e(t)的关系如下公式(3)所示:
[0079] e(t)=Ib•b(t)(3)
[0080] 也就是说,当Ib为1时,e(t)=b(t)。由于突发性工作负载b(t)是在短时间内来自用户的大量随机请求产生的,因此,可以使用泊松分布对b(t)进行建模,b(t)可以通过如下公式(4)来确定:
[0081] (4)
[0082] 其中,B和λ分别是未知的参数。使用最大似然估计可以计算出B和λ的值。
[0083] 上述公式(3)和公式(4)联合起来可以作为突发性负载数量e(t)和任一时间之间的第二关联关系。该第二关联关系可以体现出e(t)随着将来时间的变化趋势,该变化趋势可以是图7所示的虚线72。根据该第二关联关系可以预测下一时间窗口的突发性负载数量即e(t+1),也就是说,将公式(3)和公式(4)中的t替换为t+1,即可得到e(t+1)。例如图7所示,点e的纵坐标表示根据虚线72预测出来的下一时间窗口的突发性负载数量e(t+1)。
[0084] 综上所述,在图7中,将每个QPS(t)分解为g(t)和e(t)是第一步,根据[sj,t]这个期间内的g(t)拟合出虚线71是第二步,二分类模型预测出下一个时间窗口有无突发事件发生是第三步,在下一个时间窗口有突发事件发生的情况下,根据e(t)和二分类模型的预测结果拟合出虚线72是第四步。
[0085] 进一步,根据如上预测出来的g(t+1)和此处预测出来的e(t+1),可预测出QPS(t+1)。
[0086] 可以理解的是,公式(2)中的ω和b、以及公式(4)中的B和λ都是根据历史数据计算出来的,但是,由于ω和b是根据[sj,t]这个期间内的g(t)计算出来的,而最后一个变化点是不断变化的,因此,ω和b会随着历史数据的不断增加而变化,例如,每增加一个历史时间窗口,ω和b可以更新一次。而B和λ随着历史数据的不断增加变化较慢,例如,在初次计算B和λ的过程中采用的是过去一个月的历史数据,由于一个时间窗口的长度为1分钟,若目前只是增加了几个历史时间窗口,那么这几个历史时间窗口对应的历史数据对已经计算出的B和λ影响较小,因此,B和λ可以保持不变。当增加的历史时间窗口的个数达到一个月所能包括的时间窗口个数时,可以采用新的一个月的历史数据来更新B和λ的取值。
[0087] 可选的,所述方法还包括:根据所述第一关联关系,计算所述多个历史时间分别对应的非突发性负载数量的估计值;根据所述多个历史时间分别对应的请求数量、以及所述多个历史时间分别对应的非突发性负载数量的估计值,更新所述第一关联关系中的参数。
[0088] 可选的,所述方法还包括:根据所述第二关联关系,计算所述多个历史时间分别对应的突发性负载数量的估计值;根据所述多个历史时间分别对应的请求数量、以及所述多个历史时间分别对应的突发性负载数量的估计值,更新所述第二关联关系中的参数。
[0089] 由于在同样的预测误差下,存在高估和低估,其中,高估是指预测值比实际值大,低估是指预测值比实际值小。在下一个时间窗口中,高估QPS(t+1)会导致资源利用率降低,但是低估QPS(t+1)会导致在线服务违反延迟的约束,即在线服务的响应时间无法满足要求,这是较为严重的问题,由此看来,高估优于低估。因此,本实施例可以通过添加惩罚因子来对低估做出一定的惩罚,从而对上述已经计算出来的参数ω和b、B和λ进行更新。
[0090] 对ω和b的更新可以采用如下公式(5),对B和λ的更新可以采用如下公式(6):
[0091] (5)
[0092] (6)
[0093] 其中, 表示第t个历史时间窗口内QPS(t)的实际值。n表示历史时间窗口的个数。表示公式(2)中的g(t)的估计值。 表示公式(4)中的 的估计值。表示参数。
[0094] 本实施例使用预测性资源分配算法的思路,提出了一条可靠的、可解释的资源分配的逻辑链路。根据日常流量和突发性流量各自的特点,提出了一个可拆解流量预测模型,分别用线性模型和泊松模型预测两种不同场景的QPS,针对性地解决了在突发性负载情景下的QPS预测问题。另外,通过添加惩罚因子来对低估做出一定的惩罚,从而对参数ω和b、B和λ进行更新,使得下一时间窗口对应的趋势性QPS和下一时间窗口对应的突发性QPS项的预测值更精准,从而提高了下一时间窗口总的QPS的预测精度。
[0095] 图8为本公开另一实施例提供的计算资源调整方法流程图。在本实施例中,如上所述的根据所述下一时间的请求数量,预测所述目标集群中的在线服务在所述下一时间所需的计算资源的最小值,包括如下几个步骤:
[0096] S801、确定所述在线服务对应的请求数量、所述在线服务对应的计算资源和所述在线服务的响应时间之间的映射关系。
[0097] 可以理解的是,在线服务的约束由响应时间这个指标来决定。只要在线服务的响应时间小于预定义的阈值η,就可以认为没有违反约束。通常有两个关键因素会影响在线服务的响应时间,分别是在线服务的QPS、以及离线任务quota。当在线服务的QPS急剧增加的同时需要及时增加在线服务的计算资源CPUlc以满足约束要求。在预测得到下一时间窗口的QPS(t)的情况下,可以推断出CPUlc的最小设置,即最小值CPUlc。当最小值CPUlc被分配给在线服务时,可使得在线服务的响应时间不超过η。这是因为当CPUlc被最小化时,实际是在最大化离线任务quota,从而可以提高混部集群整体的CPU利用率。
[0098] 为了在不违反响应时间约束的情况下找到最小的CPUlc,需要建立一个映射模型M(QPS,CPUlc)→RT,其中,QPS表示在线服务对应的请求数量,RT表示在线服务的响应时间,CPUlc表示在线服务对应的计算资源。也就是说,通过该映射模型可以预测不同QPS、CPUlc下的响应时间,即通过该映射模型可以建立QPS、CPUlc、RT三者之间的映射关系。在一些实施例中,可以将QPS、CPUlc、RT分别取不同值时得到的映射关系存储在表格中,在给定QPS(t+1)的情况下,通过查表找到最小的CPUlc,使得M(QPS,CPUlc)<η。
[0099] S802、将所述下一时间的请求数量作为所述映射关系中的请求数量,得到所述在线服务对应的计算资源和所述在线服务的响应时间之间的第三关联关系。
[0100] 为了学习映射模型M(QPS,CPUlc),本实施例可以将在线服务的查询处理建模为多服务器排队模型,从而可以使用如下的公式(7)近似的表示响应时间RT:
[0101] (7)
[0102] 其中,表示在一个时间单位内混部集群处理的请求数。 表示由于队列已满导致请求被丢弃的概率。m表示已知的参数。当 >0时,表示突发性工作负载无法被实时处理,也就是说,一小部分请求会被丢弃而无需进一步处理。是一个参数,取决于 和QPS,具体的,。另外,动态依赖于QPS和CPUlc, 也动态依赖于QPS和CPUlc,因此,公式(7)可以作为QPS、CPUlc、RT三者之间的映射关系。将下一时间的请求数量QPS(t+1)作为该映射关系中的QPS,从而得到CPUlc、RT之间的第三关联关系。
[0103] S803、根据所述第三关联关系,预测所述在线服务在所述下一时间所需的计算资源的最小值。
[0104] 根据该第三关联关系可以预测出在线服务在下一个时间窗口所需的计算资源的最小值即最小的CPUlc,使得RT<η。
[0105] 本实施例通过传统排队论理论和前沿的深度学习算法,提出了一个可靠的根据系统负载预测进行响应时间预测的模型。
[0106] 可以理解的是,公式(7)中的参数 和 在初始状态下是未知的,需要通过两个多层感知器模型(Multilayer Perceptron,MLP)来学习参数 和 ,当 和 确定下来之后,将 和 带入到公式(7)时,公式(7)才可以作为QPS、CPUlc、RT三者之间的映射关系。下面结合具体的实施例对 和 的确定过程进行介绍。
[0107] 可选的,确定所述在线服务对应的请求数量、所述在线服务对应的计算资源和所述在线服务的响应时间之间的映射关系,包括如下几个步骤:
[0108] S901、构建第一机器学习模型,所述第一机器学习模型的输入包括所述在线服务对应的请求数量和所述在线服务对应的计算资源,所述第一机器学习模型的输出是所述映射关系中的第一参数。
[0109] 由于公式(7)中的 动态依赖于QPS和CPUlc, 也动态依赖于QPS和CPUlc,因此,本实施例可以构建两个多层感知器模型(Multilayer Perceptron,MLP)来学习参数 和 ,其中,针对参数 构建的多层感知器模型记为 , 可作为第一机器学习模型。 表示为如下公式(8)。
[0110] (8)
[0111] 其中,QPS表示在线服务对应的请求数量,CPUlc表示在线服务对应的计算资源,的输入是QPS和CPUlc, 的输出是 ,记为第一参数。
[0112] S902、构建第二机器学习模型,所述第二机器学习模型的输入包括所述在线服务对应的请求数量和所述在线服务对应的计算资源,所述第二机器学习模型的输出是所述映射关系中的第二参数。
[0113] 针对 构建的多层感知器模型记为 。 表示为如下公式(9):
[0114] (9)
[0115] 其中, 的输入是QPS和CPUlc, 的输出是 , 记为第二参数。
[0116] S903、根据所述映射关系对应的样本数据对所述第一机器学习模型和所述第二机器学习模型进行训练。
[0117] 具体的, 、 分别包括两个隐藏层,每个隐藏层包含8个节点。 、可以同时训练,在训练之前,可以进行离线实验,以获得训练样本,每个训练样本是一个三元组,每个三元组可以表示为, 、 中的神经元参数可以使用标准的反向传播算法进行训练。具体的,可以将公式(8)和公式(9)分别带入到公式(7)中,然后采用训练样本,同时对 、 中的神经元参数进行学习。
[0118] S904、根据训练后的所述第一机器学习模型确定所述第一参数,根据训练后的所述第二机器学习模型确定所述第二参数。
[0119] 当 、 训练完成后,通过公式(8)可以计算出 的预测值,根据公式(9)可以计算出 的预测值。
[0120] S905、根据所述第一参数和所述第二参数,确定所述在线服务对应的请求数量、所述在线服务对应的计算资源和所述在线服务的响应时间之间的映射关系。
[0121] 具体的,将 的预测值和 的预测值带入到公式(7)即可计算得到QPS、CPUlc、RT三者之间的映射关系。
[0122] 综上所述,针对现有技术几乎无法应对突发性流量的情况,本公开实施例通过基于SVM的突发性状况预测模型、以及基于泊松分布预测突发性QPS,成功解决了在突发性流量场景下的QPS预测和离线任务quota的动态调整。通过响应时间预测模型,能够精准地预测不同离线任务quota下的在线任务响应时间,能在不违反响应时间阈值的情况下,充分利用CPU计算资源。另外,本实施例将离线任务quota的调整分为QPS预测和响应时间预测,具有较好的可解释性,另外,针对QPS预测和响应时间预测可以分别进行调整和优化,从而具有良好的灵活性和可扩展性。由于本公开实施例将每个历史时间的请求数量精确的分解为非突发性负载数量和突发性负载数量两部分,因此,根据多个历史时间分别对应的非突发性负载数量可以预测出下一时间的非突发性负载数量,以及根据多个历史时间分别对应的突发性负载数量可以预测出下一时间的突发性负载数量。进一步,根据下一时间的非突发性负载数量和下一时间的突发性负载数量,可以精确的预测出下一时间总的请求数量,因此,当下一时间出现突发事件例如混部集群接收到大量的用户请求时,也可以精准的预测出下一时间的请求数据。从而使得本公开实施例提供的方法能够适用于突发性负载的场景。另外,由于本实施例还可以在保证在线服务的响应时间小于或等于预设阈值的条件下即保证在线服务的性能不受影响的情况下,根据下一时间的请求数量预测出在线服务在下一时间所需的计算资源的最小值,然后将混部集群中除该最小值之外剩余的计算资源分配给离线任务,也就是说,在保证在线服务不受影响的情况下,将尽可能多的计算资源分配给离线任务,使得在线服务和离线任务两部分尽可能多的占用混部集群整体的计算资源,从而提高了混部集群整体计算资源的利用率。
[0123] 图10为本公开实施例提供的计算系统的结构示意图。该计算系统可以在云上分布式计算环境中实现,例如,该计算系统可以是至少一个分布式计算机构成的系统,或者,该计算系统可以是多个分布式计算机中各个分布式计算机的部分子系统构成的系统。具体的,本公开实施例提供的计算系统可以执行计算资源调整方法实施例提供的处理流程,如图10所示,计算系统100包括:
[0124] 获取模块101,用于获取目标集群在多个历史时间分别接收的请求数量,每个历史时间的请求数量包括非突发性负载数量和突发性负载数量;
[0125] 第一预测模块102,用于根据所述多个历史时间分别对应的非突发性负载数量预测下一时间的非突发性负载数量,以及根据所述多个历史时间分别对应的突发性负载数量预测下一时间的突发性负载数量;
[0126] 第二预测模块103,用于根据所述下一时间的非突发性负载数量和所述下一时间的突发性负载数量,预测所述下一时间的请求数量;
[0127] 第三预测模块104,用于根据所述下一时间的请求数量,预测所述目标集群中的在线服务在所述下一时间所需的计算资源的最小值,所述最小值使得所述在线服务的响应时间小于或等于预设阈值;
[0128] 调整模块105,用于根据所述最小值,调整所述目标集群中的离线任务在所述下一时间使用的计算资源的最大值。
[0129] 可选的,第一预测模块102根据所述多个历史时间分别对应的非突发性负载数量预测下一时间的非突发性负载数量时,具体用于:
[0130] 确定由所述多个历史时间分别对应的非突发性负载数量构成的曲线中的多个变化点;
[0131] 根据所述多个变化点中的最后一个变化点对应的历史时间和当前时间之间的非突发性负载数量,拟合非突发性负载数量和任一时间之间的第一关联关系;
[0132] 根据所述第一关联关系预测所述下一时间的非突发性负载数量。
[0133] 可选的,计算系统100还包括:计算模块106和更新模块107,其中,计算模块106用于根据所述第一关联关系,计算所述多个历史时间分别对应的非突发性负载数量的估计值;更新模块107用于根据所述多个历史时间分别对应的请求数量、以及所述多个历史时间分别对应的非突发性负载数量的估计值,更新所述第一关联关系中的参数。
[0134] 可选的,第一预测模块102根据所述多个历史时间分别对应的突发性负载数量预测下一时间的突发性负载数量时,具体用于:
[0135] 预测所述下一时间是否有突发事件发生;
[0136] 若所述下一时间有突发事件发生,则根据所述多个历史时间分别对应的突发性负载数量预测所述下一时间的突发性负载数量。
[0137] 可选的,第一预测模块102根据所述多个历史时间分别对应的突发性负载数量预测所述下一时间的突发性负载数量时,具体用于:
[0138] 根据泊松分布、以及所述多个历史时间分别对应的突发性负载数量,拟合突发性负载数量和任一时间之间的第二关联关系;
[0139] 根据所述第二关联关系预测所述下一时间的突发性负载数量。
[0140] 可选的,计算模块106还用于根据所述第二关联关系,计算所述多个历史时间分别对应的突发性负载数量的估计值;更新模块107还用于根据所述多个历史时间分别对应的请求数量、以及所述多个历史时间分别对应的突发性负载数量的估计值,更新所述第二关联关系中的参数。
[0141] 可选的,第三预测模块104包括:确定单元1041和预测单元1042,其中,确定单元1041用于确定所述在线服务对应的请求数量、所述在线服务对应的计算资源和所述在线服务的响应时间之间的映射关系;将所述下一时间的请求数量作为所述映射关系中的请求数量,得到所述在线服务对应的计算资源和所述在线服务的响应时间之间的第三关联关系;
预测单元1042用于根据所述第三关联关系,预测所述在线服务在所述下一时间所需的计算资源的最小值。
[0142] 可选的,确定单元1041在确定所述在线服务对应的请求数量、所述在线服务对应的计算资源和所述在线服务的响应时间之间的映射关系时,具体用于:
[0143] 构建第一机器学习模型,所述第一机器学习模型的输入包括所述在线服务对应的请求数量和所述在线服务对应的计算资源,所述第一机器学习模型的输出是所述映射关系中的第一参数;
[0144] 构建第二机器学习模型,所述第二机器学习模型的输入包括所述在线服务对应的请求数量和所述在线服务对应的计算资源,所述第二机器学习模型的输出是所述映射关系中的第二参数;
[0145] 根据所述映射关系对应的样本数据对所述第一机器学习模型和所述第二机器学习模型进行训练;
[0146] 根据训练后的所述第一机器学习模型确定所述第一参数,根据训练后的所述第二机器学习模型确定所述第二参数;
[0147] 根据所述第一参数和所述第二参数,确定所述在线服务对应的请求数量、所述在线服务对应的计算资源和所述在线服务的响应时间之间的映射关系。
[0148] 图10所示实施例的计算系统可用于执行上述方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
[0149] 以上描述了计算系统的内部功能和结构,该系统可实现为一种电子设备。图11为本公开实施例提供的电子设备实施例的结构示意图。如图11所示,该电子设备包括存储器111和处理器112。
[0150] 存储器111用于存储程序。除上述程序之外,存储器111还可被配置为存储其它各种数据以支持在电子设备上的操作。这些数据的示例包括用于在电子设备上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。
[0151] 存储器111可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
[0152] 处理器112与存储器111耦合,执行存储器111所存储的程序,以用于:
[0153] 获取目标集群在多个历史时间分别接收的请求数量,每个历史时间的请求数量包括非突发性负载数量和突发性负载数量;
[0154] 根据所述多个历史时间分别对应的非突发性负载数量预测下一时间的非突发性负载数量,以及根据所述多个历史时间分别对应的突发性负载数量预测下一时间的突发性负载数量;
[0155] 根据所述下一时间的非突发性负载数量和所述下一时间的突发性负载数量,预测所述下一时间的请求数量;
[0156] 根据所述下一时间的请求数量,预测所述目标集群中的在线服务在所述下一时间所需的计算资源的最小值,所述最小值使得所述在线服务的响应时间小于或等于预设阈值;
[0157] 根据所述最小值,调整所述目标集群中的离线任务在所述下一时间使用的计算资源的最大值。
[0158] 进一步,如图11所示,电子设备还可以包括:通信组件113、电源组件114、音频组件115、显示器116等其它组件。图11中仅示意性给出部分组件,并不意味着电子设备只包括图
11所示组件。
[0159] 通信组件113被配置为便于电子设备和其他设备之间有线或无线方式的通信。电子设备可以接入基于通信标准的无线网络,如WiFi,2G或3G,或它们的组合。在一个示例性实施例中,通信组件113经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,所述通信组件113还包括近场通信(NFC)模块,以促进短程通信。例如,在NFC模块可基于射频识别(RFID)技术,红外数据协会(IrDA)技术,超宽带(UWB)技术,蓝牙(BT)技术和其他技术来实现。
[0160] 电源组件114,为电子设备的各种组件提供电力。电源组件114可以包括电源管理系统,一个或多个电源,及其他与为电子设备生成、管理和分配电力相关联的组件。
[0161] 音频组件115被配置为输出和/或输入音频信号。例如,音频组件115包括一个麦克风(MIC),当电子设备处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器111或经由通信组件113发送。在一些实施例中,音频组件115还包括一个扬声器,用于输出音频信号。
[0162] 显示器116包括屏幕,其屏幕可以包括液晶显示器(LCD)和触摸面板(TP)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。
[0163] 另外,本公开实施例还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行以实现上述实施例所述的计算资源调整方法。
[0164] 需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
[0165] 以上所述仅是本公开的具体实施方式,使本领域技术人员能够理解或实现本公开。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本公开的精神或范围的情况下,在其它实施例中实现。因此,本公开将不会被限制于本文所述的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。