CN1607791A - 在面向服务的体系结构中选择服务绑定协议的方法和装置 - Google Patents
在面向服务的体系结构中选择服务绑定协议的方法和装置 Download PDFInfo
- Publication number
- CN1607791A CN1607791A CN200410070265.5A CN200410070265A CN1607791A CN 1607791 A CN1607791 A CN 1607791A CN 200410070265 A CN200410070265 A CN 200410070265A CN 1607791 A CN1607791 A CN 1607791A
- Authority
- CN
- China
- Prior art keywords
- service
- client
- binding
- communication path
- server end
- 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
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/51—Discovery or management thereof, e.g. service location protocol [SLP] or web services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/30—Definitions, standards or architectural aspects of layered protocol stacks
- H04L69/32—Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
- H04L69/322—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
- H04L69/329—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/22—Parsing or analysis of headers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/24—Negotiation of communication capabilities
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明是一种在面向服务的体系结构中调用服务的方法及装置,在该面向服务的体系结构中,客户使用所选择的传输绑定调用这种来自服务提供者的服务。用于来自服务提供者的服务调用的服务绑定首先在协商过程中使用第一传输绑定被协商。然后,使用在协商过程中所协商的服务绑定来处理服务调用。客户可以首先判定服务器是否可以协商服务绑定。如果服务器可以协商服务绑定,则客户与服务器协商服务绑定。否则,根据客户可用的诊断信息来选择一项服务绑定而不与服务器协商。对于通信路径的每一个部分,可以由客户及服务提供者协商或者由通信路径中的中介来协商单独的服务绑定。
Description
技术领域
本发明涉及一种在面向服务的体系结构中选择服务绑定协议的方法和装置,在该服务体系结构中,客户使用选定的传输绑定从服务提供者调用服务。更具体地说,本发明涉及一种通过协商和诊断来选择这种服务绑定协议的方法和装置。
背景技术
本说明书中(使用带方括号的标号)参考了以下出版物,这些出版物可以通过印刷形式或在线的形式获取,现于此引入以作参考:
1. W3C Note,“Web Services Description Language(WSDL)1.1”,2001.3.15
2.Ueli Wahli等人,Websphere Version 5 Web ServicesHandbook,IBM Redbook,SG24-6891-00,2003.
3.W3C Working Draft,“SOAP Version 1.2 Part 0:Primer”,2002.6.26
4.W3C Working Draft,“SOAP Version 1.2 Part 1:MessagingFramework”,2002.6.26
5.W3C Working Draft,“SOAP Version 1.2 Part 2:Adjuncts”,2002.6.26
6.Aaron Skonnard,“Understanding SOAP”,MSDN Library,2003.3
7.W3C Recommendation,“Extensible Makeup Language(XML)1.0(Second Edition)”,2000.10.6
8.Peter Flynn(ed.),“The XML FAQ v.3.01”,2003.1.14
9.Sun Microsystems,Inc.,“Java API for XML-BasedRPC(JAX-RPC)”,2003.8.28
10.Ian Foster等人,“The Physiology of the Grid:An OpenGrid Services Architecture for Distributed SystemsIntegration”2002.6.22
11.Steve Tuecke等人,“Grid Service Specification”,Draft 3,2002.7.17
12.W3C Note,“SOAP Messages with Attachments”,2000.12.11
最近几年来,在信息技术领域中众多重要事件之一就是Web服务及其近亲网格服务的规范及其实现的发展。正如文献[2]第7页中所描述的,“Web服务是一些可以通过网络描述、发布、定位以及调用的自含式(self-contained)、模块化的应用。Web服务执行封装的业务功能,其范围可以从简单的请求-响应到整个业务处理的交互”。Web服务已经被编纂为诸如Web服务描述语言(WSDL)[1]这样的标准规范。网格服务[10,11]已经被定义为符合一套定义客户如何与网格服务交互的约定(接口和行为)的Web服务。网格服务已经被用来创建虚拟组织(VO),在该组织中,实际上远程的可利用的计算资源(应用程序,处理器等)在用户看来就像是本地的资源。
在一个面向服务的体系结构如Web服务中,服务提供者可以提供若干用于绑定的传输协议以便访问一项服务。这样做是为了向客户提供更好的服务质量(QOS)特性。这种绑定的一个例子是服务的传输绑定使用IIOP代替SOAP/HTTP以获得更好的性能(关于这些及其他缩写见下面附录中的术语表)。服务提供者在部署一项服务时在一个WSDL文档中定义该绑定信息,并启动服务器端框架(桩模块(stub)/JMS监听程序等)以支持这些绑定。创建服务骨架(skeleton)来以特定于绑定的方式处理进入的请求并把该进入的请求转化成特定于平台的服务调用模型。可有若干绑定协议模型(SOAP/HTTP,IPC,IIOP,RMI,SOAP/JMS等)能够基于例如性能、互用性、服务容器能力以及QOS需求等标准而被创建。使用服务的客户可以从一些注册表(UDDI)或服务本身(通过HTTP GET)来获取用于服务的WSDL文档并对WSDL文档进行评估。客户可以生成静态桩模块或为服务调用动态地内省(introspect)WSDL文档。这就导致了一个客户有若干传输协议绑定信息代理,而客户需要从这些代理中选择出一个来调用服务。
图1的概念图示出客户102、服务104(这里也称为“服务提供者”)、各种绑定106、以及一个WSDL文档108之间的关系。正如图中所示,客户102使用WSDL文档108生成一项服务绑定106,而后客户102使用生成的绑定106调用服务104(通过发出一项服务请求)。转过来,服务104也使用选定的绑定106。
如图1所示,现在客户面临的一个主要问题是选择哪一项绑定来达到需要的QOS特性。服务提供者假定客户能够基于其在例如性能及吞吐量、平台能力及配置等QOS需求的需要对选择协议绑定做出明智的决定。如今,该方法可以通过WSDL扩展以及绑定排序提供一些静态信息模型以及绑定选择优选项。但是这对于客户在绑定选择时做出明智的决定是不够的。
当前正在努力为客户提供服务协议绑定方面的更加详细的信息模型。这样客户可以基于以下几点来选择绑定:(1)WSDL绑定扩展性信息以及绑定选择策略(服务等级协议及策略);(2)客户配置以及部署策略,包括静态部署选项和服务等级协议(SLA)需求,以及动态策略和SLA需求(编程模型配置、策略等等);(3)通过用于RDF的WSDL扩展的与客户关联的机器可解释的语义信息;以及(4)自动施加的绑定规则,例如绑定顺序。另外地或可替代地,可以通过诸如由服务提供的部署策略(例如,仅在某一特定时间点遭受某些绑定)等服务提供者策略或者使一个服务器通过SLA、UDDI等提供策略,来实现这一点。
然而,这些努力仅仅是对现存的WSDL描述及编程模型进行的扩展,而没有通过一个动态握手(协商)过程在运行时为客户解决动态配置需求。类似地,WSIF(Web服务调用框架)是一个被提供用来根据来自WSDL文件的静态信息在客户端创建多绑定通道的框架。
与此同时,上面提到的解决方法存在几个问题。它们需要关于客户端和服务器端的传输绑定选择的预先知识。大多数QOS需求必须事先知道并需要在服务调用前进行配置。它们在性质上是非常静态的,几乎没有灵活性。基于不同的服务提供者的需求,它们依赖于若干的工具。它们支持中介(intermediary)的能力非常有限,它们针对某一特定QOS需求动态改变一个绑定的能力也同样如此。最后,它们不能与服务器就传输绑定选择进行会话以达到更好的QOS控制。
所以,需要的是一种用于动态选择传输绑定的机制。
发明内容
总的来说,本发明构想的是一种在面向服务的体系结构中调用服务的方法和装置,在该体系结构中,客户使用一项选择的服务绑定从服务提供者调用这种服务。首先使用第一传输绑定在协商过程中协商一个用于来自服务提供者的服务调用的服务绑定。然后使用在协商过程中已协商的服务绑定处理该服务调用。
客户可以首先决定服务器是否能够协商一项服务绑定,比如说通过“砰”(ping)服务器。如果服务器能够协商一项服务绑定,则客户将与服务器协商一个服务绑定。否则,根据客户可获得的不与服务器协商的信息(比如诊断信息)来选择一项服务绑定。
或是通过客户与服务提供者,或是通过通信路径中的中介,对于一条通信路径的每个不同的部分可协商选择单独的服务绑定。
本发明因而构想了在客户与服务之间的一种握手协议,用于在面向服务的体系结构中在运行时选择一项恰当的传输绑定,以便获得更好的性能和吞吐量。客户通过使用本发明的协商协议与服务器协商,可以达到希望的QOS需求。当协商协议不被支持时,客户使用诊断基准测试工具,通过某一诊断决策过程可以达到希望的QOS需求。
本发明没有处理特定于服务的绑定需求以获得某些QOS特性。这包括绑定寻址方案、消息格式、编码、消息类型(DOC/RPC)、调用模型以及其他特定于绑定的QOS(相关性、事务处理以及安全性等等)。另外,本发明对绑定的使用没有施加计划性的规定。客户端框架选择这些绑定,并且客户独立于该绑定选择。一种实现可以是WSIF框架(为Web服务提供若干绑定),其可以与一个JAX-RPC处理程序(绑定选择器)一起用于Web服务绑定选择。
虽然本发明用软件实现比较好,但用硬件,软件或者二者的某种结合也都可以实现。当用软件实现时,它可以采取可被机器读取的程序存储装置(比如磁盘、光盘或者半导体存储器)的形式,该程序存储装置有形地体现可由机器执行以完成所定义的方法步骤的指令程序。
附图说明
图1的概念图示出了客户、服务、各种绑定以及WSDL文档之间的关系。
图2示出了客户使用不同绑定调用两项服务的情形。
图3示出了使用定制的绑定协议时客户与网关交互及网关与服务交互的情形。
图4示出了一种在一个协商过程中涉及中介的特殊情况。
图5A示出了通过协商选择服务绑定。
图5B示出了通过诊断选择服务绑定。
图6示出了一个传输绑定协商协议框架。
图7示出了使用IIOP绑定的传输绑定协商协议框架。
图8示出了一个寻找最合适传输绑定的服务器诊断过程。
图9示出了一个用于一个WSDL端口类型的传输绑定选择过程。
具体实施方式
在详细论述优选实施例之前,作为预备,先描述几种可能的网络拓扑。
在上述简要说明中,假定客户和服务提供者相互直接通信,而没有任何的中介,并且在整个通信路径中仅使用一种服务绑定。然而,在实际的实现中,可能为通信路径中的不同部分协商不同的服务绑定,并且在协商过程中,可能会主动地或被动地涉及中介。在下面所述的使用例子的情形中,作如下假定:
1.服务提供者可以使用用于HTTP、JMS、IIOP的协议绑定将服务部署在容器中。
2.如果不需要进行可靠消息传送,则客户可以通过HTTP绑定使用该服务。
3.如果需要进行可靠消息传送,则客户可以通过JMS绑定使用该服务。
4.如果客户与该服务被部署在同一容器中,则可以使用IIOP以获得最佳性能。
客户可以直接参与到与服务器(服务提供者)的协商中,以选择适当的传输绑定。一旦选择了传输绑定,客户将使用它进行下一层的通信。图2示出了第一种情形(使用例子1),在该情形中,客户102使用用于服务调用的不同的绑定(IIOP和SOAP/HTTP)调用两个不同的服务104(服务A和B)。更具体地说,对于服务104中的每一个服务,客户102首先在协商过程中(图中每对链接中的上侧链接)使用第一个、非协商的用于协商过程的传输绑定来协商一个服务绑定。在所示的例子中,用于协商过程的传输绑定是SOAP/HTTP。但本发明并不仅局限于这种绑定,而可以使用其它绑定来代替这个绑定。协商可以集中于服务质量(QOS)特性方面,或者协商方所感兴趣的、传输绑定的任何其它方面。
在协商用于一特定的服务提供者104的传输绑定后,客户102就在服务调用(图中每对链接的下侧链接)中使用所协商的传输绑定从服务提供者处调用一个服务。在该特定例子中,客户102与服务A协商了IIOP传输绑定并且与服务B协商了SOAP/HTTP绑定。注意对于服务B,服务调用所使用的传输绑定(SOAP/HTTP)和协商过程中所使用的相同。不过,通常协商过程使用的绑定与服务调用所使用的绑定之间没有关系(除了它们是被协商过程和服务调用的参与方所支持之外)。
在各图中,客户102可能只是客户机上多个这样的客户(或称“服务请求者”)中的一个,图中不将它们分别示出。类似地,服务提供者104可能只是服务器机器(或称“服务器”)上多个这样的服务提供者中的一个。除了如这里描述的以外,客户102和服务提供者104的运行的细节不属于本发明的部分,因此没有示出。同样地,客户102和服务提供者104所驻留的机器的运行的细节不属于本发明的部分,因此这些机器也没有被分别示出。类似地,除了能够支持此处描述的协议外,连接客户102和服务提供者104的网络的运行的细节不属于本发明的部分,因此没有被描述。
在前面的情形中,特定协商过程的参与方是客户和服务提供者,双方之间直接打交道。图3示出了第二个情形(使用例子2),其中通过使用单独的绑定协议,客户102与网关302交互,而网关302与相应的服务104交互。在图3示出的情形中,与前面相同,SOAP/HTTP绑定用于各协商过程。但是,对于来自服务A的服务调用,SOAP/HTTP绑定被用于客户102和网关302之间的通信路径,而IIOP绑定被用于网关302和服务104之间的通信路径。类似地,对于来自服务B的服务调用,SOAP/HTTP绑定被用于客户102和网关302之间的通信路径,而JMS绑定被用于网关302和服务104之间的通信路径。
在图3示出的情形中,网关302可以参与到与服务提供者104之间的协商中,以选择适当的传输绑定。一旦传输绑定被选择,网关302将该绑定应用于与服务104的下一层通信,服务调用。客户102也可以参与到该绑定协商过程中,并可以对一特定的绑定选择和协商过程表示它的兴趣。而且,通过本发明的协商协议,在运行时,客户102还可以使用它的QOS需求通过绑定选择来影响网关302。
在图3的情形中,客户102和服务104可以为它们之间的通信路径的每一路径段协商一个传输绑定,而网关302担当协商的代理。或者,网关302可以作为委托人(principal)并为它自己协商与客户102以及服务104之间的绑定。换句话说,在客户102和一个特定的服务104之间,可以有一个(在客户和服务之间的)或两个(在客户和网关之间以及网关和服务之间的)协商过程。二者中的每个选择都是可能的,这取决于网关的功能性(即,取决于它是一个智能代理还是一个简单的代理)。
图4进一步示出了第三个情形,这一特别的例子在协商过程中涉及了中介(就“中介”和“网关”的区别来说,与中介相比,网关通常有更多的功能性-如消息处理、调度和路由选择,而中介通常是通向目的地的消息路由器)。这可以通过本发明的传输绑定选择协议连同相关的路由选择协议来完成。一旦协商完成,即可以使用不同的绑定通道选择经由中介的合适的绑定协议。更具体地说,在图4示出的情形中,客户102和服务104通过客户102和服务104之间的通信路径中的第一和第二中介402和404进行通信。虽然在该例中显示的是两种中介402和404,但可以包含更多的中介或仅包含一种中介。
在图4示出的情形中,每对相邻的节点进入一个单独的协商过程,并为如前所述的目的使用SOAP/HTTP绑定。但是,对于实际的服务调用,在特定的一对节点中使用的传输绑定依赖于这两个节点间协商的结果。因而,在图4的示例中,服务调用在客户102和第一中介402之间使用SOAP/HTTP传输绑定,而在第一中介402和第二中介404之间使用IIOP绑定,以及在第二中介404和服务104之间使用JMS绑定。
本发明考虑了两种机制用于服务绑定选择:(1)通过协商的服务绑定选择;(2)通过诊断过程的服务绑定选择。
第一种机制是客户和服务器之间的协商过程,它利用了一个定义的协商协议,该协议在这里也称“通过协商的服务绑定选择”(SBSN)协议。通常,一个定义服务的WSDL文档会提供有关可用的传输绑定的必要信息,以便客户可以与该服务进行对话。客户会创建若干客户端绑定,它可以根据需要从中选择出最好的一个。在运行时,客户可以启动一个与服务器的协商过程,然后在此基础之上,客户可以选择一个匹配需求的协议绑定。一旦完成该绑定选择,就可以使用运行时的绑定协议如WSIF或其它协议与服务通信。
SOAP基于报头的模型可以用于协商中,以允许消息经由中介发送,启动用于协商协议的公共简档(profile),并支持各种客户和服务的实现。这种SOAP报头可以承载关于消息呼叫的与绑定相关的信息,而服务简档的信息(例如,客户/服务容器属性,定制的用户定义的属性,类装入器信息)也可以作为一个或多个附件随SOAP消息一同承载[12]。
通过协商的服务绑定选择是按如下方式工作的。在运行时,客户和服务器根据它们的QOS需求以及它们的能力进入一个协商过程。这些QOS需求包括较好的性能、吞吐量和可伸缩性。图5A示出了其基本方案。客户102和服务104使用诸如SOAP/HTTP等第一传输绑定,进入了一个在网络上的、相互的协商过程502,以协商一个用于来自服务提供者104的调用服务的传输绑定。然后,客户102将协商的传输绑定(其可以与第一传输绑定相同或不同)应用到服务调用504,以调用来自服务提供者104的服务。
第二种机制用于服务提供者不支持传输绑定协商框架的情况。在这里,一个过程以基于服务器“砰”(ping)(使用可用的绑定向服务器发送抽象消息)的动态简档信息的收集、消息的相关性(收集错误消息、日志)以及基于事件相关性过程的解释(使消息、日志以及调用时间相关)为基础。基于该简档,客户可以作出关于绑定选择的某些决定。
图5B示出了通过诊断进行服务绑定选择的一般方案。在图5B中示出的方案与图5A中的基本类似,与图5A不同的是,客户并不是与服务提供者协商服务绑定,而是通过选择过程506来选择绑定,该选择过程依据的是本地可获得的信息,例如下述类型的诊断信息。
在一个优选实施中,为了支持在客户和服务器之间关于服务绑定选择的会话,提供了以下各项:(1)协商协议;(2)用于绑定协商过程的在客户和服务器二者中的绑定框架;以及(3)挂入(hook into)客户端运行时系统的框架。
协商协议最好是一个基于XML的协议,它用于支持客户和服务之间的绑定协商。在协商协议不需要使用任何特别的语言的同时,它可以具有以下几个部分:(a)一个协商动作和会话报头;(b)协商数据;以及(c)帮助会话的简档。最好该协议还具有可扩展性以便支持消息扩展。协商动作可以指定一些动作,例如列出绑定、选择绑定、使用绑定、绑定属性列举等。会话报头可以包含消息的相关信息。协商数据包括用于上述动作的数据。所述简档用于帮助绑定选择。这可以包括客户/服务容器信息、用户定义的需求以及任何其它可以帮助绑定选择的信息。简档可以采用任意的数据格式,包括二进制数据。就SOAP来说,SOAP附件[12](为MIME类型附件)可以用来发送这些基于MIME的简档。
协商协议可以定义其经由中介的传播和使用(如上所述),以便绑定选择过程对中介友好。这使得中介与协商协议能够共同工作,以便为通信选择所需的绑定并允许客户和服务适度地使用绑定,例如,通过允许根据需要发送SOAP报头和允许发送消息而不影响协商过程。
用于绑定协商过程的、客户和服务器二者中的绑定框架能够在运行时启动一个绑定选择过程,例如以SOAP消息启动。SOAP报头可以用来控制该会话并用来传送包含在该会话中的简档。服务简档的附加信息(例如,客户/服务容器属性,定制的用户定义的属性以及类装入器信息)可以作为附件(如,SOAP附件)随消息一同被承载。所有这些会话都使用如前所述的协商协议而实现。即使在绑定选择已经完成后,客户和服务器也可以通过当前的绑定通道发送该协商信息并可以根据需要启动一个新的绑定选择过程。可以定义一个框架来内省客户端和服务器端的环境信息,从而在绑定选择方面做出恰当的决定。
客户端框架使得客户能够在方法调用前启动一个与服务之间的绑定协商过程,并基于指定的生存期需求高速缓存所选择的绑定。它使得客户可以向服务器提供用于协商过程的必要的信息。此外,它还可以定义用于协商的简档、标准和规则,并使得客户能够根据需要重新协商绑定。
用来支持服务绑定协商协议的服务器端框架使得一个服务在服务调用前可以支持一个服务绑定协商过程。它使得服务器可以根据协商中使用的简档和支持数据(例如包含在SOAP附件中的)来确定客户的QOS需求(例如包含在SOAP报头中的)。
服务器端框架可以内省服务器以检测QOS特性需求并找出服务运行环境的细节。服务器端框架也可以内省服务器运行时间以验证客户运行时环境,并内省客户环境信息以选择合适的绑定。例如,如果客户和服务器都在使用相同的类装入器,则应当使用Java绑定。
就基于Java的服务来说,挂入客户端运行时系统的框架可以是一个JAX-RPC处理程序框架。这就允许客户在进行服务调用调度之前对绑定选择做出决定。本发明的传输绑定协议允许客户端框架动态地改变绑定,从而根据客户的配置动态地部署绑定。这一方法很灵活,并可以适应于其它的Web服务环境。一旦完成绑定选择,该运行时框架将决定该绑定选择的范围。这个范围可以是应用程序范围(所有的服务调用)、WSDL端口类型范围(由WSDL绑定来规定)或基于每个服务调用。而且,客户可以通过例如定时器、简档等定制方法控制该绑定协商的生存期。还有一种方法也是可能的,通过该方法,服务器可以使用相同的协商协议来控制绑定的使用。
图6和图7示出了在本发明的一个优选实施例中,该协商过程在运行时是怎样进行的。如图所示,客户102通过在客户端的JAX-RPC处理程序602和在服务器端的JAX-RPC处理程序(或小服务程序)604与服务104交互(虽然在本具体例子中是以JAX-RPC处理程序为例,但本发明的方法也可以应用于其它消息处理程序,尤其是SOAP处理程序)。JAX-RPC处理程序602在可以访问策略610的绑定协商协议处理程序606的协助下处理服务绑定协商。类似地,在服务器端,JAX-RPC小服务程序604在可以访问策略612的绑定协商协议处理程序608的协助下处理服务绑定协商。将图6中示出的元素与以上描述的组件相联系,绑定协商协议处理程序606和608分别构成了在客户端和服务器端的绑定框架,并在它们之间使用所定义的协议进行服务绑定协商,而JAX-RPC处理程序602构成了用于挂入客户端运行时系统的框架。
现在来看图6,下面将讲述客户102对于一个服务操作调用启动的两步操作。第一步,当客户102通过发信号通知JAX-RPC处理程序602来调用这两步操作时,使用协商绑定协议的协商过程启动。作为响应,JAX-RPC处理程序602启动与服务器端的JAX-RPC小服务程序604之间的一个交换以确定它支持哪一个服务绑定。在这个具体例子中,JAX-RPC小服务程序604发回信号通知它使用的是IIOP绑定(如果JAX-RPC604标识了若干绑定,则JAX-RPC处理程序602将根据一个或多个标准选择一个绑定,并且可选地,根据具体协议,向服务器端发回信号通知它的选择)。
现在来看图7,第二步是实际的服务调用,JAX-RPC602处理程序使用所协商的绑定(此处为IIOP)调用服务104,在调用服务104时,JAX-RPC处理程序602使用例如在参考[2]的89-99页中所述类型的Web服务调用框架(WSIF)614与服务104直接通信。
如上所述,有些情况可能是其中并没有可以支持用于绑定选择的协商过程的服务器端框架。在这类情况中,客户或客户管理员可以根据其需求通过一个诊断过程来找出最适合的绑定(图5B和图8)。一个用来选择合适的服务绑定的诊断框架可以具有用于与服务客户运行时框架一起工作的客户端诊断处理程序,用于收集基于服务器调试(包括日志、砰(ping)和跟踪(trace))的详细数据的诊断工具,以及用于处理收集到的数据以得到绑定性能和吞吐量的细节的绑定选择协议。诊断工具可以包括用于从诊断信息中选择服务绑定的关联逻辑,并且还可以在绑定选择时使用简档。
图8示出了图6和7中的实施例如何通过诊断来完成绑定选择(第一步)。在该情形中,JAX-RPC处理程序602砰(ping)在服务器端的JAX-RPC小服务程序604并确定没有绑定协商框架。确定这一点后,JAX-RPC处理程序602使得协议处理程序606基于策略612、服务日志和踪迹(trace)616决定一个合适的绑定。以这种方式选择服务绑定后,JAX-RPC处理程序602进入第二步,在这一步中,它按照图7示出的方式工作。
该诊断过程可以非常广泛,并可以运行于在客户能够决定要使用的绑定之前的整个时间段。可以生成若干诊断工具(服务器砰(ping)、事件数据、日志/踪迹评估器(log/trace evaluator)等)与该模型一起工作以生成所需的日志和踪迹。该诊断过程变成客户端服务框架的一部分并可以影响服务调用以便在运行时选择最合适的协议绑定。就基于JAX-RPC的系统来说,我们定义一个诊断处理程序框架来支持这一过程。
图9示出了用于WSDL端口类型的传输绑定选择过程的高级流程图。在进行服务调用的调用(步骤902)时,首先客户和服务进入到一个传输绑定协商过程(步骤904)。根据绑定选择策略和由协商协议定义的协议定义,客户可以选择具有最大的QOS能力的绑定(步骤906)。一旦完成协商,客户就可以根据客户需求,基于应用程序范围、端口类型范围或操作范围来应用绑定选择信息(步骤908)。现在,绑定即可应用由WSDL绑定元素和绑定协商协议二者指定的特定于绑定的属性910。此时,客户已准备好使用选择的绑定来调用操作(步骤912)。此后,客户可以通过重复上述步骤来改变绑定选择。
尽管已经示出和描述了具体实施例,对本领域的技术人员来说,各种变形是显而易见的。
附录:缩写词及首字母缩略词
HTTP 超文本传输协议
IIOP 因特网对象请求代理间协议
IPC 过程间通信
JAX-RPC 用于基于XML的RPC的Java API
JMS Java消息服务
MIME 多用途因特网邮件扩充
QOS 服务质量
RDF 资源描述框架
RMI 远程方法调用
RPC 远程过程调用
SLA 服务等级协议
SOAP 简单对象访问协议
UDDI 通用描述、发现和集成
WSDL Web服务定义语言
WSIF Web服务调用框架
XML 可扩展标记语言
Claims (20)
1.一种在面向服务的体系结构中调用服务的方法,其中客户使用所选择的传输绑定调用来自服务提供者的服务,该方法包括以下步骤:
在协商过程中使用第一传输绑定协商用于来自所述服务提供者的服务调用的服务绑定;以及
使用在所述协商过程中所协商的服务绑定处理所述服务调用。
2.权利要求1的方法,其中所述客户位于通信路径的客户端,所述步骤在所述通信路径的所述客户端执行。
3.权利要求1的方法,其中所述服务提供者位于通信路径的服务器端,所述步骤在所述通信路径的所述服务器端执行。
4.权利要求1的方法,其中所述客户位于通信路径的客户端,所述服务提供者位于所述通信路径的服务器端,所述服务绑定直接在所述通信路径的所述客户端及所述服务器端之间协商。
5.权利要求1的方法,其中所述客户位于通信路径的客户端,所述服务提供者位于所述通信路径的服务器端,所述步骤在所述通信路径的所述客户端及所述服务器端执行。
6.权利要求1的方法,其中所述服务调用经由在作为端节点的所述客户及所述服务器之间的一条通信路径的一个或多个中介节点,所述方法步骤被沿所述客户及所述服务器之间的所述通信路径的所述中介节点中的一个及其相邻节点执行。
7.权利要求1的方法,其中所述服务调用经由在作为端节点的所述客户及所述服务器之间的一条通信路径的一个或多个中介节点,所述方法包含以下步骤:
使沿所述客户及所述服务器之间的所述通信路径的每对相邻节点在所述节点之间的协商过程中协商用于所述服务调用经过所述节点之间部分的服务绑定;以及
使每对相邻节点使用在所述节点间的所述协商过程中所协商的服务绑定处理所述服务调用经过所述节点的部分。
8.权利要求1的方法,其中所述客户位于通信路径的客户端,所述服务位于所述通信路径的服务器端,所述协商步骤包含以下步骤:
确定所述服务器端是否能够协商一服务绑定;
如果确定所述服务器端能够协商一服务绑定,则与所述服务器端协商一服务绑定;以及
否则,根据所述通信路径的客户端中的可用信息选择一服务绑定而不与所述服务端协商。
9.权利要求8的方法,其中根据所述通信路径的客户端中的可用诊断信息来选择所述服务绑定。
10.一种在面向服务的体系结构中调用服务的装置,其中客户使用所选择的传输绑定调用来自服务提供者的服务,包括:
用于在协商过程中使用第一传输绑定协商用于来自所述服务提供者的服务调用的服务绑定的装置;以及
用于使用在所述协商过程中所协商的服务绑定处理所述服务调用的装置。
11.权利要求10的装置,其中所述客户位于通信路径的客户端,所述协商装置以及所述处理装置位于所述通信路径的所述客户端。
12.权利要求10的装置,其中所述服务提供者位于通信路径的服务器端,所述协商装置以及所述处理装置位于所述通信路径的所述服务器端。
13.权利要求10的装置,其中所述客户位于通信路径的客户端,并且所述服务提供者位于所述通信路径的服务器端,所述服务绑定在所述通信路径的所述客户端及所述服务器端之间直接协商。
14.权利要求10的装置,其中所述客户位于通信路径的客户端,并且所述服务提供者位于所述通信路径的服务器端,所述协商装置及所述处理装置位于所述通信路径的所述客户端及所述服务器端。
15.权利要求10的装置,其中所述服务调用经由在作为端节点的所述客户及所述服务器之间的一条通信路径的一个或多个中介节点,所述协商装置及所述处理装置与所述客户端及服务器端之间所述通信路径上的所述中介节点之一相关联。
16.权利要求10的装置,其中服务调用经由在作为端节点的所述客户及所述服务器之间的一条通信路径的一个或多个中介节点,在所述客户及服务器之间的每一对相邻节点之间,所述服务调用可能使用不同的传输绑定,所述装置包含:
在沿所述客户及服务器之间的所述通信路径的每一对相邻节点处,用于在所述节点之间的协商过程中,为所述服务调用经过所述节点的部分协商服务绑定的装置;以及
在每对相邻节点处,用于使用在所述节点之间的所述协商过程中所协商的服务绑定处理所述服务调用经过所述节点之间的部分的装置。
17.权利要求16的装置,其中根据在所述通信路径的客户端中的可用诊断信息选择所述服务绑定。
18.一种机器可读的程序存储装置,有形地体现一个可由该机器执行以完成在一个面向服务的体系结构中调用服务的方法步骤的指令程序,在该面向服务的体系结构中客户可以使用所选择的传输绑定调用来自服务提供者的所述服务,所述方法步骤包含:
在协商过程中使用第一传输绑定协商用于来自所述服务提供者的服务调用的服务绑定;以及
使用在所述协商过程中所协商的服务绑定处理所述服务调用。
19.权利要求18的程序存储装置,其中所述客户位于通信路径的客户端,所述服务位于所述通信路径的服务器端,所述协商步骤包含以下步骤:
确定所述服务器端是否能够协商服务绑定;
如果确定所述服务器端能够协商服务绑定,则与所述服务器端协商服务绑定;
否则,根据所述通信路径的客户端中的可用信息选择服务绑定而不与所述服务端协商。
20.权利要求19的程序存储装置,其中根据所述通信路径的客户端中的可用诊断信息来选择所述服务绑定。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/684,869 | 2003-10-14 | ||
US10/684,869 US7529824B2 (en) | 2003-10-14 | 2003-10-14 | Method for selecting a service binding protocol in a service-oriented architecture |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1607791A true CN1607791A (zh) | 2005-04-20 |
CN100531190C CN100531190C (zh) | 2009-08-19 |
Family
ID=34423038
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200410070265.5A Expired - Fee Related CN100531190C (zh) | 2003-10-14 | 2004-07-30 | 在面向服务的体系结构中选择服务绑定协议的方法和装置 |
Country Status (2)
Country | Link |
---|---|
US (1) | US7529824B2 (zh) |
CN (1) | CN100531190C (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102027465A (zh) * | 2008-07-15 | 2011-04-20 | 惠普发展公司,有限责任合伙企业 | 面向服务的体系结构(soa)软件工厂的体系结构 |
TWI552547B (zh) * | 2014-07-22 | 2016-10-01 | 廣達電腦股份有限公司 | 資料傳輸服務切換系統和方法 |
CN107111536A (zh) * | 2014-10-30 | 2017-08-29 | 标致·雪铁龙汽车公司 | 诊断辅助方法、设备和系统 |
CN109660606A (zh) * | 2018-12-05 | 2019-04-19 | 新华三大数据技术有限公司 | 网络消息代理方法、装置及系统 |
Families Citing this family (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110128972A1 (en) * | 2000-04-17 | 2011-06-02 | Randy Thornton | Peer to peer dynamic network link acceleration |
US8898340B2 (en) | 2000-04-17 | 2014-11-25 | Circadence Corporation | Dynamic network link acceleration for network including wireless communication devices |
US8996705B2 (en) | 2000-04-17 | 2015-03-31 | Circadence Corporation | Optimization of enhanced network links |
US7127518B2 (en) | 2000-04-17 | 2006-10-24 | Circadence Corporation | System and method for implementing application functionality within a network infrastructure |
US8195823B2 (en) | 2000-04-17 | 2012-06-05 | Circadence Corporation | Dynamic network link acceleration |
US7454496B2 (en) * | 2003-12-10 | 2008-11-18 | International Business Machines Corporation | Method for monitoring data resources of a data processing network |
JP4681968B2 (ja) * | 2004-08-06 | 2011-05-11 | 株式会社リコー | サービス要求装置、サービス要求方法、サービス要求プログラム、及び記録媒体 |
US20060085517A1 (en) * | 2004-10-04 | 2006-04-20 | Markku Kaurila | Download user agent plug-in for facilitating over-the-air downloading of media objects |
US8233411B2 (en) * | 2004-11-12 | 2012-07-31 | Alcatel Lucent | Enhanced system for controlling service interaction and for providing blending of services |
US7827197B2 (en) * | 2004-12-02 | 2010-11-02 | International Business Machines Corporation | Method for providing a pluggable custom data binding system |
US7483438B2 (en) * | 2005-04-14 | 2009-01-27 | Alcatel Lucent | Systems and methods for managing network services between private networks |
US20070078927A1 (en) * | 2005-09-12 | 2007-04-05 | Microsoft Corporation | Server-side service framework |
US8375122B2 (en) * | 2005-12-15 | 2013-02-12 | International Business Machines Corporation | Web service information management in service-oriented architecture applications |
US20080077652A1 (en) * | 2006-09-06 | 2008-03-27 | Credit Suisse Securities (Usa) Llc One Madison Avenue | Method and system for providing an enhanced service-oriented architecture |
US20080086515A1 (en) * | 2006-10-06 | 2008-04-10 | International Business Machines Corporation | Method and System for a Soft Error Collection of Trace Files |
US20080263194A1 (en) * | 2007-04-17 | 2008-10-23 | International Business Machines Corporation | Method and system for optimal binding selection for service oriented architectures |
US8140615B2 (en) | 2008-05-07 | 2012-03-20 | International Business Machines Corporation | Consolidated business service for integrating service oriented architecture services with customer resources |
US7921195B2 (en) * | 2008-06-09 | 2011-04-05 | International Business Machines Corporation | Optimizing service processing based on business information, operational intelligence, and self-learning |
US8135785B2 (en) * | 2008-09-30 | 2012-03-13 | Ebay Inc. | System and method for processing messages using pluggable protocol processors in a service-oriented pipeline architecture |
US8806506B2 (en) * | 2008-09-30 | 2014-08-12 | Ebay Inc. | System and method for processing messages using a common interface platform supporting multiple pluggable data formats in a service-oriented pipeline architecture |
US8763008B2 (en) | 2008-09-30 | 2014-06-24 | Ebay Inc. | System and method for processing messages using native data serialization/deserialization in a service-oriented pipeline architecture |
US8341280B2 (en) * | 2008-12-30 | 2012-12-25 | Ebay Inc. | Request and response decoupling via pluggable transports in a service oriented pipeline architecture for a request response message exchange pattern |
US8266551B2 (en) * | 2010-06-10 | 2012-09-11 | Nokia Corporation | Method and apparatus for binding user interface elements and granular reflective processing |
CN101977178A (zh) * | 2010-08-09 | 2011-02-16 | 中兴通讯股份有限公司 | 基于中继的媒体通道建立方法及系统 |
US8996729B2 (en) | 2012-04-12 | 2015-03-31 | Nokia Corporation | Method and apparatus for synchronizing tasks performed by multiple devices |
US9479568B2 (en) | 2011-12-28 | 2016-10-25 | Nokia Technologies Oy | Application switcher |
US10031780B2 (en) * | 2014-11-25 | 2018-07-24 | International Business Machines Corporation | Component services integration with dynamic constraint provisioning |
Family Cites Families (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6401099B1 (en) * | 1996-12-06 | 2002-06-04 | Microsoft Corporation | Asynchronous binding of named objects |
US6658469B1 (en) * | 1998-12-18 | 2003-12-02 | Microsoft Corporation | Method and system for switching between network transport providers |
US20020046157A1 (en) * | 1999-11-01 | 2002-04-18 | Neal Solomon | System, method and apparatus for demand-initiated intelligent negotiation agents in a distributed network |
US7496637B2 (en) * | 2000-05-31 | 2009-02-24 | Oracle International Corp. | Web service syndication system |
US7546376B2 (en) * | 2000-11-06 | 2009-06-09 | Telefonaktiebolaget Lm Ericsson (Publ) | Media binding to coordinate quality of service requirements for media flows in a multimedia session with IP bearer resources |
US7333940B2 (en) * | 2000-12-21 | 2008-02-19 | Ereinsure.Com, Inc. | Method and computer-readable medium for negotiating reinsurance for a risk |
US20020087881A1 (en) * | 2000-12-29 | 2002-07-04 | Shlomi Harif | System, method and program for identifying and binding a process in a heterogeneous network |
US7133842B2 (en) * | 2000-12-29 | 2006-11-07 | International Business Machines Corporation | System, method and program for bidding for best solution process execution in a heterogeneous network |
WO2002057917A2 (en) * | 2001-01-22 | 2002-07-25 | Sun Microsystems, Inc. | Peer-to-peer network computing platform |
US20020128837A1 (en) * | 2001-03-12 | 2002-09-12 | Philippe Morin | Voice binding for user interface navigation system |
EP1250021A1 (en) * | 2001-04-09 | 2002-10-16 | Lucent Technologies Inc. | Providing quality of service in telecommunications systems such as UMTS or other third generation systems |
TWI220821B (en) * | 2001-04-26 | 2004-09-01 | Accton Technology Corp | Zero-loss web service system and method |
US20020178254A1 (en) * | 2001-05-23 | 2002-11-28 | International Business Machines Corporation | Dynamic deployment of services in a computing network |
US8924408B2 (en) * | 2001-09-28 | 2014-12-30 | International Business Machines Corporation | Automatic generation of database invocation mechanism for external web services |
US7475145B2 (en) * | 2002-04-26 | 2009-01-06 | International Business Machines Corporation | Dynamic invocation of web services |
US20040003033A1 (en) * | 2002-06-27 | 2004-01-01 | Yury Kamen | Method and system for generating a web service interface |
WO2004029854A2 (en) * | 2002-09-27 | 2004-04-08 | Nokia Corporation | Enhanced qos control |
CN1169332C (zh) | 2002-09-29 | 2004-09-29 | 清华大学 | 一种基于客户端反馈的传输协议选择方法 |
US7467206B2 (en) * | 2002-12-23 | 2008-12-16 | Microsoft Corporation | Reputation system for web services |
US7212809B2 (en) * | 2003-02-06 | 2007-05-01 | Motorola, Inc. | Method and apparatus for service negotiation acceleration |
-
2003
- 2003-10-14 US US10/684,869 patent/US7529824B2/en not_active Expired - Fee Related
-
2004
- 2004-07-30 CN CN200410070265.5A patent/CN100531190C/zh not_active Expired - Fee Related
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102027465A (zh) * | 2008-07-15 | 2011-04-20 | 惠普发展公司,有限责任合伙企业 | 面向服务的体系结构(soa)软件工厂的体系结构 |
CN102027465B (zh) * | 2008-07-15 | 2014-07-23 | 惠普发展公司,有限责任合伙企业 | 面向服务的体系结构(soa)软件工厂的体系结构 |
TWI552547B (zh) * | 2014-07-22 | 2016-10-01 | 廣達電腦股份有限公司 | 資料傳輸服務切換系統和方法 |
CN107111536A (zh) * | 2014-10-30 | 2017-08-29 | 标致·雪铁龙汽车公司 | 诊断辅助方法、设备和系统 |
CN109660606A (zh) * | 2018-12-05 | 2019-04-19 | 新华三大数据技术有限公司 | 网络消息代理方法、装置及系统 |
Also Published As
Publication number | Publication date |
---|---|
US20050080873A1 (en) | 2005-04-14 |
US7529824B2 (en) | 2009-05-05 |
CN100531190C (zh) | 2009-08-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1607791A (zh) | 在面向服务的体系结构中选择服务绑定协议的方法和装置 | |
US7328282B2 (en) | Aspect oriented web service invocation | |
Krishnan et al. | GSFL: A workflow framework for grid services | |
JP4681968B2 (ja) | サービス要求装置、サービス要求方法、サービス要求プログラム、及び記録媒体 | |
Nguyen et al. | Ws2jade: Integrating web service with jade agents | |
US7904111B2 (en) | Mobile exchange infrastructure | |
CA2559041A1 (en) | System and method for pervasive enablement of business processes | |
WO2003107203A2 (en) | A computing services grid | |
JP2007514223A (ja) | クライアント要求をウェブ・サービスにリダイレクトする方法 | |
US7881336B2 (en) | HTB gateway for healthcare transaction base | |
CN1492637A (zh) | 元服务选择器、元服务选择器协议、网络接入服务器和系统 | |
Khalaf et al. | On web services aggregation | |
US8930935B2 (en) | Composite service refactoring | |
Zeeb et al. | WS4D: SOA-Toolkits making embedded systems ready for Web Services | |
EP1895453A1 (en) | Method and apparatus for performing a business process of a service provider | |
JP2005322222A (ja) | 通信機能付加方法、プログラム、記録媒体及び通信装置 | |
Georgantas et al. | Middleware architecture for ambient intelligence in the networked home | |
Baousis et al. | Wireless web services using mobile agents and ontologies | |
US8843611B2 (en) | Method for transmitting WS message to multiple receiving nodes and apparatus for processing WS message | |
EP1895454A1 (en) | Business process and system with integrated network quality of service management | |
Landis et al. | Reaching out to the cell phone with Jini | |
Truong et al. | Vimoware-a toolkit for mobile web services and collaborative computing | |
Kowalewski et al. | An event-based approach to reducing coupling in large-scale applications | |
Lu et al. | MCSAMS: A novel WSRF and multi-agent based distributed multimedia content service alliance and management scheme | |
Curbera | Web Services Overview |
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 | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20090819 |
|
CF01 | Termination of patent right due to non-payment of annual fee |