作者:毛一梅 乐嘉锦 徐建平
[摘要] web服务技术已被电子商务企业广泛接受和认同,然而,在业务过程处理中,通常需要按照一定的粒度,将多个web服务根据特定的应用背景和需求进行合理的组合,以便实现完整的业务过程。本文主要研究基于本体的web组合服务的合成建模及接口集成的技术,介绍该技术在电子商务中应用的基本思想,并根据具体的案例提出了web组合服务的实施方案。
[关键词] 电子商务 web服务 web组合服务 合成建模
在电子商务中,具有良好封闭性、松散耦合和高度可集成等特点的web服务技术深受企业的青睐,但是单一的web服务功能毕竟简单、有限,难以满足某些实际应用的需要,人们开始关注web服务的组合问题,本文主要研究基于本体的web组合服务的合成建模及接口集成的技术在电子商务中的应用,分析了具体的案例,提出了web组合服务的实施方案。
一、web服务的组合
1.概述
web服务的组合就是通过合成不同提供者提供的原子web服务或组合服务来为用户提供增值的服务。目前,有许多著名公司的商务套件产品都开始支持web服务及其组合的应用。WwW.133229.coMweb服务的组合中如何建模是组合成败的关键之一。
2.本体建模
在web服务的合成中,本体建模的优劣直接影响到组合服务的效果。本体建模分为二个部分:输入输出参数建模和web服务合成建模。
(1)输入输出参数建模
输入输出参数进行建模分收集属性和构建抽象属性二个步骤。收集属性就是根据现有的web服务的输入输出参数来进行属性的选取;构建抽象属性是根据实际情况对收集到的属性和web服务中已有的类进行分类和抽象,构建基本类和抽象类。在本体中可以有两个基本的关系——sub-class-of和part-of:
sub-class-of:a “sub-class-of” b,表示a是b的子类。这里的a和b只能是抽象类。sub-class-of具有传递性,即a “sub-class-of” b,b“sub-class-of”c意味着a“sub-class-of”c。
part-of:a“part-of”b表示a是b的一个元素。这里的a可以是基本类或抽象类,也可以是一个集合;而b只能为集合或者抽象类。part-of也具有传递性。
可以由sub-class-of和part-of定义一个关系:a“semi-part of”b。
定义1 假设有两个集合a、b,如果对于a中任意一个元素α,总能在b中找到一个元素β,使α、β满足关系:α“part of”β或α=β或α“sub-class-of” β,则a“semi-part of”b。
(2)web服务合成建模
通过把web服务转化为本体中的属性,并定义属性之间的关系来完成建模。
定义2 对于,我们把wsi作为本体中的一个属性pi,其中pi的定义域是pdi,值域为,。
把web服务转化为属性之后,即可通过定义属性间的关系对web服务之间的关系进行描述。
定义3 假设有两个属性pi,pj,对于,如果,就有,则pj“semantic-equal”pi。其中表示i的属性pi取值为j,即i,j满足关系pi。
由“semantic-equal”定义可知,属性pj的语义包含pi的语义。如果能够根据web服务建立这种关系,我们就能由这种关系来判断web服务的语义包含问题。
定理1 假设所产生的属性为所产生的属性为pj。pj“semantic-equal”pi,当且仅当 ,如果满足wsi,就有满足wsj(其中in+1,…in+r可以取任意值)。
证明:充分性:,因为,所以,应该有这样的形式,。假设,满足wsi的输入输出为(i',j'),则j'一定具有形式满足wsi,所以(i, j)也满足wsj。因此i,j满足,即pj“semantic-equal”pi。
必要性:满足wsi,所以,i,j应有形式i=(i1,…,in),j=(o1,…,on),且。假设i'=(i1,…,in,in+1,…in+r),j'=(o1,o2,…,on-m),其中(in+1,…in+r)可以取任意值。因为pdi(i1,i2,…,in),pri(o1,o2,…,on),所以,i'pdi,j'pri;因为(i,j)pi,所以(i',j')pi;因为pj“semantic-equal”pi,所以(i',j')pj,即(i',j')满足wsj。
可以由定理1推出定理2。
定理2 假设wsi(i,o),wsj(i',o')所产生的属性分别为pi,pj,如果i“semi-part-of” i',o'“semi-part-of”o,且对于满足wsi的任意一组输入输出都满足wsj,则有pj“semantic-equal” pi。
定理1与定理2表明如果用户期望的web服务是wsj(i1,i2,…,in,in+1,…, in+r,o1,o2,…,on-m),通过合成得到这样一个web服务:wsi(i1,i2,…,in,o1,o2,…,on),则它的每一组输入输出都能满足的wsj要求,因此它能够根据提供的输入来获得用户期望的输出,即在本体中如果用户要求的web服务对应的属性为pj,只需找到与pj有semantic-equal关系的属性pi进行合成。
上述思想提出了在输入输出参数语义和web服务语义上满足用户需求的合成目标。但web服务的语义分解很难实现,可以通过引入另一种“semi-semantic-equal”关系将上述关系弱化。
定义4 设有两个属性pi,pj,对于i,j,如果ipdi,jpri,就有ipdj,jprj,则pi“semi-semantic-equal”pj。
定理3 假设n>m≥0,r≥0,对于wsi(i1,i2,…,in,o1,o2,…,on),wsj(i1,i2,…,in,in+1,…,in+r,o1,o2,…,on,on-m)所产生的属性分别为pi,pj,pj“semi-semantic-equal”pi。
证明:i,j,假设i,j满足属性pj,则有ipdj,jpri。由定义1可知,pdj(i1,i2,…,in,in+1,…,in+r),prj(o1,o2,…,on-m),因为pdi(i1,i2,…,in),pri(o1,o2,…,on),所以pdjpdi,prjpri。即pdj(i1,i2,…,in),prj(o1,o2,…,on),所以ipdi,jpri,即pj“semi-semantic-equal”pi。
同样可由定理3推得定理4。
定理4 假设wsi(i,o),wsj(i',o')所产生的属性分别为pi,pj,如果i“semi-part-of”i',o“semi-part-of”o',则有pj“semi-semantic-equal”pi。
上述定理表明,如果用户要求的web服务对应的属性为pj,只需找到与pj有“semi-semantic-equal”pi关系的属性pi的合成方案即可。
3.基于本体的接口合成
web服务wsi(i1,i2,…,in,…,in+r,o1,o2,…,on+r)要求其后续的web服务wsn的输入是o1,o2,…,on+r,即wsn(o1,o2,…,on+r,…),如果存在这样的web服务wsj(o1,o2,…,on,…),则可用wsj来代替wsn作为wsi的后续,根据定理3,需要在本体中找到与wsn对应pn具有“semi-semantic-equal”关系的属性pj。我们首先由用户提供的输入产生wsn,然后根据wsn在本体中产生一个对应的虚拟属性pn,然后查找与pn存在“semi-semantic-equal”关系的属性pj,pj对应的web服务就是所需要的后继web服务。反复迭代,直到最后一个web服务的输出满足用户的需要为止。
二、应用实例
某饮料公司网站搞一个促销活动,其内容主要是在规定促销期间让客户在生日时能收到生日礼物,因而需要了解顾客的信息,然后根据顾客的爱好来确定礼物,并配以适当的饮料,从而联络商家与客户的感情,提高客户的忠诚度。有以下几个现成的web服务可以使用:
> getcustomer (idcard,name,customerbirthday,hobbies)
> getperson (idcard,cname,birthday,habit)
> getfavoritecommodity(hobbies,commodity,price)
> getsuitabledrink (commodity, drink)
> getdrink (supply, drink,price)
由于上述这些web服务在跨系统的、异构的平台运行,要进行二次开发难度较大,且这种促销活动只是在一段内时间进行,开发新系统的利用率也不高,因此,我们可以利用现有的web服务进行合成形成一个web组合服务来完成上述查询。
输入输出建模。收集基本类属性,消除其中的同名异义和异名同义现象;构建抽象类,从customer的各种属性构建customer类,根据已有的commodity,drink来构建commodity,drink类,考虑到commodity和drink都属于可消费品,建立一个更抽象的类consumable,如图1所示。
图1 抽象类和基本类
图2 本体建模
根据前面所阐述的建模方法,针对本案例有本体建模表示图2,其中六边形表示由web服务转化的属性,它与类的连接表示属性的定义域、值域,也就是web服务的输入输出。图3描述了饮料公司查询顾客信息时可能的web服务接口的合成,六边形表示候选的web服务,其上的圆角矩形表示其输入或输出类型。
图3 合成图
三、结束语
本文提出了在电子商务中利用现有的web服务来实现web组合服务的方案,介绍了本体建模的基本思想,并通过具体案例详细介绍了一种动态、自动的web服务合成方法。我们根据此方案编制了一个模拟系统,经初步测试其功能基本符合要求,但当数据量比较大时其运行速度还有待进一步提高。
参考文献:
[1] j. rosenberg, the critical need for monitoring and analysis, [j] web services journal 3 (2003) (11)http://webservices.sys-con.com/read/39904.htm
[2] bea, ibm, and microsoft (2003) business process execution language for web services (bpel4ws). [r]http://xml.coverpages.org/bpel4ws.html
[3]顾宁刘家茂柴晓路编著:《web services 原理与研发实践》[m].机械工业出版社,2006