作 者:李晖 崔立真 王海洋
由欧洲语义Web组织提出的Web服务模型本体(WSMO,Webservicemodeling ontology)[11]是另一种语义Web服务描述框架。WSMO旨在研究语义Web服务语言的标准。WSMO不但描述了Web服务的能力,也描述了Web服务的行为,同时还涉及到了与流程相关的内容。目前有一些大型业务流程管理项目,比如SemBiz [12],就是基于WSMO而建立的。WSMO由四类关键组件组成。
1)本体集:本体集提供了丰富的术语,这些术语被Web服务模型本体中的其他组件用于描述领域内相关方面的知识。
2)Web服务:通过提供Web服务的存取方式,描述WSMO中的计算实体——Web服务。描述的方面包括Web服务的能力和接口。所有的描述方式均采用本体集中定义的术语。
3)目标集:目标集描述了用户需求,即通过执行一个Web服务用户希望达到的目标。在描述方式上,同样采用了本体中的术语,目标集在用户角度为Web服务的使用建立了模型,是WSMO中独立的上层实体。
4)协调器集:协调器集用于克服在WSMO中的各个组件协同工作中出现的问题。协调器集是解决术语之间不匹配(数据层)、Web服务之间通信不匹配(协议层)和协调不同Web服务与目标(流程层)的核心概念。
综上所述,WSMO更加满足智能流程的描述需求,本文中,在WSMO的基础上提出了智能流程描述框架(SfDF,smartflowdescriptionframework),SfDF在WSMO的基础上,从流程的角度进行了扩展。在SfDF中,沿用了WSMO的四类关键组件,SfDF的主要工作是在本体集和目标集2个组件中,增加了与流程相关的描述内容,以满足智能流程的需要。
1)SfDF本体集
在SfDF的本体集中,除了描述领域知识的概念之外,在本体集中增加了“约束”。“约束”是一种机制,包括流程约束和任务约束,它用于限制智能流程和智能流程的任务。即,构造的智能流程或者智能流程的任务必须满足“约束”。“约束”可以用谓词描述。
定义2任务约束:任务约束用于在业务层限制智能流程中的任务,任务约束描述模型为{"t ( t ÎTi Þ P (t) )}其中,t表示具体任务,Ti表示某一类任务的集合,P表示谓词。模型表示‘tÎTi’蕴含‘P(t)’,意味着对于Ti中的任意一个任务t,均能使P为真。
定义3智能流程约束:智能流程约束用于在业务层面限制业务流程,智能流程约束描述模型为{"t ( t ÎT Þ P (t) )}其中,t表示具体任务,T表示智能流程中全体任务的集合,P表示谓词。即‘tÎT’蕴含‘P(t)’,意味着对于T中的任意一个任务t,均能使P为真。SfDF本体集如图2所示。
图2SfDF本体集
2)SfDF目标集
因为Web服务模型本体的主要目标是Web服务建模,因此它的主要关注点在于Web服务。而SfDF的目的是用于描述智能流程及其相关元素,除了独立的Web服务目标之外,还需要关注整个流程的目标,即整个流程如何满足用户需求。因此,在智能流程描述框架中,目标是有层次的,分为流程目标和Web服务目标两类。智能流程目标用谓词表示。
定义4智能流程目标:智能流程目标描述模型为{$ti$tj$tk$tl(tiÎTÙisScenicSpot(ti) Ù tjÎT Ù isTraffic(tj) Ù tkÎT Ù isTraffic(tk) Ù tlÎT Ù isHotel(tl) Ù ti [location] = tj [city] Ù ti [location] = tj [to] Ù ti [city] = tl [from])}
上述定义表明,在以旅游为背景的智能流程中,至少需要有旅游景区预定、住宿预定和交通预定任务,同时定义了任务之间的关系。
SfDF中的目标集如图3所示。在图3中,流程目标用“SfGoal”表示,Web服务目标用“WsGoal”表示。
图3SfDF目标集
3.2Web服务发现
Web服务发现阶段的主要目的是在SfDF的基础上,找到满足用户需求的Web服务,用以实现智能流程中的任务。
目前,Web服务发现是一个研究热点。文献[13]提出了用户需求和Web服务的语义匹配算法,同时提出了语义匹配度的概念。文献[14]在文献[13]的基础上,进行了改进,将二分图用于Web服务的匹配,用户需求组成二分图中一个顶点集合,基于语义描述的Web服务组成二分图中的另一个顶点集合,二分图中的边表示2个顶点集合之间的匹配,最后,文献[15]采用了匈牙利算法计算二分图中的最大匹配。从而得到满足用户需求的Web服务。
在智能流程中,满足需求的Web服务发现方法是基于SfDF的,Web服务的发现过程首先是Web服务目标和Web服务能力之间的匹配,然后是Web服务的输入和用户需求直之间的匹配。在Web发现之前首先需要定义匹配度,用于表示匹配程度。匹配度的定义如表1所示。表1中的“output”表示Web服务和Web服务目标的后置条件和效果。同样,Web服务的输入和用户的需求之间的匹配程度,参见表2。
按照表1和表2中的定义,Web服务发现算法描述如下:
WebservicediscoveryAlgorithm
Input:WsGoal,Web service set
Output:Webservice set that match WsGoal
result←Æ
forallWebservice
ifmatchinglevel(WsGoal, Web service) in (‘exact’, ‘plug in’) according to table 1 then
result ← result È Web service
forallWebservice in result
if matching level(input of Web service, user requirement) in (‘subsume’, ‘fail’) according to table 2 then
result ← result - Web service
returnresult
根据上述算法,当Web服务目标和Web服务能力之间的匹配度符合表1中“exact”或者“plugin”的定义时,意味着某个Web服务目标可以被一个Web服务所完成,则这个Web服务将加入到结果集中,然后再检查结果集中的Web服务的输入,是否能够被有效地被用户需求满足,如果不能被满足,说明用户需求中,没有提供该服务所需要的输入,则将该Web服务移出结果集。