用于管理web服务的系统和方法

文档序号:7654408阅读:506来源:国知局
专利名称:用于管理web服务的系统和方法
技术领域
本发明涉及用于管理面向服务的软件体系结构的web服务的系统和方法。
背景技术
web服务是用于通过计算机网络(例如因特网)从一个计算机向另一计算机交换数据的标准化接口。应用可以利用由服务器提供的web服务通过计算机网络向服务器请求数据。这种请求通常被封入在利用HTTP传送的SOAP包封中,并且可包括XML以及其他与web有关的标准。技术上更高级的应用组合各种web服务以获得或处理期望数据。围绕多个web服务开发的软件体系结构被称为面向服务的体系结构(SOA)。
在SOA中,资源对于网络中的参与者来说是可用的,其被当作参与者可以按标准化方式访问的独立服务。虽然SOA的大多数定义使用经由TCP/IP上的HTTP/HTTPS传送的SOAP请求,但是SOA可以使用任何基于web服务的技术。web服务基于形式定义协同工作,形式定义与下层的平台和编程语言是无关的。接口定义封装了特定实现方式。SOA与特定的开发技术(例如Java和.NET)无关。软件组件变得高度可重用,因为接口是遵从标准的,并且与web服务逻辑的下层实现方式无关。例如,C#(C Sharp)服务可被JAVA应用所使用,反之亦然。
然而,管理SOA是一项复杂和困难的任务。维护web服务的整体情况的全局视图(某些web服务可能随时间动态改变)对于确保使用各种web服务的应用正确地工作来说是很重要的。因此,在现有技术中已知提供一种集中化的注册库(registry)/贮藏库(repository),例如CentraSite或Systinet 2。这种注册库/贮藏库的工作的基本原理在图1中示出。
如图所示,集中化的注册库包括对SOA的web服务的描述。每个web服务由web服务描述语言(WSDL)文件描述,并且利用API(例如UDDI)注册。WSDL文件通常包含关于相应web服务的功能、数据、数据类型和交换协议的信息。想要向某一web服务发送请求的客户端可以从web服务自身或者从注册库/贮藏库获得WSDL文件,以找出如何访问web服务。如图1所示,注册库/贮藏库提供了用于访问存储在注册库中的信息和用于其管理的各种API。除了WSDL文档和服务的注册以外,注册库/贮藏库还可用于存储与服务有关的任何类型的工件(artefact),例如策略。
集中化的注册库可用于SOA的新应用的设计时期。涉及一个或多个web服务的新应用的开发者可以使用所存储的信息来确保应用中所涉及的SOA的web服务接收其需要的数据,并且可以按新应用所期望的那样交互。然而,图1的注册库没有提供任何运行时期(runtime)信息,并且不允许执行(enforce)与一个或多个web服务有关的策略或服务级别协定。运行时期信息例如有助于提高或监视涉及SOA的多个web服务的新应用的性能和稳定性。
WO 2004/10297公开了一种自治软件代理,其被布置在客户端和web服务之间。在由用户配置后,自治软件代理可以监视并影响web服务的操作,而不影响web服务自身。然而,将WO 2004/10297的教导应用于具有大量web服务的复杂体系结构需要对同样大量的自治软件代理进行费时的手工配置。
因此,本发明要解决的技术问题是提供一种用于管理SOA的web服务的更高效的方式,其允许获得关于SOA的web服务的运行时期信息,从而克服现有技术的上述不足。

发明内容
在本发明的一方面中,该问题由一种用于管理面向服务的体系结构(SOA)的多个web服务的系统来解决,该系统包括注册库和服务过滤器,注册库包括在注册库中注册的对多个web服务中的每一个的描述,服务过滤器适合于过滤调用在注册库中注册的web服务中的至少一个的客户端的至少一个请求,其中服务过滤器适合于根据注册库中对相应web服务的描述收集关于请求的运行时期信息。
因此,本发明的服务过滤器使用已经可用的对web服务的描述来收集关于web服务的运行时期信息。因此,在注册库中定义的描述不仅在设计时可用于导出这多个web服务是如何工作的,还另外定义了在运行时期要从相应web服务收集的信息,即,何时来自客户端的请求实际由web服务提供服务。因此,本发明的注册库是整个SOA的中心点。不需要额外步骤/手工步骤来确保来自web服务的运行时期数据的收集。
在一个实施例中,服务过滤器还适合于在运行期间根据注册库中对相应web服务的描述修改请求。修改请求可例如包括将去往第一web服务的请求重定向到在注册库中注册的第二web服务(或端点)。这可以有助于负载平衡或动态地替代发生故障的web服务。
优选地,服务过滤器还适合于收集关于被调用的web服务的使用情况的统计数据,例如某一web服务的使用计数、带宽使用情况、身份、随时间(一天中的时间或更长的时间段)的分布、响应时间和数据量等等。
此外,优选地,服务过滤器还适合于监督被调用的web服务的可用性,并且优选地在被调用的web服务不可用的情况下发出警报。用于报警的策略(用于发起警报的条件、报警的方法和接受者)可以存储在注册库中,从而允许单个的警报配置点。另外,注册库存储web服务的统治信息(所有者、责任),其可用于动态确定警报的接受者。从而可以减少使用发生故障的web服务的应用的停用时间。
优选地,服务过滤器适合于在运行期间在注册库中执行至少一次查找,其中查找的结果确定服务过滤器对请求和/或来自web服务的响应的处理。因此,服务过滤器使用web服务的最新描述来确定其对运行时期信息的收集。
在一个实施例中,由服务过滤器收集的运行时期信息优选地与对web服务的描述一同被存储在系统的注册库中。因此,开发者或任何其他用户可以容易地访问所获得的运行时期信息以及对相应web服务的描述。将运行时期信息存储在注册库中还能够实现不平常的使用模式的搜索(例如用于欺骗检测)和趋势的辨别,例如用于预测未来的使用模式。
在一种替换方案中,服务过滤器被布置在服务代理上,服务代理甚至可能运行在与web服务自身不同的机器上。使用独立的代理组件或者甚至使用独立的机器提供了用于实现服务过滤器的最大灵活性,而无论web服务的特定实现方式如何。
根据又一方面,本发明涉及一种用于管理面向服务的体系结构(SOA)的多个web服务的方法,包括以下步骤提供注册库,该注册库包括在注册库中注册的对多个web服务中的每一个的描述,提供服务过滤器,该服务过滤器适合于过滤调用在注册库中注册的web服务中的至少一个的客户端的至少一个请求,以及利用服务过滤器根据注册库中对相应web服务的描述收集关于至少一个web服务的运行时期信息。
在从属权利要求中限定了对该方法的进一步修改。


在下面的详细描述中,参考附图进一步描述了本发明的当前优选的实施例,在附图中图1根据现有技术的具有对web服务的描述的注册库;图2根据本发明的系统的实施例的全局视图;图3根据本发明的系统的另一实施例的全局视图;图4图示了根据本发明一个实施例的用于收集运行时期信息所执行的各种步骤的流程图;图5在本发明的一个实施例中与对相应web服务的描述一同存储在注册库中的运行时期信息的样本输出;以及图6存储在注册库中的与对各种web服务的请求的数目有关的运行时期信息的另一样本输出。
具体实施例方式
下面,针对管理仅有访问单个web服务20的单个客户端10的简化布置来描述本发明的系统和方法的实施例。然而,应当理解,本发明主要目的是促进对具有服务于多个客户端的请求的数十或数百web服务的大规模布置的管理。
如图所示,该系统包括注册库30。注册库优选地包括用于存储和检索存储在注册库中的WSDL文件以及运行时期信息(如下所述)的一个或多个API 31。另外,优选地包括用于管理注册库30的管理API 32。
如图2中的双向水平箭头所示,客户端10发出请求11到web服务20,例如为了获得某些数据。优选地,来自客户端10的请求和响应都被当作XML文件利用例如HTTP上的SOAP发送。然而,从客户端10接收的请求并不立即被web服务20处理,而是首先被服务过滤器40过滤。服务过滤器40截取进入的请求,按需要修改数据,随后将请求传递到原始web服务20。在处理了请求后来自web服务20的响应可以沿相反方向再次被服务过滤器40处理,并最终返回到客户端10。以这种方式,服务过滤器40在运行期间内获得关于请求和其可能的响应的信息,该信息随后被转发并存储在注册库30中,如图2中的箭头35所示。在该实施例中,用于服务过滤器40的被收集的运行时期信息和配置设置的传送是利用服务过滤器的API 41实现的,API 41与注册库30的API 31通信。
在一种非常简单的情形中,由服务过滤器40提供的运行时期信息可能仅仅是关于SOA的哪个实体在什么时间调用哪个web服务的信息。在更高级的实施例中,服务过滤器40将获得更多信息,例如涉及到的用户帐户、请求和其响应的大小、处理时间、故障等等。从更为结构化的视角来看,可以区分下面四种不同的技术领域,由服务过滤器40收集的运行时期信息可能与这些领域有关首先,运行时期信息可以揭示在SOA中涉及的web服务的统计信息。诸如使用计数、具有带宽使用和身份的互连图的提供、随时间(一天的时间或更长的时间段)的分布以及响应时间和被发送的数据量之类的统计信息为SOA的管理员提供了对所涉及的web服务的使用情况的集中视图。
另一方面是SOA的技术监视,其涉及在出现某些事件(例如web服务的不可用)的情况下向正确的联系者发送警报。由服务过滤器40提供的监视还可涉及病毒和安全检查,对于新应用的开发的调试支持,并且一般还涉及对由SOA的web服务提供的服务质量的评估。由于所有被收集的信息都被反馈回注册库30,因此注册库30允许使被监视的SOA从中心点开始一直运行,并且基于历史数据评估其成功。
除了收集关于SOA的信息以外,在更高级的实施例中,服务过滤器40还可以主动改变对请求的处理。如果服务过滤器40将最初去往某一web服务20的请求重定向到另一web服务(未在图2中示出),则可以实现诸如松散耦合之类的动态概念。该技术特征允许在来自客户端10的请求中使用动态端点,例如在某一web服务面对超过其处理能力的大量请求的情况下用于负载平衡,或者该技术特征允许将发送到发生故障的web服务的请求自动重定向到备用web服务(未在图2中示出)。重定向的条件和细节也可以存储在注册库中,从而提供了单个控制点。
最终,运行时期信息的收集可用于执行策略或服务级别协定,例如关于web服务对某一请求的预定响应时间。
在图2的实施例中,执行上述功能的服务过滤器40被实现为web服务20的附加(add-on)功能,例如从专用web服务器和.Net环境(IIS、ASP)到web服务20的基于J2EE或Java Servlet的安装的平台,这些平台的细节对于本领域技术人员来说是公知的。
图3表示本发明的系统的替换实施例,其中服务过滤器40充当与web服务20/应用服务器相分离的服务代理45,其甚至可能运行在与web服务20不同的机器上。在这种情况下,在注册库30中对web服务20的描述针对客户端进行修改,从而web服务20的实际端点由代理45的URL替代。这之所以是可能的,是因为注册库30对SOA的每个web服务的描述(其被注册到注册库30)有完全的控制。由于URL的改变,在运行期间客户端10将调用代理45,代理45随后在收集了运行时期信息和/或修改了请求之后将请求转移到实际的web服务20。对于来自web服务20的响应,反方向发生相同的过程。
下面,参考图4的流程图详细说明由图2或3的实施例的服务过滤器40执行的对进入请求的示例性处理。
对进入请求的处理开始于步骤100,在步骤100确定进入请求是否是SOAP请求。在图4的非限制性实施例中,只有SOAP请求被过滤以获得运行时期信息。如果该请求是SOAP请求,则在步骤101中利用在请求头部中指示的URL识别请求所寻址的web服务(如果不仅过滤SOAP请求,还过滤其他类型的请求,则其他技术可用于识别在进入请求中寻址的web服务)。
步骤102包括可选地在注册库30中进行查找以获得对请求所寻址的web服务的当前描述,具体而言是确定在运行时要从请求和/或其响应收集哪些信息以及该请求是否要(额外地)被修改。可以在查找步骤102期间获得并且在后续步骤103中被评估的信息可能涉及被寻址的web服务是否被标记进行报告,即在注册库的描述中是否标记了要针对该特定web服务收集运行时期数据。在具有数百个web服务的SOA中,只有选定的web服务可能与获得运行时期信息或修改来自客户端的请求有关。
如果相应web服务没有被标记进行报告(即,没有被标记收集运行时期信息),或者甚至不为过滤器所知,则其在步骤104中被转发并由所寻址的web服务处理,而不再涉及服务过滤器。在这种情况下,可以发送警报以告知存在未知服务这样的事实。
否则,在步骤105中从请求收集运行时期信息,例如与请求客户端、主机、时间戳和大小等有关的信息。所有对运行时期信息的上述替换(以及对进入请求的可能修改)都可以在该步骤中由过滤器获得。所获得的运行时期信息可以存储在本地,如图4所示,或者被立即发送到注册库(未示出)。
在步骤105中从请求中收集了运行时期信息之后,在步骤106中该请求被转发到web服务。来自web服务的响应在步骤107中被服务过滤器处理,并且同样地存储在本地或者被立即转发到注册库。如果步骤105和107的结果被存储在本地,则还有另一步骤108,其中所有结果被发送到注册库。随后,在步骤109中来自web服务的响应被返回到客户端。然而,该响应也可以在运行时期信息被发送到注册库之前或与之同时被转发到客户端。另外,所获得的数据可以不在每一请求之后被立即发送到注册库,而是例如仅在经过了一定量的时间之后或者在处理了预定数目的请求之后被周期性地发送到注册库。
结果,注册库30包括被注册的web服务的所有信息,即其描述和运行时期信息。该运行时期信息示例性地显示在图5的截屏图中。如图所示,所显示的表包括具有示例性运行时期信息的各个列。而最左边的一列标识web服务,第三列指示联系服务的客户端的IP地址。另外的列指示请求大小和其响应以及用户、提供web服务的服务器、服务器的端口和URL,该URL被用在请求中以联系web服务。最后两列包含请求和相应的响应的时间戳。该简化示例已经能够导出关于web服务的性能的有价值信息,因为这两个时间戳之间的时间差反映了用于为相应请求提供服务的响应时间。
图6表示可以从注册库30获得的与被注册的web服务有关的运行时期信息的另一示例。圆形分格图(pie chart)表示在某一时间段期间对SOA的web服务的若干请求的比较结果。从而,管理员可以容易地识别更常被请求的web服务(例如,web服务“XCITransformerService”)。
如果一个web服务被过多请求,则该情形将反映在图6的圆形分格图中,并且管理员可以立即起动应对措施,例如将去往过载的web服务的其他请求重定向到另一端点。结果,所描述的系统和方法允许用户获得对所管理的SOA的静态和动态方面的全局视图和控制。
权利要求
1.一种用于管理面向服务的体系结构的多个web服务的系统,包括a.注册库(30),包括在所述注册库(30)中注册的对所述多个web服务(20)中的每一个的描述;b.服务过滤器(40),其适合于过滤调用在所述注册库(30)中注册的所述web服务(20)中的至少一个的客户端的至少一个请求(11);c.其中所述服务过滤器(40)适合于根据所述注册库(30)中对相应web服务(20)的描述收集关于所述请求(11)的运行时期信息。
2.如权利要求1所述的系统,其中所述服务过滤器(40)还适合于在运行期间根据所述注册库(30)中对所述相应web服务(20)的描述修改所述请求(11)。
3.如权利要求2所述的系统,其中修改请求(11)包括将去往第一web服务的请求(11)重定向到在所述注册库(30)中注册的第二web服务。
4.如权利要求1-3中的任何一个所述的系统,其中所述服务过滤器(40)还适合于收集关于被调用的web服务(20)的使用情况的统计数据。
5.如权利要求1-4中的任何一个所述的系统,其中所述服务过滤器(40)还适合于监督被调用的web服务(20)的可用性。
6.如权利要求5所述的系统,其中所述服务过滤器(40)还适合于在被调用的web服务(20)不可用的情况下发出警报。
7.如权利要求1-6中的任何一个所述的系统,其中所述服务过滤器(40)还适合于在运行期间在所述注册库(30)中执行至少一次查找,其中所述查找的结果确定对所述请求(11)和/或来自所述web服务(20)的响应的处理。
8.如权利要求1-7中的任何一个所述的系统,还适合于将由所述服务过滤器收集的信息与对所述web服务(20)的描述一同存储在所述注册库(30)中。
9.如权利要求1-8中的任何一个所述的系统,其中所述服务过滤器(40)充当服务代理(45)。
10.一种用于管理面向服务的体系结构的多个web服务的方法,包括以下步骤a.提供注册库(30),所述注册库(30)包括在所述注册库(30)中注册的对所述多个web服务(20)中的每一个的描述;b.提供服务过滤器(40),所述服务过滤器适合于过滤调用在所述注册库(30)中注册的所述web服务(20)中的至少一个的客户端(10)的至少一个请求(11);以及c.根据所述注册库(30)中对相应web服务(20)的描述利用所述服务过滤器(40)收集关于至少一个web服务(20)的运行时期信息。
11.如权利要求10所述的方法,其中所述服务过滤器(40)在运行期间根据所述注册库(30)中对所述相应web服务(20)的描述修改请求(11)。
12.如权利要求11所述的方法,其中所述服务过滤器(40)将去往第一web服务的请求(11)重定向到在所述注册库(30)中注册的第二web服务。
13.如权利要求10-12中的任何一个所述的方法,其中所述服务过滤器(40)收集关于被调用的web服务(20)的使用情况的统计数据。
14.如权利要求10-13中的任何一个所述的方法,其中所述服务过滤器(40)监督被调用的web服务(20)的可用性。
15.如权利要求14所述的方法,其中所述服务过滤器(40)在被调用的web服务(20)不可用的情况下发出警报。
16.如权利要求10-15中的任何一个所述的方法,其中所述服务过滤器(40)在运行期间在所述注册库(30)中执行至少一次查找。
17.如权利要求10-16中的任何一个所述的方法,其中所述服务过滤器(40)将所述被收集的信息与对所述web服务(20)的描述一同存储在所述注册库(30)中。
18.如权利要求10-17中的任何一个所述的方法,还包括提供所述服务过滤器(40)充当服务代理(45)的步骤。
全文摘要
本发明公开了一种用于管理面向服务的体系结构(SOA)的多个web服务的系统,包括注册库(30)和服务过滤器(40),注册库(30)包括在注册库(30)中注册的对多个web服务(20)中的每一个的描述,服务过滤器(40)适合于过滤调用在注册库中注册的web服务(20)中的至少一个的客户端(10)的至少一个请求,其中服务过滤器(40)适合于根据注册库(30)中对相应web服务(20)的描述收集关于请求的运行时期信息。
文档编号H04L29/08GK101087312SQ200710110709
公开日2007年12月12日 申请日期2007年6月1日 优先权日2006年6月2日
发明者约翰尼斯·瓦格纳, 哈拉德·思科宁, 比约恩·布拉乌尔, 乌尔里奇·赫伯勒 申请人:软件股份公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1