CN101917413A - 基于服务质量优化和语义信息集成的服务组装系统及方法 - Google Patents

基于服务质量优化和语义信息集成的服务组装系统及方法 Download PDF

Info

Publication number
CN101917413A
CN101917413A CN2010102399164A CN201010239916A CN101917413A CN 101917413 A CN101917413 A CN 101917413A CN 2010102399164 A CN2010102399164 A CN 2010102399164A CN 201010239916 A CN201010239916 A CN 201010239916A CN 101917413 A CN101917413 A CN 101917413A
Authority
CN
China
Prior art keywords
service
data type
assembly
service assembly
index
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN2010102399164A
Other languages
English (en)
Other versions
CN101917413B (zh
Inventor
闫奕歆
许斌
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tsinghua University
Original Assignee
Tsinghua University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Tsinghua University filed Critical Tsinghua University
Priority to CN 201010239916 priority Critical patent/CN101917413B/zh
Publication of CN101917413A publication Critical patent/CN101917413A/zh
Application granted granted Critical
Publication of CN101917413B publication Critical patent/CN101917413B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本发明公开一种基于服务质量优化和语义信息集成的服务组装系统及方法,主要是为了提高服务组装的可靠性、稳定性和服务质量而设计。本发明包括:Web服务网络,提供服务及其对应的输入/输出数据类型;本体概念网络数据库,提供本体概念;索引产生服务器,建立服务的输入/输出数据类型和本体概念之间的“服务-数据类型-本体”索引,并将该索引存储在所述索引产生服务器内;服务组装引擎服务器,接收客户端需求的输入/输出数据类型,并在“服务-数据类型-本体”索引中查询与其匹配的数据类型,依据服务组装算法进行服务组装,得出服务组装结果;以及服务组装结果执行服务器。本发明集成了语义信息,服务质量最优,且能够高效地处理大规模的服务组装。

Description

基于服务质量优化和语义信息集成的服务组装系统及方法
技术领域
本发明涉及Web服务和服务组装技术领域,尤其涉及一种基于服务质量优化和语义信息集成的服务组装系统及方法
背景技术
随着互联网通信技术和电子商务应用的普及,面向服务的架构(ServiceOriented Architecture,SOA),即以服务为核心的软件设计的思想,被广泛地应用到构建实际的大型系统中。近些年来,随着Web服务被越来越多的人使用,很多业务模块需要若干服务协作完成,这就产生了对服务组装技术的需求。所谓的服务组装,即自动地将若干在业务逻辑上相关联的服务以某种方式结合在一起从而完成特定的用户需求。Web服务组装过程是指服务组装者运用组装技术,根据组装需求编排Web服务生成新的服务或应用的过程。
现有的服务组装方法主要着眼于基于预定义的工作流、用户对服务质量的限制和优化目标,在工作流中各任务节点所对应的服务列表中进行服务选择。先根据用户需求制定由抽象任务节点组成的工作流;再根据组装优化的目标函数以及不同节点上的候选服务列表进行服务选择,最终给出一个由具体服务组成的工作流。(如图1所示)
在SOA框架下的软件设计开发中,工作流通常是由服务所提供的功能决定的,这是一个自下而上的过程,所以在需求工程阶段,也就是服务组装之前,往往不能够给出精确的预定义工作流;其次,在服务发现过程中,候选服务列表实际上是随机产生的,数据规模比较大。缺少有效的服务发现算法。另外,在工业界,自动服务组装的方法并没有得到广泛使用,候选服务列表是由系统开发者指定的,服务的数量非常有限。固定的工作流也就使得服务组装过程变得不灵活。
服务组装过程中,传统的服务组装是利用服务的输入/输出数据类型和名称进行匹配,这样做的缺点是匹配准确度和覆盖率都非常低。首先,很多服务描述文档(WSDL,Web Services Description Language)都是自动生成的,参数命名不含信息量,因此就会出现无法匹配或匹配发生错误的情况出现;其次,即使用自然语言命名的参数,也存在大量的一词多义或同义词现象,由于缺乏信息量,匹配的原则只能局限于字符串匹配,这同样会导致错误匹配或者遗漏正确的匹配。
目前,根据对在互联网上服务的提供者和使用者的调研,服务组装所面临的关键问题主要有以下几点:(1)如何充分利用服务中所附带或者隐含的语义信息;随着语义Web的发展,大量的数据都会附带语义信息,这些信息可以帮助提高服务间的相关性匹配和数据关联的准确度,进而能够提高组装过程中的服务挖掘能力。(2)如何保证服务质量;服务组装不仅要给出正确的组装结果,即功能性需求,还要满足不同系统对服务质量的需求,甚至需要做到在运行时可以自适应地调整以满足QoS的稳定性,即非功能性需求。(3)如何处理服务组装规模和效率。服务组装的数量级能否覆盖目前互联中存在的所有服务,以及能否对服务实时检测和实时组装,这些都是以高效的组装算法为前提的。
发明内容
为了克服上述的缺陷,本发明提供一种集成了语义信息,具有优化的服务质量,以及能够高效地处理大规模服务组装的基于服务质量优化和语义信息集成的服务组装系统和方法。
为达到上述目的,本发明基于服务质量优化和语义信息集成的服务组装系统,包括:
Web服务网络,提供服务及其对应的输入/输出数据类型;
本体概念网络数据库,提供本体概念;
索引产生服务器,基于Web服务网络和本体概念网络数据库,建立服务的输入/输出数据类型和本体概念之间的“服务-数据类型-本体”索引,并将该索引存储在所述索引产生服务器内;
服务组装引擎服务器,接收客户端需求的输入/输出数据类型,并在“服务-数据类型-本体”索引中查询与其匹配的数据类型,依据服务组装算法进行服务组装,得出服务组装结果;
以及服务组装结果执行服务器,用于执行服务组装结果。
进一步地,还包括服务组装结果测试服务器,接收来自服务组装引擎服务器的服务组装结果,并对其进行工作状态和服务质量检测。
进一步地,“服务-数据类型-本体”索引包括:
服务到其输入/输出数据类型的映射;
数据类型到以其为输入/输出的服务的映射;
数据类型与本体概念的相互映射;
本体概念之间的父子关系的关系映射;
以及服务到其对应的不同服务质量属性的映射。
进一步地,服务组装算法包括以下步骤:
a、将以与客户端需求的输入数据类型相匹配的数据类型为输入数据类型的服务放入优先级队列中;
b、从优先级队列中取出优先级最大的服务;
c、判断该服务的输出数据类型是否与客户端需求的输出数据类型相匹配,若匹配,进行反向搜索,得出服务组装结果,若不匹配,进行步骤(d);
d、在“服务-数据类型-本体”索引中查询出与上述服务的输出数据类型相匹配的数据类型;
e、将以步骤d查询出的数据类型为输入数据类型的服务放入优先级队列中,再重复步骤(b)至(c)。
进一步地,所述本体概念是由OWL文件表示,其包含了所有概念的定义以及概念之间的层次关系。
本发明基于服务质量优化和语义信息集成的服务组装方法,包括以下步骤:
(1)构建服务的输入/输出数据类型和本体概念之间的“服务-数据类型-本体”的索引;
(2)在“服务-数据类型-本体”索引中查询出与客户端需求的输入/输出数据类型相匹配的数据类型,基于服务组装算法进行服务组装,并得出服务组装结果;
(3)执行服务组装结果。
进一步地,步骤(2)之后还包括测试服务组装结果,包括以下步骤:
检查服务的输入数据类型是否在被调用前已达到满足客户端需求的输入数据类型的状态;
检查服务的输入数据类型是否是客户端需求的输入数据类型的子集;
检查服务的输出数据类型是否覆盖了客户端需求的输出数据类型;
检查服务组装系统的服务质量是否达到客户端需求。
进一步地,服务组装算法包括以下步骤:
a、将以与客户端需求的输入数据类型相匹配的数据类型为输入数据类型的服务放入优先级队列中;
b、从优先级队列中取出优先级最大的服务;
c、判断该服务的输出数据类型是否与客户端需求的输出数据类型相匹配,若匹配,进行反向搜索,得出服务组装结果,若不匹配,进行步骤(d);
d、在“服务-数据类型-本体”索引中查询出与上述服务的输出数据类型相匹配的数据类型;
e、将以步骤d查询出的数据类型为输入数据类型的服务放入优先级队列中,再重复步骤(b)至(c)。
进一步地,执行服务组装结果,包括以下步骤:
(1)执行服务组装结果中的起始节点;
(2)判断节点是否为单一服务,是,执行服务;不是,判断该节点的结构;
(3)若节点的结构为串行结构,按照先后顺序依次执行构成串行结构的各节点,转到步骤(2);
(4)若节点的结构为并行结构,同时执行构成并行结构的各节点,转到步骤(2);
(5)直至执行完服务组装结果中的所有服务。
进一步地,反向搜索的步骤如下:
(1)将满足客户端需求的输出数据类型的服务置于服务组装结果的解中;
(2)判断上述服务的输入数据类型是否与客户端需求的输入数据类型相匹配,是,结束搜索;否,继续进行下一步;
(3)将满足上述服务的输入数据类型的服务置于服务组装结果的解中,然后转到步骤(2)。
本发明基于服务质量优化和语义信息集成的服务组装系统及方法,所达到的有益效果主要体现在以下几点:
1)本发明不需要给出预定义工作流,只需要给出客户端需求的输入/输出数据类型,然后由数据类型,服务及本体概念之间的匹配关系来驱动服务组装。
2)基于集成语义信息,能够提高匹配的成功率,以及减少错误的匹配;本发明利用了本体概念,通过将服务的输入和输出数据类型与本体概念进行“服务-数据类型-本体”索引,实质上是利用服务的输入和输出的语义信息和本体概念之间建立索引关系,再将客户端需求的输入/输出的语义信息与索引中的具有相同语义的服务进行匹配来实现的。
3)服务质量优化,本发明依据服务组装算法来动态地根据服务质量的变化调整组装方法从而达到用户所需要的服务质量。
4)能够高效地处理大规模的服务组装,本发明由于采用了本体概念,使得其服务组装的数量级可以覆盖目前互联中存在的所有服务以及所有语义信息,此外,由于采用了本发明的服务组装算法,服务组装系统能够实时性和自适应性对服务进行检测和组装,为高效的处理大规模组装提供了技术上的支持。
附图说明
图1为现有的服务组装方法的流程示意图;
图2为本发明基于服务质量优化和语义信息集成的服务组装系统的结构图;
图3为本发明提供的构建“服务-数据类型-本体”索引的实施例示意图;
图4为本发明基于服务质量优化和语义信息集成的服务组装模型示意图;
图5为多个服务之间的相互连接关系的实施例示意图;
图6为多个服务之间的相互连接关系的实施例的另一表示形式的示意图;
图7为本发明基于服务质量优化和语义信息集成的服务组装算法实施例的计算过程示意图。
具体实施方式
下面结合说明书附图对本发明的具体实施方式做详细描述。
图2所示本发明基于服务质量优化和语义信息集成的服务组装系统的结构图,由Web服务网络1提供服务,本体概念网络数据库2提供了所有概念的定义以及概念之间的层次关系,利用Web服务网络1和本体概念网络数据库2实时获取服务和本体概念定义的更新。
索引产生服务器3接收服务的输入/输出数据类型和本体概念,建立“服务-数据类型-本体”的索引,该索引包括:服务到其输入/输出数据类型列表的映射;数据到以其为输入/输出的服务列表的映射;数据与本体概念的相互映射;本体概念之间的父子关系的关系映射;以及服务到其对应的不同服务质量属性的映射。将该索引作为关系数据库的表存放在其内。
服务组装引擎服务器4,接收客户端需求的输入/输出数据类型,并将其与“服务-数据类型-本体”索引中的数据类型进行匹配,基于服务组装算法进行服务组装,得出服务组装结果。
服务组装结果测试服务器5,其封装了一个组装结果测试服务,该服务接收服务组装结果,并对其进行检查,给出是否可以正常工作以及是否满足用户需求的检查结果,检查的结果主要包括有:数据关联的有效性;用户的功能性需求;以及用户的非功能性需求。对服务组装结果进行以下步骤的检查:
检查服务的输入数据类型是否在被调用前已达到满足客户端需求的输入数据类型的状态;
检查服务的输入数据类型是否是客户端需求的输入数据类型的子集;
检查服务的输出数据类型是否覆盖了客户端需求的输出数据类型;
检查服务组装系统的服务质量是否达到客户端需求。
服务组装结果执行服务器6,执行服务组装结果,并能够直接让客户端7查看整个运行状态是否满足其在业务逻辑和服务质量方面的需求。
图3所示本发明提供的构建“服务-数据类型-本体”索引的实施例示意图,图中交通工具本体是由已经定义好的由各种概念组成的,本体概念具有一定的层次关系,即交通工具为最顶层的概念,飞机和汽车都属于交通工具的子概念,而汽车又分为轿车和越野车两个子概念。从语义角度看,子概念所包含的信息量大于父概念所包含的信息量。这对于语义匹配将是一个重要的事实。标注的过程就是将服务1到服务4的输入/输出数据类型分别对应到本体中的各个概念中,标注的结果如图2中的虚线所示:auto与汽车匹配,car与汽车匹配,vehicle与交通工具匹配,suv与越野车匹配。根据概念之间的层次关系和概念和数据类型之间的匹配关系,可以得出:
服务1与服务2是匹配的,因为服务1的输出数据类型auto与服务2的输入数据类型car对应于同一个概念汽车;
服务1与服务3也是匹配的,因为服务3的输入数据类型vehicle对应与交通工具,是汽车的父概念,即服务1的输出数据类型足够满足服务3的输入数据类型;
而服务1与服务4是不匹配,因为服务4的输入数据类型suv对应与越野车,是汽车的子概念,即服务1的输出数据类型不能满足服务4的输入数据类型。
本发明的实质是基于本体标注进行服务匹配,具体做法是将WSDL(WebServices Description Language,Web服务描述语言)所描述的服务的输入/输出数据类型参照已经定义好的本体概念进行标注。在服务组装过程中,客户端需求的输入/输出数据类型与索引中的本体概念进行标注,然后再根据概念之间的层次关系以及概念和数据类型之间的匹配关系,得出与客户端需求的输入/输出数据类型相匹配的服务的输入/输出数据类型。也就是说,本发明中服务的每一个输入/输出数据类型都对应一个本体,本体又是由多个概念构成,各概念又与本体存在着层次关系,该层次关系实质上就表征了服务的输入/输出数据类型之间的语义信息,客户端需求的输入/输出数据类型与该语义信息进行匹配。
另外,在实际的语义标注和组装过程中,还会遇到多对一的数据关联。即某些服务的输出可能是一个数组,数组中的每一个元素都对应一个本体概念,比如概念C,而另一些服务的输入恰恰是C。在这种情况下,可以从输出的数组中取出一个元素作为后续服务的输入。反之,如果一些服务的输出是C而另一些服务的输入是以C为元素的数组,也可以将C包装为元素个数为1的数组,从而进行后续的组装。这种情况在服务组装算法中只需将数组和元素对应到同一个数据类型即可。但在实际系统的执行过程中,这种“多对一”的情况的执行就需要人为参与,比如具体选择数组中的哪一个元素作为下一个服务的输入。
针对多对一的数据关联情况,例如,用户选择的系统输入为国家,输出为天气。从逻辑上说,一个城市可以有天气,一个国家拥有多个城市,这就形成了典型的“多对一”的情况,即将国家到主要城市列表和城市到天气预报两个服务进行串联。服务组装结果执行服务器会在多对一的数据关联点上将执行过程分为前后两个部分,然后让用户自己选择数组中的某一个元素作为下一步的输入数据。用户输入“China”后得到的是中国地区的主要城市列表,系统下一步需要执行的操作是根据城市的名称查询天气预报,此时就需要用户来选择某个城市查看其天气状况。用户选择了“Hohhot”,即呼和浩特,然后在另一个界面中显示其天气状况。
本发明的有益效果体现在:首先,能够提高匹配的成功率,发现潜在组装方案,如上例中auto和car在语义上同属于一个概念,匹配成功。但字符串匹配显然是失败的;因此只要有同义词(组)的存在,这种同义词(组)匹配失败的情况就会非常多。另外,能够减少错误的匹配,对一些不相关的服务,即使输入/输出在字符串匹配中成功,如果在本体标注中对应的概念不同,也会匹配失败。这种现象多见于一些应用范围广且容易混淆的命名,比如“名称”、“编号”等。
图4所示本发明基于服务质量优化和语义信息集成的服务组装系统模型,图中表示出了服务组装的过程,根据客户端的需求进行组装并且给出组装结果。服务组装系统的客户端需求可以表示为(RIN,ROUT,QR)。其中,RIN表示客户端需求的输入数据类型,ROUT表示客户端需求的输出数据类型,QR表示客户端需求的各种QoS(Quality of Service,服务质量)属性。QoS驱动的服务组装即基于已有服务1和服务2,或服务3和服务4,或服务5和......和服务n的输入/输出数据类型所对应的本体,在给定(RIN,ROUT,QR)情况下,利用服务组装算法以QS最大化为目标函数给出(DIN,DOUT,P,QS)。其中,
Figure BSA00000209366400091
Figure BSA00000209366400092
QS为服务各种QoS属性集合,且QS为最大值,DIN为服务的输入数据类型集合,DOUT为服务输出数据类型的集合,P为服务组装的结果。
图中可以看出DIN与RIN匹配,DIN与以其为输入数据类型的服务1有映射关系,因此服务1为P的一个解。服务1有两个输出数据类型1和2,此时将这两个输出数据类型1和2分别在“服务-数据类型-本体”索引中查询,找出与上述的输出数据类型1和2相匹配的数据类型3和4,则以数据类型3为输入数据类型的服务3和以数据类型4为输入数据类型的服务4为P的另两个解;依照上述的方法,得出P的其余解服务5和服务n-1,此时判断服务n-1的输出数据类型是否与ROUT相匹配。本实施例中,服务n-1的输出数据类型DOUT与ROUT相匹配,则本实施例的服务组装完成,得出服务组装结果P(如图4中所示)。
图5即为本发明服务组装中多个服务之间的相互连接关系的实施例示意图,
服务组装实际上是将客户端需求的输入/输出数据类型与索引中的服务的输入/输出数据类型进行匹配,再根据匹配的程度将若干服务集成在一起,形成可以完成更为复杂逻辑的工作流。通常,服务之间的相互连接关系有串行、并行、选择、条件、循环等等。在服务组装研究领域,串行、并行和选择执行是最重要的基本结构,因为条件和循环通常是在服务内部实现的。本发明中,串行结构是指由多个先后顺序执行的服务组成的结构;并行结构是指由多个可以同时执行的服务组成的结构;选择结构是指由多个可以选择执行的服务组成的结构。通常选择结构中的服务是有相互替代关系的,系统可以在运行时根据QoS的情况动态选择具体执行哪一个服务。在BPEL(Business Process Execution Language,业务流程执行语言)表示的工作流中,这三种关系分别用<Sequence>,<Parallel>和<Switch>表示。三种基本结构可以相互嵌套,组成更为复杂的逻辑。基于以上三种工作流程的基本结构,本实施例对几种比较重要的QoS属性进行了调用和分析,包括响应时间、吞吐量、有效性(Availability)、可靠性(Reliability)和使用成本(Cost)等。如表1所示。
表1QoS属性的计算列表
Figure BSA00000209366400111
图中串行结构1是由选择结构1,服务D和并行结构1组成;选择结构1由串行结构2和服务C组成;串形结构2由服务A和服务B组成;并行结构1由串行结构3和选择结构2组成;串行结构3由服务E和服务F组成,选择结构2由服务G和服务H组成;图中R代表响应时间,T代表吞吐量。通过图5很容易就可以找到最优化的执行。串行机构1表明选择结构1,服务D和并行结构1需按顺序执行,因此需先执行选择结构1,此时可以通过比较串形结构2和服务C的响应时间(假设我们以响应时间最短为优选),从图中可以看出执行串形结构2的响应时间最短,因此选择执行串形结构2。串形结构2执行完成后再执行服务D和并行结构1。并行结构1需同时执行串形结构3和选择结构2,串形结构3按顺序执行服务E和服务F,选择结构2按择优执行的方式执行服务H。
图6所示多个服务之间的相互连接关系的实施例的另一表示形式的示意图,服务A和服务B与服务C是选择结构,可以执行服务A再执行服务B,或执行服务C;而服务A,服务B和服务C与服务D是串行结构,即执行完服务A和服务B,或执行完服务C后再执行服务D;执行完服务D后,串行结构的服务E和服务F与选择结构的服务G和服务H同时执行,在执行选择结构的服务G和服务H时,可选择性的执行服务G或服务H;执行完成后结束。图中按执行过程在不同位置给出预期的响应时间。其中括号内的数字表示服务的实际响应时间,虚线上的数字表示不同位置预期的响应时间。本实施例中,选取QoS属性的响应时间最短为优选值,从图中可以直观的看出执行服务A和服务B所需的响应时间为600ms,而执行服务C需800ms,因此执行服务A和服务B比执行服务C较优,执行服务G所需的响应时间为300ms,执行服务H需100ms,因此执行服务H比执行服务G较优,根据表1中的响应时间的计算公式得:执行本实施例的服务组装所需要的响应时间Ts=200+400+400+50+50=1150ms。系统可以运行时根据计算值与实际监控得到的响应时间进行对比,及时发现问题。并能够定位到具体出现异常的服务。
图7所示本发明基于服务质量优化和语义信息集成的动态服务组装算法实施例的计算过程示意图;图1显示系统的输入数据类型(即客户端需求的输入数据类型)为{#1,#2,#3,#4},输出数据类型(即客户端需求的输出数据类型)为{#8,#9,#10},可用服务集合为{服务A,服务B,......,服务H}。本实施例计算的优化的目标是系统的响应时间,图中在各个服务上所标的数字是调用单个服务的响应时间。
步骤1,将满足系统的输入数据类型的服务B、服务E和服务F放入优先级队列中,并分别计算它们的累积响应时间。由于是直接被系统输入数据类型满足,所以累积响应时间即为服务本身的响应时间,如图6(2)所示。
步骤2,将优先级最大(响应时间最小)的服务B从队列中取出并放入解空间,服务B的输出数据类型为#5和#6,根据新的可用数据类型{#1,#2,#3,#4,#5,#6},将新的可满足的服务A加入到优先级队列中。计算服务A的累计响应时间,根据服务A的所有输入数据类型的最大响应时间加上调用A本身所消耗的时间,即20+15=35ms,如图6(3)所示。
步骤3,将优先级最大(响应时间最小)的服务E从队列中取出并放入解空间,服务E的输出数据类型为#7,根据新的可用数据类型{#1,#2,#3,#4,#5,#6,#7},将新的可满足的服务C加入到优先级队列中,计算服务C的累计响应时间,根据服务C的所有输入数据类型的最大响应时间加上调用C本身所消耗的时间,即30+35=65ms,如图6(4)所示。
步骤4,将优先级最大(响应时间最小)的服务A从队列中取出并放入解空间,服务A的输出数据类型为#11和#9,根据新的可用数据类型{#1,#2,#3,#4,#5,#6,#7,#9和#11},此时判断服务集合中已不存在可满足的服务,而输出数据类型#9与系统需求的第一输出数据类型相匹配,如图6(5)所示。
步骤5,将优先级最大(响应时间最小)的服务F从队列中取出并放入解空间,服务F的输出数据类型为#8,其与系统需求的第二输出数据类型相匹配,如图6(6)所示。
步骤6,将优先级队列中的最后一个被满足的服务C取出并放入解空间,服务C的输出输出数据类型为#10,其与系统需求的第三输出数据类型相匹配,如图6(7)所示。
步骤7,到此步骤所有的系统需求的输出数据类型{#8,#9,#10}均被满足,然后再根据每个数据类型所记录的服务,进行反向搜索,即先将与系统输出数据类型{#8,#9,#10}相匹配的数据类型为输出数据的服务C,服务F和服务A置于服务组装结果的解集中;然后判断出服务C的输入数据类型#5和#7与系统需求的输入数据类型不匹配,并判断出服务A的输入数据类型#6与系统需求的输入数据类型不匹配,则将以数据类型#5,#6和#7为输出数据的服务B和服务E置于服务组装结果的解集中(由于以数据类型#7为输出数据的服务F以在解集中,因此这里不用重复放置);同时判断出服务F的输入数据类型与系统需求的输入数据类型#4相匹配,结束搜索。此时服务B和服务E的输入数据类型还未经判断,然后判断出服务B和服务E的输入数据类型均与系统需求的输入数据类型#1,#2和#3相匹配,结束搜索。反向搜索完成。
步骤8,得到服务组装结果(服务B,服务E,服务F,服务C和服务A),图7(8)中着重显示的地方。
本实施例是基于贪心的搜索算法,并不需要扩展到所有的服务(服务D,服务G和服务H),并且根据算法一旦得到某个数据类型,就无需在之后的搜索过程中再更新,提高了搜索效率。
下面结合本发明的实验做进一步说明。
下面的实验创建了一个基于服务质量优化和语义信息集成的服务组装系统,并利用虚拟的服务进行了测试和验证。实验用C++编程实现,并在配置为双核Intel Xeon 2.0GHz处理器、1GB内存的服务器上运行。
(1)实验服务数据的生成
a.Web服务集合(Services.wsdl文件)。Web服务是服务组装的基础。由于Web服务具有自描述的特点,即一个WSDL(Web Services Description Language,Web服务描述语言)文件可以描述一个实际存在的Web服务。由Web服务网络数据库搜索互联网上最新的Web服务并且进行更新。可以考虑以wsdl或者asmx为后缀的网络文件。
b.本体概念集合(Taxonomy.owl文件)。本体概念是数据类型进行语义匹配的基础。本发明中本体概念是由OWL文件所表示的,这个文件包含了所有的概念定义以及概念之间的层次关系。由本体概念网络数据库根据本体概念的定义进行更新操作。
c.数据类型和概念的映射关系(Services.wsdl文件)。服务的每一个输入或者输出都是一个数据类型,每一个数据类型都会映射到本体中的某一个概念,概念之间的关系反映了数据之间的关系。映射关系通常需要手工或者半自动的方法进行标注。本发明所用的数据产生工具同时产生服务和概念,所以,映射关系与服务集合在同一个文件中。
d.服务的QoS(ServiceLevelAgreements.wsla),文件中记录了每个Web服务的各种QoS值。QoS是算法的优化对象,因此,对于每一个服务,都需要给出它们的QoS值。在实际的服务组装系统中需要由Web服务网络数据库进行实时监控并测量服务的QoS或者给出一段时间的统计结果。
e.系统需求(Query.wsdl)。记录了客户端需求的输入/输出数据类型和需要优化的服务质量。
a~e作为服务组装算法的输入,可以由Web服务网络数据库和本体概念网络数据库提供由实际Web服务和本体形成的输入文件。如果仅考虑做实验证明方法的有效性,也可以由数据集生成器生成,本发明参考并且兼容了国际比赛Web Service Challenge所采用的通用数据源http://ws-challenge.georgetown.edu/wsc09/。服务的数量和本体概念的数量可以根据不同的实验需求分别进行设定,QoS和系统需求都是随机生成的。另外,在生产测试集合的同时,数据集生成器也分别给出了最小响应时间和最大吞吐量的组装参考方案,以便对服务组装结果进行评估。
(2)构建“服务-数据类型-本体”索引服务器
表2描述了不同的服务对应的输入/输出数据类型,以及QoS属性的响应时间列表。表3描述了本体概念及层次关系。基于这些服务和本体,我们构建如表4和表5的几个映射组成“服务-数据类型-本体”索引,并且将它们作为关系数据库的表存放在索引服务器中。
表2Web服务列表
Figure BSA00000209366400151
表3本体概念关系表
Figure BSA00000209366400152
表4数据类型到服务的映射
Figure BSA00000209366400161
表5数据类型本体概念的映射
Figure BSA00000209366400162
(3)构建服务组装引擎
客户端的任务是以数据类型的方式传递给服务组装引擎,服务组装引擎将接收到的客户端的输入/输出数据类型与“服务-数据类型-本体”索引中的服务的输入/输出数据类型进行匹配,基于服务组装算法得出服务组装结果。
(4)构建组装结果测试引擎
组装结果测试引擎封装了一个组装结果测试服务,该服务接收服务组装结果文件,并且根据(1)中的实验数据对结果中的工作流进行检查,给出是否可以正常工作以及是否满足用户需求的检查结果,包含了业务逻辑方面以及服务质量方面(目前覆盖的服务质量属性有响应时间和吞吐量)。构建组装结果测试引擎的步骤如下:
4.1检查数据关联的有效性。检查服务组装结果中每一个服务的输入数据类型是否在被调用前达到已满足状态。在这里,数据类型已满足当且仅当该数据类型所对应的本体概念或者其子概念已有服务输出。
4.2检查用户的功能性需求。检查服务组装结果中所输入的数据类型是否是客户端需求的输入数据类型的子集;检查服务组装结果中所输出的数据类型是否覆盖了客户端需求的输出数据类型。
4.3检查用户的非功能性需求。按照不同服务质量(即服务的QoS值)的不同计算公式,检查整个服务组装系统的服务质量是否达到客户端需求。
(5)构建组装结果执行引擎
为了能够直接让终端用户查看整个运行状态是否满足其在业务逻辑和服务质量方面的需求,并验证服务组装结果与实际调用情况是否与测试结果一致。本发明构建了一个组装结果执行引擎,该引擎将参数通过相应适配器调整为可以自动调用工作流所指定的串联和并联服务之间的调用关系(因本发明在服务组装的过程中已经进行的服务质量的优化,因此服务组装结果中不会再存在选择结构)。用户可以输入实际参数来检查,并且最终返回现实执行调用工作流的结果。组装结果的执行是一个递归的过程,具体步骤如下:
5.1执行服务组装结果中的起始节点;
5.2判断节点是否为单一服务,是,执行服务;不是,判断该节点的结构;
5.3若节点的结构为串行结构,按照先后顺序依次执行构成串行结构的各节点,转到步骤5.2;
5.4若节点的结构为并行结构,同时执行构成并行结构的各节点,转到步骤(2);
5.5直至执行完服务组装结果中的所有服务。
(6)实验和实验结果
6.1第一个实验和实验结果
经过调研,常用的Web服务有约2,000个,常用的本体概念(OpenCyc,OpenCyc就是一种本体论,它具有复杂的格式,由CycL的语言写成)约有150,000个。基于对网络上实际的Web服务和语义本体的调研,本实验按照目前本体概念和Web服务之间的比例进行放大和缩小,以模拟真实情况下的服务组装的效率和正确性。数据集和实验结果如表6所示。
表6实验1数据集参数设置及实验结果
Figure BSA00000209366400181
用本发明服务组装算法的时间与用Zeng的算法结果和另一种基于迭代的算法进行比较;Zeng的算法是传统服务组装的经典算法,基于迭代的算法取得了2008年WS Challenge国际比赛的第一名。从算法时间看,在这个规模上,对比于Zeng的算法和基于迭代的算法,本发明的服务组装算法可以用比较稳定且非常短的时间完成服务组装。
6.2第二个实验和实验结果
第二个实验是基于语义Web发展假定的实验,即将服务个数固定在一个比较高的水平(20,000个),通过改变本体概念的数据来检测算法的效率。这一设定也是从对现实情况的调查出发的,因为语义Web的发展在Web服务之后,并且关于语义Web新的技术和创新要多于Web服务,所以当服务数量达到一定规模后,基于特定领域的服务保持着较稳定的数量,而本体概念是不断发展和变化的。因此本实验是通过改变本体概念的数据来检测算法的效率。
测试集参数设置及实验结果如表7所示。
表7实验2数据集参数设置及实验结果
Figure BSA00000209366400191
6.3第三个实验和实验结果
第三个实验是基于Web服务发展假定的实验,即将本体概念的数量固定,通过变动参与组装的服务的个数来观察本发明的服务组装算法和基于迭代的算法的效率。这种假设是基于今后的Web服务走向更加细化的专业划分,以及不同提供商会提供相同功能但是服务质量不同的服务的情况。数据集的参数及实验结果如表8所示。
表8实验3数据集参数设置及实验结果
Figure BSA00000209366400192
从实验结果可以看出,本发明的服务组装算法在大部分情况下的评测结果都优于基于迭代的算法。从绝对值来看,本发明的服务组装算法可以在大部分情况下的组装时间都低于1秒,满足了服务组装系统对于服务质量变化情况下的动态服务组装的要求。实验表明,本发明提出的基于服务质量优化和语义信息集成的服务组装系统及方法是切实有效的。
以上,仅为本发明的较佳实施例,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求所界定的保护范围为准。

Claims (10)

1.一种基于服务质量优化和语义信息集成的服务组装系统,其特征在于,包括:
Web服务网络,提供服务及其对应的输入/输出数据类型;
本体概念网络数据库,提供本体概念;
索引产生服务器,基于Web服务网络和本体概念网络数据库,建立服务的输入/输出数据类型和本体概念之间的“服务-数据类型-本体”索引,并将该索引存储在所述索引产生服务器内;
服务组装引擎服务器,接收客户端需求的输入/输出数据类型,并在“服务-数据类型-本体”索引中查询与其匹配的数据类型,依据服务组装算法进行服务组装,得出服务组装结果;
以及服务组装结果执行服务器,用于执行服务组装结果。
2.根据权利要求1所述基于服务质量优化和语义信息集成的服务组装系统,其特征在于,还包括服务组装结果测试服务器,接收来自服务组装引擎服务器的服务组装结果,并对其进行工作状态和服务质量检测。
3.根据权利要求1所述基于服务质量优化和语义信息集成的服务组装系统,其特征在于,“服务-数据类型-本体”索引包括:
服务到其输入/输出数据类型的映射;
数据类型到以其为输入/输出的服务的映射;
数据类型与本体概念的相互映射;
本体概念之间的父子关系的关系映射;
以及服务到其对应的不同服务质量属性的映射。
4.根据权利要求1所述基于服务质量优化和语义信息集成的服务组装系统,其特征在于,服务组装算法包括以下步骤:
a、将以与客户端需求的输入数据类型相匹配的数据类型为输入数据类型的服务放入优先级队列中;
b、从优先级队列中取出优先级最大的服务;
c、判断该服务的输出数据类型是否与客户端需求的输出数据类型相匹配,若匹配,进行反向搜索,得出服务组装结果,若不匹配,进行步骤(d);
d、在“服务-数据类型-本体”索引中查询出与上述服务的输出数据类型相匹配的数据类型;
e、将以步骤d查询出的数据类型为输入数据类型的服务放入优先级队列中,再重复步骤(b)至(c)。
5.根据权利要求1所述基于服务质量优化和语义信息集成的服务组装系统,其特征在于,所述本体概念是由OWL文件表示,其包含了所有概念的定义以及概念之间的层次关系。
6.一种基于服务质量优化和语义信息集成的服务组装方法,其特征在于,包括以下步骤:
(1)构建服务的输入/输出数据类型和本体概念之间的“服务-数据类型-本体”的索引;
(2)在“服务-数据类型-本体”索引中查询出与客户端需求的输入/输出数据类型相匹配的数据类型,基于服务组装算法进行服务组装,并得出服务组装结果;
(3)执行服务组装结果。
7.根据权利要求6所述基于服务质量优化和语义信息集成的服务组装方法,其特征在于,步骤(2)之后还包括测试服务组装结果,包括以下步骤:
检查服务的输入数据类型是否在被调用前已达到满足客户端需求的输入数据类型的状态;
检查服务的输入数据类型是否是客户端需求的输入数据类型的子集;
检查服务的输出数据类型是否覆盖了客户端需求的输出数据类型;
检查服务组装系统的服务质量是否达到客户端需求。
8.根据权利要求6所述基于服务质量优化和语义信息集成的服务组装方法,其特征在于,服务组装算法包括以下步骤:
a、将以与客户端需求的输入数据类型相匹配的数据类型为输入数据类型的服务放入优先级队列中;
b、从优先级队列中取出优先级最大的服务;
c、判断该服务的输出数据类型是否与客户端需求的输出数据类型相匹配,若匹配,进行反向搜索,得出服务组装结果,若不匹配,进行步骤(d);
d、在“服务-数据类型-本体”索引中查询出与上述服务的输出数据类型相匹配的数据类型;
e、将以步骤d查询出的数据类型为输入数据类型的服务放入优先级队列中,再重复步骤(b)至(c)。
9.根据权利要求6所述基于服务质量优化和语义信息集成的服务组装方法,其特征在于,执行服务组装结果,包括以下步骤:
(1)执行服务组装结果中的起始节点;
(2)判断节点是否为单一服务,是,执行服务;不是,判断该节点的结构;
(3)若节点的结构为串行结构,按照先后顺序依次执行构成串行结构的各节点,转到步骤(2);
(4)若节点的结构为并行结构,同时执行构成并行结构的各节点,转到步骤(2);
(5)直至执行完服务组装结果中的所有服务。
10.根据权利要求6所述基于服务质量优化和语义信息集成的服务组装方法,其特征在于,反向搜索的步骤如下:
(1)将满足客户端需求的输出数据类型的服务置于服务组装结果的解中;
(2)判断上述服务的输入数据类型是否与客户端需求的输入数据类型相匹配,是,结束搜索;否,继续进行下一步;
(3)将满足上述服务的输入数据类型的服务置于服务组装结果的解中,然后转到步骤(2)。
CN 201010239916 2010-07-29 2010-07-29 基于服务质量优化和语义信息集成的服务组装系统及方法 Active CN101917413B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN 201010239916 CN101917413B (zh) 2010-07-29 2010-07-29 基于服务质量优化和语义信息集成的服务组装系统及方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN 201010239916 CN101917413B (zh) 2010-07-29 2010-07-29 基于服务质量优化和语义信息集成的服务组装系统及方法

Publications (2)

Publication Number Publication Date
CN101917413A true CN101917413A (zh) 2010-12-15
CN101917413B CN101917413B (zh) 2013-07-17

Family

ID=43324799

Family Applications (1)

Application Number Title Priority Date Filing Date
CN 201010239916 Active CN101917413B (zh) 2010-07-29 2010-07-29 基于服务质量优化和语义信息集成的服务组装系统及方法

Country Status (1)

Country Link
CN (1) CN101917413B (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102546754A (zh) * 2011-11-23 2012-07-04 河南理工大学 服务质量可定制的Web服务组合方法
CN103064952A (zh) * 2012-12-28 2013-04-24 武汉大学 基于变粒度索引的服务流程搜索和重用方法
CN103309955A (zh) * 2013-05-27 2013-09-18 成都国科海博计算机系统有限公司 一种Web服务组合方法及系统
CN106469222A (zh) * 2016-09-23 2017-03-01 东软集团股份有限公司 组合模型的执行方法和装置
CN110795229A (zh) * 2018-08-03 2020-02-14 上海小渔数据科技有限公司 用于提供算力支持的数据处理方法及装置
CN111125417A (zh) * 2019-12-30 2020-05-08 深圳云天励飞技术有限公司 一种数据搜索方法、装置、电子设备及存储介质
CN117273238A (zh) * 2023-11-16 2023-12-22 四川省致链数字科技有限公司 一种基于QoS约束的木质家具服务组合方法及系统

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100729103B1 (ko) * 2006-05-29 2007-06-14 주식회사 케이티 비구조 웹문서로부터 온톨로지 인스턴스를 자동으로추출하기 위한 시스템 및 그 방법
KR20070075668A (ko) * 2006-01-14 2007-07-24 최의인 차세대 웹 서비스 지원을 위한 사용자 요구사항 기술시스템
CN100362514C (zh) * 2004-03-23 2008-01-16 中国科学院计算技术研究所 一种构造和浏览语义链的方法
KR100820746B1 (ko) * 2007-01-22 2008-04-11 조선대학교산학협력단 온톨로지를 이용한 정보의 브라우징 시스템 및 방법
CN101169780A (zh) * 2006-10-25 2008-04-30 华为技术有限公司 一种基于语义本体的检索系统和方法
CN100392658C (zh) * 2006-05-30 2008-06-04 南京大学 基于本体的主题式网络爬虫系统构建方法
KR20090072542A (ko) * 2007-12-28 2009-07-02 사단법인 한국전자거래협회 다중 온톨로지를 이용한 의미형 검색시스템
CN101526898A (zh) * 2009-04-17 2009-09-09 武汉大学 面向语义Web服务程序设计的语义数据表示和处理方法
US7624130B2 (en) * 2006-03-30 2009-11-24 Microsoft Corporation System and method for exploring a semantic file network

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100362514C (zh) * 2004-03-23 2008-01-16 中国科学院计算技术研究所 一种构造和浏览语义链的方法
KR20070075668A (ko) * 2006-01-14 2007-07-24 최의인 차세대 웹 서비스 지원을 위한 사용자 요구사항 기술시스템
US7624130B2 (en) * 2006-03-30 2009-11-24 Microsoft Corporation System and method for exploring a semantic file network
KR100729103B1 (ko) * 2006-05-29 2007-06-14 주식회사 케이티 비구조 웹문서로부터 온톨로지 인스턴스를 자동으로추출하기 위한 시스템 및 그 방법
CN100392658C (zh) * 2006-05-30 2008-06-04 南京大学 基于本体的主题式网络爬虫系统构建方法
CN101169780A (zh) * 2006-10-25 2008-04-30 华为技术有限公司 一种基于语义本体的检索系统和方法
KR100820746B1 (ko) * 2007-01-22 2008-04-11 조선대학교산학협력단 온톨로지를 이용한 정보의 브라우징 시스템 및 방법
KR20090072542A (ko) * 2007-12-28 2009-07-02 사단법인 한국전자거래협회 다중 온톨로지를 이용한 의미형 검색시스템
CN101526898A (zh) * 2009-04-17 2009-09-09 武汉大学 面向语义Web服务程序设计的语义数据表示和处理方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
XU BIN, LUO SEN, YAN YIXIN: "Efficient Composition of Semantic Web Services with End-to-End QoS Optimization", 《TSINGHUA SCIENCE AND TECHNOLOGY》, vol. 15, no. 6, 31 December 2010 (2010-12-31), pages 678 - 686, XP011376170, DOI: doi:10.1109/TST.2010.6077918 *
顾志峰等: "Web服务之间数据关联的建模与应用", 《计算机学报》, vol. 31, no. 8, 31 August 2008 (2008-08-31), pages 1309 - 1318 *

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102546754A (zh) * 2011-11-23 2012-07-04 河南理工大学 服务质量可定制的Web服务组合方法
CN102546754B (zh) * 2011-11-23 2014-11-26 河南理工大学 服务质量可定制的Web服务组合方法
CN103064952A (zh) * 2012-12-28 2013-04-24 武汉大学 基于变粒度索引的服务流程搜索和重用方法
CN103064952B (zh) * 2012-12-28 2015-09-16 武汉大学 基于变粒度索引的服务流程搜索和重用方法
CN103309955A (zh) * 2013-05-27 2013-09-18 成都国科海博计算机系统有限公司 一种Web服务组合方法及系统
CN106469222A (zh) * 2016-09-23 2017-03-01 东软集团股份有限公司 组合模型的执行方法和装置
CN110795229A (zh) * 2018-08-03 2020-02-14 上海小渔数据科技有限公司 用于提供算力支持的数据处理方法及装置
CN111125417A (zh) * 2019-12-30 2020-05-08 深圳云天励飞技术有限公司 一种数据搜索方法、装置、电子设备及存储介质
CN111125417B (zh) * 2019-12-30 2023-03-31 深圳云天励飞技术有限公司 一种数据搜索方法、装置、电子设备及存储介质
CN117273238A (zh) * 2023-11-16 2023-12-22 四川省致链数字科技有限公司 一种基于QoS约束的木质家具服务组合方法及系统
CN117273238B (zh) * 2023-11-16 2024-02-13 四川省致链数字科技有限公司 一种基于QoS约束的木质家具服务组合方法及系统

Also Published As

Publication number Publication date
CN101917413B (zh) 2013-07-17

Similar Documents

Publication Publication Date Title
CN101917413B (zh) 基于服务质量优化和语义信息集成的服务组装系统及方法
Pessemier et al. Hybrid group recommendations for a travel service
US9336235B2 (en) Location-based recommendations
US10061854B2 (en) Trusted maps: updating map locations using trust-based social graphs
US9292580B2 (en) User behavior model for contextual personalized recommendation
US7774348B2 (en) System for providing geographically relevant content to a search query with local intent
CN103544623B (zh) 一种基于用户偏好特征建模的Web 服务推荐方法
US8538973B1 (en) Directions-based ranking of places returned by local search queries
CN106960044B (zh) 一种基于张量分解及加权hits的时间感知个性化poi推荐方法
EP3704601A1 (en) Knowledge search engine platform for enhanced business listings
CN107092623B (zh) 一种兴趣点查询方法及装置
US11809463B2 (en) Method for determining relative ranking data in a broker mediated geospatial information service environment
US20170371925A1 (en) Query data structure representation
CN102289461A (zh) 基于引导请求活动和数据的推荐和有针对性的广告
JP2014532916A (ja) ジオデータに対するユーザベースの事前対応型の内容訂正および強化
US20220051355A1 (en) Personalizing food discovery and search based on inferred taste preference
CN104462460A (zh) 一种构造rest风格的本体标注可视化系统的方法
Yang et al. A mobile location-based information recommendation system based on gps and web 2.0 services
CA2634344A1 (en) Broker mediated geospatial information service including relative ranking data
Ge et al. Data-driven serendipity navigation in urban places
Jabeur et al. A comprehensive reputation assessment framework for volunteered geographic information in crowdsensing applications
Ding et al. Integrating 3D city data through knowledge graphs
Degbelo et al. Open geodata reuse: towards natural language interfaces to web APIs
Abbaspour et al. Building a context-aware mobile tourist guide system base on a service oriented architecture
Ruta et al. Location-based semantic matchmaking in ubiquitous computing

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant