一种Web服务动态调用系统及调用方法

文档序号:7710126阅读:203来源:国知局
专利名称:一种Web服务动态调用系统及调用方法
技术领域
本发明涉及一种Web服务调用技术,尤其是涉及一种Web服务动态调用系统及调用方法。
背景技术
面向服务的体系结构(SOA, Service-Oriented Architecture)是一个组件模型,它将应用程序的不同功能单元(亦称之为服务)通过它们之间事先定义的良好的接口和契约联系起来。其中,接口是采用中立的方式进行定义的,它独立于实现服务的硬件平台、操作系统和编程语言,不依赖于环境,这使得构建在各种采用SOA模型的系统中的服务可以以一种统一和通用的方式进行交互。 Web服务是一种基于网络的新型组件模型,它通过WS*标准定义接口和契约,不依赖于任何语言,因而成为了 SOA的重要实现方式。 随着互联网技术的快速发展和Web服务应用的复杂化,Web服务带来的弊端逐渐被展现出来,人们开始认识到Web服务的局限性并且对Web服务提出了更高的要求。Web服务的实时绑定成为了迫切需要;Web服务调用的半自动化(即人为参与选择Web服务的服务提供者) 一直是面向服务应用的瓶颈所在;由服务提供者与服务请求者之间的绑定关系而导致的紧耦合性严重违背了 SOA的宗旨;Web服务日益庞大复杂,异步方式调用Web服务成为必然。 针对上述提出的要求和问题,相关研究人员提出了多种Web服务调用系统或框
架,然而这些Web服务调用系统或框架的缺陷也大都显而易见,主要表现在 (1)、目前的Web服务调用系统或框架只克服了由于服务请求者与服务提供者之
间的绑定关系而引起的紧耦合性的部分问题,而没有全部克服,这样仍可能导致Web服务
不可更改,不可升级。 (2)、其中一些Web服务调用系统或框架,主要是通过高级语言的反射机制实时生成和编译存根(Stub)的,在一定程度上实现了动态调用,然而这个动态调用过程仍然依赖于实现实时生成和编译存根的静态组件。 (3)、其中大多数的Web服务调用系统或框架为实现Web服务动态调用引入了语义,但语义是在客户端(即服务请求者)运行的,这样客户端就必须承担较大的负载,导致客户端高负载。 (4)、其中大多数的Web服务调用系统或框架仅支持以同步的方式调用Web服务,但随着Web服务的复杂化,其计算时间不可估计,服务请求者需长时间的等待服务响应消息; (5) 、 Restful Web服务的逐渐推广和盛行,迫使消息传输协议独立成为重要评价指标,要使得Web服务调用框架既要符合SOAP (Simple Object Access Protocol,简单对象访问协议)方式Web服务调用规则,又必须支持REST(R印resentational State Transfer,表述性状态转移)方式Web服务,然而目前的Web服务调用系统或框架基本只能单独实现
6这两种方式Web服务中的其中一种动态调用。

发明内容
本发明所要解决的技术问题是提供一种能够有效解除服务提供者与服务请求者
之间紧耦合的绑定关系,无需依赖静态组件便能较好地实现Web服务的动态调用,且能够
有效提高Web服务匹配的智能性的Web服务动态调用系统及调用方法。 本发明解决上述技术问题所采用的技术方案为一种Web服务动态调用系统,包
括服务请求者、UDDI服务注册中心和服务提供者,还包括调用代理,所述的调用代理分别与
所述的服务请求者、所述的UDDI服务注册中心及所述的服务提供者进行消息通信,所述的
调用代理中设置有消息解析器、服务匹配器、服务调用器及结果处理器,所述的调用代理中
建立有语义本体库,所述的语义本体库分别为所述的服务匹配器和所述的结果处理器提供
语义匹配,所述的服务请求者发送服务请求消息给所述的消息解析器,所述的消息解析器
解析服务请求消息,得到功能关键字、输入参数及需要的响应参数,所述的服务匹配器根据
功能关键字从所述的UDDI服务注册中心中查找服务,获取Web服务序列及Web服务序列中
各个Web服务对应的WSDL文件,所述的服务匹配器根据输入参数从Web服务序列中获取语
义匹配度最优的Web服务对应的WSDL文件,所述的服务调用器发送由语义匹配度最优的
Web服务对应的WSDL文件产生的服务请求消息给所述的服务提供者,并将所述的服务提供
者根据接收到的服务请求消息返回的服务响应消息传递给所述的结果处理器,所述的结果
处理器将该服务响应消息的格式转化为所述的服务请求者需要的响应参数的格式,并将格
式转化后的服务响应消息发送给所述的服务请求者。 所述的服务调用器中设置有用作缓冲机制的服务队列。 所述的调用代理以SOAP和REST两种方式发布于Internet中,所述的服务请求者
可以通过SOAP或者REST方式向所述的调用代理发送服务请求消息,所述的调用代理获取
语义匹配度最优的Web服务,并根据该Web服务的类型,以SOAP或者REST方式异步地向所
述的服务提供者发送相应的服务请求消息。 —种Web服务动态调用方法,包括以下步骤 ①在传统的SOA三角架构模型基础上,引入调用代理服务,该调用代理分别与服 务请求者、UDDI服务注册中心和服务提供者进行消息通信,在该调用代理中设置消息解析 器、服务匹配器、服务调用器及结果处理器,在服务调用器中设置用作缓冲机制的服务队 列; ②根据具体的服务领域,在该调用代理中建立语义本体库,语义本体库分别为服 务匹配器和结果处理器提供语义匹配; ③服务请求者向调用代理发送服务请求消息,服务请求消息以XML格式封装,服 务请求消息包括功能关键字、输入参数及需要的响应参数; ④调用代理接收来自服务请求者的服务请求消息,调用代理中的消息解析器解析 服务请求消息,得到功能关键字、输入参数及需要的响应参数,其中,输入参数与需要的响 应参数以XML文档树的形式存储; ⑤服务匹配器根据消息解析器解析得到的功能关键字查询语义本体库,从语义本 体库中获取与该功能关键字的语义相近的所有词汇并选取前N个词汇,然后将选出的N个词汇分别作为UDDI服务注册中心查找服务操作的查找关键字,并获取由UDDI服务注册中 心根据查找关键字查找得到的N个Web服务及各个Web服务分别对应的WSDL文件和对应 的tModeKey,服务匹配器再对获取的N个Web服务进行去冗余处理,得到Web服务序列;
计算Web服务序列中的各个Web服务与服务请求者发送的服务请求消息的语义 匹配度,然后从Web服务序列中选出语义匹配度最优的Web服务,并将语义匹配度最优的 Web服务对应的WSDL文件传递给调用代理中的服务调用器; ⑦服务调用器将语义匹配度最优的Web服务对应的WSDL文件产生的服务请求消 息发送给服务提供者,同时将产生的服务请求消息放入服务队列中,并监听服务提供者返 回给服务调用器的服务响应消息,再将监听到的服务响应消息传递给结果处理器;
⑧结果处理器计算服务请求需要的响应参数与服务提供者返回的服务响应消息 的语义匹配度,当两者不匹配时,服务匹配器从Web服务序列中选出语义匹配度次优的Web 服务作为语义匹配度最优的Web服务,再向服务调用器传递语义匹配度最优的Web服务对 应的WSDL文件,并返回执行步骤⑦;当两者匹配时,结果处理器将服务响应消息的格式转 化为服务请求者需要的响应参数的格式,并将格式转化后的服务响应消息发送给服务请求 者。 所述的步骤②中语义本体库的建立过程为 ②-l、设置一个空的语义本体库,将功能关键字、所有输入参数及所有服务响应消 息作为语义本体库的基础词汇; ②-2、定义两个词汇之间语义的相近程度为语义相近度,记为S,其取值范围为 0 S^,其中,0表示两个词汇之间的语义不相近,S^表示两个词汇之间的语义完全匹配; 基础词汇两两之间的语义相近度S = 0 ; ②-3、根据每个基础词汇建立对应的类别,将各个基础词汇分别作为其对应的类 别中的一个词汇,将与各个基础词汇语义相近的新词汇分别加入各个基础词汇各自所在的 类别中,同一类别中两个词汇之间的语义相近度S > O,不同类别中两个词汇之间的语义相 近度S = 0 ; ②-4、根据同一类别中两个词汇之间的语义相近度为各个类别中的所有词汇的两 两语义相近度赋值,构成语义本体库,其中所赋的语义相近度大于0且小于Smax。
所述的步骤⑤包括以下具体步骤 ⑤-l、服务匹配器根据消息解析器解析得到的功能关键字在语义本体库中选出与 功能关键字属于同一类别的所有词汇; ⑤-2、服务匹配器从与功能关键字属于同一类别的所有词汇中选出与功能关键字 的语义相近的前N个词汇,然后将选出的N个词汇分别作为UDDI服务注册中心查找服务操 作的查找关键字,并获取由UDDI服务注册中心根据查找关键字查找得到的N个Web服务及 各个Web服务分别对应的WSDL文件和对应的tModeKey ; ⑤_3、根据tModeKey的唯一性,将N个Web服务中具有相同的tModeKey的S个 Web服务中的S-l个Web服务删除,得到去冗余处理后的M个互不相同的Web服务,由M个 互不相同的Web服务构成Web服务序列。
所述的步骤⑥包括以下具体步骤 -1、将查找关键字定义为UDDI服务注册中心根据该查找关键字查找得到的Web服务的原始查询词汇,定义查询词汇相关度为原始查询词汇与消息解析器解析得到的功能 关键字的语义相近程度,记查询词汇相关度为IS ; -2、 Web服务序列中各个Web服务对应的原始查询词汇分别为与功能关键字的 语义相近的前N个词汇中的一个或多个,对于当前正在处理的Web服务,定义其为当前Web 服务,当当前Web服务对应一个原始查询词汇时,查询词汇相关度Is的值为原始查询词汇 与功能关键字的语义相近度;当当前Web服务对应多个原始查询词汇时,查询词汇相关度 Is的值为各个原始查询词汇与功能关键字的语义相近度中最大的语义相近度;
-3、 Web服务序列中各个Web服务的输入参数与消息解析器解析得到的输入参 数的格式均为XML格式,逐一计算各个Web服务的所有输入参数的XML文档树与消息解析 器解析得到的所有输入参数的XML文档树的语义匹配度,对于当前正在处理的Web服务,定 义其为当前Web服务,将当前Web服务的所有输入参数的XML文档树记为dl,将消息解析器 解析得到的所有输入参数的XML文档树记为d2,计算dl与d2的语义匹配度,记为Sim(dl,
u", —/ " _ y=i V '.=i_^
__,其中,Ai为dl中的第i个元素,Bj为d2中的第j个
元素,S(Ai, Bj)为Ai与Bj之间的语义相近度,其值从语义本体库中查找,p为dl包含的 元素个数,q为d2包含的元素个数,S^为dl中的各个元素与d2中的各个元素的语义相近 度中的最大的语义相近度; _4、逐一计算各个Web服务与服务请求者发送的服务请求消息的语义匹配度, 对于当前正在处理的Web服务,定义其为当前Web服务,计算当前Web服务与服务请求者发 送的服务请求消息的语义匹配度,记为P, P = a XIs+P XSim(dl, d2),其中,a禾P |3为 权值,满足条件a+P = l ; ⑥-5、从Web服务序列中选出语义匹配度最优的Web服务,并将语义匹配度最优的 Web服务对应的WSDL文件传递给调用代理中的服务调用器。
所述的步骤⑧包括以下具体步骤 ⑧-l、在结果处理器中,将服务请求者需要的响应参数的XML文档树记为dl', 将dl'包含的元素个数记为p',将服务提供者返回的服务响应消息中的所有参数的XML 文档树记为d2',将d2'包含的元素个数记为q',计算dl'与d2'的语义匹配度,记为
P' ,P'= A ^ ,.其中,Ai'为dl'中的第i'个元素,Bj'为d2'中
.'■'=i /=i
的第j'个元素,S(Ai' ,Bj')为Ai'与Bj'之间的语义相近度,其值从语义本体库中查 找; ⑧-2、当P' =0时,表明服务提供者返回的服务响应消息与服务请求者需要的响 应参数不匹配,服务匹配器从Web服务序列中选出语义匹配度次优的Web服务作为语义匹 配度最优的Web服务,再向服务调用器传递语义匹配度最优的Web服务对应的WSDL文件, 并返回执行步骤⑦;当P' > 0时,表明服务提供者返回的服务响应消息与服务请求者需要 的响应参数匹配,并继续执行; ⑧-3、结果处理器将服务响应消息的格式转化为服务请求者需要的响应参数的格
9式,并将格式转化后的服务响应消息发送给服务请求者。 所述的调用代理以SOAP和REST两种方式发布于Internet中,所述的服务请求者 可以通过SOAP或者REST方式向所述的调用代理发送服务请求消息,所述的调用代理获取 语义匹配度最优的Web服务,并根据该Web服务的类型,以SOAP或者REST的方式异步地向 所述的服务提供者发送相应的服务请求消息。 与现有技术相比,本发明的优点在于通过在现有的面向服务体系架构的三角模型 基础上,在服务请求者与服务注册中心之间引入调用代理这一个新的服务成员,该调用代 理与服务请求者、UDDI服务注册中心及服务提供者进行消息通信,对服务请求者而言,调用 代理充当服务提供者的角色,为服务请求者提供服务,使服务提供者通过单一接口及少量 信息就可获得最佳结果;对UDDI服务注册中心而言,调用代理又充当服务请求者的角色, 可以请求服务注册中心提供各类服务,包括查询指令等;对服务提供者而言,调用代理同样 充当服务请求者的角色,调用代理根据语义匹配结果,与相应的服务提供者交互,这种动态 调用方法不仅解除了传统的SOA三角架构模型中服务提供者与服务请求者之间紧耦合的 绑定关系,实现了满足语义匹配的动态调用,而且语义匹配的引入,有效提高了 Web服务匹 配的智能性;在调用代理中建立语义本体库,可根据语义本体库依据Web服务语义的匹配 程度调用任何一种可达的Web服务,具体优点体现如下 1)、由于调用代理这一服务的引入,服务请求者与服务提供者不再是静态的绑定 关系,而是动态的、实时匹配的关系,完全解除了它们之间的紧耦合关系,为Web服务的更 改和升级提供了良好的保障; 2)、由于调用代理是一个独立运行时的服务,不需要依赖任何静态组件而存在,明 显区别于利用高级语言的反射机制来达到动态调用效果的方式,真正实现了动态调用;
3)、语义匹配过程涉及到较大的运算量,如果将其置于客户端(即服务请求者)将 会带来较大的运算压力,而本发明通过引入调用代理进行语义匹配,较好地平衡了服务请 求者的负载; 4)、通过在服务调用器中引入服务队列,有效实现了对Web服务的异步调用;
5)、调用代理提供了 SOAP和REST两种方式的访问接口和调用方式,支持主流的 SOAP和REST方式的Web服务调用,具有通用性。


图1为传统的S0A三角架构模型的示意图; 图2为本发明的Web服务动态调用系统的示意图; 图3为本发明的调用代理的组成示意图。 图4为本发明中语义本体库中某一类别的无向有权图; 图5为Web服务的所有输入参数的XML文档树与消息解析器解析得到的所有输入 参数的XML文档树的关系示意图。
具体实施例方式
以下结合附图实施例对本发明作进一步详细描述。 传统的S0A三角架构模型如图1所示,其主要包括UDDI (UniversalDescriptionDiscovery and Integration,统一描述、发现和集成)服务注册中心、服务请 求者和服务提供者,UDDI服务注册中心为服务请求者和服务提供者提供联系的纽带,对于 服务提供者,UDDI服务注册中心为之提供发布服务,主要记录Web服务的描述信息、操作信 息以及结点位置等,对于服务请求者,UDDI服务注册中心为之提供查找服务,通过UDDI服 务注册中心,服务请求者与服务提供者可以按照契约独立进行交互。由于这种架构模型中 服务提供者与服务请求者之间为紧耦合的绑定关系,不能较好地实现Web动态调用,为此 本发明提出了一种Web服务动态调用系统及动态调用方法。 本发明的动态调用系统的组成框图如图2和图3所示,其包括服务请求者、UDDI服 务注册中心、服务提供者及调用代理,调用代理分别与服务请求者、UDDI服务注册中心及服 务提供者进行消息通信,调用代理中设置有消息解析器、服务匹配器、服务调用器及结果处 理器,调用代理中建立有语义本体库,语义本体库分别为服务匹配器和结果处理器提供语 义匹配,服务请求者发送服务请求消息给消息解析器,消息解析器解析服务请求消息,得到 功能关键字、输入参数及需要的响应参数,服务匹配器根据功能关键字从UDDI服务注册中 心中查找服务,获取Web服务序列及Web服务序列中各个Web服务对应的WSDL文件,服务 匹配器根据输入参数从Web服务序列中获取语义匹配度最优的Web服务对应的WSDL文件, 服务调用器发送由语义匹配度最优的Web服务对应的WSDL文件产生的服务请求消息给服 务提供者,并将服务提供者根据接收到的服务请求消息返回的服务响应消息传递给结果处 理器,结果处理器将该服务响应消息的格式转化为服务请求者需要的响应参数的格式,并 将格式转化后的服务响应消息发送给服务请求者。 在此具体实施例中,在服务调用器中设置有用作缓冲机制的服务队列,通过服务 队列服务调用器可异步地向服务提供者调用Web服务。 在此具体实施例中,调用代理以SOAP (Simple Object Access Protocol,简单对 象访问协议)和REST(R印resentational State Transfer,表述性状态转移)两种Web服 务方式发布于Internet中,在调用代理中设置有基于WSDL/S0AP服务的接口及基于REST 服务的接口 ,基于WSDL/S0AP服务的接口用于接收服务请求者发来的SOAP操作,并将结果 以SOAP信封的方式返回给服务请求者;基于REST服务的接口用于接收服务请求者发来的 HTTP请求,并将结果以HTTP响应的方式返回给服务请求者;调用代理根据所匹配的Web服 务的类型,以SOAP或者REST的方式异步地向服务提供者调用Web服务。
本发明的Web服务动态调用方法包括以下步骤 ①在传统的SOA三角架构模型基础上,引入调用代理服务,该调用代理分别与服 务请求者、UDDI服务注册中心和服务提供者进行消息通信,在该调用代理中设置消息解析 器、服务匹配器、服务调用器及结果处理器,在服务调用器中设置用作缓冲机制的服务队 列。 在此,调用代理以SOAP和REST两种Web服务方式发布于Internet中,在调用代 理中设置有基于WSDL/S0AP服务的接口及基于REST服务的接口 ,基于WSDL/S0AP服务的接 口用于接收服务请求者发来的SOAP操作,并将结果以SOAP信封的方式返回给服务请求者; 基于REST服务的接口用于接收服务请求者发来的HTTP请求,并将结果以HTTP响应的方式 返回给服务请求者。 ②根据具体的服务领域,在该调用代理中建立语义本体库,语义本体库分别为服务匹配器和结果处理器提供语义匹配。 在此具体实施例中,具体的服务领域不同,则构建得到的语义本体库也各不相同, 但语义本体库的建立过程是相同的,具体的建立过程为 ②-l、设置一个空的语义本体库,将功能关键字、所有输入参数及所有服务响应消 息作为语义本体库的基础词汇,如{Al (源于功能关键字),Bl (源于输入参数1) , CI (源于 输入参数2) , Dl (源于服务响应消息的参数1) , El (源于服务响应消息的参数2) , Fl (源于 其他可能的参数,……)}。 ②-2、定义两个词汇之间语义的相近程度为语义相近度,记为S,其取值范围为 0 S^,其中,0表示两个词汇之间的语义不相近,S^表示两个词汇之间的语义完全匹配; 基础词汇两两之间的语义相近度S = 0。 ②-3、根据每个基础词汇建立对应的类别,将各个基础词汇分别作为其对应的类 别中的一个词汇,如建立TA、 TB、 Tc、 TD、 TE、 TF、……等类别,其中词汇Al、 Bl、 Cl、 Dl等分别 属于TA、TB、Te、TD等;将与各个基础词汇语义相近的新词汇分别加入各个基础词汇各自所在 的类别中,进行扩充词汇,如1\ = {Al, A2, A3,……};同一类别中两个词汇之间的语义相 近度S > O,不同类别中两个词汇之间的语义相近度S = 0。 ②-4、根据同一类别中两个词汇之间的语义相近度为各个类别中的所有词汇的两 两语义相近度赋值,如S(Al, A2) = 3, S(A2, A3) = 12, S(A1, A3) = 6, ,构成语义本
体库,其中所赋的语义相近度大于0且小于Smax,同一类别中所有词汇两两之间的语义相近
度可构成一张无向有权图,如图4所示,多个类别构成多张无向有权图。 现有的在语义本体库中的各个类别中加入新词汇通常有两种方式,分别为专家经
验方式和调查统计方式,其中调查统计方式较为准确。 ③服务请求者向调用代理发送服务请求消息,服务请求消息以XML格式封装,服 务请求消息包括功能关键字、输入参数及需要的响应参数。 在此,服务请求者可以以SOAP Web服务方式或REST Web服务方式请求Web服务。
④调用代理接收来自服务请求者的服务请求消息,调用代理中的消息解析器解析 服务请求消息,得到功能关键字、输入参数及需要的响应参数,其中,输入参数与需要的响 应参数以XML文档树的形式存储。 ⑤服务匹配器根据消息解析器解析得到的功能关键字查询语义本体库,从语义本 体库中获取与该功能关键字的语义相近的所有词汇并选取前N个词汇,然后将选出的N个 词汇分别作为UDDI服务注册中心查找服务操作的查找关键字,并获取由UDDI服务注册中 心根据查找关键字查找得到的N个Web服务及各个Web服务分别对应的WSDL文件和对应 的tModeKey,服务匹配器再对获取的N个Web服务进行去冗余处理,得到Web服务序列。具 体步骤如下 ⑤-l、服务匹配器根据消息解析器解析得到的功能关键字在语义本体库中选出与 功能关键字属于同一类别的所有词汇。 ⑤-2、服务匹配器从与功能关键字属于同一类别的所有词汇中选出与功能关键字 的语义相近的前N个词汇,然后将选出的N个词汇分别作为UDDI服务注册中心查找服务操 作的查找关键字,并获取由UDDI服务注册中心根据查找关键字查找得到的N个Web服务及 各个Web服务分别对应的WSDL文件和对应的tModeKey ;tModeKey是UDDI服务注册中心用以标识Web服务的一种码,具有唯一性。 ⑤-3、根据tModeKey的唯一性,将N个Web服务中具有相同的tModeKey的S个 Web服务中的S-l个Web服务删除,得到去冗余处理后的M个互不相同的Web服务,由M个 互不相同的Web服务构成Web服务序列。
计算Web服务序列中的各个Web服务与服务请求者发送的服务请求消息的语义
匹配度,然后从Web服务序列中选出语义匹配度最优的Web服务,并将语义匹配度最优的
Web服务对应的WSDL文件传递给调用代理中的服务调用器。具体步骤如下 -1、将查找关键字定义为UDDI服务注册中心根据该查找关键字查找得到的Web
服务的原始查询词汇,定义查询词汇相关度为原始查询词汇与消息解析器解析得到的功能
关键字的语义相近程度,记查询词汇相关度为Is。
-2、 Web服务序列中各个Web服务对应的原始查询词汇分别为与功能关键字的 语义相近的前N个词汇中的一个或多个,这是由冗余处理后产生的,对于当前正在处理的 Web服务,定义其为当前Web服务,当当前Web服务对应一个原始查询词汇时,查询词汇相关 度Is的值为原始查询词汇与功能关键字的语义相近度;当当前Web服务对应多个原始查询 词汇时,查询词汇相关度Is的值为各个原始查询词汇与功能关键字的语义相近度中最大 的语义相近度。
-3、 Web服务序列中各个Web服务的输入参数与消息解析器解析得到的输入 参数的格式均为XML格式,它们之间的语义匹配度可以借鉴XML文档比较中的元素比较法 来进行计算,逐一计算各个Web服务的所有输入参数的XML文档树与消息解析器解析得到 的所有输入参数的XML文档树的语义匹配度,对于当前正在处理的Web服务,定义其为当 前Web服务,将当前Web服务的所有输入参数的XML文档树记为dl,将消息解析器解析得 到的所有输入参数的XML文档树记为d2,计算dl与d2的语义匹配度,记为Sim(dl, d2),
S(Ai, Bj)为Ai与Bj之间的语义相近度,其值从语义本体库中查找,p为dl包含的元素个 数,q为d2包含的元素个数,S^为dl中的各个元素与d2中的各个元素的语义相近度中的 最大的语义相近度。图5给出了dl和d2的关系。
_4、逐一计算各个Web服务与服务请求者发送的服务请求消息的语义匹配度, 对于当前正在处理的Web服务,定义其为当前Web服务,计算当前Web服务与服务请求者发 送的服务请求消息的语义匹配度,记为P, P = a XIs+P XSim(dl, d2),其中,a禾P |3为 权值,满足条件a + P =1。在此,a和|3分别表达了查询词汇相关度Is和dl与d2的 语义匹配度Sim' (dl,d2)的重要程度。 ⑥-5、从Web服务序列中选出语义匹配度最优的Web服务,并将语义匹配度最优的 Web服务对应的WSDL文件传递给调用代理中的服务调用器。 ⑦服务调用器将语义匹配度最优的Web服务对应的WSDL文件产生的服务请求消 息发送给服务提供者,同时将产生的服务请求消息放入服务队列中,并监听服务提供者返 回给服务调用器的服务响应消息,再将监听到的服务响应消息传递给结果处理器。
在此,服务调用器以SOAP Web服务方式或REST Web服务方式同步或异步地向服
其中,Ai为dl中的第i个元素,Bj为d2中的第j个元素,
13务提供者调用Web服务。现有的大多数Web服务调用框架只能通过同步方式调用服务,而 本发明在服务调用器中设置了一个服务队列,通过该服务队列可实现对Web服务的异步调 用,因此在本发明中,服务调用器可以通过两种方式即同步或异步进行服务调用。通过异步 调用,即使Web服务比较复杂,也无需服务请求者长时间等待。 ⑧结果处理器计算服务请求需要的响应参数与服务提供者返回的服务响应消息 的语义匹配度,当两者不匹配时,服务匹配器从Web服务序列中选出语义匹配度次优的Web 服务作为语义匹配度最优的Web服务,再向服务调用器传递语义匹配度最优的Web服务对 应的WSDL文件,并返回执行步骤⑦;当两者匹配时,结果处理器将服务响应消息的格式转 化为服务请求者需要的响应参数的格式,并将格式转化后的服务响应消息发送给服务请求 者。具体步骤如下 ⑧-IJ艮务提供者返回的服务响应消息与服务请求者需要的响应参数都是以XML 格式存在的,在结果处理器中,将服务请求者需要的响应参数的XML文档树记为dl',将 dl'包含的元素个数记为p',将服务提供者返回的服务响应消息中的所有参数的XML文 档树记为d2',将d2'包含的元素个数记为q',计算dl'与d2'的语义匹配度,记为<formula>formula see original document page 14</formula>
其中,Ai'为dl'中的第i'个元素,Bj'为d2'中
的第j'个元素,S(Ai' ,Bj')为Ai'与Bj'之间的语义相近度,其值从语义本体库中查
找,当P'《q'时<formula>formula see original document page 14</formula>其值大于等于0。 dl'与d2'的语义匹配度实际
上是服务请求者需要的响应参数与服务提供者返回的服务响应消息中的参数的语义匹配 度,是判断服务调用是否正确的重要标志,如果服务调用正确,则要求服务请求者需要的响 应参数是服务提供者返回的服务响应消息中的参数的子集,亦即,服务请求者需要的每个 响应参数必须能在返回的服务响应消息中找到其语义相近的参数。 ⑧-2、当P' =0时,表明服务提供者返回的服务响应消息与服务请求者需要的响 应参数不匹配,服务匹配器从Web服务序列中选出语义匹配度次优的Web服务作为语义匹 配度最优的Web服务,再向服务调用器传递语义匹配度最优的Web服务对应的WSDL文件, 并返回执行步骤⑦;当P' > 0时,表明服务提供者返回的服务响应消息与服务请求者需要 的响应参数匹配,并继续执行。 ⑧-3、结果处理器将服务响应消息的格式转化为服务请求者需要的响应参数的格 式,并将格式转化后的服务响应消息发送给服务请求者。实际上由于服务请求者需要的响 应参数是服务提供者返回的服务响应消息中的参数的子集,结果处理器依据语义本体库将 服务请求者需要的响应参数从服务提供者返回的服务响应消息中抽取出来即可。结果处理 器响应服务请求者的方式有两种当服务请求者以SOAP形式请求Web服务时,结果处理器 将结果封装成SOAP包返回;当服务请求者以REST形式请求Web服务时,结果处理器将结果 转化成HTTP响应返回。
权利要求
一种Web服务动态调用系统,包括服务请求者、UDDI服务注册中心和服务提供者,其特征在于还包括调用代理,所述的调用代理分别与所述的服务请求者、所述的UDDI服务注册中心及所述的服务提供者进行消息通信,所述的调用代理中设置有消息解析器、服务匹配器、服务调用器及结果处理器,所述的调用代理中建立有语义本体库,所述的语义本体库分别为所述的服务匹配器和所述的结果处理器提供语义匹配,所述的服务请求者发送服务请求消息给所述的消息解析器,所述的消息解析器解析服务请求消息,得到功能关键字、输入参数及需要的响应参数,所述的服务匹配器根据功能关键字从所述的UDDI服务注册中心中查找服务,获取Web服务序列及Web服务序列中各个Web服务对应的WSDL文件,所述的服务匹配器根据输入参数从Web服务序列中获取语义匹配度最优的Web服务对应的WSDL文件,所述的服务调用器发送由语义匹配度最优的Web服务对应的WSDL文件产生的服务请求消息给所述的服务提供者,并将所述的服务提供者根据接收到的服务请求消息返回的服务响应消息传递给所述的结果处理器,所述的结果处理器将该服务响应消息的格式转化为所述的服务请求者需要的响应参数的格式,并将格式转化后的服务响应消息发送给所述的服务请求者。
2. 根据权利要求1所述的一种Web服务动态调用系统,其特征在于所述的服务调用器 中设置有用作缓冲机制的服务队列。
3. 根据权利要求1或2所述的一种Web服务动态调用系统,其特征在于所述的调用 代理以SOAP和REST两种方式发布于Internet中,所述的服务请求者通过SOAP或者REST 方式向所述的调用代理发送服务请求消息,所述的调用代理获取语义匹配度最优的Web服 务,并根据该Web服务的类型,以SOAP或者REST方式异步地向所述的服务提供者发送相应 的服务请求消息。
4. 一种Web服务动态调用方法,其特征在于包括以下步骤① 在传统的SOA三角架构模型基础上,引入调用代理服务,该调用代理分别与服务请 求者、UDDI服务注册中心和服务提供者进行消息通信,在该调用代理中设置消息解析器、服 务匹配器、服务调用器及结果处理器,在服务调用器中设置用作缓冲机制的服务队列;② 根据具体的服务领域,在该调用代理中建立语义本体库,语义本体库分别为服务匹 配器和结果处理器提供语义匹配;③ 服务请求者向调用代理发送服务请求消息,服务请求消息以XML格式封装,服务请 求消息包括功能关键字、输入参数及需要的响应参数;④ 调用代理接收来自服务请求者的服务请求消息,调用代理中的消息解析器解析服务 请求消息,得到功能关键字、输入参数及需要的响应参数,其中,输入参数与需要的响应参 数以XML文档树的形式存储;⑤ 服务匹配器根据消息解析器解析得到的功能关键字查询语义本体库,从语义本体 库中获取与该功能关键字的语义相近的所有词汇并选取前N个词汇,然后将选出的N个词 汇分别作为UDDI服务注册中心查找服务操作的查找关键字,并获取由UDDI服务注册中心 根据查找关键字查找得到的N个Web服务及各个Web服务分别对应的WSDL文件和对应的 tModeKey,服务匹配器再对获取的N个Web服务进行去冗余处理,得到Web服务序列; 计算Web服务序列中的各个Web服务与服务请求者发送的服务请求消息的语义匹配 度,然后从Web服务序列中选出语义匹配度最优的Web服务,并将语义匹配度最优的Web服务对应的WSDL文件传递给调用代理中的服务调用器;⑦ 服务调用器将语义匹配度最优的Web服务对应的WSDL文件产生的服务请求消息发 送给服务提供者,同时将产生的服务请求消息放入服务队列中,并监听服务提供者返回给 服务调用器的服务响应消息,再将监听到的服务响应消息传递给结果处理器;⑧ 结果处理器计算服务请求需要的响应参数与服务提供者返回的服务响应消息的语 义匹配度,当两者不匹配时,服务匹配器从Web服务序列中选出语义匹配度次优的Web服务 作为语义匹配度最优的Web服务,再向服务调用器传递语义匹配度最优的Web服务对应的 WSDL文件,并返回执行步骤⑦;当两者匹配时,结果处理器将服务响应消息的格式转化为 服务请求者需要的响应参数的格式,并将格式转化后的服务响应消息发送给服务请求者。
5. 根据权利要求4所述的一种Web服务动态调用方法,其特征在于所述的步骤②中语 义本体库的建立过程为②-l、设置一个空的语义本体库,将功能关键字、所有输入参数及所有服务响应消息作 为语义本体库的基础词汇;②-2、定义两个词汇之间语义的相近程度为语义相近度,记为S,其取值范围为0 Smax,其中,0表示两个词汇之间的语义不相近,Smax表示两个词汇之间的语义完全匹配;基础 词汇两两之间的语义相近度S = 0 ;②-3、根据每个基础词汇建立对应的类别,将各个基础词汇分别作为其对应的类别中 的一个词汇,将与各个基础词汇语义相近的新词汇分别加入各个基础词汇各自所在的类别 中,同一类别中两个词汇之间的语义相近度S > O,不同类别中两个词汇之间的语义相近度S = 0 ;②-4、根据同一类别中两个词汇之间的语义相近度为各个类别中的所有词汇的两两语 义相近度赋值,构成语义本体库,其中所赋的语义相近度大于0且小于Smax。
6. 根据权利要求5所述的一种Web服务动态调用方法,其特征在于所述的步骤⑤包括 以下具体步骤 -1、服务匹配器根据消息解析器解析得到的功能关键字在语义本体库中选出与功能 关键字属于同一类别的所有词汇; -2、服务匹配器从与功能关键字属于同一类别的所有词汇中选出与功能关键字的语 义相近的前N个词汇,然后将选出的N个词汇分别作为UDDI服务注册中心查找服务操作的 查找关键字,并获取由UDDI服务注册中心根据查找关键字查找得到的N个Web服务及各个 Web服务分别对应的WSDL文件和对应的tModeKey ; -3、根据tModeKey的唯一性,将N个Web服务中具有相同的tModeKey的S个Web服 务中的S-l个Web服务删除,得到去冗余处理后的M个互不相同的Web服务,由M个互不相 同的Web服务构成Web服务序列。
7. 根据权利要求6所述的一种Web服务动态调用方法,其特征在于所述的步骤⑥包括 以下具体步骤⑥-l、将查找关键字定义为UDDI服务注册中心根据该查找关键字查找得到的Web服务 的原始查询词汇,定义查询词汇相关度为原始查询词汇与消息解析器解析得到的功能关键 字的语义相近程度,记查询词汇相关度为Is ; -2、 Web服务序列中各个Web服务对应的原始查询词汇分别为与功能关键字的语义相近的前N个词汇中的一个或多个,对于当前正在处理的Web服务,定义其为当前Web服务,当当前Web服务对应一个原始查询词汇时,查询词汇相关度Is的值为原始查询词汇与功能关键字的语义相近度;当当前Web服务对应多个原始查询词汇时,查询词汇相关度Is的值为各个原始查询词汇与功能关键字的语义相近度中最大的语义相近度; -3、 Web服务序列中各个Web服务的输入参数与消息解析器解析得到的输入参数的格式均为XML格式,逐一计算各个Web服务的所有输入参数的XML文档树与消息解析器解析得到的所有输入参数的XML文档树的语义匹配度,对于当前正在处理的Web服务,定义其为当前Web服务,将当前Web服务的所有输入参数的XML文档树记为dl,将消息解析器解析得到的所有输入参数的XML文档树记为d2,计算dl与d2的语义匹配度,记为Sim(dl, d2),< f p 、 S別麟)其中,Ai为dl中的第i个元素,Bj为d2中的第j个元素,S(Ai, Bj)为Ai与Bj之间的语义相近度,其值从语义本体库中查找,p为dl包含的元素个 数,q为d2包含的元素个数,S^为dl中的各个元素与d2中的各个元素的语义相近度中的 最大的语义相近度; -4、逐一计算各个Web服务与服务请求者发送的服务请求消息的语义匹配度,对于 当前正在处理的Web服务,定义其为当前Web服务,计算当前Web服务与服务请求者发送的 服务请求消息的语义匹配度,记为P,P = a XIs+P XSim(dl,d2),其中,a禾P |3为权值, 满足条件a+P = 1 ; -5、从Web服务序列中选出语义匹配度最优的Web服务,并将语义匹配度最优的Web 服务对应的WSDL文件传递给调用代理中的服务调用器。
8. 根据权利要求7所述的一种Web服务动态调用方法,其特征在于所述的步骤⑧包括 以下具体步骤⑧-1 、在结果处理器中,将服务请求者需要的响应参数的XML文档树记为dl',将dl' 包含的元素个数记为P',将服务提供者返回的服务响应消息中的所有参数的XML文档树 记为d2',将d2'包含的元素个数记为q',计算dl'与d2'的语义匹配度,记为P', 尸'=占善 ,,其中,Ai'为dl'中的第i'个元素,Bj'为d2'中的第乂=1 /=ij'个元素,S(Ai' ,Bj')为Ai'与Bj'之间的语义相近度,其值从语义本体库中查找; ⑧-2、当P' =0时,表明服务提供者返回的服务响应消息与服务请求者需要的响应参 数不匹配,服务匹配器从Web服务序列中选出语义匹配度次优的Web服务作为语义匹配度 最优的Web服务,再向服务调用器传递语义匹配度最优的Web服务对应的WSDL文件,并返 回执行步骤⑦;当P' > 0时,表明服务提供者返回的服务响应消息与服务请求者需要的响 应参数匹配,并继续执行;⑧-3、结果处理器将服务响应消息的格式转化为服务请求者需要的响应参数的格式, 并将格式转化后的服务响应消息发送给服务请求者。
9. 根据权利要求4至8中任一项所述的一种Web服务动态调用方法,其特征在于所述 的调用代理以SOAP和REST两种方式发布于Internet中,所述的服务请求者通过SOAP或者REST方式向所述的调用代理发送服务请求消息,所述的调用代理获取语义匹配度最优 的Web服务,并根据该Web服务的类型,以SOAP或者REST方式异步地向所述的服务提供者 发送相应的服务请求消息。
全文摘要
本发明公开了一种Web服务动态调用系统及方法,包括服务请求者、UDDI服务注册中心、服务提供者及调用代理,调用代理分别与服务请求者、UDDI服务注册中心及服务提供者进行消息通信,调用代理中设置有消息解析器、服务匹配器、服务调用器及结果处理器,调用代理中建立有语义本体库,语义本体库分别为服务匹配器和结果处理器提供语义匹配,优点在于通过调用代理的引入,完全解除了服务请求者与服务提供者之间的紧耦合关系,为Web服务的更改和升级提供了良好的保障;由于调用代理是一个独立运行时的服务,不需要依赖任何静态组件而存在,真正实现了动态调用;本发明通过引入调用代理进行语义匹配,较好地平衡了服务请求者的负载。
文档编号H04L29/08GK101764837SQ20091015573
公开日2010年6月30日 申请日期2009年12月23日 优先权日2009年12月23日
发明者俞弘, 姜建生, 干红华, 廖兰新, 赵晨 申请人:宁波东海蓝帆科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1