APP下载

Web服务环境下的信任评估模型研究

2019-07-08卢杰骅

计算机时代 2019年6期

卢杰骅

摘  要: 针对复杂业务环境下Web 组合服务的信任评估需要,对服务编制和服务编排两种组合机制进行了分析,重点针对服务编排提出了一种基于信任有向图和信任传递机制的信任模型,并给出了基于向量运算的信任评估方法。通过仿真实验,验证了该信任模型和评估方法的有效性。

关键词: 组合服务; 服务编排; 信任模型; 信任评估

中图分类号:TP311          文献标志码:A  文章编号:1006-8228(2019)06-19-04

Abstract: Composite service that contains complex business logic and data interaction requires effective trust evaluation mechanisms. In this paper, Orchestration and Choreography these two mechanisms of service composition are analyzed, focusing on service choreography, a trust model based on trust directed graph and trust transfer mechanism is proposed, and the trust evaluation mechanisms based on vector operation are also proposed. The effectiveness and feasibility of the trust model and trust evaluation method are verified by simulation experiments.

Key words: composite service; service choreography; trust model; trust evaluation

0 引言

随着SOA、SaaS和云计算思想的不断推进,服务流程、服务组合等技术得到不断应用,Web服务逐渐从简单的功能封装向能够自主适应服务调用对象和网络应用环境的智能化方向发展。而智能化的服务,更多地表现为由多个小粒度、功能单一且结构简单的服务构造而成的大粒度服务(组合服务)。因此,组合服务将是Web服务的主流形态和表现形式。由于组合服务内部集成了大量基本服务单元并且包含了复杂的业务逻辑和过程约束,导致大粒度服务的协同变得尤为复杂。与简单服务之间的协同相比,交互次數从单次变为多次反复、交互内容从单一消息到多消息的传递、交互过程从无状态变成有状态等,这些变化都给组合服务的信任建模与评估都带来了极大的困难。

当前的Web服务信任研究和应用大多基于细粒度的原子级Web服务,面向组合服务的信任评估机制并不多,如黄龙涛等人针对组合服务提出了一种基于服务编排(Choreography)模式的信任评价机制,基于业务流程的执行路径和概率对组件服务进行信任集成[1],Motallebi、林 青、沈宏伟等工作团队在组合服务的可信研究中都引入了贝叶斯网络,提出了不同的信任节点设置机制,通过节点可信度计算和节点关联度分析来预测整体组件服务的可信度[2-4];S.Nepal提出了一种组合服务的信任评估机制,通过计算每个组件服务的信任贡献度设定其信任分配向量,贡献度的计算主要依据组件服务的重要性和一致性[5]。

总体来说,当前围绕组合服务的信任研究还处于初步探索阶段,大多还是将组合服务视为一个整体,忽略了服务组件之间的信任关系对整体信任评估的影响,因此无法全面、完整的度量组合服务的可信度。本文在Web组合服务信任模型中引入服务编排组合机制,提出了一种基于信任有向图和信任传递机制的信任模型,并给出了基于向量运算的信任评估方法。

1 信任建模

1.1 服务组合机制

服务组合信任建模的困难主要源于其组件服务间存在的复杂业务逻辑,为此,首先需要对服务组合机制进行深入分析。目前主要有两种服务组合机制,即服务编制(Orchestration)和服务编排(Choreography)。

服务编制使用一个中心节点来协调不同的Web 服务操作。这个中心节点了解该服务协作的总体目标、涉及的操作以及操作的调用顺序。中心节点可以看成是一个可执行的大粒度Web服务,只是需要调用其他的Web服务。参与该协作的服务只需要与中心节点进行交互,不需要了解整个组合的业务流程甚至可能不知道自己参与了组合。OASIS为服务编制制定了标准—Web服务业务流程执行语言WS-BPEL (Business Process Execution Language)[6]。

服务编排定义多个参与者如何在协作中,相互交换信息,进行对等的协作。与编制不同,编排是一种对等模型,业务流程中会有很多协作方,编排并不描述每个参与者是如何处理操作的,而是描述不同参与者之间如何彼此交互。Web服务编排描述语言WS-CDL(Web Services Choreography Description Language)[7],是W3C推荐的Web服务编排标准。对于编排服务,我们根据服务的内部业务流程将服务间的信任关系形式化为信任关系有向图,如图1所示。

图1中的节点用于表示组件服务和流程控制节点,实线边表示逻辑依赖,虚线边表示数据依赖,边的起点为被依赖组件,边的终点表示依赖组件。该有向图能够清晰的表示出整个服务组合的业务流程,同时还能够表示出参与该组合的组件服务之间的交互依赖情况,图中从S到E之间的所有可能路径即为该组合的业务执行路径。

1.2 信任传递机制

在组合服务中,组件服务之间为了完成一定的业务目标,需要进行直接或间接的交互,对于编制服务而言,由于组件服务只与中心节点交互,因此无需考虑组件之间的信任关系。但对于编排服务,组件服务之间往往是直接进行交互,组件之间存在着一定的依赖关系,特别是当组件之间存在数据依赖关系时,如图1中,w5对w4数据依赖,即w4的输出将作为w5的输入,但是如果w5对w4的信任度较低,w5完全有可能拒绝w4的传入参数,所造成的结果就是w5与w4所在的执行路径无法正常执行,也就导致该服务组合不能按照预期为用户提供满意的结果,因此对于编排服务组合而言,对存在数据依赖关系的组件服务进行信任关系的度量是非常有必要的。

为此我们建立信任传递机制,若A对B的信任度为T1,B对C的信任度为T2,则A对C的信任度为:u=f(T1,T2),其中f为信任传递函数。基于信任的传递性,我们可以度量两个从未交互过的组件服务A和B之间的信任度,采用类似路由算法的方法得出A和B之间的信任路径。在具体测算中,考虑到不同用户对服务质量的评价是独立做出的,并且返回评价的真实度受到所有传递这条评价的用户的影响,我们使用概率的乘法公式来融合两个或两个以上的信任度。假设A对G的信任度为0.6,G对K的信任度为0.5,那么A对K的信任度为0.3(0.6×0.5)。

2 信任评估

2.1 组件服务的可信度

我们基于Josang提出的形式化信任的概念,基于已知原子服务的受信情况,使用β密度函数定义原子服务的可信度计算公式,公式定义如下:

如果r<1,则θ≠0,如果s<1,则θ≠1。

r表示服务消费者与服务的历史交互中产生积极交互体验的次数,s表示服务消费者与服务的历史交互中产生消极交互体验的次数,θ为概率密度。

对应的,我们给出表示服务信任度的三元向量,称为信任向量,,其中ti+di+ui=1,且满足如下关系:

ti为信任确定度,di为不信任确定度,ui为不确定度。在服务发现和服务组合时,计算所有备选服务的信任向量,通过筛选,选出ti值最高的服务,若同时有多个服务的ti值最高,则选取其中ui值最低的服务。

2.2 不同信任机制的建模方式

对于Web组合服务,除了要对其内部组件服务进行信任评估,还需要对其业务组织进行信任评估。对于编制服务来说,由于所有组件服务都会与中心节点进行交互,那么中心节点与所有组件服务之间的信任关系将决定整个大粒度服务是否能成功运行。而对于编排服务,则需要评估有交互关系的组件服务之间的信任关系。

针对服务编制和服务编排的不同特点,可以采取不同的信任建模方式。对于服务编制,用一個二元组表示其信任度T0=,其中Tc为所有组件服务的信任向量的集合,TR表示所有的组件服务与中心节点之间的信任关系的集合。对于服务编制,由于每个组件服务只与中心节点进行交互,因此,无需考虑执行路径,只需要评估每个组件服务,以及每个组件服务与中心节点之间的信任关系。

对于服务编排,用一个三元组表示其信任度,Tc=,其中Tc'表示所有组件服务的信任向量的集合,TR'表示所有存在交互关系的组件服务之间的信任关系集合,P表示该服务组合内部所有执行路径的集合。由于服务编排中存在复杂的组件逻辑关系,需要给出对应的信任运算规则。

2.3 信任运算规则

根据服务之间不同的信任关系,可以通过组件服务的信任向量运算,推导出服务协作即大粒度服务的信任度,运算规则主要包括传递、合并及合意。传递运算用于服务间的信任推导,合意运算用于计算相互独立但是对同一个信任内容有信任记录的服务间的综合信任度,合并运算用于服务间的相关运算。

在计算服务编排机制的组合服务信任度时,我们首先根据其内部业务逻辑构建由组件服务组成的信任有向图(如图1所示),确定所有从初始状态到结束状态的执行路径,然后对每一条路径结合该路径上的组件服务以及存在交互关系的组件服务之间的信任关系进行信任评估,最后再根据每条执行路径的执行概率综合得出该服务组合的信任度。

3 仿真实验

当前国内外主流的Web服务发现和组合算法及工具已经有了很好的综述性梳理[8],我们选取WSBen搭建仿真实验环境,它能够随机生成包括不同的数据和模型特征的Web服务,服务以WSDL文件形式存在,还能够随机生成用来测试发现和组合算法的查询语句来模拟组合服务。在WSBen的基础上,通过在Web服务中增加信任属性和关联属性,我们制作了组合服务信任评估原型系统来进行仿真实验。

首先随机生成1000个Web组件服务,随机设置组件服务之间的关联关系及对应的信任值。然后生成A、B、C三组代表组合服务的样本训练集,每个训练集均由100条查询语句组成,代表100个随机产生的组合服务。查询语句满足以下条件:①每条查询语句只有唯一的输入(服务)和输出(服务),可从1000个组件服务中随机抽取;②输入和输出对应的组件服务之间不存在直接关联关系;③查询语句的复杂度由高到低,训练集A对应的组合服务的最短路径(组件服务数)在7个以上,训练集B在5个以上,训练集C在3个以上。

应用本文给出的信任模型计算三组训练集对应的组合服务的可信度,并从三组训练集间找到“相似”的观测点(输入输出相同、内部业务逻辑不同的组合服务)。比较三个训练集的观测点,结果如图2所示。

从图2中可以看到三个训练集在观测集上的曲线非常拟合,表示针对同一个服务组合对之间的信任预测,尽管有着完全不同的内部业务逻辑,三个训练集的结果是相近的,这说明本文所给出的组合服务信任模型及信任评估方法是有效的。从图2中还可以看到三个训练集的信任度,总体来说C高于B高于A,这也说明随着组合服务内部业务逻辑的复杂度上升,信任评估存在损耗现象。

4 结束语

在Web服务日趋复杂的发展背景下,本文针对组合服务内部的复杂业务逻辑,对其信任模型以及评估机制进行研究,对服务编制和服务编排两种组合机制进行了分析,重点针对服务编排提出了一种基于信任有向图和信任传递机制的信任模型,给出了一种基于信任向量的信任运算规则,通过仿真实验,验证了该模型的有效性。下一步需要分析信任路径中的信任损耗问题,通过设置关键节点引入信任路由算法来进一步完善组合服务的信任评估机制。

参考文献(References):

[1] Longtao Huang, Shuiguang Deng, Ying Li et al. Yin.Data-Dependency Aware Trust Evaluation for Service Choreography[C]//2011 9th IEEE International Conference on Web Services (ICWS), Washington, DC, USA:IEEE,2011:708-709

[2] Motallebi, M.Ishikawa, F.Honiden.Trust Computation inWeb Service Compositions Using Bayesian Networks[C]//2012 19th IEEE International Conference on Web Services (ICWS),Hawaii,USA:IEEE,2012:623-625

[3] 林青,戴慧臖,任德旺.基于貝叶斯网络的量化信任评估方法[J].计算机技术与发展,2016.26(12):132-136

[4] 沈宏伟,邵堃,张阳洋等.基于朴素贝叶斯的信任决策模型[J].小型微型计算机系统,2018.39(2):275-279

[5] S.Nepal,Z.Malik,A.Bouguettaya.Reputation Propagation inComposite Services[C]//2009 7th IEEE International Conference on Web Services (ICWS), Los Angeles,USA:IEEE,2009:295-302

[6] WS-BPEL,http://www.oasis-open.org/committees/wsbpel/[S].

[7] WS-CDL,http://www.w3.org/TR/2004/WD-ws-cdl-10-20041217/[S].

[8] 丁志军,周泽霞.Web服务组合测试综述[J]软件学报,2018.29(2):299-319