信任导向的复合服务选择与嵌入式P2P系统服务发现
信任导向的复合服务选择
在复合服务选择中,当面临多个后继服务节点时,需要依据信任值来确定选择的概率。假设后继节点A和B的信任值分别为 $T_A$ 和 $T_B$,那么顶点S选择后继节点A的概率 $P_A$ 和选择后继节点B的概率 $P_B$ 可通过以下公式计算:
- $P_A = \frac{T_A}{T_A + T_B}$
- $P_B = \frac{T_B}{T_A + T_B}$
显然,$0 < P_A, P_B < 1$。接着,生成一个在(0, 1)区间内均匀分布的随机数 $r_0$ 来决定选择哪个后继节点:
- 若 $r_0 < P_A$,则选择后继节点A;
- 若 $P_A < r_0 < P_A + P_B = 1$,则选择后继节点B。
给定一个服务调用图(SIG),通过从服务调用根节点START开始重复蒙特卡罗方法(MCBA),直到到达服务调用终端END,就可以得到一个服务执行流(SEF)。一旦生成了一个SEF,就可以使用全局信任计算算法来计算其全局信任值。通过重复这个过程 $l$ 次模拟,可以生成一组SEFs,从中可以获得具有最大全局信任值的局部最优SEF。为了获得最优解,通常需要较大的 $l$ 值。
MCBA的复杂度分析如下:在信任估计算法中,对于 $n$ 个评级,其复杂度为 $O(n)$。因此,在全局信任计算算法中,对于包含 $N$ 个服务的复合服务,信任评估的复杂度为 $O(nN)$。所以,进行 $l$ 次模拟的MCBA的复杂度为 $O(nlN)$。