一种基于模式的服务工作流个性化定制方法

2014-03-21 05:07史银雪孙瑞志
图学学报 2014年5期
关键词:实例粒度应急

史银雪,孙瑞志,袁 钢

(中国农业大学信息与电气工程学院计算机系,北京 100083)

服务工作流是在面向服务架构(service-oriented architecture, SOA)下对业务过程的一种计算机化的表示模型,业务过程中全部或部分活动的执行通过服务调用来实现[1]。而服务工作流的个性化定制主要目的是在满足用户个性需求的同时更好地体现用户价值。但由于业务环境的复杂多变和网络环境下不断出现的新特性使得服务工作流的个性化定制必然面对更多的挑战。

首先,服务工作流的建模必须具有更好的灵活性。对于预先定义的服务工作流建模,适用于业务完全明确的情况。这种方法首先对用户要求较高,需要用户了解网络环境的很多细节(如资源的物理位置、服务端点等);其次,难以适应复杂业务的需求,主要原因在于复杂业务通常在建模期间无法完全确定所有的活动细节,只有等到业务执行期间根据执行情况边执行边构造(如依赖于前继活动的执行结果等一些实时信息的活动);然后,在动态多域的网络分布环境下,软硬件故障随时发生,策略突然改变都会使得原定义流程不再适用。因此,需要柔性的服务工作流建模方法。

另外,在执行过程中根据用户的个人偏好进行基于服务质量(quality of service,QoS)的服务选取和工作流调度也是个性化服务工作流的一个关键问题,目前的研究只考虑了业务逻辑在执行前完全确定的情况。而现实世界中,很多业务逻辑的确定依赖于运行中间结果。因此,执行过程中不仅要考虑服务实例的选取还要考虑服务工作流的执行时模型细化。

针对以上情况,本文在前期研究[2]的基础上提出了服务流程模式,从不同层面对业务知识进行抽象和描述,可以根据用户需求即时构造一个多粒度的服务组织模型;并详细描述了基于服务流程模式的多层次匹配算法,以实现在服务流程运行过程中的动态构造和服务选取。最后以一个应急案例说明此方法能够完成服务工作流的业务逻辑定制和服务实例定制。

1 相关工作

流程可视化建模[3]是服务工作流采用较多的业务逻辑定制解决方案,但是流程在运行时的动态修改比较困难。为了解决在不完整流程定义的情况下的业务逻辑定制,文献[4]引入黑盒将事先无法确定的子流程进行封装,等到服务工作流执行过程中才能根据预定义规则、当前运行信息和用户的需求将黑盒子流程展开为具体运行流程。文献[5]给出了一种基于业务生成图的服务工作流构造方法,其基本思想是将服务按照功能分类,每类服务分别采用生成树的方式组织,并依据工作流的逻辑关系形成业务生成图,此方法方便实现业务功能级别的服务组织,但缺乏对情景上下文的讨论。服务工作流的按需构建也尤为重要,文献[6]通过建立目标本体,服务本体,利用层次任务网络(hierarchy task net,HTN)规划实现目标驱动的可适应服务组合,文献[7]基于用户角色、目标、流程和服务需求元模型,依据模型关联关系进行服务组织,并提出了按角色、需求目标、服务描述查找和推荐的方法,着重某一领域的用户需求和服务关联关系。本文方法融合以上研究特点,一方面构造服务流程模式利用将业务目标和能够实现业务目标的服务流程联系起来,业务领域的用户可以方便的定义和选择所需服务流程;另一方面在流程运行过程中利用多层匹配方便实现服务流程的即时构造。

服务实例的选取是服务组合研究中的一个主要研究点,有些研究侧重于抽象服务选择可用的服务提供商,对原子服务的选择,最常用的服务选择方式为QoS属性简单加权聚合[8-9],按分值排序取评估最高的服务;对组合服务的选择,主要有两种解决方案即局部最优和全局最优[10],全局最优策略和服务流程的逻辑结构密切相关,且用户偏好也影响评估分值。另一方面,基于人工智能的服务组合方法发展也很迅速[11],W3C先后推荐了RDF、DAML+OIL和OWL-S[12]作为本体描述语言标准提供了很好的支持,但由于各个客户端本体库不同,导致服务越多,描述就越复杂。本文提出的服务实例选取方法随着服务工作流的执行逐步进行的,因此QoS非功能信息也是实时获取,这样不仅能够保证每一个被选取的服务是当前最佳的可用服务,从而最大限度地降低了执行异常的出现,而且可以将抽象流程定义的转换工作分散到各个流程的执行阶段,降低服务查找和绑定时的开销。

因此,本文的研究旨在实现服务工作流的按需定制。通过引入服务流程模式建立用户需求和服务工作流的关联;利用基于服务流程模式的多层次匹配算法进行多粒度服务组织,建立抽象需求流程模型,不仅能实现明确的业务还可以在运行中根据实时信息对目标活动进行动态细化,并采用QoS全局最优策略选择动态绑定服务实例。

2 服务流程模式形式化描述

在实际应用领域中,大量的业务活动和业务逻辑经逐步积累后形成了标准化的服务流程,并在新的应用中有着重要的指导意义和参考价值,服务流程的共享和复用显得尤为重要。服务流程模式作为一种知识表示工具,用来实现业务领域知识和与之适应的服务流程的抽象和规范。不失一般性,其形式化定义如下:

服务流程模式 (service process pattern, SPP),由一个四元组(Description, Goal, Context, Service SubProcess)组成:

(1) Description:服务流程模式的基本描述,包括模式的基本标识和名称。

(2) Goal:表示服务业务目标,包含业务目标标识,业务目标名称、描述、所属业务领域和概念。其中Concept是目标对应在领域本体中的概念对象。这些本体概念一般用词典或OWL来描述。每一个服务流程模式对应唯一确定的业务目标,而同一业务目标则可能有多个服务流程模式与之对应。

(3) Context={FR, NFR}: 表示上下文场景,是指和服务相关的功能性需求(functional requirement,FR)和非功能性需求(nonfunctional requirement,NFR)。FR/NFR={<W1,F1>,<W2,F2>…<Wi,Fi>},表示功能性需求和非功能性需求皆由多个需求指标和相应权重构成。其中<Wi,Fi>表示第i个需求指标和其对应的权重,权重一般取决于用户偏好和专家经验。

(4) Service SubProcess: 服务子流程,通过更细粒度的业务操作的组合来描述服务流程模式的动态特性,由服务流程活动集合(service process activities, SPA)、控制关系(service process control,SPC) (顺序、并行、选择、循环等)以及数据依赖关系(service process data,SPD)构成。服务流程活动(service process activities, SPA)={Goal,Parameter}即服务活动要完成的任务目标和响应参数,当服务子流程为空时,说明服务流程模式为最细粒度服务,不可再分。

利用服务流程模式作为服务工作流的知识表示方法有以下优点:①服务流程模式将业务目标和能够实现业务目标的服务流程联系起来,业务领域的用户可以方便地定义和选择所需服务流程;②服务流程模式提供不同的描述粒度,能够对业务知识和经验进行不同层次的抽象,易于在应用程序中表示和使用;③服务流程模式结构相对独立,可以在执行过程中抽取新的模式从而对其进行更新和扩充;④服务流程模式对业务知识的表示比较灵活,各部分和各参数都有明确的意义,有利于知识建模过程及后续的知识调整和优化。

3 基于服务流程模式的工作流个性化定制

服务工作流的个性化定制主要包括业务逻辑的定制和执行模式的定制[7]。其核心思想为:①利用多层次匹配算法实现基于服务流程模式的多粒度服务组织,并通过人机交互进行服务组合粒度控制;②利用质量分析实现用户感知的QoS分析实现服务实例定制。

3.1 业务逻辑多层次匹配定制算法

该匹配算法包括业务目标匹配和功能属性评估,而功能属性评估又包括输入、输出参数匹配和业务条件评估2个方面。对于一个业务目标,最适用的服务流程模式就是满足目标匹配,功能属性评估中得分最高的服务流程模式。

3.1.1 目标匹配

目标匹配(goal match,GM),用来选择能够完成业务目标g的候选组合服务流程模式。目标匹配采用相似度度量函数,如式(1):

其中SIM(sp.Goal,g)为目标匹配度,d定义为概念相关性,a是可以调节的参数。当sp.goal⊆g时d=1;Goal=g时,d=0;匹配度为1;sp.Goal≠g时,a=1,目标匹配度为0。当目标匹配度超过预定阀值时,则接着进行功能属性评估。

3.1.2 功能属性评估

功能属性评估(function matching, FM)主要是对输入、输出(input,output,IO)参数的评估和对业务条件的评估,这里的业务条件也可以理解为业务规则,是指服务执行前必须满足的前置条件和业务执行后所需满足的条件。例如要想使用航空运输服务,前置条件是所运输物品必须为非危险品。

目前在服务发现领域一部分研究采用相似函数匹配,其功能属性匹配主要集中在IO匹配;一部分研究采用逻辑推理,不仅可以包括服务描述性元素,而且可以包含与服务相关的条件,但是实现较为复杂。本文采用的功能属性评估采用分而治之的办法,对IO输入、输出参数的评估采用相似度量方法;而对于业务规则条件的判断采用上下文评估函数[13]。

功能属性评估 (function matching,FM)记为:

其中IOM为输入、输出匹配度,BCM为业务条件匹配度,μ1,μ2分别为IO匹配和业务条件匹配所占权重。

(1) IO输入输出参数匹配。对于IO匹配研究较多,利用语义匹配相对成熟,本文采用文献[14]中基于OWL-S的计算方法得出各自的语义匹配值,基于语义匹配度的服务选择公式为:

其中IOM为语义匹配值,IM,OM分别为输入,输出参数对应的语义匹配值,ωi,ωo分别为输入参数对应的权重。IOM为输入、输出参数对应的语义匹配值权重的综合结果。

其中ωi为积极影响因素对应的权重,评估函数,用户需求值和服务流程模式参数值,相对而言,为第i个消极影响因素的相应内容。

3.2 多粒度服务流程模式树

根据层次化分析的设计理念,一个问题可以分解为多个子问题,自上而下,分而治之。针对同一业务需求,可以由一个粗粒度的服务来实现,也可以将业务目标分解为多个细粒度的服务组合实现。而服务流程模式是构造多粒度服务模型的基本元素。图1为多粒度服务流程模式树,根节点为满足目标Goal的服务流程模式SPP1,其服务子流程为非空流程,则意味着可进一步分解细化,为其服务中的每个服务节点选择适用的服务流程模式,当用户同意分解时,再次进行多层次匹配,如此递归形成一个功能粒度由粗到细的多粒度服务流程模式树。

图1 多粒度服务流程模式树

可见,对于同一业务目标Goal,存在多个满足功能需求的服务组合方案。第一种方案为SPP1,对应最粗粒度复合服务;而最底层的服务组合方案则全部分解为原子服务,为最细粒度服务组合。

3.3 基于QoS分析的服务事例定制法

利用上述多层次匹配算法进行多粒度服务组织后,得到一系列目标匹配和功能相似的候选服务流程模式构成的服务组合方案。但不管是粗粒度服务组合方案还是细粒度服务组合方案对应的都是抽象的服务类型,需要将其映射到服务实例中。

信息网络时代,web数量不断增加,存在着大量的功能相近、质量迥异的web服务资源。原子服务提供者对开发部署的服务的QoS进行描述,并注册到服务注册中心,而复合服务的服务质量很大程度上依赖于构成该复合服务的各子服务的服务质量及其服务质量关联。

目前客户比较关注的QoS属性主要有可用性、吞吐量、响应时间和服务价格,其中可用性,吞吐量为正收益性属性,即是说,其数值越高,服务质量越好;而响应时间和服务费用为负收益属性,即其数值越高则服务质量越差。表1给出原子服务(atomic service, AS)和复合服务(composition service,CS)的QoS评价模型,其中代表可用性、吞吐量、响应时间和服务价格评估值。

因此,QoS的评价函数为:

表1 质量评估模型

具体服务实例匹配步骤如下:

(1) 抽象服务输入输出接口匹配;

(2) 从服务注册中心中选取与抽象服务接口匹配的服务实例集合;

(3) 提取每个服务实例的QoS描述信息;

(4) 设定权重,进行QoS评估;

(5) 利用QoS评估函数对各个服务实例进行评估并排序;

(6) 结果非空,则返回QoS评估分数最高的服务实例;否则,调用多层次匹配,进行粒度细化,得到下层细粒度服务组合方案,返回步骤(1);

(7) 部署到服务工作流引擎执行。

4 案例分析

本节结合突发事件应急处理说明服务工作流的个性化定制方法。案例场景为:2012年7月21日晚8点,北京应急中心接到报警,北京京港澳高速长阳路段积水高度超过50 mm,交通瘫痪,多于50辆车被困,周边断电,有人员伤亡,灾情非常严重,请求救助。下面首先构造突发事件应急服务流程模式库,实现对应急预案的形式化和知识化,然后说明基于暴雨应急服务流程模式的应急处理个性化定制过程。

4.1 暴雨应急服务流程模式构建

服务流程模式从目标,上下文场景和处理流程3个方面对应急预案进行描述。其中,上下文场景对应实例中的事件属性,主要包括积水量={高([50,100)),非常高[100,)},人员伤亡数={无,有},交通情况={正常,受阻,瘫痪},电力情况={正常,断电},灾害等级={1, 2, 3, 4},灾害地点。表2中列举出部分暴雨应急服务流程模式。

其中,积水高,有人员伤亡,交通瘫痪和断电的场景下应急处置可以由RP25和RP26服务来实现,分别对应服务子流程SWF25和SWF26,如图2所示。

4.2 暴雨应急个性化定制过程

上述构造的所有服务流程模式都存储在服务流程模式库中,当突发事件发生,应急指挥中心获取报警信息,通过多层匹配获取符合条件的服务流程模式过程如图3所示。

表2 暴雨应急服务流程模式(部分)

图2 服务子流程

图3 个性化定制过程

具体步骤为:

(1) 获取应急目标(如“暴雨应急”);

(2) 目标模式多层匹配找到适合的服务流程模式(如暴雨应急-暴雨服务流程模式RP0,应急启动-RP22,应急处置-RP31);

(3) 获取对应于服务子流程中的各个服务活动的目标和参数列表;

(4) 判断服务活动是否为目标活动,是转步骤(2);

(6) 执行服务实例匹配找到相应服务(如房山医疗队,北京排水集团);

(7) 部署执行。

5 结束语

面向服务的工作流个性化定制能够更好地适应复杂多变的业务需求。一方面可以根据用户需求定制服务流程,另一方面还可在互联网资源中动态地选择和调用web服务。本文引入了服务流程模式,它不仅包含粒度较小、功能单一的原子服务和功能丰富、粒度较大的服务,还可以通过多层次匹配实现大粒度服务到较小粒度服务的多粒度服务组合方案;而对于执行模式的定制是通过QoS的评估分析从服务注册中心中匹配最佳服务实例并部署执行。最后用突发事件的应急处理作为示例进行了说明。目前的工作没有考虑服务失效的处理,下一步工作将对服务工作流异常做进一步研究。

[1]刘 博, 范玉顺.面向服务的工作流性能评价及指标相关度分析[J].计算机集成制造系统, 2008, 14(1):160-166.

[2]史银雪, 孙瑞志, 向 勇.基于动态规划的柔性工作流[J].东南大学学报(自然科学版), 2010, 40(s2):258-262.

[3]胡春华, 彭昆湘, 刘济波, 刘安丰.Web 服务工作流路由模型构造及 QOS 优化[J].中南大学学报(自然科学版), 2009, 40(4): 1040-1046.

[4]夏海江, 邓水光, 吴朝晖.Web服务动态组合方法研究和设计[J].计算机工程与设计, 2007, 28(6):1334-1337.

[5]胡春华, 吴 敏, 刘国平, 徐德智.一种基于业务生成图的Web服务工作流构造方法[J].软件学报, 2007,18(8): 1870-1882.

[6]Song S, Lee S W.Goal-driven approach for adaptive service composition using planning [J].Mathematical and Computer Modelling, 2013, 58(1-2): 261-273.

[7]刘建晓, 何克清, 王 健, 余敦辉, 冯在文, 宁 达,张秀伟.RGPS制导的按需服务组织与推荐方法[J].计算机学报, 2013, 36(2): 238-251.

[8]Ko J M, Kim C O, Kwon I H.Quality-of-service oriented web service composition algorithm and planning architecture [J].Journal of Systems and Software, 2008,81(11): 2079-2090.

[9]Canfora G, Di Penta M, Esposito R, Villani M L.A framework for QoS-aware binding and re-binding of composite web services [J].Journal of Systems and Software, 2008, 81(10): 1754-1769.

[10]Cao Jian, Wang Jie, Zhao Haiyan, Sun Xiaohan.A service process optimization method based on model refinement [J].The Journal of Supercomputing, 2013,63(1): 72-88.

[11]方其庆, 彭晓明, 刘庆华, 胡亚慧.结合AI规划和工作流的动态服务组合框架研究[J].计算机科学, 2009,36(9): 110-114.

[12]吴善明, 沈建京, 韩 强.基于领域本体和OWL-S的Web服务组合方法[J].计算机工程, 2009, 35(21):256-263.

[13]沈浴竹, 向 勇, 张少华, 姜进磊, 史美林.扩展BPEL4WS实现基于语义的服务流程动态细化[J].通信学报, 2006, 27(11): 106-112.

[14]李庆云, 魏娟杰.基于多层匹配筛选的 Web 服务发现模型的研究[J].计算机应用与软件, 2010, 27(6):142-144.

猜你喜欢
实例粒度应急
人民的期盼就是应急青年的使命
粉末粒度对纯Re坯显微组织与力学性能的影响
动态更新属性值变化时的最优粒度
应急救援要诀“少 快 短”
应急管理部6个“怎么看”
国际新应急标准《核或辐射应急的准备与响应》的释疑
双粒度混合烧结矿颗粒填充床压降实验
煤粒度对褐煤生物气生成的影响特征
完形填空Ⅱ
完形填空Ⅰ