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

技术编号:4119366 阅读:329 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开了一种Web服务动态调用系统及方法,包括服务请求者、UDDI服务注册中心、服务提供者及调用代理,调用代理分别与服务请求者、UDDI服务注册中心及服务提供者进行消息通信,调用代理中设置有消息解析器、服务匹配器、服务调用器及结果处理器,调用代理中建立有语义本体库,语义本体库分别为服务匹配器和结果处理器提供语义匹配,优点在于通过调用代理的引入,完全解除了服务请求者与服务提供者之间的紧耦合关系,为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、设置一个本文档来自技高网
...

【技术保护点】
一种Web服务动态调用系统,包括服务请求者、UDDI服务注册中心和服务提供者,其特征在于还包括调用代理,所述的调用代理分别与所述的服务请求者、所述的UDDI服务注册中心及所述的服务提供者进行消息通信,所述的调用代理中设置有消息解析器、服务匹配器、服务调用器及结果处理器,所述的调用代理中建立有语义本体库,所述的语义本体库分别为所述的服务匹配器和所述的结果处理器提供语义匹配,所述的服务请求者发送服务请求消息给所述的消息解析器,所述的消息解析器解析服务请求消息,得到功能关键字、输入参数及需要的响应参数,所述的服务匹配器根据功能关键字从所述的UDDI服务注册中心中查找服务,获取Web服务序列及Web服务序列中各个Web服务对应的WSDL文件,所述的服务匹配器根据输入参数从Web服务序列中获取语义匹配度最优的Web服务对应的WSDL文件,所述的服务调用器发送由语义匹配度最优的Web服务对应的WSDL文件产生的服务请求消息给所述的服务提供者,并将所述的服务提供者根据接收到的服务请求消息返回的服务响应消息传递给所述的结果处理器,所述的结果处理器将该服务响应消息的格式转化为所述的服务请求者需要的响应参数的格式,并将格式转化后的服务响应消息发送给所述的服务请求者。...

【技术特征摘要】
一种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,不同类别中两个词...

【专利技术属性】
技术研发人员:干红华姜建生赵晨俞弘廖兰新
申请(专利权)人:宁波东海蓝帆科技有限公司
类型:发明
国别省市:97[中国|宁波]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1