基于语义的服务组合在鱼类分类系统中的应用

2010-06-08 13:05肖彭燕
湖南农业科学 2010年15期
关键词:后继调用本体

肖彭燕

(上海海洋大学信息学院,上海 201306)

随着计算机网络技术的发展,特别是SOA[1]技术的出现,为web服务奠定了实现基础。近年来,鱼类分类的信息化工作也得到了很大的发展。由于单个服务提供的功能有限,组合已有的服务可以满足用户更多的需求。为了有效共享,重用这些服务,需要一种机器能理解的知识表达方法。本体能够帮助解决这些知识表达的问题,利用知识共享,信息集成,语义Web[2]和Web服务等技术可以有效地集成鱼类分类信息。

为此,笔者在领域本体的背景下,基于鱼类分类的一个例子,提出了一个高效的服务组合算法。该算法在搜索过程中,引入启发式函数,该函数使服务组合搜索过程可以根据已有的web服务经验进行动态调整,从而能够更好地适应网络不稳定性。由于评判服务组合方法好坏的标准不仅要求组合的服务在功能上满足服务请求,而且还要求服务组合效率能得到保证,故设置一个满意度阀值,即只要找到一个局部最优解,在功能上满足服务请求,即可作为搜索结果。这大大减少了服务搜索范围,降低了服务组合时间,提高了服务组合效率。

1 语义Web和本体技术

在语义Web中,各种资源被赋予了明确的语义信息,计算机可以分辨和识别这些语义信息,并对其自动进行解释、交换和处理。语义Web的体系结构一共有7层,见图1。

图1 语义Web体系结构

语义Web需要能够对Web文档中的术语含义进行形式化描述。本体作为表达知识的共享概念模型,已日渐成为知识工程,知识管理,智能信息集成,信息检索等多个领域的重要组成部分。收集各种鱼类信息[3],如鱼类名称、生态照片、生态影片、濒危鱼种、鱼类分布、鱼类标本、鱼类电子书、疾病防治诊断等资料,对获得的信息进行详细分析,从中提取知识,通过多种知识表示元素将这些概念之间的关联表达出来,这些知识表示元素就是元本体,分为概念、属性、关系、函数等。为了让机器理解上述的概念和关系,需对这些鱼类信息进行形式化描述,即采用具体的本体描述语言来编写本体,OWL[4]本体描述语言作为W3C的官方标准语言,用来描述Web文档和应用中内在的类和关系。用OWL语言描述渔业领域本体,生成OWL格式的文件节选见图2。

图2 鱼类信息OWL格式文件节选

对于OWL格式的文件,可利用Jena提供的API进行解析,转换成相应的Java类,并生成类的属性与方法,进而可使用Java编程,处理用户需求。

2 基于语义的服务组合的思想

OWL把一个Web服务认为是一个过程,将服务之间的匹配计算转换为输入、输出之间扩展语义匹配。因此,给出服务的定义如下:(1)一个Web服务可以表示为 WS(In,Out),其中 In={I1,I2,…,Ii}是服务的输入参数的集合,Out={O1,O2,…,On}是服务的输出参数的集合;(2)一个服务组合是满足服务请求的一个服务序列,表示为〈WS1,WS2,…,WSn〉。

基于语义的Web服务动态组合过程以基于领域本体的服务间概念相似度为基础,找出与服务请求中有语义关联的后继服务,继续找出该后继服务的后继服务,依此类推,直到某个后继服务是目标服务,从而得到服务序列,该序列就是服务组合的结果。由于一个服务可能存在多个语义相关的后继服务,因此这些语义相关的服务就构成了一个服务组合图。以鱼类分类系统为例说明这一服务组合过程:假设鱼类分类系统中存在各种Web服务,如鱼类名称服务、鱼类分布服务、鱼类生态影片服务、鱼类疾病诊断服务、鱼类经济价值服务等,为了完成用户各种需求,需要组合这些服务:当用户输入鱼类名称,要求输出的结果为其经济价值,通过一系列的服务组合,即可得到目标服务;如果用户的需求发生改变,要求输入鱼类名称,输出治疗方案,只需修改输入输出参数即可,不必重新编写代码来满足用户需求。过程描述见图3。

图3 鱼类服务组合图

图3中,方框表示输入、输出参数,椭圆表示服务,有向边相连的两个服务表示两者之间存在语义关联。

3 基于语义的Web服务组合的算法

3.1 代价树深度优先搜索与启发式函数

代价树深度优先搜索的思想描述如下,从刚刚扩展的节点之后继节点中选择一个代价最大的节点为下一个搜索目标,并进行扩展或判断。为了提高响应时间,在服务组合过程中,对在此算法的基础上进行改进,设置一个满意度阈值,只要满足一定条件(如用户满意度),即可作为搜索结果。为了进一步提高组合的效率,在搜索过程中引入启发式函数 h(x)。

由于网络的不稳定性,一个服务可能由于各种原因调用不成功,定义Suc(w)表示该web服务执行的成功次数,Fail(w)表示该web服务执行失败的次数。h(x)的初始值为 1|x=0,h(x)的计算见式(1)、式(2)。

其中,式(1)表示第i次调用该web服务后,第i+1次成功执行情况下的h(x)的值;式(2)表示第i次调用该web服务后,第i+1次执行失败情况下的h(x)的值。

从定义可知,对于某个web服务,调用成功的次数越多,h(x)的值越大,反之,若调用失败的次数越多,则h(x)值越小。考虑到web服务执行的频率,如一个web服务执行成功50次和执行失败51次之间的差距是很小的,因此h(x)的调整量呈指数级的衰减,h(x)的取值范围在0到2之间。

3.2 算法描述

条件:设置栈route、search,栈元素数据类型为字符串,分别用来存储解路径和搜索路径。为方便起见,在每个服务中添加布尔型标记flag,flag为false时表示该弧线未被搜索到,否则表示该弧线已被搜索过,flag的使用防止了搜索时重复走已经走过的路。初始化满意度函数 U(s)=1,Success(w)=0,Fail(w)=0。输入:服务请求WSr=(Ir,Or),服务组合满意度ζ。输出:服务组合序列〈WS1,WS2,…,WSn〉。

算法执行步骤如下。(1)初始化栈route=null。(2)判断是否有与服务请求输入参数相匹配的服务,即是否有弧相连接(是否有后继服务)。若有,则按从小到大的顺序依次存入earch[WSr],并且令flag=0。(3)取出首元素 WSi=search[WSr]。若 WSi为空,则 goto 6;否则,若 WSi调用成功,则 Success(w)++,调 整 h(x),入栈 router,令 flag=1,、U(s)+=weight﹡h(x),并重新调整 search[WSr]的顺序,再分别把WSi所有的后继服务的权值及更新后的启发式函数h(x)值之和按从小到大的顺序依次入栈search[WSi];若WSi调用不成功,则Fail(w)++,调整h(x),进而重新调整 search[WSr]的顺序。(4)判断服务WSi是否是目标服务状态,若是目标服务,则判断 U(s)是否≥ξ,若成立,则 goto 6,否则 goto 5;若不是目标服务,goto 2。(5)删除栈router中的首元素,并从栈search[gettop(router)]中读取第一个flag=0的元素WSj,若WSj为null,则继续删除栈router中首元素,并从相应的首元素的栈数组中搜索第一个flag=0的元素WSk,直到WSk不为null,将 WSk 入栈 router,goto 2。(6)若 router为 null,则服务组合失败;若router不为null,则服务组合成功,遍历栈router中的服务即可。

4 实验结果与分析

实验环境部署在一台CPU为Intel(R)Pentium(R)Dual T2410@2.00GHz、内存为2.00GB的PC机上,操作系统为Windows XP,开发工具为E-clipse,开发语言为Java,OWL解析工具为Jena提供的API。9个数据集的服务数量分别为500、700、900、1 100、1 300、1 500、1 700、1 900、2 100,取平均组合时间作为结果。将本算法与另一种启发式的web service组合算法(BF*[6])以及简单的遍历方式(simple)对比,进行算法性能的评估,得到的实验结果如图4所示。

图4 本文算法与BF*,simple算法服务组合效率比较

由图4可以看出,就时间效率而言,研究采用的算法比BF*、simple都要好。BF*算法的性能变化波动较大,这与其启发式规则有关,而研究采用的算法,随着web服务数量的增长,曲线缓慢上升,服务组合时间的增长幅度相对较小。

通过实验分析,可以看出研究采用的算法具有以下的优点:(1)语义性;(2)能在保证组合质量的前提下,高效的进行服务组合;(3)动态适应性,每次服务组合过程后,通过对相应的路径的启发式函数值进行更新,为下次服务选择提供依据。

5 总结

通过对鱼类信息的Web服务组合,可以满足用户各种各样的需求,而不用重新编写代码来实现,提高了系统的效率。由于现有的服务标准和协议仅限于语法的层次,没有语义功能,所以研究在基于领域本体的背景下,生成了一个服务组合图。基于该图,在搜索的过程中,采用代价树的深度优先搜索方式,并引入启发式函数,使其在搜索过程中根据已有的web服务组合经验,淘汰较差的web services,提高了系统的自适应性。下一步将重点研究更好的启发式函数计算方法,充分利用服务组合,实现基于SOA技术的鱼类分类信息系统构建。

[1] 邢少敏,周伯生.SOA研究进展[J].计算机科学,2008,35(9):13-20.

[2] Tim Berners-Lee,James Hendler,Ora Lassila.The Semantic Web[J].Scientific American(S0036-8733),2001,284(5):34-43.

[3] 成庆泰,郑葆珊.中国鱼类系统检索 [M].北京:科学出版社,1987.

[4] Smith M K,Welty C,McGuinness DL.OWL Web ontology guide[EB/OL].http://www.w3.org/TR/owl-guide/,2004.

[5] 潘谦红,王 炬.基于属性论的文本相似度计算[J].计算机学报,1999,22(6):651-655.

[6] 方贤进,李龙澍.多模式匹配算法的优化研究 [J].软件时空,2007,(03):211.

猜你喜欢
后继调用本体
核电项目物项调用管理的应用研究
LabWindows/CVI下基于ActiveX技术的Excel调用
基于本体的机械产品工艺知识表示
皮亚诺公理体系下的自然数运算(一)
基于系统调用的恶意软件检测技术研究
甘岑后继式演算系统与其自然演绎系统的比较
滤子与滤子图
《我应该感到自豪才对》的本体性教学内容及启示
专题
Care about the virtue moral education