CN101764837A - 一种Web服务动态调用系统及调用方法 - Google Patents
一种Web服务动态调用系统及调用方法 Download PDFInfo
- Publication number
- CN101764837A CN101764837A CN200910155731A CN200910155731A CN101764837A CN 101764837 A CN101764837 A CN 101764837A CN 200910155731 A CN200910155731 A CN 200910155731A CN 200910155731 A CN200910155731 A CN 200910155731A CN 101764837 A CN101764837 A CN 101764837A
- Authority
- CN
- China
- Prior art keywords
- service
- web service
- semantic
- vocabulary
- web
- 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
Links
Images
Abstract
本发明公开了一种Web服务动态调用系统及方法,包括服务请求者、UDDI服务注册中心、服务提供者及调用代理,调用代理分别与服务请求者、UDDI服务注册中心及服务提供者进行消息通信,调用代理中设置有消息解析器、服务匹配器、服务调用器及结果处理器,调用代理中建立有语义本体库,语义本体库分别为服务匹配器和结果处理器提供语义匹配,优点在于通过调用代理的引入,完全解除了服务请求者与服务提供者之间的紧耦合关系,为Web服务的更改和升级提供了良好的保障;由于调用代理是一个独立运行时的服务,不需要依赖任何静态组件而存在,真正实现了动态调用;本发明通过引入调用代理进行语义匹配,较好地平衡了服务请求者的负载。
Description
技术领域
本发明涉及一种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(Representational State Transfer,表述性状态转移)方式Web服务,然而目前的Web服务调用系统或框架基本只能单独实现这两种方式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文件,并返回执行步骤⑦;当两者匹配时,结果处理器将服务响应消息的格式转化为服务请求者需要的响应参数的格式,并将格式转化后的服务响应消息发送给服务请求者。
所述的步骤②中语义本体库的建立过程为:
②-1、设置一个空的语义本体库,将功能关键字、所有输入参数及所有服务响应消息作为语义本体库的基础词汇;
②-2、定义两个词汇之间语义的相近程度为语义相近度,记为S,其取值范围为0~Smax,其中,0表示两个词汇之间的语义不相近,Smax表示两个词汇之间的语义完全匹配;基础词汇两两之间的语义相近度S=0;
②-3、根据每个基础词汇建立对应的类别,将各个基础词汇分别作为其对应的类别中的一个词汇,将与各个基础词汇语义相近的新词汇分别加入各个基础词汇各自所在的类别中,同一类别中两个词汇之间的语义相近度S>0,不同类别中两个词汇之间的语义相近度S=0;
②-4、根据同一类别中两个词汇之间的语义相近度为各个类别中的所有词汇的两两语义相近度赋值,构成语义本体库,其中所赋的语义相近度大于0且小于Smax。
所述的步骤⑤包括以下具体步骤:
⑤-1、服务匹配器根据消息解析器解析得到的功能关键字在语义本体库中选出与功能关键字属于同一类别的所有词汇;
⑤-2、服务匹配器从与功能关键字属于同一类别的所有词汇中选出与功能关键字的语义相近的前N个词汇,然后将选出的N个词汇分别作为UDDI服务注册中心查找服务操作的查找关键字,并获取由UDDI服务注册中心根据查找关键字查找得到的N个Web服务及各个Web服务分别对应的WSDL文件和对应的tModeKey;
⑤-3、根据tModeKey的唯一性,将N个Web服务中具有相同的tModeKey的S个Web服务中的S-1个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文档树记为d1,将消息解析器解析得到的所有输入参数的XML文档树记为d2,计算d1与d2的语义匹配度,记为Sim(d1,d2), 其中,Ai为d1中的第i个元素,Bj为d2中的第j个元素,S(Ai,Bj)为Ai与Bj之间的语义相近度,其值从语义本体库中查找,p为d1包含的元素个数,q为d2包含的元素个数,Smax为d1中的各个元素与d2中的各个元素的语义相近度中的最大的语义相近度;
⑥-4、逐一计算各个Web服务与服务请求者发送的服务请求消息的语义匹配度,对于当前正在处理的Web服务,定义其为当前Web服务,计算当前Web服务与服务请求者发送的服务请求消息的语义匹配度,记为P,P=α×Is+β×Sim(d1,d2),其中,α和β为权值,满足条件:α+β=1;
⑥-5、从Web服务序列中选出语义匹配度最优的Web服务,并将语义匹配度最优的Web服务对应的WSDL文件传递给调用代理中的服务调用器。
所述的步骤⑧包括以下具体步骤:
⑧-1、在结果处理器中,将服务请求者需要的响应参数的XML文档树记为d1′,将d1′包含的元素个数记为p′,将服务提供者返回的服务响应消息中的所有参数的XML文档树记为d2′,将d2′包含的元素个数记为q′,计算d1′与d2′的语义匹配度,记为P′, 其中,Ai′为d1′中的第i′个元素,Bj′为d2′中的第j′个元素,S(Ai′,Bj′)为Ai′与Bj′之间的语义相近度,其值从语义本体库中查找;
⑧-2、当P′=0时,表明服务提供者返回的服务响应消息与服务请求者需要的响应参数不匹配,服务匹配器从Web服务序列中选出语义匹配度次优的Web服务作为语义匹配度最优的Web服务,再向服务调用器传递语义匹配度最优的Web服务对应的WSDL文件,并返回执行步骤⑦;当P′>0时,表明服务提供者返回的服务响应消息与服务请求者需要的响应参数匹配,并继续执行;
⑧-3、结果处理器将服务响应消息的格式转化为服务请求者需要的响应参数的格式,并将格式转化后的服务响应消息发送给服务请求者。
所述的调用代理以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为传统的SOA三角架构模型的示意图;
图2为本发明的Web服务动态调用系统的示意图;
图3为本发明的调用代理的组成示意图。
图4为本发明中语义本体库中某一类别的无向有权图;
图5为Web服务的所有输入参数的XML文档树与消息解析器解析得到的所有输入参数的XML文档树的关系示意图。
具体实施方式
以下结合附图实施例对本发明作进一步详细描述。
传统的SOA三角架构模型如图1所示,其主要包括UDDI(Universal DescriptionDiscovery 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(Representational State Transfer,表述性状态转移)两种Web服务方式发布于Internet中,在调用代理中设置有基于WSDL/SOAP服务的接口及基于REST服务的接口,基于WSDL/SOAP服务的接口用于接收服务请求者发来的SOAP操作,并将结果以SOAP信封的方式返回给服务请求者;基于REST服务的接口用于接收服务请求者发来的HTTP请求,并将结果以HTTP响应的方式返回给服务请求者;调用代理根据所匹配的Web服务的类型,以SOAP或者REST的方式异步地向服务提供者调用Web服务。
本发明的Web服务动态调用方法包括以下步骤:
①在传统的SOA三角架构模型基础上,引入调用代理服务,该调用代理分别与服务请求者、UDDI服务注册中心和服务提供者进行消息通信,在该调用代理中设置消息解析器、服务匹配器、服务调用器及结果处理器,在服务调用器中设置用作缓冲机制的服务队列。
在此,调用代理以SOAP和REST两种Web服务方式发布于Internet中,在调用代理中设置有基于WSDL/SOAP服务的接口及基于REST服务的接口,基于WSDL/SOAP服务的接口用于接收服务请求者发来的SOAP操作,并将结果以SOAP信封的方式返回给服务请求者;基于REST服务的接口用于接收服务请求者发来的HTTP请求,并将结果以HTTP响应的方式返回给服务请求者。
②根据具体的服务领域,在该调用代理中建立语义本体库,语义本体库分别为服务匹配器和结果处理器提供语义匹配。
在此具体实施例中,具体的服务领域不同,则构建得到的语义本体库也各不相同,但语义本体库的建立过程是相同的,具体的建立过程为:
②-1、设置一个空的语义本体库,将功能关键字、所有输入参数及所有服务响应消息作为语义本体库的基础词汇,如{A1(源于功能关键字),B1(源于输入参数1),C1(源于输入参数2),D1(源于服务响应消息的参数1),E1(源于服务响应消息的参数2),F1(源于其他可能的参数,……)}。
②-2、定义两个词汇之间语义的相近程度为语义相近度,记为S,其取值范围为0~Smax,其中,0表示两个词汇之间的语义不相近,Smax表示两个词汇之间的语义完全匹配;基础词汇两两之间的语义相近度S=0。
②-3、根据每个基础词汇建立对应的类别,将各个基础词汇分别作为其对应的类别中的一个词汇,如建立TA、TB、TC、TD、TE、TF、……等类别,其中词汇A1、B1、C1、D1等分别属于TA、TB、TC、TD等;将与各个基础词汇语义相近的新词汇分别加入各个基础词汇各自所在的类别中,进行扩充词汇,如TA={A1,A2,A3,……};同一类别中两个词汇之间的语义相近度S>0,不同类别中两个词汇之间的语义相近度S=0。
②-4、根据同一类别中两个词汇之间的语义相近度为各个类别中的所有词汇的两两语义相近度赋值,如S(A1,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服务序列。具体步骤如下:
⑤-1、服务匹配器根据消息解析器解析得到的功能关键字在语义本体库中选出与功能关键字属于同一类别的所有词汇。
⑤-2、服务匹配器从与功能关键字属于同一类别的所有词汇中选出与功能关键字的语义相近的前N个词汇,然后将选出的N个词汇分别作为UDDI服务注册中心查找服务操作的查找关键字,并获取由UDDI服务注册中心根据查找关键字查找得到的N个Web服务及各个Web服务分别对应的WSDL文件和对应的tModeKey;tModeKey是UDDI服务注册中心用以标识Web服务的一种码,具有唯一性。
⑤-3、根据tModeKey的唯一性,将N个Web服务中具有相同的tModeKey的S个Web服务中的S-1个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文档树记为d1,将消息解析器解析得到的所有输入参数的XML文档树记为d2,计算d1与d2的语义匹配度,记为Sim(d1,d2), 其中,Ai为d1中的第i个元素,Bj为d2中的第j个元素,S(Ai,Bj)为Ai与Bj之间的语义相近度,其值从语义本体库中查找,p为d1包含的元素个数,q为d2包含的元素个数,Smax为d1中的各个元素与d2中的各个元素的语义相近度中的最大的语义相近度。图5给出了d1和d2的关系。
⑥-4、逐一计算各个Web服务与服务请求者发送的服务请求消息的语义匹配度,对于当前正在处理的Web服务,定义其为当前Web服务,计算当前Web服务与服务请求者发送的服务请求消息的语义匹配度,记为P,P=α×Is+β×Sim(d1,d2),其中,α和β为权值,满足条件:α+β=1。在此,α和β分别表达了查询词汇相关度Is和d1与d2的语义匹配度Sim′(d1,d2)的重要程度。
⑥-5、从Web服务序列中选出语义匹配度最优的Web服务,并将语义匹配度最优的Web服务对应的WSDL文件传递给调用代理中的服务调用器。
⑦服务调用器将语义匹配度最优的Web服务对应的WSDL文件产生的服务请求消息发送给服务提供者,同时将产生的服务请求消息放入服务队列中,并监听服务提供者返回给服务调用器的服务响应消息,再将监听到的服务响应消息传递给结果处理器。
在此,服务调用器以SOAP Web服务方式或REST Web服务方式同步或异步地向服务提供者调用Web服务。现有的大多数Web服务调用框架只能通过同步方式调用服务,而本发明在服务调用器中设置了一个服务队列,通过该服务队列可实现对Web服务的异步调用,因此在本发明中,服务调用器可以通过两种方式即同步或异步进行服务调用。通过异步调用,即使Web服务比较复杂,也无需服务请求者长时间等待。
⑧结果处理器计算服务请求需要的响应参数与服务提供者返回的服务响应消息的语义匹配度,当两者不匹配时,服务匹配器从Web服务序列中选出语义匹配度次优的Web服务作为语义匹配度最优的Web服务,再向服务调用器传递语义匹配度最优的Web服务对应的WSDL文件,并返回执行步骤⑦;当两者匹配时,结果处理器将服务响应消息的格式转化为服务请求者需要的响应参数的格式,并将格式转化后的服务响应消息发送给服务请求者。具体步骤如下:
⑧-1、服务提供者返回的服务响应消息与服务请求者需要的响应参数都是以XML格式存在的,在结果处理器中,将服务请求者需要的响应参数的XML文档树记为d1′,将d1′包含的元素个数记为p′,将服务提供者返回的服务响应消息中的所有参数的XML文档树记为d2′,将d2′包含的元素个数记为q′,计算d1′与d2′的语义匹配度,记为P′, 其中,Ai′为d1′中的第i′个元素,Bj′为d2′中的第j′个元素,S(Ai′,Bj′)为Ai′与Bj′之间的语义相近度,其值从语义本体库中查找,当p′≤q′时, 其值大于等于0。d1′与d2′的语义匹配度实际上是服务请求者需要的响应参数与服务提供者返回的服务响应消息中的参数的语义匹配度,是判断服务调用是否正确的重要标志,如果服务调用正确,则要求服务请求者需要的响应参数是服务提供者返回的服务响应消息中的参数的子集,亦即,服务请求者需要的每个响应参数必须能在返回的服务响应消息中找到其语义相近的参数。
⑧-2、当P′=0时,表明服务提供者返回的服务响应消息与服务请求者需要的响应参数不匹配,服务匹配器从Web服务序列中选出语义匹配度次优的Web服务作为语义匹配度最优的Web服务,再向服务调用器传递语义匹配度最优的Web服务对应的WSDL文件,并返回执行步骤⑦;当P′>0时,表明服务提供者返回的服务响应消息与服务请求者需要的响应参数匹配,并继续执行。
⑧-3、结果处理器将服务响应消息的格式转化为服务请求者需要的响应参数的格式,并将格式转化后的服务响应消息发送给服务请求者。实际上由于服务请求者需要的响应参数是服务提供者返回的服务响应消息中的参数的子集,结果处理器依据语义本体库将服务请求者需要的响应参数从服务提供者返回的服务响应消息中抽取出来即可。结果处理器响应服务请求者的方式有两种:当服务请求者以SOAP形式请求Web服务时,结果处理器将结果封装成SOAP包返回;当服务请求者以REST形式请求Web服务时,结果处理器将结果转化成HTTP响应返回。
Claims (9)
1.一种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服务动态调用方法,其特征在于所述的步骤②中语义本体库的建立过程为:
②-1、设置一个空的语义本体库,将功能关键字、所有输入参数及所有服务响应消息作为语义本体库的基础词汇;
②-2、定义两个词汇之间语义的相近程度为语义相近度,记为S,其取值范围为0~Smax,其中,0表示两个词汇之间的语义不相近,Smax表示两个词汇之间的语义完全匹配;基础词汇两两之间的语义相近度S=0;
②-3、根据每个基础词汇建立对应的类别,将各个基础词汇分别作为其对应的类别中的一个词汇,将与各个基础词汇语义相近的新词汇分别加入各个基础词汇各自所在的类别中,同一类别中两个词汇之间的语义相近度S>0,不同类别中两个词汇之间的语义相近度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-1个Web服务删除,得到去冗余处理后的M个互不相同的Web服务,由M个互不相同的Web服务构成Web服务序列。
7.根据权利要求6所述的一种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文档树记为d1,将消息解析器解析得到的所有输入参数的XML文档树记为d2,计算d1与d2的语义匹配度,记为Sim(d1,d2), 其中,Ai为d1中的第i个元素,Bj为d2中的第j个元素,S(Ai,Bj)为Ai与Bj之间的语义相近度,其值从语义本体库中查找,p为d1包含的元素个数,q为d2包含的元素个数,Smax为d1中的各个元素与d2中的各个元素的语义相近度中的最大的语义相近度;
⑥-4、逐一计算各个Web服务与服务请求者发送的服务请求消息的语义匹配度,对于当前正在处理的Web服务,定义其为当前Web服务,计算当前Web服务与服务请求者发送的服务请求消息的语义匹配度,记为P,P=α×Is+β×Sim(d1,d2),其中,α和β为权值,满足条件:α+β=1;
⑥-5、从Web服务序列中选出语义匹配度最优的Web服务,并将语义匹配度最优的Web服务对应的WSDL文件传递给调用代理中的服务调用器。
8.根据权利要求7所述的一种Web服务动态调用方法,其特征在于所述的步骤⑧包括以下具体步骤:
⑧-1、在结果处理器中,将服务请求者需要的响应参数的XML文档树记为d1′,将d1′包含的元素个数记为p′,将服务提供者返回的服务响应消息中的所有参数的XML文档树记为d2′,将d2′包含的元素个数记为q′,计算d1′与d2′的语义匹配度,记为P′, 其中,Ai′为d1′中的第i′个元素,Bj′为d2′中的第j′个元素,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方式异步地向所述的服务提供者发送相应的服务请求消息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200910155731A CN101764837B (zh) | 2009-12-23 | 2009-12-23 | 一种Web服务动态调用系统及调用方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200910155731A CN101764837B (zh) | 2009-12-23 | 2009-12-23 | 一种Web服务动态调用系统及调用方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101764837A true CN101764837A (zh) | 2010-06-30 |
CN101764837B CN101764837B (zh) | 2012-09-12 |
Family
ID=42495819
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200910155731A Active CN101764837B (zh) | 2009-12-23 | 2009-12-23 | 一种Web服务动态调用系统及调用方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101764837B (zh) |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101931654A (zh) * | 2010-09-07 | 2010-12-29 | 上海交通大学 | 基于本体的异构服务匹配系统 |
CN102314358A (zh) * | 2011-05-30 | 2012-01-11 | 兰雨晴 | 一种在云平台上以soa的方式部署常规应用的方法 |
CN102457569A (zh) * | 2010-10-25 | 2012-05-16 | 中国科学院声学研究所 | 一种面向物联网应用的Web服务的冗余检测方法及系统 |
CN103229143A (zh) * | 2010-09-28 | 2013-07-31 | 施耐德电气美国股份有限公司 | 具有可扩展和可定制的计算引擎的面向网络服务的架构内的服务提供者 |
CN103269327A (zh) * | 2013-01-07 | 2013-08-28 | 广西电网公司 | 一种基于代理机制的通用文件数据服务的实现方法 |
CN103546484A (zh) * | 2013-11-01 | 2014-01-29 | 深圳中兴网信科技有限公司 | 报文解析装置和报文解析方法 |
CN103580937A (zh) * | 2012-07-24 | 2014-02-12 | 阿里巴巴集团控股有限公司 | 一种Web 服务模拟的方法及其系统和服务代理系统 |
CN105678383A (zh) * | 2016-01-04 | 2016-06-15 | 北京飞舜信息技术有限公司 | 基于本体模型的移动知识服务系统 |
CN105871911A (zh) * | 2016-06-02 | 2016-08-17 | 浪潮通用软件有限公司 | 一种服务调用引擎、方法及系统 |
CN106686147A (zh) * | 2017-03-16 | 2017-05-17 | 重庆邮电大学 | 一种基于用户偏好的语义Web服务发现架构及方法 |
CN109218426A (zh) * | 2018-09-19 | 2019-01-15 | 福建南威软件有限公司 | 一种支持webservice协议调用的API网关服务方法 |
CN111988171A (zh) * | 2020-08-12 | 2020-11-24 | 北京大学 | 基于RESTful风格请求调用SOAP Web服务的方法、代理服务器及系统 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7418485B2 (en) * | 2003-04-24 | 2008-08-26 | Nokia Corporation | System and method for addressing networked terminals via pseudonym translation |
US20060143031A1 (en) * | 2004-12-28 | 2006-06-29 | International Business Machines Corporation | Method and system for dynamic creation of web services |
CN100488202C (zh) * | 2005-12-08 | 2009-05-13 | 普天信息技术研究院 | 基于服务质量的Web服务注册与发现系统及其方法 |
CN1968322A (zh) * | 2006-09-08 | 2007-05-23 | 中山大学 | 一种Web服务发现和集成代理系统 |
-
2009
- 2009-12-23 CN CN200910155731A patent/CN101764837B/zh active Active
Cited By (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101931654A (zh) * | 2010-09-07 | 2010-12-29 | 上海交通大学 | 基于本体的异构服务匹配系统 |
CN101931654B (zh) * | 2010-09-07 | 2012-11-28 | 上海交通大学 | 基于本体的异构服务匹配系统 |
CN103229143A (zh) * | 2010-09-28 | 2013-07-31 | 施耐德电气美国股份有限公司 | 具有可扩展和可定制的计算引擎的面向网络服务的架构内的服务提供者 |
CN103229143B (zh) * | 2010-09-28 | 2016-11-16 | 施耐德电气美国股份有限公司 | 具有可扩展和可定制的计算引擎的面向网络服务的架构内的服务提供者 |
CN102457569B (zh) * | 2010-10-25 | 2014-04-02 | 中国科学院声学研究所 | 一种面向物联网应用的Web服务的冗余检测方法及系统 |
CN102457569A (zh) * | 2010-10-25 | 2012-05-16 | 中国科学院声学研究所 | 一种面向物联网应用的Web服务的冗余检测方法及系统 |
CN102314358B (zh) * | 2011-05-30 | 2014-02-12 | 北京航空航天大学 | 一种在云平台上以soa的方式部署常规应用的方法 |
CN102314358A (zh) * | 2011-05-30 | 2012-01-11 | 兰雨晴 | 一种在云平台上以soa的方式部署常规应用的方法 |
CN103580937A (zh) * | 2012-07-24 | 2014-02-12 | 阿里巴巴集团控股有限公司 | 一种Web 服务模拟的方法及其系统和服务代理系统 |
CN103580937B (zh) * | 2012-07-24 | 2016-11-23 | 阿里巴巴集团控股有限公司 | 一种Web 服务模拟的方法及其系统和服务代理系统 |
CN103269327A (zh) * | 2013-01-07 | 2013-08-28 | 广西电网公司 | 一种基于代理机制的通用文件数据服务的实现方法 |
CN103546484A (zh) * | 2013-11-01 | 2014-01-29 | 深圳中兴网信科技有限公司 | 报文解析装置和报文解析方法 |
CN103546484B (zh) * | 2013-11-01 | 2017-02-15 | 深圳中兴网信科技有限公司 | 报文解析装置和报文解析方法 |
CN105678383A (zh) * | 2016-01-04 | 2016-06-15 | 北京飞舜信息技术有限公司 | 基于本体模型的移动知识服务系统 |
CN105678383B (zh) * | 2016-01-04 | 2018-03-27 | 北京飞舜信息技术有限公司 | 基于本体模型的移动知识服务系统 |
CN105871911A (zh) * | 2016-06-02 | 2016-08-17 | 浪潮通用软件有限公司 | 一种服务调用引擎、方法及系统 |
CN106686147A (zh) * | 2017-03-16 | 2017-05-17 | 重庆邮电大学 | 一种基于用户偏好的语义Web服务发现架构及方法 |
CN109218426A (zh) * | 2018-09-19 | 2019-01-15 | 福建南威软件有限公司 | 一种支持webservice协议调用的API网关服务方法 |
CN111988171A (zh) * | 2020-08-12 | 2020-11-24 | 北京大学 | 基于RESTful风格请求调用SOAP Web服务的方法、代理服务器及系统 |
CN111988171B (zh) * | 2020-08-12 | 2022-05-17 | 北京大学 | 基于RESTful风格请求调用SOAP Web服务的方法、代理服务器及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN101764837B (zh) | 2012-09-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101764837B (zh) | 一种Web服务动态调用系统及调用方法 | |
Roffia et al. | A semantic publish-subscribe architecture for the Internet of Things | |
Paolucci et al. | The DAML-S virtual machine | |
CN102594833B (zh) | 一种通信协议适配方法和系统 | |
CN101997854B (zh) | 一种提供数据服务的处理系统及方法 | |
CN110162559B (zh) | 一种基于通用json同步和异步数据api接口调用的区块链处理方法 | |
Berko et al. | Application of ontologies and meta-models for dynamic integration of weakly structured data | |
CN101655943A (zh) | 企业应用集成工作流管理方法及系统 | |
US20180203899A1 (en) | Expression pushdown optimization system | |
CN111198898B (zh) | 大数据查询方法及大数据查询装置 | |
CN101895547A (zh) | 一种基于不确定服务的推荐系统及方法 | |
Grasic et al. | Automating ontology based information integration using service orientation | |
CN103955461A (zh) | 一种基于本体集合概念相似度的语义匹配方法 | |
CN114297224A (zh) | 一种基于rdf的异构数据集成与查询系统及方法 | |
Khanam et al. | A Web Service Discovery Scheme Based on Structural and Semantic Similarity. | |
Wu et al. | Introducing EAI and service components into process management | |
CN107505852B (zh) | 一种包含仿真信息的云制造服务描述文件的构建方法 | |
JP2012528367A (ja) | データ伝送システムにおけるデータを適合するための方法及び関連システム | |
CN102486731A (zh) | 增强软件的软件调用栈的可视化的方法、设备和系统 | |
CN110555042B (zh) | 一种数据的实时检索方法,装置及系统 | |
Zhuge et al. | Algebra model and experiment for semantic link network | |
Li et al. | Database conversion based on relationship schema mapping | |
Monticolo et al. | An agent approach to manage heterogeneous and distributed knowledge | |
Team | Microservice Application Design | |
KR20110056058A (ko) | 웹 서비스 중개 장치 및 방법 |
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 |