随着云计算和企业网络服务近年来的不断发展, 对Web服务的使用愈发频繁. Web服务是在面向服务计算(Service-Oriented Computing, SOC)松散耦合环境中被描述、发布和定位的应用程序模块, 自身是一种自治、开放与平台无关的网络化构件. 作为当前面向服务架构(Service-Oriented Architecture, SOA)主流实现方式, 它使应用具有更好的灵活性、复用性及可增长性.
构建一个复杂应用时, 可能需要集合网络环境下多个服务, 选择满足用户需求的最佳服务, 构建Web服务可信性评估模型就至关重要. Web服务的可信是整个网络化软件可信的基础, 不同的背景下, 国内外众多学者对信任评估模型进行了广泛研究[1,2]. Bhargava[3]提出一个自组织对等网络信任模型. 在这个模型中, 对等点使用本地可用信息创建信任网络. 对于面向服务的移动社交网络, Liang[4]给出了一个通过收集和存储用户评论的模型. 在其基础之上, Ding[5]提出了CSTrust框架的概念, 通过结合客户满意度和QoS来预测云服务. 此外, 该作者[6]还提出了一种通过收集可信证据, 根据用户实际需求情况, 充分考虑缺失值预测及多属性分配不同属性权重的方法. Li[7]给出了基于实际可信证据基础之上的质量水平模型. Fernandez[8]提出了一种使用化学反应方程式促进分散工作流执行的方法. 然而, 该方法并未提供一个明确的机制来处理开放的环境, 以支持服务可以在任意时刻连接或离开. Liu[9]构建了带修正的主观可信性评估模型, 在标准SOA中融入信托管理模块, 把Web网络转变为一个基于可信任实体的小型网络. Sim[10] 提出了一种自组织多代理方法, 进行云环境中分散的服务组合, 用服务能力表来维护云服务实时信息, 但对其的过度依赖成为一个不可避免的问题. 为反映动态环境中时刻产生的变化, 服务能力表需要定期更新, 会限制其部署在高度动态环境下的适用性.
由于当前Web服务实体之间交互方式的复杂性、多样性[11], 难以构建一个长时间持续通用的评估模型. 多数静态和定性信任模型也不足以描述这种不断变化、高度动态的环境. 因此本文提出一种将模糊理论与信息熵相结合的综合可信性评估模型, 通过计算客观评价矩阵的信息熵, 对主观权重进行修正. 同时将可信性评估指标体系中属性分为标准指标和修正指标, 对反馈而来的信息进行有效处理, 改善了动态适应性不强的问题, 使评估结果更加客观合理.
1 基于信息熵的权重修正 1.1 信息熵熵的概念源自热力学, 表示一个系统的混乱程度, 而在通信领域将其用来度量信源中信号的不确定性, 系统的不确定性与熵值成正比. 在模糊评判矩阵
在已确定主观权重的基础之上, 采用信息熵理论确定系统各类缺陷客观权重来修正评估因子权重, 步骤如下:
1) 将主观评价作为初始权重:
$w = ({w_1},{w_2}, \cdots , {w_n})$ | (1) |
2) 设模糊评判矩阵
${h_i} = - \mathop \sum \limits_{i = 1}^M {r_{ij}}{\rm{ln}}({r_{ij}})$ | (2) |
规定
3) 为了避免出现量纲不统一的情况, 对
${h_i}^\prime = - \mathop \sum \limits_{i = 1}^M {r_{ij}}{\rm{ln}}({r_{ij}})/{H_{\max}}$ | (3) |
当且仅当差异度完全相同时, 信息熵可取得最大值1.
4) 第
$\theta _i = \left( {1 - {h_i}^\prime } \right)/\mathop \sum \limits_{i = 1}^n \left( {1 - {h_i}^\prime } \right)$ | (4) |
得权重向量
$W_j = \mathop {\lim }\limits_{Pij \to 1} \dfrac{{{{\left( {1 - {h_i}^\prime } \right)}^{ - 1}}}}{{\mathop \sum \nolimits_{i = 1}^n {{\left( {1 - {h_i}^\prime } \right)}^{ - 1}}}}$ | (5) |
5) 利用客观权重系数对主观权重向量进行修正:
${w_i}^\prime = \frac{{{w_i} \times \theta _i}}{{\mathop \sum \nolimits_{i = 1}^n {w_i} \times \theta {{_i}}}}$ | (6) |
最终缺陷评估指标权重
随着模糊计算、区间计算和概率论与数理统计等理论引入, 将证据理论与决策理论相结合, 可用于处理信息不精确、定性定量混合的决策问题和信息模糊性及不确定性的合成问题. 首先给出信任定义, 然后提出用于复合信任计算的多重策略, 最终提出一个可信条件下的评估模型来计算服务的复合信任值.
信任定义为取值在[0, 1]之间用来衡量服务按预期执行的可能性概率. 面向服务的应用程序需要通过服务声誉和执行历史来访问动态、可量化的复合信任方案. 信任方案必须捕捉到各种场景中服务间相互作用, 并计算其可信赖程度. 由于面向服务架构的复杂性, 当前多数研究采用的单一信任度量标准在可信证据数据上较为单一、收集复杂、可执行性低, 由此本文提出了三种不同类型度量指标, 从侧面获取Web服务生命周期各阶段数据对其进行归类分析, 再结合信息熵权重确定每种指标的可行权重, 最终构造可信评估度量模型.
2.1 可信指标分类Web服务动态可信指标评估体系从静态特性和动态特性两方面对服务可信状态进行评估, 通过定制信任属性和信息熵权重, 实现服务可信评估体系的定制性和扩展性. 将可信特性解析分类, 以常规软件开发时期的模型分析、软件验证等服务自主可信性方法作为基础指标, 并增加变化的协作环境指标. 在系统运行过程中, 每个实体可信性能够动态评估, 以便于切换到更可信实体.
基础指标: 初步评估的可信指标, 由传统可信属性指标构成, 如功能性、可靠性、可用性、可维护性、可重用性等, 通过许多现有传统方法获得, 作为可信性初始评价.
内部修正指标: 为使评估更客观, 基础指标需通过一些与可信评估密切相关的因素进行修正, 因此对该服务提供者所开发的其他Web服务开发水平进行评估, 如编程规范性、项目文档完善性、开发人员研发经验、项目进度管理规范性、测试质量等进行评估, 是由统计量(即系统的训练数据)计算的校正度量. 没有单一策略适用于所有SOA场景, 必须选择基于应用领域和敏感性的对应策略. 例如, 较严格的策略适用于一些关键服务场景(军事、航天等), 而对于某些商业或不太敏感的场景, 同样的限制则显得有些苛刻[12].
外部指标: 主要强调服务在部署和运行时的稳定性和安全性. 若网络状况不佳, 在其上运行的程序也难以提供持续稳定服务, 因此在考虑服务本身相关可信性基础之上, 考虑服务所在动态开放、不可控的网络运行环境状况对当前可信性的影响, 如网络安全性是指在系统受到恶意攻击时, 安全策略可以保护系统敏感数据不被非法访问的概率. 稳定性是软件系统在正常情况和时间内完成所需功能的概率, 可以通过故障注入测试来评估. 此类指标在服务每次申请时, 需重新进行QoS计算, 即:
$Trustworthiness = (1 - {e^{ - \beta n}})\mathop \sum \limits_{i = 1}^n \dfrac{{{t_i} - {t_j}}}{{\mathop \sum \nolimits_{i = 1}^n \left( {{t_i} - {t_j}} \right)}}{T_i} + {e^{ - \beta n}}T*$ | (7) |
贝叶斯推理通过对概率分布和观测数据进行推理做出最优决策, 当假设前提正确, 每个训练数据集会适度调整预估概率. 贝叶斯网络通过指定一组条件独立假设和局部条件概率来表示一系列变量间的联合概率分布, 将先验知识与观测数据结合, 确定最终假设概率. 某时刻Web服务可信性被认为是个体能够满足可信条件下提供服务的修正后验概率, 即:
$\begin{array}{l} {P_{\rm{metrics}}} = \mathop \prod \limits_{i = 1}^n P_i\left( {T{\rm{|}}A} \right)P_i\left( {T{\rm{|}}{T_{\rm{dynamic}}}} \right) \\ \;\;\;\;\;\;\;\;\;\;\;\;\;\;= \mathop \prod \limits_{i = 1}^n \dfrac{{P_i\left( {AT} \right)}}{P_i{{\left( A \right)}}}P_i \left( {T{\rm{|}}{T_{\rm{dynamic}}}} \right) \!\\ \;\;\;\;\;\;\;\;\;\;\;\;\;\;=\! \dfrac{{P\left( {A{\rm{|}}T} \right)\mathop \prod \nolimits_{i = 1}^n P_i\left( T \right)}}{{P\left( A \right)}} Avg\left( {\displaystyle\sum Trustworthiness} \right) \end{array}$ | (8) |
对某企业订单管理系统中的地图服务使用DTMIECM可信性评估模型进行实验研究. 该系统由业务逻辑模块、内部组件和外部组件三部分组成, 企业对库存、供应商、订单等具有管理功能. 内部组件是被封装的公共服务, 可直接被其他模块调用, 这些组件是由应用程序开发人员为提高重用性、降低成本而开发, 通常为本地组件或Web服务, 外部组件则为第三方提供的开发良好的实体, 封装应用功能并作为服务通过Internet与系统交互.
内部组件中Web服务通过局域网与业务逻辑模块交互, 将第三方提供的聚合应用程序作为外部组件进行集成. 在Web开发中, 聚合程序是一种新型的、由来自两个或多个来源的数据集组合而成的应用程序. 越来越多Web应用发布了API, 使软件开发人员无需自行构建就能够集成数据和功能. 系统中本地模块, 如入站管理模块、外部管理模块、库存模块和供应商管理模块, 在同一个环境中开发和集成, 它们之间不存在接口兼容性问题, 可以看作是单一实体. 内部公共组件是用户开发的服务实体, 与其他模块兼容, 不存在结构依赖. 在图1中, 地图服务1和地图服务2只支持SOAP, 而地图服务3只支持REST. 在使用地图服务1和地图服务2时, 可以选择定位信息1和定位信息2作为基础服务. 同样, 当使用地图服务 3时, 只能选择定位信息3. 在构造结构依赖关系图后, 利用每个服务度量指标计算集成模块可信性, 从而选择最佳集成方法.
首先以定位信息1服务为例, 计算了基础实体可信性. 根据上述算法, 通过传统方法并归一化, 功能性0.97, 可用性0.95, 可靠性0.95, 效率性0.94, 可维护性0.93, 可重用性0.90. 利用评估实体开发过程的因素作为内部修正度量, 获得实体可信性. 如表1所示, 当Web服务适用不同可信性评估策略时, 采用不同可信性修正指标. 数据来自于多个实际软件开发项目, 由于软件过程因素不同, 其各自可信性是不同的. 该表通过总结各种软件开发案例所得, 并在系统运行过程中不断完善.
策略一: 选取全部修正指标, 其联合概率可以根据可信性条件概率表来计算,
$\begin{array}{l} {P_{\rm{metrics}}} \\ \;\;\;\;= \frac{{0.32 \times \left( {0.97 \times 0.95 \times 0.95 \times 0.94 \times 0.93 \times 0.90} \right)}}{{0.25}} \times \frac{{0.987 + 0.954 + 0.988}}{3} \\ \;\;\;\;= 0.860 \end{array}$ |
策略二: 修正指标选取测试质量、编程规范性、研发经验, 此时
策略三: 修正指标选取测试质量、编程规范性、文档完善程度、项目进度管理, 此时
策略四: 不选取此类中任何指标, 即不进行修正操作, 此时,
在所有需要的底层服务通过以上方法计算完成后, 便为上层服务可信性计算提供了前提条件. 通常来讲, 一个上层服务会与下层多个冗余服务相连接, 当一个相对底层的服务因某些因素不可用时, 可以将其切换到另一个可信性较高的服务, 以此可显著提高系统可信性. 因此在这种中断冗余结构中, 影响上层服务可信性的因素即为所有下层服务都不可用的概率. 以定位信息1的上层服务, 也就是地图服务1可信性计算为例, 由以上计算可知与其存在依赖关系的定位信息1与定位信息2的可信性分别0.860与0.936.
$\begin{array}{l} {P_{\rm{mapService1}}} \times (1 - \mathop \prod \limits_{i = 1}^n (1 - {P_{{\rm {locatingInformation}}i}}))\\ \;\;\;\;= 0.961 \times \left( {1 - \left( {1 - 0.860} \right) \times \left( {1 - 0.936} \right)} \right) = 0.952 \end{array}$ |
通过上述实际案例验证及分析, 该模型能够清晰客观地评估服务的可信性, 结果符合平台用户和企业生产需求状况, 并通过与蔡斯博[13] 提出的支持资源的可信框架对比发现, 在正面收集证据信息, 度量可信属性难以避免地面临着现实中某些证据难以收集, 可行性低的问题. 而徐传运[14]收集的数据主要来自软件测评, 相对单一片面. DTEIECM方法在动态可信性评估中考虑众多影响因素, 从开发、三方测评、用户反馈等层面采用了不同评估指标, 数据跟为全面, 提高了度量过程中的准确性. 其中修正指标有一定主观影响, 主要是由于每个服务单元都是由不同的第三方开发的, 因此差异性也比较大. 同时, 对于某个时刻复杂软件系统进行动态可信评估时, 其所处网络环境、数据资源等因素对整体可信性影响也非常重要, 因此在对下一时刻可信性评估时, 需要重新评估这些因素的影响程度, 将服务可信值变化客观地反映到QoS信息中, 并以动态更新后的值作为服务选择依据, 针对网络环境下Web动态可信性评估所提出的集成评估方法具有有效性和可行性.
4 结束语为解决软件系统动态演化特性, 本文提出了一种网络环境下的Web服务可信性动态评估模型, 综合对实体可信性方面的评估与修正, 从多项属性和证据中计算出最终可信性结果. 评价体系基于其特点, 以用户服务实体事实作为客观评估的依据, 而非单纯地依赖服务代理商提供的数据, 克服了常规主观赋权法不可避免地受人为因素影响的不足, 为每个服务可信性评估提供了良好基础. 评价指标既包含了开发时期的模型分析、验证和测试等保障指标, 又考虑了与质量控制措施相关的修正指标和结合反馈值的环境指标, 克服传统模型中仅依靠静态指标方法的局限性.
由于需要对不同类型的类型指标进行度量, 并采用模糊理论推导信息熵, 以及贝叶斯推理结合基础指标和修正指标等概率计算, 不可避免的会带来更高的运算复杂度. Web服务相关技术的不断发展使网络中服务数量快速增长, 且存在大量功能相似的服务, 因此对每个原子服务进行可信性评估时, 如何在提高准确度的同时尽可能的降低应用成本是下一步工作的研究重点, 亟待探究. 这对于更加全面有效地对网络环境下的Web服务可信性进行评估具有重要意义.
[1] |
Wahab OA, Bentahar J, Otrok H, et al. A survey on trust and reputation models for Web services: Single, composite, and communities. Decision Support Systems, 2015, 74: 121-134. DOI:10.1016/j.dss.2015.04.009 |
[2] |
Viriyasitavat W, Martin A. A survey of trust in workflows and relevant contexts. IEEE Communications Surveys & Tutorials, 2012, 14(3): 911-940. |
[3] |
Can AB, Bhargava B. SORT: A Self-ORganizing trust model for peer-to-peer systems. IEEE Transactions on Dependable and Secure Computing, 2013, 10(1): 14-27. DOI:10.1109/TDSC.2012.74 |
[4] |
Liang XH, Lin XD, Shen XS. Enabling trustworthy service evaluation in service-oriented mobile social networks. IEEE Transactions on Parallel and Distributed Systems, 2014, 25(2): 310-320. DOI:10.1109/TPDS.2013.37 |
[5] |
Ding S, Yang SL, Zhang YT, et al. Combining QoS prediction and customer satisfaction estimation to solve cloud service trustworthiness evaluation problems. Knowledge-Based Systems, 2014, 56: 216-225. DOI:10.1016/j.knosys.2013.11.014 |
[6] |
Ding S, Xia CY, Zhou KL, et al. Decision support for personalized cloud service selection through multi-attribute trustworthiness evaluation. PLoS One, 2014, 9(6): e97762. DOI:10.1371/journal.pone.0097762 |
[7] |
Li WH, Bao T, Han L, et al. Evidence-driven quality evaluation model of collaboration software trustworthiness. Proceedings of the 2014 IEEE 18th International Conference on Computer Supported Cooperative Work in Design. Hsinchu, China. 2014. 65–70.
|
[8] |
Fernández H, Tedeschi C, Priol T. A chemistry-inspired workflow management system for decentralizing workflow execution. IEEE Transactions on Services Computing, 2016, 9(2): 213-226. DOI:10.1109/TSC.2013.27 |
[9] |
Liu FM, Wang L, Gao L, et al. A web service trust evaluation model based on small-world networks. Knowledge-Based Systems, 2014, 57: 161-167. DOI:10.1016/j.knosys.2013.12.015 |
[10] |
Sim KM. Agent-based cloud computing. IEEE Transactions on Services Computing, 2012, 5(4): 564-577. DOI:10.1109/TSC.2011.52 |
[11] |
Chen L, Tang J. Dynamic reliability for software system based on monitoring. Computer Systems & Applications, 2014, 23(6): 179-182. |
[12] |
Azarmi M, Bhargava B. An end-to-end dynamic trust framework for service-oriented architecture. 2017 IEEE 10th International Conference on Cloud Computing. Honolulu, HI, USA. 2017. 568–575.
|
[13] |
蔡斯博, 邹艳珍, 邵凌霜, 等. 一种支持软件资源可信评估的框架. 软件学报, 2010, 21(2): 359-372. |
[14] |
徐传运, 杨丹, 张杨. 缺陷驱动的Web服务可信性度量模型. 计算机应用研究, 2011, 28(7): 2723-2725, 2733. DOI:10.3969/j.issn.1001-3695.2011.07.092 |