Web服务组合策略研究及组合决策平台实现
2018-08-23荣国平文俊浩
郭 雪,李 铮,张 贺,荣国平,文俊浩
(1.南京大学软件学院,江苏 南京 210093;2.康塞普西翁大学计算机系,智利 康塞普西翁 4070409; 3.重庆大学大数据与软件学院,重庆 401331)
1 引言
随着服务计算的日益成熟以及微服务理念的兴起,面向服务架构SOA(Service-Oriented Architecture)成为一个经久不衰的热点。SOA的一个重要理念是强调单个服务的细粒度和低耦合,以提高服务的可重用性和可维护性,进而通过服务组合来实现更复杂的功能并满足多样的业务需求[1]。在实际应用中,这种细粒度和低耦合的抽象服务概念往往由Web服务技术加以实现。相应地,Web服务组合WSC(Web Service Composition)受到研究者广泛的关注,大量WSC研究喷涌而出。
当前,各界提出了大量的Web服务组合方法,而这些方法可以根据不同的性质和侧重点进行分类。例如,从参与组合的Web 服务的绑定时间来分有静态组合(Static)和动态组合(Dynamic)两大类[2,3];从组合实现方式可以分为服务编制(Orchestration)和服务编排(Choreography);从组合过程中的自动化程度可以分为人工、半自动和自动三大类[4]。对于服务组合实施者而言,如何从不同类别选择多种组合方法来构建可行而高效的组合方案是现阶段亟待解决的关键问题之一。这就要求一个可以帮助WSC实施者选择多种服务组合方法的决策机制。
然而,现阶段大多数对服务组合方式的研究只是从单一的角度出发,着力于某一侧重点的组合方法的统计与比较。例如,文献[2]对组合方法从过程驱动和语义驱动两方面进行探讨。文献[4]概述了一系列基于手动和自动、静态和动态分类标准的组合方法。文献[5]将当前Web 服务组合方法分为以下三类:基于人工智能规划的组合方法、基于图搜索匹配的方法、基于逻辑推理的组合方法。文献[6]则介绍并比较了基于工作流和基于AI规划的组合方法。
也有部分研究较为全面地概述了多角度不同侧重点的组合方法,但分类标准较少,而且仅仅给出了简单的工作量估算和开销对比方案,并没有就多角度方法组合决策做出研究讨论。文献[7,8]中构建了多标准的服务组合方法矩阵,并且文献[7]提供了一种采用分治算法D&C(Divide and Conquer)进行多种方法组合的工作量估算机制。文献[9]详细统计了Web服务组合中需要的各类模型、语言、技术、平台和工具等,但并没有阐述该如何进行组合决策。
因此,本文提出了一种基于层次分析法AHP(Analytic Hierarchy Process)[10]的网络服务组合决策机制,用于帮助决策者合理选择多种组合方法。AHP是处理复杂决定的一种结构化技巧。这种方法不是为了做出一个绝对正确的决定,而是帮助决策者在若干备选中找到相对适合设定目标和需求的最好决定。在Web服务领域的应用中,AHP往往仅用于服务发现过程,例如文献[11]中分析了多个服务的服务质量QoS(Quality of Service)参数,然后根据用户需求应用AHP选择最佳服务进行组合。而在选择服务组合方式时,AHP也具有重要的实践意义。本文拟在现有的WSC方法矩阵的基础上,通过文献综述,新增决策影响因素来完善该矩阵,尤其是人员因素造成的决策影响,并引入能力成熟度模型CMM(Capability Maturity Model)作为衡量人员因素影响的指标。根据层次分析法构建层次结构树,为每个节点分配权重,并举例详细阐述如何在多个方案中使用该层次结构做出最佳决策。
特别值得强调的贡献是,为帮助WSC决策者理解和使用这种方法,本文实现了半自动平台easyWSC,根据使用者输入的相关信息,帮助决策者做出最佳选择。
2 AHP方法
层次分析法是系统化、层次化地分析多标准问题的方法,它的实用性和有效性使其很快在业界和学术界得到重视。如今,已普遍应用于经济、医学、农业等众多领域。
AHP适用于团队处理复杂的多标准问题,尤其是涉及决策者主观的判断,且最终结果对后续工作有着长期影响。其独特优势是,当某些影响决策的重要因素很难量化或比较,或者在团队成员中,不同的术语或观点阻碍了相互沟通,层次分析法仍然可以为团队提供一个较为合理的最终决策。
层次分析法的主要步骤如下:
(1)首先,决策目标问题被分解成多个平行的更易分解的子问题,每一个子问题都可以被单独分析。这一系列的子元素可以涵盖决策问题的任一方面,可见的或不可见的,可以直接测量的或只能大致预估的[11]。每个子元素还可以根据实际需要再进行分割,直至决策者认为达到最易比较的级别。如此将复杂问题涉及的因素分为若干层次,建立多级递阶的层次结构模型(目标层、判断标准层、方案层)。
(2)层次结构建立起来后,决策者对每一父节点下的子元素做两两比较。在做比较时,决策者可以使用这些元素具体的数据,或者参照这些元素的意义和重要性做出自己的判断。不仅仅是潜在的信息,决策者的主观判断也可以被用在评估中,这就是AHP的实质。AHP将这些评估转化成数值结果,结构中的每一个元素都可以获得一个数值权重或优先度,这样就允许不同的和通常无法比较的元素进行合理的比较。
(3)最后,每一个可选方案也在每一个元素下两两比较,计算出数值优先级。这些数值表示了可选决策达到最终目标的相对能力,因此基于这些优先值,决策者可以选择最符合目标问题的方案。
3 AHP应用于服务组合问题
3.1 服务组合层次结构模型
3.1.1 服务组合层次结构原型
本文首先以文献[8]中的WSC方法分类矩阵为原型,构建层次结构模型。
该矩阵将WSC方法分为环境(Context)和技术(Technology)两大维度。各元素包含的子元素如下:
(1)环境(Context):
①模式(Pattern):编制(Orchestration)、编排(Choreography)。
②符号学(Semiotics):语义学(Semantics)、语法学(Syntax)。
③机制(Mechanism):简单对象访问协议SOAP(Simple Object Access Protocol)、表述性状态传递REST(REpresentational State Transfer)。
④设计阶段方法(Design Time):手动(Manual)、半自动(Semi-auto)、自动(Automatic)。
⑤运行阶段方法(Run Time):静态(Static)、动态(Dynamic)。
(2)技术(Technology):基于工作流(Workflow-based)、模型驱动(Model-driven)、基于AI规划(AI Planning)。
但是,在构建层次结构时,需要明确目标层、判断标准层、方案层分别是哪些元素。目标层,显而易见是需要解决的服务组合方法决策问题。第一级的判断标准层是环境和技术两个元素。由上述WSC方法矩阵可以得到第二级的子标准层,也就是模式、符号学、机制、设计阶段方法和运行阶段方法。与经典AHP算法示例不同的是,本文需要解决的问题中需要添加一层标准可选项层。因为本结构的方案层,本质上就是每一个子标准下的选项组合而成,构成一个较为完整的服务组合方案,其中将这些子标准下的选项命名为标准可选项层。
构建出的层次结构原型如图1所示。其中深灰色为目标层,灰色为标准层,浅灰色为子标准层,白色为标准可选项层。
Figure 1 Hierarchy prototype 图1 层次结构原型
3.1.2 完善服务组合层次结构
以上述WSC方法矩阵为原型构建了服务组合层次结构后,目前所包含的服务组合关注点显然是不平衡也不完整的。因此,需要更多的标准和可选项来完善这个层次结构。
(1)添加标准1:运行平台。
运行平台是服务组合进行的场所。很多研究者认为不同的运行平台会影响最后组合服务的安全性和适应性等非功能属性。例如,文献[12]中作者列举了7个服务组合的运行平台,并对这7个平台就开放性的标准支持、使用的难易度、服务性能的模拟效果、管理功能以及组合服务的适应性、优化程度、安全性做出了比较。由此可见,运行平台对服务组合的影响也是不能忽视的。本文借鉴了文献[9]中对运行平台的分类和可选项,即分为部署项(Development Options)和执行引擎(Execution Engine)。其层次结构如下所示:
①部署项(Development Options):云端部署(Cloud)、本地部署(On-premise)。
②执行引擎(Execution Engine):业务流程引擎(Business Process Engine)、服务总线(Service Bus)、代码生成(Code Generation)。
(2)添加标准2:机制可选项。
原有的矩阵中,在机制这一标准下,只提供了SOAP和REST这两个经典的协议。但是,随着Web服务发展,如今又兴起了另一种可以运用在SOA中的协议——开放服务网管协议OSGi(Open Services Gateway initiative)[9]。
SOAP是在Web服务启用期间交换结构化信息的协议规范,可以使用业务流程执行语言来构建组合Web服务[13]。SOAP作为应用协议可以基于多种传输协议来传递消息(HTTP,SMTP等),但是随着SOAP的广泛应用,不断地增加附加的内容以更新扩展,使得现在开发人员觉得SOAP使用门槛较高。在SOAP近年来的扩展过程中,发布应用了一系列WS-*协议,虽然使得SOAP的应用更加规范,但相应地使用负担也增加了。RESTful服务被认为是一种架构风格,可以用来为客户端构造软件来请求服务,越来越多的网络服务采用这种架构,为显示对象特征和与外部服务通信提供更容易的接口[14]。与SOAP相比,REST充分利用了传输协议的运行理念,更为简洁易用且轻量级。而近年来兴起的OSGi技术是在Java虚拟机上定义的一个公共开放的架构,用来开发、部署、管理服务[9]。OSGi是一种轻量级服务模型,通过一个服务注册表来进行服务的发布、绑定和联合。因此,随着OSGi在Web服务领域越来越广泛的应用,本文也将其纳入服务组合层次结构中。
(3)添加标准3:人员因素。
在软件开发中,相同的复杂度在不同的人眼中判断的结果是不一样的,这涉及到开发者的开发技能、经验甚至专业知识等因素。软件开发的复杂度越高,设计和管理的难度也会越大。因为复杂度高可能导致设计者和管理者需要更加关注解决复杂度的问题而不是编码或改进设计[15]。在Web服务组合中同样存在着这样的关系。人员因素对服务组合的性能和效率有着难以忽视的影响。因此,本文的层次结构也将人员因素纳入考虑范围。
但是,在已有的文献中,笔者并未发现就人员因素对Web服务组合产生影响的相关研究成果,因此只将人员因素作为一项综合标准,不再进行子标准细化。而对于这个标准下的可选项,本文引进了能力成熟度模型CMM来进行描述。
CMM虽然是一种用于评估软件承包能力的方法,借以提高软件质量,但其更关注在软件开发过程中,参与开发人员的项目管理及工程能力的评估。CMM在20世纪70年代中期被提出,针对软件项目开发延期及软件质量不佳的现象,美国国防部曾专门立题研究,研究结果发现这大多数是由于项目管理不善导致的,而不是技术实力不够,进而总结经验:软件项目开发中技术只对局部产生影响,而管理才是影响软件研发项目全局的因素[16]。由此,美国卡内基-梅隆大学软件工程研究院提出了CMM模型——关于软件过程改进与评估的方法。
在本文的层次结构中,希望可以进一步探究人员开发和管理因素对Web服务组合的影响,因此需要对人员因素做出一个综合等级评估,这里将CMM应用于AHP标准中。根据CMM的体系结构,本文也将人员因素评估的可选项分为五个级别:初始级、可重复级、 已定义级、已管理级、优化级。
在原有的服务结构层次基础上,将上述三项标准添加合并,可以得到如图2所示较为完善的服务组合决策层次结构。
Figure 2 Hierarchy of WSC图2 服务组合决策层次结构
3.2 模型计算过程
AHP方法之所以被人们广泛使用,就是因为可以容纳不同类型的因素,可以是有形的可精确测量的标准,如价格、容量等;也可以是有形的但难以衡量的标准,如维护成本等;甚至是无形的完全依靠决策者主观判断的标准,如风格等因素。在服务组合的层次结构中,众多标准及子标准都难以衡量,大多需要决策者依靠开发经验进行判断。因此,不同的决策者可能做出完全不同的判断结果。本文参考了大量文献依据与比较,从而得出以下结果。
3.2.1 标准两两比较
为了判断每一层级中每个元素的权重,需要对这些元素进行两两比较,因此为每个元素都分配到一个0~1的优先度。但是,在两两比较过程中,需要一个相同的指标来表示不同的重要程度,AHP方法中介绍了一个基本比较值[11]理论,如表1所示。其中2、4、6和8用来表示中间值。
Table 1 Fundamental scale for pair wise comparisons
(1)标准行分配权重。
按照表1的标准便可以进行两两比较。这个过程从层次结构的标准层开始。标准层共4个元素:环境、技术、运行平台、人员因素。这4个可用的标准中一共有6对进行比较——环境/技术,环境/运行平台,环境/人员因素,技术/运行平台,技术/人员因素,运行平台/人员因素。
环境在服务组合中指的是组合的不同阶段,文献[8]在服务组合的生命周期中定义了以上5个阶段,也就是5个子标准,这5个子标准是对组合过程影响最大的部分[8]。技术是指在实施服务组合中使用到的工具。运行平台指服务组合进行的场所,不同的运行平台会影响最后组合的服务的安全性和适应性等非功能属性。人员因素则对服务组合过程中的设计和管理有着一定的影响。因此,根据上述比较,无疑环境对服务组合的影响是最为显著的,与技术、运行平台、人员因素的比分别可以取3∶1,3∶1,5∶1。技术稍次之,与运行平台、人员因素的比分别可以取2∶1,3∶1。运行平台与人员因素的比可以取2∶1。如此可建立如表2所示的矩阵。
Table 2 Criteria comparison matrix
根据矩阵,首先计算每一列的和,然后将矩阵中每个值都除以所在列的和,得出如表3所示的标准层4元素比较矩阵2。
Table 3 Criteria comparison matrix 2
最后将每一行的值取平均,即为该行元素的权重,也称为优先度。得到结果为:环境0.518、技术0.242、运行平台0.154、人员因素0.086。
(2)“环境”子标准分配权重。
“环境”下共分为5个子标准,即模式、符号学、机制、设计阶段方法和运行阶段方法。同理,两两比较一共有10对。根据文献[7,8],模式和机制对服务组合起到了绝大数影响,符号学和运行阶段稍次之,设计阶段则重要性偏低,因此可以给出如表4所示的比较矩阵。
Table 4 Sub-criteria comparison matrix in “Context”
经过上述相似的步骤计算,得出这5项子标准的优先度分别是:模式0.321、符号学0.078、机制0.326、设计阶段方法0.156和运行阶段方法0.119。
(3)“运行平台”子标准分配权重。
“运行平台”下共有2个子标准,即部署项和执行引擎。文献[9]对二者进行了详细阐述,但并未对二者重要性进行比较,因此本文取这两项的比较值为1∶1,即优先度都为0.5。
至此,本文完成了标准层和子标准层的优先度分配的大部分工作,所得出的优先度如图3所示。此时,每一节点下的优先度相加的和都为1,这被称为局部优先度。
Figure 3 Local priority图3 局部优先度
但是,在计算时,局部优先度并不方便,因此需要将每一节点的优先度乘以其父节点的优先度,计算出该元素的全局优先度。计算结果如图4所示。此时,环境和运行平台这两个标准的优先度就失效了,而层次结构中所有的元素优先度相加和才为1。
Figure 4 Global priority图4 全局优先度
3.2.2 最后决策
3.1.1节中提到,在构建服务组合层次结构时,将经典的AHP结构做了一些改动,添加了一层标准可选项层。因为本结构的方案层,本质上就是每一个子标准下的选项组合构成一个较为完整的服务组合方案。通常情况下,决策者会根据经验提出若干较为合适的组合方案,但不能明确比较其优劣。为了帮助决策者选择最佳方案,就可以按照本文的AHP算法进行量化比较。具体比较过程如算法1所示。
算法1最佳WSC方案选择
输入:备选项A,层次结构标准C,各标准权重CP,各标准下选项比较值矩阵AC。
输出:最佳方案BA。
functionGetAP(A,C,AC)
for allcj∈Cdo
for allai∈Ado
//计算可选项ai在标准cj下的权重值APaicj
end for
end for
//得到各标准下选项权重矩阵AP
returnAP
end function
AP=GetAP(A,C,AC)
for allai∈Ado
//计算每个可选项ai的总权重值Pai
·CPcj
end for
//选择权重值Pai最高的方案为最佳方案
BA=Amax(P);
returnBA
下面举出示例,根据算法选择最佳方案。
首先,根据经验提出三种可行的备选方案:
Ⅰ编制+语义学+SOAP+半自动+动态+模型驱动+云端部署+服务总线+已定义级;
Ⅱ编排+语法学+SOAP+自动+动态+基于AI规划+云端部署+业务流程引擎+已定义级;
Ⅲ编排+语义学+REST+自动+动态+模型驱动+本地部署+业务流程引擎+已管理级。
其次,根据上述规则将三个方案在每一子标准下进行两两比较,相同的项比较结果为1,不同的项由决策者选择比较值。例如,将这三种方案在模式这一标准下比较,得出比较矩阵,根据算法计算出模式标准下三种方案的优先度,如表5所示。
Table 5 Alternative comparison by “pattern” sub-criteri
同理,比较得出三个方案在每一标准下的优先度,并乘以该项标准的优先度可得出所有标准下的方案比较矩阵,如表6所示。
将方案在每一项标准下的优先度相加,得出总的权重:方案Ⅰ 0.31、方案Ⅱ 0.33、方案Ⅲ 0.36。由此,决策者可以判断,权重最高的方案Ⅲ即为备选项中最适合该服务组合目标的方案。
Table 6 Alternatives comparison
4 Web服务组合决策系统
为辅助Web服务方案决策人在实践中更便捷地应用前文所描述的决策机制,本文进一步设计并实现了这一决策系统。
4.1 Web服务组合决策系统技术方案
本系统所采用的技术方案如表7所示,包括系统架构、开发环境、开发语言、前端框架和数据库等内容。
Table 7 List of technology strategies in the system
4.2 核心功能实现
本决策系统的核心功能主要有构建AHP层次结构树和AHP决策,可以帮助用户完成一个完整的决策过程。
4.2.1 构建AHP层次结构树
用户在进入系统后,可以选择新建项目。在新建项目模块中,用户需要为新建项目增添基本信息,然后分配层次结构树权重。在构建结构树时,系统会推荐本文根据文献研究得出的权重分配,用户根据需求可以选择接受或拒绝。若接受,则结构树自动赋值推荐值;若拒绝,则用户需进行3.2.1节中三个矩阵的标准比较,得出新的权重值。最终层次结构树如图5所示。
Figure 5 Interface of hierarchy tree图5 系统最终层次结构树界面
4.2.2 AHP决策
用户的决策树构建完成后,可以新建该项目的方案项,然后需要进入3.2.2节中在每个子标准下的比较过程。最后,系统将自动计算出每个方案最终的权重值(如表8所示),用户便可借鉴该权重值做出选择(系统的运行过程可参考项目系统运行视频http://softeng.nju.edu.cn/WSCshow/main.html)。
Table 8 Results of alternatives comparison
5 结束语
本文使用层次分析法(AHP)来帮助解决Web服务组合中多标准的方法组合问题。首先,为了让AHP更加符合Web服务组合的实际应用情况,本文对标准AHP作出了些许改进,在目标层、标准层和方案层之外新增了方案可选项层。其次,以Web服务组合原有的分类矩阵为原型,构造出基于环境和技术两大标准及其数个子标准的基本层次结构。通过文献分析,在原始的层次结构上增添了运行平台标准、机制新可选项和人员因素标准,并提供了子标准分类和方案可选项。接着,通过标准和子标准的两两比较,计算出每个元素在结构中的优先度或权重。最后,本文举出示例,从三个经验选项中利用上述层次结构做出比较,得出最佳结果。由此可见,AHP在Web服务组合的决策过程中,将这些无法量化和难以比较的元素巧妙地进行了转化,为决策者提供了更加具有实用性和可靠性的结果,在实际运用中有着重要的意义。为帮助Web服务组合决策者理解和使用这种机制,本文也设计并实现了一个半自动决策系统平台easyWSC。根据使用者输入的相关信息,easyWSC会帮助决策者做出相应的最佳选择。为了验证最终决策的正确性和合理性,决策者可以召集参与服务组合工作的不同角色成员组成验证委员会,对决策参数及结果进行二次比较和论证。
下一步的研究工作将针对原有的决策系统进行优劣比较,并探索是否能对二者进行整合,以得到更有效的决策算法。同时,AHP方法在解决多标准问题时较多依赖于人工决策,因此为了挖掘更加优化的方法,可以记录系统的决策数据,判断决策点之间的关联。例如,人员工程管理能力越高,最终决策选择的组合方案越偏向于复杂,如此可以根据挖掘结果改进决策树。在系统实现方面,为了提供更好的用户体验,还可以拓展其它功能模块。例如,可以让用户自主选择决策标准、邀请他人为自己的项目决策等。