2. 西安电子科技大学 计算机学院, 陕西 西安 710127
2. School of Computer Science and Technology, Xidian University, Xi′an 710127, China
面向服务计算模式已经改变了传统软件服务创建和开发方式。该模式成为评价软件功能可用性的效用计算的基础。利用as-a-Service(aaS)模型, 通过集成和重用现有服务,组合成新服务。但是组合服务能否成功交付组合服务给用户, 并确保组合服务QoS (Quality of Service)涉及到多个组件服务。SLA(Service Level Agreement)标准用来描述QoS等级和实际用户获得服务配匹程度。
对于用户来说, 更重要的是在提供服务的过程中, 连续监测工作流并及时识别与约定QoS等级服务。为了保证提供给用户的服务质量, 防止服务执行失败, 应尽可能预测到这种违反约定QoS等级的服务, 并且在服务提供的过程中避免它, 至少应该减轻它带来的影响。在云环境中, 由于受网络拥堵、资源限制或质量管理水平等因素的影响, 服务提供没有期望的那么稳定, 所以QoS预测就会有波动。由于部署在多个云中的服务具有数据密集型或计算密集型的特征, 云组件服务在数据服务执行过程中未能提供其约定的QoS值, 导致SLA违例和服务执行失败。传统服务QoS预测方法使用服务提供商发布的QoS指标值对组合方案进行评估, 但网络环境的不确定性、服务提供商的商业炒作等因素会使得服务提供商发布的QoS值与服务提供过程中的QoS值有较大差别, 进而影响服务的可信度。
为此, 文中提出了一种新的服务QoS预测方法, 利用概率模型对被监控工作流实施QoS违例预测。在该方法中, 为了防止状态参数过多, 利用运行着的服务实例的特征参数进行分析。在QoS预测中, 对监测中的正在运行的服务实例抽取特征参数值, 以此为依据, 对下一阶段要运行服务出现SLA违例的概率进行估算, 得出量化的QoS可靠性估算值。随着服务系统的运行, 其服务实例特征值数量增长非常迅速, 采用了大数据分析法, 确保高效、准确的QoS预测。
1 相关研究文献[1]给出了一个服务性能的预测模型,利用马尔可夫到达过程(Markovian arrival process, MAP)中的排队模型, 实现了云环境中服务部署的性能预测。文献[2]利用马尔科夫模型预测组件服务的QoS, 当预测到其QoS属性有变坏的趋势时, 触发组件服务重选过程。而文中提出的QoS预测方法并不依赖于某个具体模型, 因而具有更好的通用性。
文献[3]提出了一种服务资源计量的预测方法。该方法利用神经网络和线性回归技术, 实现服务执行时对资源需求的预测。文献[4]采用了历史QoS评价数量和评价值偏差分析两种方法预测服务的可靠性。文献[5]预测所用的QoS数据项数量、数据的波动情况以及数据随时间的衰减情况, 以实现云计算中服务质量预测。文献[6]也使用了回归模型, 用它来得到服务等级目标数值估算, 并以此实施运行时间的服务SLA违例预测。同样, 文献[7]也利用回归分类器来预测SLA违例。但是,以上这些方法都没有给出详细的预测性能分析。
文献[8-10]为了解决在运行过程中QoS优化问题, 对QoS需求进行制约。特别是文献[11], 为了满足面向服务系统的QoS需求, 采用了线性规划求解QoS最优选择方案。而文献[12]提出了用多目标优化方法实现QoS最优化。另外, 在文献[13]中,提出了云组件性能协同预测方法。还有一些研究[14-16]利用概率模型对代理等QoS经验值作为样本计算QoS的信任度。这些方法从用户角度评估QoS指标是有效的, 但是,通常情况下, QoS是面向业务的。
综上所述,已有研究与本文中提出预测方法存在如下几方面不同:第一, 已有研究在设计阶段对组合服务的QoS进行预测, 而非本文在服务提供运行阶段对服务违例进行预测。第二, 已有研究利用服务QoS离散值进行预测, 而本文通过监控运行着的服务实例的特征参数进行预测。运行中特征参数值是连续数据。第三, 已有研究利用概率检测技术, 进行QoS可靠性预测时,依赖于离散时间马尔可夫链模型,而本文提出了更加通用的概率检测模型, 并且利用了连续时间马尔可夫链模型。
2 云服务质量的SLA违例预测模型的设计为了有效地预测云环境中组合服务的QoS,文中使用大数据分析工具建立了SLA违例预测概率模型, 该模型具体组成如图 1所示。在图 1云服务质量检测和SLA违例预测模型中, 根据用户请求, 借助云计算实施服务发现得到符合用户需求的组件服务。这些组件服务形成组合服务。在组合服务开始执行时, 利用系统预测模型, 检测组件服务的QoS是否遵循SLA。该预测模型基于状态-变迁描述, 并能有效捕捉随着时间推移的KPIs(关键性能指标)演化过程。当前运行的组件服务的状态和变迁参数, 联合服务组合时定义的期望QoS的SLA,能预测出将要运行组件的KPIs, 以此识别SLA违例产生的条件。
|
图 1 云服务质量检测和SLA违例预测模型 Fig. 1 The model for quality of cloud service checking and SLA violation prediction |
预测模型的各部分的功能如下:
1) 参考系统。参考系统负责连续的监控和收集当前运行的组件服务状态和变迁等数据信息, 这些数据将用于预测实际组合服务的QoS。在SLA违例预测平台中, 将在参考系统收集的当前运行的组件服务参数和估算出的其他未运行组件服务参数全部填充到实际组合服务中, 为其他部分用模型验证软件处理该填充好的组合服务提供基础数据。
2) 大数据分析器。针对参考系统收集的大量当前组合服务状态和变迁信息, 需要实时估算出其他未运行组件服务参数, 在此借助大数据的分析和开发工具CEP (Complex Event Processor)。利用CEP估算将要运行组合服务工作流后继分支QoS参数值。为了确保一致、高效地预测QoS, 在向CEP提供当前状态和变迁参数时, 需要满足两个条件:① 必须提供充分数量的当前服务状态和变迁信息, 以便实时分析数据。②必须提供关键QoS信息, 以便准确进行分析。
3) 系统参数模型。将用户协定的SLA、参考系统的关键QoS和大数据分析器分析的组件服务状态和变迁参数组成该系统参数模型。
4) SLA违例预测平台。在此选择PRISM作为模型分析软件。PRISM是一个开源的专门用于分析概率系统的概率模型检测器。利用该模型检测器根据当前状态的固定数量变迁, 不断探测将要运行组件服务能够到达的状态。一旦探测到将要到达的某个状态中它的QoS违例概率高出固定SLA约定的阈值时, 启动预警机制给出SLA违例预报。
3 云环境下的服务质量SLA违例预测 3.1 QC规范的定义为了有效识别组合服务QoS属性的SLA违例, 针对QoS属性, 文中定义了基于线性时间的时序逻辑区间的QC(质量约束)规范。利用定义的基于QC的操作检测QoS属性的KPIs。
定义1 QC是对于KPIs的布尔判定条件。
对于QC定义了3个时序操作:along, within, prec(ϕ)。
1) P along T:在属于时间区间T的任意时刻, P为真。
2) P within T:至少存在某个时刻i∈T, P为真。
3) prec(ϕ):该操作符能够接受时序逻辑表达式ϕ为操作数, 利用CEP工具估算prec(ϕ)。
along是对于区间T的全局线性时序逻辑约束操作符, 而within是对于区间T的最终线性时序逻辑约束操作符。将要执行的某状态下某时刻的KPI概率时序表达式用ϕ表示, prec(ϕ)为概率是否成立的逻辑判断。
3.2 KPI预测队列模型文中KPIs主要指可量化的服务性能指标(如资源利用情况、被请求的服务数等)。在此利用M/M/1队列模型预测组合服务中未执行的组件服务KPI。到达的可用服务请求满足泊松分布, 到达率为λ。服务时间遵循均值为μ的指数分布。
设变量k表示单个KPI, k∈Vk=Av∪Cv∪Iv,Av为可允许值集合, 当k在该集合中时, 当前系统在该状态下, 所有定义在该KPI的QC完全满足。Cv为临界值集合, 当k在该集合中时, 当前系统在该状态下仍能满足最低质量要求。Iv为不可允许值集合, 当k在该集合中时, 当前系统在该状态下至少有一项已经不能满足服务质量要求的约束值(即QC)。假设Vk满足全序关系并且它的子集不相交。则有∀a, b, c:a∈Av, b∈Cv, c∈Iv s.t.a<b<c。
为了更加清晰展示预测过程, 借鉴M/M/1队列模型, 设计如图 2所示的通用队列模型。该模型将KPI集合Vk中离散特征值用队列表示。
|
图 2 队列模型 Fig. 2 Queuing model |
在队列模型中, Vk离散变量划分为不相交的N个区间Ii,Ii具有如下属性:
|
设t为服务监测时间, w为时间窗口, T为起始时间,w=t-T, T<t。当队列长度为LQ=I, 表示当前服务状态变迁到了Ii。从当前服务状Ii变迁到服务状态Ij, 该队列的生率

设Pj(t)=P{X(t)=j}, k∈I, {X(t), t≥0},在平稳分布时,

输入: QoS属性参数, QoS约束条件
输出: QoS属性SLA违例判定
步骤:
1) 服务模型定义:
complexType Services={Producers, Consumers};
complexType Producers={EP1, EP2, …};
complexType Consumers={EC1, EC2, …};
2) KPI定义: < simple/complex KPI > ;
3) QoS约束定义: < 约束条件表达式 > ;
4) QoS属性规格化:
system_state=ServiceInvocation P[F(system state=success)];
system_state=ServiceInvocation prec(ϕ);
5) 生成云组合服务的马尔可夫模型, 监测KPI:
|
6) 利用PRISM工具的QoS验证。
4 SLA违例预测在智能电网中测试将文中提出的SLA违例预测应用于智能电网管理中, 以此来测试云环境下的服务质量SLA预测模型的有效性。
智能电网是将IT构架应用于传统的电力网中, 实现电力资源生产、配送和消费的智能控制以及不间断地交换和处理信息。所以智能电表等终端设备通常先测量各种电气参数变量, 并将这些数据发送至计算设备,实现实时的数据监测和分析。供电运营部门主要职责是平衡电力需求和电力销售。将文中设计的预测模型应用于供电运营行为远程监控和分析。
4.1 智能电网队列模型智能电网预测模型由3个重要因素构成:电力供应商(ED)、电力生产商(EP)、电力用户(EC)。利用网络化的3个队列系统代表 3要素, 如图 3所示。每一个队列为KPIs离散代表,以队列长度和变迁率做为实现队列系统基本参数。在智能电网预测模型中, 集合Av, Cv, Iv将被表示为
|
|
|
图 3 智能电网队列模型 Fig. 3 Queuing model of smart grid |
其中,admmin, admmax分别表示可允许最小值和可允许最大值。crimin, crimax分别表示临界最小值和临界最大值。
4.2 队列系统基本参数更新以队列长度和变迁率作为实现队列系统基本参数。这些参数会实时地根据服务组件执行而更新。以队列长度作为可允许值和临界值的阈值。若当前状态先下降后上升, 则对应队列长度更新先加倍再减半。变迁率B的更新应用了指数加权移动平均法(EWMA)。设Y=y1, y2, …为时间序列, 变迁率B计算方法为:Bi=α(yi-yi-1)+(1-α)Bi-1。其中,变迁率初始值B0=0, α=ρ= 
在智能电网运行过程中会产生海量的QoS, 在此利用了复杂事件处理技术(CEP), 它可以胜任在数据密集、分布式架构下的大数据处理。利用CEP实现QoS监测和预测阶段的实时数据抽取、处理、传递。下面给出在电能生产商和电能用户的智能电表中,利用CEP从智能电表测量事件(SmartMeterMeasure)中抽取队列平衡指标(BI)的代码。
insert into BalanceIndicator
select (EP.measure-EC.measure) as index from EP.SmartMeterMeasure as EP,
EC.SmartMeterMeasureEvent as EC,
select "range_i" from BalanceIndicator where index index > =I_min and < =I_max
select measure, "CriticalValueMsg" from EP1.SmartMeter.win:time(15 min) where measure < BASE_PROD
4.4 监测约束条件设定为了简化问题, 在此设定两种QoS约束条件, 第一种为安全属性设定, 用来评定在15分钟内是否预测违例概率超过10%, 利用文中QC(质量约束)规范中定义的prec(ϕ)操作符表示为prec(ρ≥0.1[F≤30“违例状态”])=false。
第二种约束条件是,当如下情况发生时系统应给出通知:当前概率处于违例状态, 并在下面的30分钟内又连续出现两次, 即发生概率P≤0.05。表示为
prec(ρ≥0.1[F≤30“违例状态”])≤0.05 within 30min。
在本实验方案中, 假设平衡范围为800MW, 则[minb=-400, maxb=400]。首先,针对大小不同规模服务模型,估算其在QoS预测阶段花费的时间。在表 1中第1列给出了队列长度, 反映了不同规模的服务, 第2列和第3列不同大小服务表示不同规模服务的状态数和变迁数。根据服务的状态和变迁数, 利用CEP等工具, 得到第4列QoS预测阶段花费的时间, 在前面介绍的队列模型中, 该时间应该符合指数分布。从实际测量的第4列数据特征可以看出, 它恰好符合指数分布。另外, 最后一行数据服务规模非常大, 状态数和变迁数都超过了百万, 但是,实际QoS预测时间为563.831s, 这个速度和智能电网更新速度是匹配的, 所以,使用该模型能做到较好的服务质量预测, 对可能出现的SLA违例能给出及时的预报。
|
|
表 1 队列长度、服务大小、花费时间 Tab. 1 Queuing length, service number and time |
下面选择了队列长度为40的服务, 从另一个角度对文中提出预测模型进行测试。引发平衡变化的队列生率和灭率基本单元值为20MW。可允许最小值admmin=-200, 可允许最大值admmax=200, 临界最小值crimin=-380, 临界最大值crimax=380。针对第2种QoS的约束条件:prec(ρ≥0.1[F≤30“违例状态”])≤0.05 within 30min, 进行如下3种测试:
测试1:电力生产商输入电网的电力与电力用户需求平衡的;
测试2:电力用户需求是电力生产商输入电网的电力的两倍;
测试3:电力生产商输入电网的电力超过了电力用户需求。
图 4给出了3种不同测试方案下违例概率。在第1种测试方案中, 通过图 4看出违例概率在平衡点双侧均匀对称分布, 这和需求平衡现实相吻合。在第2种测试方案中, 最小违例概率高于其他两种情况。在第3种测试方案中, 所有生产过剩状态都具有较高违例概率, 而在过载状态时,却拥有较低违例概率。
|
图 4 违例概率分布 Fig. 4 Probability distributions of violation |
为了更加有效地验证文中提出方法的有效性, 选取了队列长度为100的服务, 在0~3 000ms时间区间内, 测试其实际服务运行时间和预测时间的关系, 违例预测结果, 并给出了预测准确性统计。
由表 2看出, 违例预测有效率达到了96.4%, 而且从表中看出只有在[1 500ms 3 000ms]时间区间中出现了预测违例小于实际违例情况, 也就漏检违例2个, 在其他时间区间中, 都有效地监测出了违例。
|
|
表 2 服务预测结果比较 Tab. 2 Service prediction result |
通过文中提出的服务质量预测模型, 利用概率模型定量和定性的分析技术, 实现了对云环境中SLA违例预测。在本模型中使用参数化的QoS模型(KPIs)完成了概率化模型监测分析, 以此估算未执行的服务QoS关键指标。利用这种QoS预警机制, 能对服务提供商服务质量监控, 尽可能避免服务用户获得违例服务。通过将本模型在智能电网中进行实例测试, 得出实际预测时间小于服务更新时间, 由此说明该模型的有效性。
| [1] |
WU J, JI L, LIANG T T, et al. Topic model based collaborative QoS prediction[J]. Applied Mathematics & Information Sciences, 2015, 8(5): 2545-2555. |
| [2] |
DAI Y, YANG L, ZHANG B. QoS-driven self-healing web service composition based on performance prediction[J]. Journal of Computer Science and Technology, 2009, 24(2): 250-256. DOI:10.1007/s11390-009-9221-8 |
| [3] |
ISLAM S, KEUNG J, LEE K, et al. Empirical prediction models for adaptive resource provisioning in the cloud[J]. Future Generation Computer Systems, 2012, 28(1): 155-162. DOI:10.1016/j.future.2011.05.027 |
| [4] |
DOSSARI A H, SHAO J H. Modelling confidence for quality of service assessment in cloud computing[C].International Conference on Information Resources Manaqement, 2013: 48-59. http://aisel.aisnet.org/confirm2013/48
|
| [5] |
张雪洁, 王志坚, 张伟建. 云计算中服务质量预测数据的信心建模[J]. 河海大学学报(自然科学版), 2015, 43(6): 588-593. |
| [6] |
LEITNER P, WETZSTEIN B, ROSENBERG F, et al. Monitoring, prediction and prevention of SLA violations in composite services[C]//2010 IEEE International Conference on Web Services.IEEE, 2010: 176-186. Monitoring, prediction and prevention of SLA violations in composite services[
|
| [7] |
LEITNER P, FERNER J, HUMMER W, et al. Data-driven and automated prediction of service level agreement violations in service compositions[J]. Distributed and Parallel Databases, 2013, 31(3): 447-470. DOI:10.1007/s10619-013-7125-7 |
| [8] |
CHEN T, BAHSOON R, THEODOROPOULOS G, et al. Dynamic QoS optimization architecture for cloud-based DDDAS[J]. Procedia Computer Science, 2013, 18: 1881-1890. DOI:10.1016/j.procs.2013.05.357 |
| [9] |
YAU S S, YE N, SARJOUGHIAN H, et al. Quality of service monitoring, diagnosis, and adaptation for service level management [M]//Enterprise Resource Planning: Concepts, Methodologies, Tools, and Applications. USA: IGI Global, 2013: 1213-1231.
|
| [10] |
叶世阳, 魏峻, 李磊, 等. 支持服务关联的组合服务选择方法研究[J]. 计算机学报, 2008, 31(8): 1353-1397. |
| [11] |
CARDELLINI V, CASALICCHIO E, GRASSI V, et al. Qos-driven runtime adaptation of service oriented architectures[C]//Proceedings of the 7th Joint Meeting of The European Software Engineering Conference and the ACM SIGSOFT Symposium on the Foundations of Software Engineering. New York: ACM, 2009: 131-140. http://www.mendeley.com/catalog/qosdriven-runtime-adaptation-service-oriented-architectures/
|
| [12] |
KHOLIDY H A, HASSAN H, SARHAN A M, et al. QoS optimization for cloud service composition based on economic model[M]//User-Centric Internet of Things. Rome: Springer International Publishing, 2015: 355-366.
|
| [13] |
WU Q T, ZHANG M C, ZHENG R J, et al. A QoS-satisfied prediction model for cloud-service composition based on a hidden markov model[J]. International Journal of Interactive Mobile Technologies, 2013(7): 67-71. |
| [14] |
代钮, 杨雷, 张斌, 等. 支持组合服务选取的Qos模型及优化求解[J]. 计算机学报, 2006, 29(7): 1167-1175. DOI:10.3321/j.issn:0254-4164.2006.07.018 |
| [15] |
ZHANG J, COHEN R. A personalized approach to address unfair ratings in multi-agent reputation systems[M]. Hakodate: Springer, 2006: 89-98.
|
| [16] |
SABATE R J, SIERRA C. REGRET: Reputation in gregarious societies[C]//The 5th International Conference on Autonomous Agents and Multi-agent Systems. Hakodate: ACM, 2006: 194-195. http://dl.acm.org/citation.cfm?id=376110
|
2017, Vol. 47