李 蓉 ,何克清,刘建晓
(1.武汉大学 软件工程国家重点实验室,武汉 430072;2.华中师范大学 计算机学院,武汉 430079)
Web服务[1-2]是一种新型的软件形态,它提供了一种与实现语言无关、实现平台无关,便于互操作的软件实体.随着服务的数量越来越多,需要有自动高效的方法完成服务的查询、推荐,这通常需要事先建立一个服务库[3],让不同的服务提供者以统一的方式在服务库中注册自己的服务,方便用户查找.
为了有效地管理服务库,会对服务库中的服务按一定规则聚类,以缩小服务选择时的查找范围.现在已经提出了一些服务聚类的方法,文献[4]提出了一种基于服务聚类的网格服务发现方法,该方法集中于服务的输入,输出和功能来计算服务间的相似性.该方法主要使用了层次聚类算法来实现服务聚类,但没有考虑服务的QoS信息.文献[5]通过聚类wsdl描述的服务来提高服务发现效率且运用了多种聚类算法,但没有采用本体技术来描述服务,进而没有从语义层次来实现服务聚类.文献[6]提出了一种服务聚类方法来提高服务发现准确率.该方法通过服务功能和过程执行模型两方面来实现服务聚类,采用Petri网作为Web服务过程描述的形式化工具来实现服务过程模型聚类.
本文作者所在的实验室提出了用O-RGPS(Ontology-RoleGoalProcess/Service)本体元建模的方法对需求和服务建模,来帮助描述需求和服务.本文用该方法指导服务库中的服务聚类,并按照用户的常用需求进行主动的服务组合,实现服务库中的服务预处理,以提高服务选择的效率.
O-RGPS领域建模框架[7]是武汉大学软件工程国家重点实验室何克清教授带领的科研团队经历多年的研究提出的一种在互联网环境下的新型软件技术体系,该框架能帮助用户描述和组织用户需求,提供与描述语言无关的统一的方法注册和组织服务,并能帮助用户从需求找到需要的服务.该方法作为ISO 19763互操作性元模型框架(Metamodel Framework of Interoperability,MFI)国际标准[7]的重要部分,已经获得了肯定.
O-RGPS领域建模框架定义了领域建模所必须的4种模型元素:角色(Role)、目标(Goal)、流程(Process)和服务(Service)[8].其中角色层描述模型中组织、角色、扮演角色的参与者,及其之间的交互与协同.目标层描述用户目标和目标间的关系,目标分为功能目标和非功能目标两类.流程层描述流程和它的属性及控制结构,流程可以分为原子流程和组合流程.服务层描述服务及其属性,包括输入消息、输出消息、前置条件、后置条件、服务描述语言、访问协议、异常、质量属性等.同时采用本体对模型的实例进行语义标注,使语义查询和推理成为了可能.角色、目标、流程和服务并不是孤立的.角色可以拥有目标,目标可以通过流程来完成,而流程可以通过服务来实现,各层之间的关系如图1所示.
图1 RGPS4层元模型关系图Fig.1 4levels RGPS meta-model relationship
图2 基于RGPS的按需服务选择框架Fig.2 An on-demomd service selection framework based on RGPS
在O-RGPS领域建模框架指导下的按需服务选择框架如图2所示.该框架希望帮助服务请求者在系统中输入服务需求,在领域工程师建立的领域本体和RGPS领域模型的帮助下,半自动地获得服务提供者在服务注册库中注册的服务.该框架可以分为需求获取和分析、服务注册和组织、服务选择3个部分.
在需求获取和分析部分,服务请求者通过基于Wiki 的需求获取工具输入需求,该工具SKLSEWiki已经实现[9].工具能够按照多数用户的选择及领域工程师建立的领域本体推荐服务请求者可能忽略掉的需求.比如服务请求者输入需求“定飞机票”,基于Wiki的需求获取工具会按照领域本体推荐服务请求者输入相关的QoS属性如价格范围、响应时间等;该工具还会把其他用户推荐的目标推荐给使用者,如推荐“查询天气”和“查询地图”.该工具是以模板的方式获得用户输入,这样可以保证用户输入计算机能自动处理的信息并能输入有效的角色、目标信息.
在服务注册和组织部分服务提供者按照ISO 19763国际标准在基于MFI的服务注册工具中注册自己的服务,该工具S2r2 已经实现[10].注册好的服务需要在基于领域模型的服务预处理工具中参考领域本体,按照RGPS 领域模型实现不同领域的服务聚类,形成RGPS组织的服务库,这样能更有效地根据用户的RGPS需求模型在服务库中进行服务选择和服务推荐.
在服务选择部分服务选择工具能按照服务请求者建好的RGPS需求模型在RGPS组织的服务库中选择合适的服务,如果没有刚好能满足功能的服务,服务选择工具会选定一些可以组合的服务,交由服务组合工具组合成合适的组合服务提交给服务请求者.这部分的主要理论和工具见文献[11,12].
在获得大量服务资源之后,需要把服务保存在服务库中,为了加快服务的查询,可以对服务库中的服务进行预处理,使服务按一定方式组织起来.下面先定义一些基本概念.
定义1(领域本体)领域本体定义为DO=〈D,C,Role,Rule〉,其中D 表示领域,C 表示本体的概念集合,Role表示概念间的关系集合,Rule表示本体的规则集合.
定义2(关系函数)设有ci∈C,cj∈C,ci和cj之间具有关系r,r∈Role,则关系函数表示为Re(ci,cj)=r.
定义3(RGPS领域模型)RGPS 领域模型定义为RGPSDM =<RO,GO,PO,SO,Role,Rule>,其中RO 表示该领域的角色本体,GO 表示该领域的目标本体,PO 表示该领域的流程本体,SO 表示该领域的服务本体,Role表示各个本体之间的关系,Rule表示本体的推理规则.
定义4(QoS)QoS描述服务的QoS属性信息,定义为QoS=0{QName,c,Value}n,其中n∈(0,+∞),c∈C.QName表示QoS属性的名字,c表示该QoS属性相关的概念,Value表示属性的值.
定义5(原子服务)原子服务是不能再分解的服务,定义为AS=〈SName,Resource,Input,Output,Precondition,Effect,R,G,P,S,QoS〉,其中SName表示服务名字,Resource 表示服务可用的资源,Input表示服务的输入,Output表示服务的输出,Precondition表示服务的前提条件,Effect表示服务的后置条件,R、G、P、S分别表示服务的角色、目标、流程和服务的信息集合,QoS的表示见定义4.
定义6(组合服务)组合服务是可以继续分解成原子服务的服务,定义为CS=〈SName,Resource,Input,Output,Precondition,Effect,R,G,P,S,QoS,ASC,ASR〉,其中前11项的定义和原子服务中的定义相同,ASC 表示组成服务的原子服务的集合,ASR 表示原子服务间的组合关系.
定义7(组合关系函数)设有as1,…,asi∈AS,(j>1),as1到asj之间具有关系r,r∈ASR,则关系函数表示为ASRe(as1,…,asi)=r.
在服务预处理中,首先要把相似的服务聚类,使服务选择的范围缩小,效率更高.我们的服务聚类基于领域本体和RGPS 领域模型,参与聚类的服务可以是原子服务也可以是组合服务.在服务聚类时主要考虑服务的SName、R、G、P、S 信息.因为希望注册的服务按照领域和主要功能聚类,不一定要限定服务的输入、输出、执行条件、QoS值等属性,而且即使功能相同的服务实际的输入输出形式可也能区别很大,对这些条件的限定放在服务组合中更有意义,所以在服务聚类时没有考虑Input、Output、Precondition、Effect和QoS信息.
首先计算服务名称SName与需要匹配的某个领域概念c的相似程度,然后在领域本体DO 中通过概念间的关系(如EquivalentClass、SubClassof、Part of、Instanceof等)找到和c相关联的概念ci,…,cn,计算SName与ci,…,cn的相似度并乘以相应的权值wi,…,wn,得到的结果的最大值是SName与该领域的相似度,如果相似度大于某个阀值则可以判断服务属于该领域.
定义8(概念相似度)概念相似度表示输入概念和本体中概念的相似程度,由公式(1)计算.
其中,c,ci…cn∈C,wi,…,wn是用户定义的权值.
定义9(领域本体满足) 设有阀值θ,当sim(sn,c)>θ时,概念sn属于领域本体do.
simt可以根据WordNet计算.WordNet是一个非常全面的树形结构的词典,标明了词语的语义关联,主要的关系类型有同义关系和上下位关系.Word-Net中常用的计算语义距离的方法是计算词语在树中的路径长度[13].词语m1和m2的语义相似度为
其中,c1和c2是m1和m2在领域中的确切含义,cf是二者的父概念节点,cr是它们所在分类树的根节点,dis(c1,cf)表示c1和cf在WordNet语义树中的路径长度.
定义10(RGPS相似度)RGPS相似度表示服务的RGPS属性和RGPS 领域模型的相似程度,由公式(3)计算.
其中,s表示一个原子服务或组合服务,m表示RGPS领域模型,wr,wg,wp,ws分别表示用户定义的rgps本体的权值,sr,sg,sp,ss表示服务的rgps属性,mr,mg,mp,ms分别表示RGPS本体.
定义11(RGPS满足)设有阀值η,当simm(s,m)>η时,服务s属于RGPS领域模型m.
因为服务的RGPS属性通常会用几个词或词组来描述,siml可以利用VSM[14](vector space model)方法计算.VSM 是信息检索领域广泛使用的自然语言比较方法.我们抽取领域本体中的重要概念组成向量T=〈t1,t2,…,tn〉.定义向量S1=〈s11,s12,…,s1n〉和M1=〈m11,m12,…,m1n〉,s1i表示ti在S1中的权重,m1i表示ti在M1中的权重.权重可以由用户定义也可以由ti在本领域的文档中出现的频率计算得到.ti在向量Sj中的权重可以由公式(4)计算.
算法1 基于领域的聚类算法
DRGPSSC(SCollection,C,DO,RGPSM)
输入:SCollection为服务的集合{s1,s2,…,sn};C为领域中的概念;DO 为领域本体;RGPSM为RGPS领域模型
输出:SCCollection 为聚类后的服务的集合{sc1,sc2,…,scj}
功能:找到符合领域本体和RGPS 领域模型的服务集合
原子服务的粒度一般比较小,往往不能直接满足服务请求者的需求,这就需要动态地选择和组合服务,使服务能提供更多的功能.由于有些服务常常被组合在一起提供给服务请求者,比如定火车票和查询火车站的地图常常被同时请求.这些常被组合的服务可用通过基于Wiki的需求获取工具由用户标注得到[15],也可以通过领域本体得到.可以事先把常被组合的服务组合在一起形成一个较大的组合服务,以提高服务的查找速度.
服务组合的方法本文使用基于粒子群的算法,从符合功能和输入输出要求的一组服务中选择QoS最优的一个加入到服务流程中,保证了服务组合的效率和全局最优.选择舒振等人[16]提出的混合粒子群算法进行服务组合,该方法利用群体自身信息、局部较优信息、全局较优信息和遗传算法对粒子更新,有较好的搜索空间和搜索效率.组合后的服务的QoS值由参与组合的原子服务的QoS值计算得到,具体方法参见文献[17].
为了检验本文提出的服务预处理方法,本文做了模拟实验.实现环境包括2.53GHzCPU,2GB内存,WindowsXP操作系统,IE7浏览器,MySQL5.1数据库服务器,Apache2.2 应用服务器,开发语言采用Java,使用JDK5.0Java虚拟机.
图3 交通出行领域本体Fig.3 Traffic travel domain ontology
由于不容易找到大量的满足实验要求的实际服务,本文采用随机生成模拟服务数据集的方式生成测试数据集.随机生成的服务包含所有服务需要的描述信息但是没有具体的功能,但用于测试和实际服务没有区别.
测试针对交通出行领域,建立的交通出行领域本体如图3 所示,采用刘玮描述的RGPS 领域模型[18],生成500个模拟服务,取阀值θ=η=0.6.
实验1 服务聚类方法比较
如Richi等人[19]提出了通过计算集合之间的相似度来实现服务聚类分方法,记为SWSC,本文的方法记为DRGPSSC,实验比较这2种方法的聚类时间和准确率.实验在服务个数分别为50、100、150、200、250、300 的情况下比较SWSC 和DRGPSSC方法的聚类时间如图4所示,准确度如图5所示.
由图4可得在相同服务数量下,SWSC方法的服务聚类时间明显比DRGPSSC方法少,这是因为SWSC方法在本体比较时只比较了概念的相似度,没有考虑本体的推理关系,而DRGPSSC方法要比较领域本体和RGPS 本体5 个本体,时间自然比较多.
图4 服务聚类时间比较图Fig.4 Service clustering time comparison
由图5可得在相同服务数量下,SWSC方法的服务聚类准确度比DRGPSSC低,这是因为SWSC方法只考虑了概念的相等关系,没有考虑其他语义关系,而DRGPSSC方法考虑了语义关系.
图5 服务聚类准确度比较图Fig.5 Service clustering accuracy comparison
从实验得知,DRGPSSC 方法用时比较长但准确率大大提高,由于DRGPSSC方法用于服务注册库中对服务的预处理,并不需要实时进行服务聚合运算,所有对时间的要求并不太高,因此仍然是一种可行的方法.
实验2 服务预处理的结果比较
曾诚等人[20]完成的服务注册系统中对服务使用领域本体和领域本地本体进行标注,以方便服务选择,该方法记为DRLSP,本文的服务预处理方法记为DRGPSSP.实验比较通过这2中方法处理后的服务的平均查询时间和准确率.实验在候选服务个数分别为100、200、300、400、500 的情况下,取30个不同的查询值,比较DRLSP和DRGPSSP进行预处理后的服务选择时间如图6所示,准确率如图7所示.
图6 服务选择时间比较图Fig.6 Service selection time comparison
图7 服务选择的准确率比较图Fig.7 Service selection accuracy comparison
由图6 和图7 可得,在相同服务数量下,用DRGPSSP方法预处理后的服务的服务选择的相应时间快、服务查准率高,这是因为该方法已经比较准确地做了服务聚类,并把可能可以组合的服务预先组合,使得服务容易被查找.
为了提高服务选择和服务组合的速度和准确率,服务库中的服务的预处理必不可少.本文基于O-RGPS领域建模框架,采用先做服务聚类再按照用户习惯组合成常用的组合服务方式进行服务预处理.服务聚类参考领域本体和RGPS模型,使服务能按照各个领域聚类,同时聚类后的服务满足RGPS模型的组织方式,能方便地与RGPS需求模型匹配,加速查询.服务的预先组合组成了领域中常用的组合服务,减少了动态的服务组合过程,提高了服务选择效率.
下一步的工作有以下几个方面:
1)确定阀值的范围及阀值的影响,通过实验找到不同领域比较合适的阀值.
2)完善服务组合算法,考虑除粒子群算法之外的最优选择算法并比较它们的结果.
3)考虑原子服务对组合服务的影响,如组合服务的输入、输出、资源、流程如何描述.
[1]Papazoglou M P,Georgakopoulos D.Introduction:Service oriented computing[J].Communications of the ACM,2003,46(10):25-28.
[2]岳 昆,王晓玲,周傲英.Web服务核心支撑技术:研究综述[J].软件学报,2004,15(3):428-442.
[3]Huhns M N,Singh M P.Service-oriented computing:key concepts and principles[J].IEEE Internet Computing,2005,1(2):2-8.
[4]Sudha R,Thamarai S S.Semantic grid service discovery approach using clustering of service ontologies[C]//Proc of IEEE TENCON.Hong Kong:The Institute of Electrical and Electronics Engineers Inc,2006:1-4.
[5]Ram S,Hwang Y,Zhao H M.A clustering based approach for facilitating semantic Web service discovery[C]//Proc of the 15th Annual Workshop on Information Technologies &Systems.New York:Social Science Electronic Publishing Inc,2006:1-6.
[6]孙 萍,蒋昌俊,利用服务聚类优化面向过程模型的语义Web服务发现[J].计算机学报,2008:31(8):1340-1353.
[7]Wang Jian,He Keqing,Gong Ping,et al.RGPS:A unified requirements meta-modeling frame for net-worked software[C]//Frances Paulisch.Siemens AG:IWAAPF2008in ICSE Workshop.New York:ACM Press,2008:29-35.
[8]王 健.网络式软件的需求元建模框架及关键技术研究[D].武汉:武汉大学,2008:10-22.
[9]宁 达,基于语义网和社会标注的按需服务发现方法研究[D].武汉:武汉大学,2012:84-92.
[10]曾 诚,语义互操作性Web 服务注册管理的机制与方法[D].武汉:武汉大学,2010:85-95.
[11]Jianxiao Liu,Keqing He,Da Ning.Web service aggregation using semantic interoperability oriented method[J].Journal of Information Science and Engineering,2012,28(3):437-452.
[12]刘建晓,何克清,王 健,等.一种面向语义互操作性的服务聚合方法[J].软件学报,2011,22(2):27-40.
[13]Giunchiglia F,Yatskevich M.Element level semantic matching[C]//Paolo Bouquet,Luciano Serafini.Proceedings of Meaning Coordination and Negotiation Workshop.Hiroshima:IEEE Press,2004:37-48.
[14]Salton G,Wong A,and Yang C S.A vector space model for automatic indexing[J].Communications of the ACM,1975,18(11):613-620.
[15]宁 达,何克清,彭 蓉,等.基于社会标注的Web服务语义自动浮现方法[J].计算机学报,2011,34(12):2414-2426.
[16]舒 振,陈洪辉,罗雪山.基于改进混合粒子群算法的服务动态选择方法[J].中南大学学报:自然科学版,2011,42(10):3086-3094.
[17]Yi Xia,Ping Chen,Liang Bao,et al.A QoS-aware web service selection algorithm based on clustering[C]//Lan Foster,Louise Moser.IEEE International Conference on Web Services.Washington DC:IEEE Computer Society,2011:428-435.
[18]刘 玮.面向领域的服务需求获取与分析研究[D].武汉:武汉大学,2008:33-38.
[19]Richi N,Bryan L.Web service discovery with additional semantics and clustering[C]//Tsau Young Lin,Laura Haas.Proc of IEEE/WIC/ACM International Conference on Web Intelligence.Fremont,CA:ACM Press,2007:555-558.
[20]曾 诚,何克清,李 兵,等.一种支持语义互操作的Web服务注册管理机制[J].小型微型计算机系,2011,32(9):1709-1715.