文章目录
- 【可更换其他算法,`获取资源`请见文章第7节:资源获取】
- 1. Web服务
- 2. QoS感知的Web服务组合
- 3. 改进后的CHHO算法
- 3.1 原始HHO算法
- 3.2 CHHO算法
- 4. 优化目标
- 5. 部分代码展示
- 6. 仿真结果展示
- 7. 资源获取
【可更换其他算法,获取资源
请见文章第7节:资源获取】
1. Web服务
Web 服务是一种跨编程语言和跨操作系统平台的远程调用技术。在Web服务中,统一称非功能属性集合是服务的服务质量(Quality-of-service,QoS)。常用的QoS属性值有:价格、响应时间、延迟时间、可靠性、可用性、吞吐量等。
2. QoS感知的Web服务组合
首先介绍两个概念:服务组合结构和聚合QoS值。
服务组合结构:目前主要包含四种基本的服务组合结构,分别是顺序结构、并行结构、选择结构和循环结构,如图1所示。
(1)顺序结构:严格按顺序执行,先执行
T
i
T_{i}
Ti,再执行
T
i
+
1
T_{i+1}
Ti+1。
(2)选择结构:所有处于选择结构中的所有服务执行概率的总和值为1。
(3)并行结构:所有的服务同时执行,只有当所有的服务都同时执行后,服务流程才算结束。
(4)循环结构:一个或者多个服务被连续执行多次,直到满足一定的跳出条件。
聚合QoS值:PQoS是服务组合的聚合QoS值,它也是一个非功能质量属性集合,包括价格、响应时间、可靠性和可用性等不同的质量指标。QoS属性的内在物理含义决定了它们在不同的服务组合结构(顺序、选择、并行和循环)中具有不同的叠加方法。聚合QoS的计算方法具有结构的相关性。
例如,对于响应时间的QoS属性,顺序结构的组合服务是严格按照前后依此的执行模式,因此顺序结构下响应时间的聚合 QoS 值通过累加求和得到;而在并行结构的服务组合中,聚合响应时间的 QoS 值为并行分支中服务响应时间的最大值。
3. 改进后的CHHO算法
3.1 原始HHO算法
原始哈里斯鹰算法,可以参考HHO算法介绍。
3.2 CHHO算法
本文的CHHO算法将Logistic混沌映射与原始哈里斯鹰算法结合所得到。
Logistic映射是混沌映射的典型代表,它的数学形式比较简单,其表达式如下:
Y
n
+
1
(
t
)
=
b
Y
n
(
1
−
Y
n
)
Y_{n+1}(t)=bY_{n}(1-Y_{n})
Yn+1(t)=bYn(1−Yn)
式中, Y n ∈ [ 0 , 1 ] Y_{n}\in [0,1] Yn∈[0,1], a ∈ [ 0 , 4 ] a\in [0,4] a∈[0,4]为Logistic参数。当 a a a接近4时, Y Y Y的取值范围是越接近平均地分布到整个 [ 0 , 1 ] [0,1] [0,1]区域。
4. 优化目标
本文web服务组合优化的目标是找到一组满足用户全局约束(响应时间和延迟时间最小)并最大化聚合QoS性能的抽象服务组合。因此,我们可以将其建模为混合整数规划问题。数学描述如下:
5. 部分代码展示
N=30; % 种群数量
T=50; % 最大迭代次数
abstract_service_num=5; % 任务数
concrete_service_num=70; % 每个任务可选的服务数
QWS2data=dividing_data(concrete_service_num,abstract_service_num,s1data);% rand dataset
% Runnpaoing the preprocessing method of Fuzzy Optimal Continuity Construction (FOCC).
Preprocessing_QWS2data=pre_FOCC(QWS2data,4,1); % FOCC(refer to Section.III.C)
% Running CHHO.
[Rabbit_Location,Rabbit_Energy,Rabbit_value,Curve]=CHHO(N,T,concrete_service_num,abstract_service_num,Preprocessing_QWS2data);
% print result
figure
plot(Curve,'r-')
xlabel('迭代次数');
ylabel('最优QoS值');
title('基于CHHO算法的QoS感知的web服务组合寻优')
legend('CHHO')
disp('The QoS values of best composition service [Response Time,Latency]:');
disp('Note:These values have been standardized(bigger is better).');
display(num2str(Rabbit_value));
display(['The csQos_fitness of best composition service by CHHO is: ', num2str(Rabbit_Energy)]);
6. 仿真结果展示
7. 资源获取
A资源获取说明.rar