用于处理对Web服务的请求的方法和系统的制作方法

文档序号:7597705阅读:120来源:国知局
专利名称:用于处理对Web服务的请求的方法和系统的制作方法
技术领域
本发明涉及Web服务领域,更具体地说,涉及使用基于模式的方案调用Web服务。
背景技术
Web服务,也称作应用服务,是可从Web服务器得到的为Web用户或与Web连接的其他应用提供的服务。Web服务的提供商通常称作应用服务提供商。Web服务的范围可从如存储器管理和客户关系管理的主要服务到更有局限性的服务,如提供股票报价或检查对拍卖物品的出价。Web服务的其他实例可包括但不限于响应所提供的名字而提供电话号码的服务和对所提供的名字返回一个或多个电子邮件地址的服务。
Web服务通常是基于请求响应并遵循客户机/服务器模型的。就是说,来自客户机的请求被发送到服务器以求得到满足。通常,该请求被提供给服务器并且根据远程过程调用(PRC)协议被格式化。一般来说,RPC使一个应用(即客户机)能向另一应用(即服务器)请求服务。RPC允许在网络中的一个计算机系统上运行的客户机向在网络中的一个不同的计算机系统上运行的服务器发出请求。当使用RPC时,客户机应用不需要理解该网络的操作细节就可以对服务器应用做出请求。
该请求能使用简单对象访问协议(SOAP)发出。换言之,一个含有RPC信息的SOAP消息被发送到服务器。然后,该服务器能处理所收到的请求并向该客户机提供响应。SOAP是一个协议,通过使用超文本传输协议(HTTP)和可扩展标记语言(XML)作为信息交换机制,SOAP使在一种操作系统中运行的程序能与在同样的或另一种操作系统中的程序通信,而且也能与同样的或另一种计算机系统通信。SOAP说明如何编码HTTP标头和XML文件,从而使一个计算机中的程序能调用另一个计算机中的程序以及传送信息。
当前,Web服务范型说明一个过程,在该过程中一个请求附属于一单个Web服务。更具体地说,每个请求启动单个Web服务,因而被引导到一个特定的服务提供商。这样,为执行涉及不只一个Web服务的更复杂动作,客户机必须发出一系列请求,其中的每个请求被发送到不同的Web服务。就是说,一个动作的每个组成任务必须作为一个请求提交到一个适当的Web服务。
如果构成该动作的这些任务在性质上是层次化的,以致一个Web服务需要来自另一个Web服务的信息以发挥作用,这些请求必须以正确的顺序发送给每个Web服务。在这类情况中,该客户机必须接收来自一个给定Web服务的响应,以便使提取出的信息能被用于构建一个要提交给该Web服务层次结构中的下一个Web服务的请求,而那些Web服务构成了要执行的动作。

发明内容
本发明提供一种用于处理对Web服务的复杂请求的方法、系统和装置。根据本发明,监视器(Watcher)分析所接收的模式对象以确定是否调用与每个监视器关联的Web服务。代替让每个监视器在每次接收到模式对象时都执行,本发明能包括一个高速缓存,用于存储先前接收的模式对象和一个监视器列表,其中该列表中的监视器曾响应检测到各个模式对象而调用过Web服务。通过首先查看该高速缓存和调用与所接收的模式对象对应的任何监视器,能显著减少必须分析所接收的模式对象的监视器数量。就是说,在一个命中事件中,系统内的每个监视器不需分析该模式对象。代之以能执行由高速缓存说明的有限数量监视器的列表。
本发明的一个方面能包括一种处理针对一个或多个Web服务的请求的方法。该方法能包括在高速缓存中存储取自对Web服务的一个请求的至少一个模式对象以及为响应检测到该模式对象而调用Web服务的那些监视器的列表;接收对Web服务的新的请求,该请求说明一个新的模式对象;以及确定这新的模式对象是否匹配于上述已高速缓存的模式对象。如果这新的模式对象的确匹配于上述已高速缓存的模式对象,则监视器列表中的每个监视器能调用所关联的Web服务。如果不匹配,则系统中的每个监视器能分析这新的模式对象,从而使确定这新的模式对象匹配于一个已提供的规则的任何监视器调用所关联的Web服务。
根据本发明的另一个实施例,该方法能包括在该高速缓存中存储这新的模式对象和为响应检测到这新模式对象而调用Web服务的监视器的列表。该方法能进一步包括在确定步骤之前从该请求中提取这新的模式对象并将这新的模式对象存储在公用存储器中。每个监视器能与一个Web服务相关联并能说明用于调用所关联的Web服务的规则。每个模式对象能说明多于一个要执行的Web服务。每个监视器能并行分析该模式对象,使得多于一个Web服务能被并发调用。再有,两个或更多个监视器也能顺序地调用所关联的一个Web服务。
本发明的另一方面能包括一种处理针对两个或更多Web服务的请求的方法,包括接收一个说明至少两个Web服务的请求,将取自该请求中的模式对象存储在公用存储器中,以及利用多个监视器扫描该公用存储器,其中每个监视器与一个Web服务相关联并说明用于调用所关联的一个Web服务的规则。该方法还能包括确定该模式对象匹配于至少两个监视器的一个规则,使得具有匹配该模式对象的规则的每个监视器调用所关联的一个Web服务。调用关联的Web服务的各监视器的列表和该模式对象能存储在高速缓存中,使得该监视器列表与该模式对象相关联。
该方法进一步能包括接收一个新请求,其中包括的一个新模式对象说明多于一个要执行的Web服务,以及确定这新模式对象是否匹配于已被高速缓存的模式对象。如果确定了一个匹配,则监视器列表中的每个监视器能调用一个关联的Web服务。如果未发现匹配,则整个系统中的每个监视器能分析这新模式对象,使得确定这新模式对象匹配于一个所提供的规则的任何监视器调用所关联的Web服务。
本发明的另一方面能包括一种用于处理针对Web服务的复杂请求的系统。该系统能包括一超文本传输协议服务器,被配置成接收对多于一个Web服务的单一请求;至少一个小服务程序,被配置成从该请求中提取一个模式对象并格式化一个对该请求的响应;一公用存储器,当在该模式对象说明的Web服务执行时,该公用存储器暂时存储该模式对象;以及一个或多个监视器。每个监视器与一个特定的Web服务相关联并包括一用于调用所关联的Web服务的规则。每个监视器还能被配置成并行扫描上述公用存储器,以确定一个已存储的模式对象是否匹配用于调用所关联的一个Web服务的规则。该系统还能包括一个终止监视器,被配置成检测终止判据。在检测到终止判据时,该终止监视器能将该模式对象返回给一个小服务程序以产生一个响应。该系统进一步能包括一个高速缓存,用于存储取自请求的模式对象以及监视器列表,其中该列表中的这些监视器曾调用Web服务以响应检测到取自以前的请求的那些模式对象。
根据本发明的另一个实施例,该系统能包括一个高速缓存逻辑,用于将取自所收到的请求的模式对象与已高速缓存的模式对象进行比较。该高速缓存逻辑能被配置成使一个与已高速缓存的模式对象关联的监视器列表中的每个监视器调用所关联的Web服务,其中该已高速缓存的模式对象匹配于取自一个所接收请求的模式对象。如果未确定在取自一个所接收请求的模式对象和已高速缓存的模式对象之间存在匹配,则该高速缓存逻辑能被配置成使系统中的每个监视器分析取自所接收请求的模式对象,使得确定取自所接收请求的模式对象匹配于一个已提供的规则的任何监视器调用一个所关联的Web服务。
上述这些监视器能并行扫描公用存储器,使得多于一个Web服务能并发执行。而且,这些监视器还能顺序调用多于一个Web服务。这些监视器还能被配置成根据所关联的一个Web服务提供的指令来修改模式对象。


附图中显示当前优选的实施例,然而,应该理解,本发明不限于所示确切的结构安排和手段。
图1是示意图,显示根据这里公开的本发明结构安排的一个方面,用于调用基于模式的Web服务的系统;图2是示意图,显示根据这里公开的本发明结构安排,用于调用基于模式的Web服务的系统的另一方面;图3是示意图,显示根据这里公开的本发明结构安排的一个实施例,用于图1所示系统的高速缓存;图4是流程图,显示根据本发明的另一方面,处理对Web服务的复杂请求的方法;以及图5是流程图,显示根据这里公开的本发明结构安排的另一实施例的处理复杂请求的方法。
具体实施例方式
图1是示意图,显示根据这里公开的本发明结构安排的一个方面,用于调用基于模式的Web服务的系统100。如图所示,系统100能包括核心服务器105和若干Web服务110、115和120。
核心服务器105能作为一个计算机系统或其他信息处理系统来实现,包括但不限于通用计算机系统和/或服务器计算机系统。核心服务器105能包括超文本传输协议(HTTP)服务器应用125(下文称HTTP服务器)、一个或多个小服务程序的集合130、公用存储器空间135以及一个或多个监视器140、145和150。还能包括终止监视器155、高速缓存170和高速缓存逻辑165。
HTTP服务器125能接收请求160并发出对所接收的请求的响应。例如,HTTP服务器125能接收根据简单对象访问协议(SOAP)格式化的请求并对这样的请求进行解码。再有,响应也能被格式化为SOAP响应。小服务程序130能被配置成从所接收的请求中提取模式对象。该模式对象能说明名称、字符串、数字序列、规则、另一个对象或能由一个对象持有的任何其他结构。小服务程序130能从所接收的请求中提取模式对象并把这些模式对象放入工作区135。小服务程序130进一步能提供终止监视器155以监视模式对象。当由各种Web服务110-120完成对该模式对象的处理时,小服务程序130接收该模式对象,不论该模式对象被修改过还是处于与最初从请求160中提取出来时同样的条件,并构成要发送给请求者的响应。
工作区135是一个公用存储器空间或存储器的一部分,它能用于存储从所接收的请求160中提取的模式对象。该工作区可由监视器140、145和150中的每一个、终止监视器155以及小服务程序130访问。监视器140、145和150是能监视或扫描工作区135的软件对象。如图所示,每个监视器与一个特定的Web服务关联。每个监视器进一步能包括一个或多个规则,用于确定何时调用它所关联的Web服务。监视器140-150监视放在工作区135中的模式对象。如果一个模式对象与在监视器140-150之一中说明的规则匹配,那个监视器便调用它所关联的Web服务。尽管已描绘了三个监视器和相应的Web服务,但应该理解,核心服务器105能包括更多或更少的监视器,这取决于已向核心服务器105注册的Web服务的数量。
终止监视器155与其他监视器140-150一样,监视工作区135以找出遵循或匹配终止监视器155内的一个或多个规则的模式对象。终止监视器155是当模式对象被提取出来并放入工作区135中时由小服务程序130之一提供的。当由终止监视器155检测到符合一个或多个规则的模式对象时,终止监视器155从工作区135中移除该模式对象并将该模式对象回送到最初从所接收的请求中提取出该模式对象的那个小服务程序130。
终止监视器155能监视以找出与其中存储的规则匹配的具有特定格式的模式对象,与此同时,终止监视器155还能在检测到故障(不论是超时情况还是另一种故障)之后,通过从工作区移除该模式对象来终止一个或多个Web服务的操作。例如其中该模式对象已在工作区135内达至少是预定的时间量,但并不符合终止监视器155内的某一规则的超时情况,能指出一个或多个Web服务尚未正确执行或者已经发生了某种其他故障。
高速缓存170能是一个数据存储区,如随机存取存储器(RAM)的一部分或盘存储器等。高速缓存170能实现为一个物理上分离的数据存储区。替代地,高速缓存170能是核心服务器105中已经存在的同一物理设备,但在逻辑上分离。
高速缓存逻辑165能控制高速缓存170中的条目何时被写入、移除或覆盖。此外,高速缓存逻辑165能监视工作区135以确定何时添加了一个模式对象作为请求160被接收和处理的结果。高速缓存逻辑165能检测哪些监视器140-150调用了所关联的Web服务110-120以处理该模式对象。于是,高速缓存逻辑165能在高速缓存中存储该模式对象的副本以及为响应检测到该模式对象而调用Web服务的每个监视器140-150的列表。应该理解,系统100能包括显著多于图中所示的监视器和服务。这样,存储在高速缓存170中的监视器列表能是系统中全部监视器的一个有限集合。这样,高速缓存逻辑165能对任何数量的所接收的请求,保持所接收的模式对象和为响应检测到每个模式对象而调用过Web服务的那些监视器的记录。
每个Web服务110-120能完成一个特定的任务,如定位一个统一资源定位器(URL)以确定电话号码、当提供名字时确定电子邮件地址、或当提供名字或电子邮件地址时确定电话号码。本领域技术人员将会理解,Web服务能完成各种不同处理任务中的任何一个。这样,应该理解,这里公开的Web服务举例不是要限制能由Web服务实现的功能或任务的范围。
在操作时,HTTP服务器125能接收请求160。HTTP服务器125能把接收的请求160路由到一个可用小服务程序130供进一步处理。例如,请求160能指定一个特定小服务程序130,如根据对应于所请求Web服务的Web服务描述语言(WSDL)文件所确定的。接收该请求的小服务程序130能从请求160中提取或分析出模式对象。然后,小服务程序130能将该模式对象存储在公用存储器135内。
每个监视器140-150能持续监视工作区135以发现模式对象。当检测到模式对象时,监视器140-150检验这个(些)模式对象以确定该模式对象是否对应于监视器140-150中含有的一个或多个规则。如果一个监视器确定该模式对象匹配于其规则中的一个,则那个监视器能调用已与那个监视器关联的Web服务。
监视器140-150能以顺序方式调用Web服务,与此同时,在本发明的另一实施例中,监视器140-150能以并行方式监视工作区135内的模式对象,并彼此并发地运行。因此,Web服务110-120还能以并行方式被调用。Web服务110-120能持续操作直至终止监视器155检测到终止判据为止。例如,检测到终止判据能包括但不限于确定终止监视器155内含有的一个或多个规则匹配于该模式对象或检测到一个故障,如超时。在此时,终止监视器155将该模式对象回送给从请求160中提取出该模式对象的小服务程序130。然后小服务程序130构造一个响应,它经由HTTP服务器125发送给请求者。
还能由高速缓存逻辑165将已放在公用存储器中的模式对象的一个副本放入高速缓存170。高速缓存逻辑165进一步能包括一个列表,该列表说明为响应检测到现已高速缓存的模式对象而调用过Web服务的每个监视器140-150。例如,在一个实施例中,能由高速缓存逻辑165将对具有匹配于已高速缓存的模式对象的规则的每个监视器的引用(reference)放入高速缓存170。存储在高速缓存中的每个监视器列表关联于一个已存储的模式对象,该模式对象曾使该列表中的每个监视器调用它所关联的Web服务。
因此,当已从随后的请求中提取出模式对象时,高速缓存逻辑165能将提取出的模式对象与高速缓存170中存储的模式对象进行比较。如果确定了一个匹配,则在高速缓存的列表中的与所匹配的、已高速缓存的模对象关联的每个监视器能被调用,从而引发与已高速缓存的列表中的监视器关联的每个Web服务的调用。如果在高速缓存170中没有发现匹配,则全部监视器140-150能开始执行对工作区135中模式对象的扫描,如先前讨论的那样。
图2是示意图,显示根据这里公开的本发明结构安排,用于调用基于模式的Web服务的系统200的另一方面。如图中所示,系统200例示监视器210、215和220、终止监视器240、Web服务225、230和235以及模式对象205之间的交互作用。
如曾参考图1描述过的模式对象205由小服务程序从所接收的请求中提取出来并存储在工作区中。该模式对象说明为执行一个更复杂的动作所必须完成的一个或多个任务。在这种情况中,作为举例,模式对象205附属于电话服务。该模式对象指定一个“拨打电话”动作并提供一个名字“TomHerry”。然而,在模式对象205中没有说明服务提供商和电话号码。因此,为执行拨打电话的动作,必须执行一个或多个附加任务,每个任务由一个特定的Web服务完成。
在这个例子中,Web服务225能返回另一个Web服务的URL,该另一个Web服务能拨打电话号码。如果提供了一个名字的话,Web服务230能返回一个电话号码。Web服务235能拨打电话号码。由于每个Web服务225-235被向核心服务器进行了注册,故对每个Web服务指派一个监视器。一旦进行了注册,每个Web服务在与该Web服务关联的监视器内提供规则。
例如,Web服务225当向核心服务器进行注册时能在所指派的监视器210中提供一个规则,它规定如果一个模式对象有一个空的服务提供商属性,则监视器210将调用Web服务225。如图所示,Web服务225确定用于模式对象205的服务提供商属性的URL,并将该URL提供给监视器210。然后,当模式对象205在工作区中时,监视器210能通过把该URL写入模式对象205,来修改模式对象205,以便使该服务提供商属性指定由Web服务225所确定的该URL。
当Web服务230向核心服务器进行注册时,能指派监视器215。Web服务230能在监视器215内提供一个规则,其规定如果模式对象205的电话号码属性为空而名字可以得到,则Web服务230将被调用。于是,如图所示,监视器215调用Web服务230。监视器215能向Web服务230提供一个名字,以便能检索到一个电话号码。Web服务230向监视器215提供该电话号码,监视器215把该电话号码写入模式对象205,以便使电话号码属性指定由Web服务230提供的该电话号码。
当Web服务235向核心服务器进行注册时,监视器220能与Web服务235关联。在那时,Web服务235能在监视器220中提供一个规则,该规则规定直到模式对象205的全部属性都已完全时才执行动作。在那时,监视器220能调用Web服务235。于是,监视器220能向Web服务235提供电话号码以及可能需要的任何其他属性,以便使Web服务235能拨打所提供的号码。
从这个例子中应该理解,在监视器210-220中提供的规则能被并发应用。这样,每个监视器能监视工作区以找出与每个监视器的规则匹配的一个或多个模式对象。每个检测到匹配的监视器能调用所关联的Web服务。例如,Web服务225和Web服务230能并发执行。在拨打电话号码之后,监视器220能结束,或者在终止执行之前通过添加标识符或某种其他引用来修改模式对象205。终止监视器240监视模式对象205以确定何时模式对象205符合这里存储的所提供的规则,终止监视器也能确定模式对象205现在符合这样的规则。因此,终止监视器240能从工作区移除模式对象205并向小服务程序130回送模式对象205。
在本发明的一个实施例中,终止监视器240还能以关于该Web服务是否已正确地执行还是已发生了故障这样的指示来修改模式对象205。在另一实施例中,终止监视器240能简单地向小服务程序回送模式对象205并提供一个单独的通告,说明这些Web服务是否已正确完成还是发生了故障。
图3是示意图,显示根据这里公开的本发明结构安排的一个实施例,用于图1所示系统的高速缓存300。如前所述,高速缓存300能包括从所接收的请求中提取出的模式对象或模式对象的副本。每个高速缓存的模式对象能与一些监视器关联,这些监视器为响应在公用存储器中检测到模式对象而调用过Web服务。
在图示中,模式对象1是从所接收的请求中提取出的并存储在高速缓存300中的一个模式对象的副本。如图所示,每一个对监视器1、监视器2和监视器3的引用都已与模式对象1关联,因为监视器1、监视器2和监视器3每个曾调用所关联的Web服务,以响应确定模式对象1在被放入工作区中时匹配于每个监视器内说明的所提供的规则。
类似地,对监视器4、监视器5和监视器6的引用已存储在高速缓存300中。每个引用已与高速缓存的模式对象2的副本关联,表明监视器4、监视器5和监视器6每个调用过所关联的Web服务以响应在工作区中检测到模式对象2。
应该理解,高速缓存300只是为了说明的目的而显示的。这样,这里讨论的示例不是要作为对本发明的限制。相反,能使用任何适当的高速缓存技术来实现高速缓存300。例如,高速缓存300中的条目能以各种不同安排中的任何一种来存储,不论是作为一系列单独条目,如监视器列表,还是对监视器的相关引用的组合等。
再有,高速缓存300能作为各种不同类型高速缓存中的任何一种来实现。例如,高速缓存300能实现为一个循环高速缓存,当其中再没有其他空间可用时其中的条目会被覆盖。在另一个实施例中,高速缓存300能对于预定数量的所接收模式对象或请求,存储模式对象的副本和监视器列表或对监视器的相关引用的列表。在已接收了预定数量的请求之后,过时的高速缓存条目可被移除。在又一个实施例中,在高速缓存中的条目能在预定时间量之后被清除掉,不管该条目是否已被访问过。
图4是流程图,显示根据本发明的另一方面用于处理对Web服务的复杂请求的方法400。该方法能在一个或多个Web服务已向核心服务器进行了注册的状态下开始。于是,每个Web服务能与一个监视器关联。就是说,已向核心服务器进行注册的每个Web服务能有一个监视器实例。每个Web服务能进一步在每个与之关联的监视器内、按照在每个Web服务中说明的那样提供一个或多个规则。
在步骤405,一个请求,如SOAP请求能由布置在核心服务器内的HTTP服务器接收。在步骤410,该HTTP服务器能选择一个可用的小服务程序,并把该请求转发给选定的小服务程序。在步骤415,该小服务程序能接收和处理该请求。更具体地说,该小服务程序能从所接收的请求中提取出一个模式对象并把该模式对象存储在工作区中。如前所述,该模式对象能说明一个或多个要被调用的服务,从而能通过单个请求启动不只一个Web服务。
在步骤420,该小服务程序能在终止监视器内提供一个或多个规则。应该理解,该请求或该模式对象本身能针对该终止监视器,说明要提供和应用的终止规则。因此,如果这样配置的话,每个请求能提供一个或多个不同的终止规则,这些规则说明不同的条件,用于检测由模式对象说明的Web服务组合的执行完成以及不同的故障,这些条件也能随着模式对象说明的Web服务组合的改变而改变。
在步骤425,一旦已提供了终止监视器并把模式对象放在了工作区中,监视器便能开始分析该模式对象。如前所述,这些监视器能并行监视模式对象,并且当该模式对象被确定为匹配于一个或多个监视器中的规则时正确地调用Web服务。因此,Web服务能顺序地、并发地或既顺序又并发地操作,依监视器调用它们的情况而定。监视器还能根据与每个监视器关联的Web服务来修改模式对象。
这样,例如,在第一个监视器为响应与该第一个监视器所关联的Web服务的执行而修改模式对象之后,第二个监视器能确定该模式对象匹配于其中存储的规则。应该理解,由于每个监视器能并发地监视模式对象并修改模式对象,所以当模式对象持续被这些监视器修改时,Web服务链能被调用以并发地、顺序地或既并发又顺序地操作。在步骤430,高速缓存逻辑能向高速缓存添加该模式对象的副本以及所关联的监视器列表,这些监视器为响应在工作区中检测到模式对象曾调用过Web服务。
在步骤435,终止监视器能检测一个终止判据。更具体地说,终止监视器能确定该模式对象匹配于一个终止规则或确定已发生了故障。不论在哪种情况中,终止监视器能从工作中移除该模式对象,不论该模式对象已被修改还是处于与最初被放在工作区时同样的条件。在步骤440,终止监视器能向提取该模式对象的同一个小服务程序提供该模式对象。如前所述,终止监视器能通过指出Web服务已成功执行或发生了故障来向小服务程序通知Web服务的执行状态。这一信息能包括在给小服务程序的消息内或者能包括在模式对象本身内。
在步骤445,小服务程序能构建要发送给请求者的响应。该响应能包括该模式对象,不论是以其最初的形式还是修改后的形式。该响应还能说明是否Web服务已成功执行还是发生了故障,例如,是否发生了超时或其他执行错误。这一信息能被包括在该响应内,其作法是或者把该信息包括在该响应本身的某部分中或者把该信息包括在该模式对象中,如先前讨论的那样。
图5是流程图,显示根据这里公开的本发明结构安排的另一实施例处理复杂请求的方法500。方法500能在一个或多个模式对象的副本及相应的监视器列表已被包括在或被添加到高速缓存的状态下开始。
在步骤505,高速缓存逻辑能开始监视工作区以发现是否添加了新的模式对象,例如该模式对象是响应于由核心服务器接收的一个请求而添加的。在步骤510,如果发现了一个新的模式对象,则该方法能进入步骤515。如果没有,则该方法能循环回到步骤505,继续监视是否向工作区添加了新的模式对象。
在步骤515,高速缓存逻辑能将工作区中的新模式对象与高速缓存中已存储的那些模式对象进行比较以确定是否存在匹配。如果在步骤520发现匹配,则该方法能进入步骤525。如果没有发现匹配,则该方法能继续到步骤530。
继续步骤525,在与来自高速缓存的匹配的模式对象关联的列表中说明的那些监视器能被执行。就是说,能识别出由存储在高速缓存中的列表代表的监视器,该列表与高速缓存的模式对象关联,而该模式对象与工作区中存储的那个新的模式对象匹配。那些监视器能使用高速缓存的引用运行。不是让整个系统中的每个监视器都分析这新的模式对象,而是通过首先检查高速缓存并执行已知与新接收的模式对象关联的监视器来加速核心服务器的操作和对Web服务的调用。在步骤525之后,该方法能按需要重复,以继续监视以发现新的模式对象。
在步骤530,在新的模式对象不与高速缓存中的条目匹配的情况下,系统的每个监视器能开始分析该新的模式对象。每个监视器能开始将新的模式对象与每个监视器内提供的规则进行比较,以调用Web服务,如这里描述的那样。该方法能按需要重复,以处理其他的模式对象和请求。如前所述,该高速缓存能周期性地不时被清除,例如,在预定的时间量之后,或者当没有可用空间时高速缓存能被覆盖。
应该理解,这里描述的方法只是为了说明的目的而提供的。这样,本领域技术人员将会认识到,各个步骤的顺序能被改变而不背离本发明的精神。
本发明提供了用于响应单个复杂请求而实现多个Web服务的解决方案。由于能说明不只一个Web服务,并非系统的每个监视器都处理所接收的模式对象,而是能查询一个高速缓存以首先确定是否能识别出系统中全部监视器的一个较小子集并且该子集是否能用于处理该模式对象。如果检测到一个“命中”,则必须分析该模式对象的监视器的数量与核心服务器中监视器总数相比会显著减少。
本发明能以硬件、软件或硬件和软件的组合实现。本发明能以集中式方式在一个计算机系统中实现,或以分布式方式实现,其中的不同的部件跨若于互连的计算机系统分布。任何种类的计算机系统或适合于实现这里所述方法的其他装置都是适用的。硬件和软件的典型组合能是一台具有计算机程序的通用计算机系统,当该计算机程序被加载和执行时控制该计算机系统使其实现这里描述的方法。
本发明还能被嵌入到一个计算机程序产品中,该计算机程序产品包含使能实现这里所述方法的全部特征,当它被加载到计算机系统中时能实现这些方法。在本发明的上下文中,计算机程序是指欲使具有信息处理能力的系统完成特定功能的一组指令的以任何语言、代码或符号的任何表达,其特定功能的完成或者是直接的或者是在下述二者之一或二者之后进行a)转换成另一种语言、代码或符号;b)以不同的材料形式再现。
本发明能以其他形式体现而不背离其精神或本质属性。因此,应参考下列权利要求而不是前文的说明书,以指出本发明的范围。
权利要求
1.一种处理对多个Web服务的请求的方法,包含如下步骤在高速缓存中存储取自对Web服务的请求的模式对象和为响应检测到该模式对象而调用Web服务的那些监视器的列表;接收对Web服务的新的请求,该请求说明一新的模式对象;确定该新的模式对象是否匹配于所述已高速缓存的模式对象;如果匹配,则使监视器列表中的每个监视器调用所关联的Web服务;以及如果不匹配,则使系统中的每个监视器分析该新的模式对象,从而使确定该新的模式对象匹配于一已提供的规则的任何监视器调用所关联的Web服务。
2.权利要求1的方法,进一步包含在该高速缓存中存储该新的模式对象和为响应检测到该新的模式对象而调用Web服务的那些监视器的列表。
3.权利要求1的方法,进一步包含步骤在所述确定步骤之前从该请求中提取该新的模式对象并将该新的模式对象存储在公用存储器中。
4.权利要求1的方法,其中每个监视器与一Web服务关联并说明用于调用所关联的一个Web服务的规则。
5.权利要求1的方法,其中这些模式对象说明多于一个要执行的Web服务。
6.权利要求1的方法,其中每个监视器并行分析该模式对象,使得多于一个Web服务能被并发调用。
7.权利要求1的方法,其中至少两个监视器顺序调用所关联的一个Web服务。
8.一种处理针对多个Web服务的请求的方法,包含如下步骤接收一个说明至少两个Web服务的请求;将取自该请求的模式对象存储在公用存储器中;利用多个监视器扫描该公用存储器,其中每个监视器与一Web服务关联并说明用于调用所关联的一个Web服务的一规则;确定该模式对象匹配于至少两个监视器的一规则,使得具有匹配该模式对象的规则的每个监视器调用所关联的一个Web服务;以及将调用所关联的一个Web服务的监视器的列表以及该模式对象存储在高速缓存中,其中该监视器列表与该模式对象相关联。
9. 权利要求8的方法,进一步包含接收一新请求,其中包括的一新的模式对象说明多于一个要执行的Web服务;确定该新的模式对象是否匹配于所述已高速缓存的模式对象;如果匹配,则使所述监视器列表中的每个监视器调用所关联的Web服务;以及如果不匹配,则使每个监视器分析该新的模式对象,从而使确定该新的模式对象匹配于一已提供的规则的任何监视器调用所关联的Web服务。
10.权利要求8的方法,进一步包含在该高速缓存中存储该新的模式对象以及为响应检测到该新模式对象而调用Web服务的那些监视器的列表。
11.一种用于处理对Web服务的复杂请求的系统,包含一超文本传输协议服务器,被配置成接收对多于一个Web服务的单个请求;至少一个小服务程序,被配置成从该请求中提取一模式对象并格式化一对该请求的响应;一公用存储器,当在该模式对象所指定的Web服务执行时,该公用存储器暂时存储该模式对象;多个监视器,每个监视器与一特定的Web服务相关联并包括一用于调用所关联的Web服务的规则,其中每个所述监视器并行扫描所述公用存储器以确定一存储的模式对象是否与用于调用所关联的一个Web服务的规则相匹配;一终止监视器,被配置成检测终止判据,其中在检测到该终止判据时,该终止监视器能将该模式对象返回给所述多个小服务程序之一,以产生一响应;以及一高速缓存,用于存储取自请求的模式对象以及监视器列表,其中该列表中的这些监视器响应检测到取自以前的请求的那些模式对象调用过Web服务。
12.权利要求11的系统,进一步包含高速缓存逻辑,用于将取自所收到的请求的模式对象与已高速缓存的模式对象进行比较。
13.权利要求12的系统,其中所述高速缓存逻辑使一个与已高速缓存的模式对象关联的监视器列表中的每个监视器调用所关联的Web服务,其中该已高速缓存的模式对象匹配于取自所接收请求的模式对象,而且,如果确定在取自所接收请求的模式对象和已高速缓存的模式对象之间不存在匹配,则所述高速缓存逻辑使所述系统的每个监视器分析该取自所接收请求的模式对象,使得确定该取自所接收请求的模式对象匹配于一已提供的规则的任何监视器调用一所关联的Web服务。
14.权利要求11的系统,其中所述监视器并行扫描所述公用存储器,使得多于一个Web服务能并发执行。
15.权利要求11的系统,其中所述监视器顺序地调用多于一个Web服务。
16.权利要求11的系统,其中所述监视器进一步被配置成根据所关联的一个Web服务提供的指令来修改模式对象。
17.一种机器可读存储装置,其上存储有计算机程序,该计算机程序有多个可由机器执行以使该机器实现如下步骤的代码部分在高速缓存中存储取自对Web服务的请求的模式对象和为响应检测到该模式对象而调用Web服务的那些监视器的列表;接收对Web服务的新的请求,该请求说明一个新的模式对象;确定该新的模式对象是否匹配于所述已高速缓存的模式对象;如果匹配,则使监视器列表中的每个监视器调用所关联的Web服务;以及如果不匹配,则使系统中的每个监视器分析该新的模式对象,从而使确定该新的模式对象匹配于一已提供的规则的任何监视器调用所关联的Web服务。
18.权利要求17的机器可读存储装置,进一步使该机器完成如下步骤在该高速缓存中存储该新的模式对象和为响应检测到该新模式对象而调用Web服务的那些监视器的列表。
19.权利要求17的机器可读存储装置,进一步使该机器完成如下步骤在所述确定步骤之前从该请求中提取该新的模式对象并将该新的模式对象存储在公用存储器中。
20.权利要求17的机器可读存储装置,其中每个监视器与一个Web服务相关联并说明用于调用所关联的一个Web服务的规则。
21.权利要求17的机器可读存储装置,其中这些模式对象说明多于一个要执行的Web服务。
22.权利要求17的机器可读存储装置,其中每个监视器并行分析该模式对象,使得多于一个Web服务能被并发调用。
23.权利要求17的机器可读存储装置,其中至少两个监视器顺序调用所关联的一个Web服务。
24.一种机器可读存储装置,其上存储有计算机程序,该计算机程序有可由机器执行以使该机器实现如下步骤的多个代码部分接收一个说明至少两个Web服务的请求;将取自该请求的模式对象存储在公用存储器中;利用多个监视器描述所述公用存储器,其中每个监视器与一Web服务相关联并说明用于调用所关联的一个Web服务的一规则;确定该模式对象匹配于至少两个监视器的一规则,其中具有匹配该模式对象的规则的每个监视器调用所关联的一个Web服务;以及将调用所关联的一个Web服务的监视器的列表以及该模式对象存储在高速缓存中,其中该监视器列表与该模式对象相关联。
25.权利要求24的机器可读存储装置,进一步使该机器完成如下步骤接收一新请求,其中包括的一新的模式对象说明多于一个要执行的Web服务;确定该新的模式对象是否匹配于所述已高速缓存的模式对象;如果匹配,则使监视器列表中的每个监视器调用所关联的Web服务;以及如果不匹配,则使每个监视器分析该新的模式对象,从而使确定该新的模式对象匹配于一已提供的规则的任何监视器调用所关联的Web服务。
26.权利要求24的机器可读存储装置,进一步使该机器完成如下步骤在该高速缓存中存储该新的模式对象以及为响应检测到该新的模式对象而调用Web服务的那些监视器的列表。
全文摘要
一种处理对多个Web服务的请求的方法包括在高速缓存中存储取自对Web服务的请求的模式对象以及为响应检测到模式对象而调用Web服务的那些监视器的列表。该方法还包括接收对Web服务的新的请求,该新请求说明一个新的模式对象,以及确定该新的模式对象是否匹配于所述已高速缓存的模式对象。如果匹配,则监视器列表中的每个监视器调用所关联的Web服务。如果确定与所述已高速缓存的模式对象不匹配,则每个监视器分析该新的模式对象,从而使确定该新的模式对象匹配于一个已提供的规则的任何监视器调用所关联的Web服务。
文档编号H04L12/26GK1617500SQ20041008012
公开日2005年5月18日 申请日期2004年9月23日 优先权日2003年11月12日
发明者A·A·布-甘纳姆, T·E·克里默, V·S·莫尔, S·L·温特斯 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1