内嵌相关性能测量的系统的制作方法

文档序号:6354765阅读:193来源:国知局
专利名称:内嵌相关性能测量的系统的制作方法
技术领域
本发明通常涉及分布式计算网络,更明确而言,涉及在与应用性能分解中使用的分布式应用有关的事务中内嵌相关性能测量的技术。
背景技术
测量及分解性能应用事务时常需要分布式工具,此工具与服务或传输事务的应用组件共同设置。该应用组件是在分布式网络的各种不同计算设备上实施,该应用组件包括(例如,初始化、处理、传输等)至少一部分事务。此共同设置工具的需要造成分立的性能测量数据流,这些数据流需要被相关以显现每个应用组件的服务时间对整个事务响应时间的相对贡献。使用日期时间的相关是不容易的,因为它需要同步的时间源,这种时间源容易偏移,并且在较长时间周期上保持同步会出现问题。对于性能测量而言,不能借着将功能应用到从不同时间源得到的时间标签而容易取得精确的时延。因此,精确的时延计算必须根据来自相同时间源的时间标签来进行。每当一分布式应用跨越多个时间源时,会导致在事务路径的不断变化的位置上测量多个时间标签和/或时延。
这些时间标签与时延的相关通常以对其标记相关数据为基础,此相关数据稍后可用来关联有关测量,可参考2000年8月22日授权给Maccabee等人的美国专利6,108,700,″Application End-to-EndResponse Time Measurement and Decomposition″,这里参考引用了所述公开内容。该文献介绍了造成与分布式应用相关困难且耗时的数据管理问题(例如,分布式时延数据的存储、转移与合并)。
此外,已知若干技术,其中内嵌JavaScript被加入HTML(超文本标记语言)页面,以测量客户端需要多久时间来接收及呈现WEB页面。增加JavaScript的系统可得到时间标签,时间标签稍后能与JavaScript所产生的信息相比较,以产生一层分解。然而,例如WEB代理的介入应用组件不能增加其预期的响应时间,因此,此传统方法局限于一对参与者(例如,执行JavaScript的客户端及嵌入JavaScript的服务器)。此外,此内嵌的JavaScript方法引入了通常不在HTML页面中进行的JavaScript处理,因此需要改变应用的工作方式。

发明内容
本发明提供了根据应用性能分解而使用的技术,此技术利用了用于在分布式计算网络的应用组件之间传递事务的通信协议。明确而言,本发明扩充了通信协议,其中在协议中内嵌例如时间标签、时延测量数据的数据,而不是如既有方法那样扩充或改变应用或协议所传递的事务数据。因此,本发明可在此事务上提供了分布式应用组件的交互的自然相关,而无需修改应用或事务数据。因为相关与应用组件交互并行(in-line)执行,所以只需要最小的数据管理开销,而且对于事务而言,可以实时进行相关性能分解。此外,分布式应用的后续处理阶段可解释通信协议,以搜集先前阶段的处理时延,以便对事务处置作出决定。
在可选实施例中,本发明提供了根据分布式应用的一或多个应用组件而使用的方法,其中执行至少一部分分布式应用,该方法包括根据一个应用组件,向用于传递涉及分布式应用执行的事务数据的通信协议加入涉及分布式应用性能的数据的步骤,使得加入的性能数据可以和事务数据一起被传送到一或多个其它应用组件,以便在一或多个其它应用组件上可以和事务数据一起得到相关应用性能数据。
在某些情况下,为了保证灵活性,通过使用变长数据间隔的标记数据单元,通信协议被设计成采用新特征而不破坏既有功能。当本发明能够增加特别标记的测量数据而不致破坏既有的协议解释机构(例如,增加的数据可被忽略,除非协议解释器知道寻找它)时,这些协议可用于本发明。虽然根据本发明可使用通信协议的一个范例是超文本传送协议(HTTP),然而应当理解本发明不限于此。而且,虽然说明性实施例是在下面的环球网环境中详细描述的,但是应当理解,本发明可在其它分布式计算环境中实施。
在有关内嵌测量数据格式的说明性实施例中,本发明将明确定义(well-defined)的关键字前缀与可变后缀组合在一起,此后缀标识定时源,后面接着一冒号分界符与空格,接着是时间标签和/或时延信息。″明确定义″在这里表示前缀在参与的数据解释器之间共同定义或共知,从而允许它们分析(例如)前缀。明确定义的前缀与可变后缀的组合允许多个唯一标识的应用组件将其性能数据加入协议。即使在应用不是唯一标识的情况也可支持,因为包括具有明确定义关键字前缀的关键字的行可按照时延排序,以建立性能分解的″洋葱皮(onion-skin)″分层。
如上所述,分布式应用性能分解的传统解决方案是依赖在分布式位置上收集性能数据,而且稍后使用与应用本身分立的路径传送所述数据,以便进行相关。此造成事务性能的延缓知识。本发明提供的技术将测量信息内嵌在其描述的相同应用中,所以事务的完成与得到事务性能特性的知识可基本上同时发生,或至少同阶段发生。因为本发明使得和事务一起传递相关性能分解,因此不需要单独存储和传递性能数据。
此外,因为本发明捕捉应用组件的时间标签,所以应用组件时间源的域内的自然相关器可用于其它系统管理监视器(例如,有关性能、容量、可用性等)。可选事务标识亦可被用作其它系统管理数据的相关器,以便在离线分析期间进一步扩充性能分解。
此外应当理解,多个应用组件可经由使用本发明而加入。即是,本发明允许事务路径上任何数量的应用组件加入其性能信息,藉此提供n层性能分解。此外,本发明无须改变应用的工作方式。本发明可扩充传递应用数据的协议,而无须改变应用数据。这很有意义,因为安全传输(例如,使用安全Socket层(SSL)协议的安全超文本传输协议(HTTPS)),或使用GZIP(一Mime-Type定义的公众可用数据压缩)压缩的内容不受本发明的影响。然而,如前文发明背景所述,由于HTML可被加密或压缩且无法改变,所以这些类型传输对于尝试将JavaScript方法引用HTML,或以某种方式改变应用数据的既有方法是有问题的。因此,本发明与改变应用数据的方法(例如内嵌JavaScript方法)之间的根本不同是,本发明无干扰地改变用来传递应用数据的协议,而既有方法改变应用数据本身,从而通过应用施加特殊的处理。只有协议解释器需要知道本发明,而且那些不知道本发明的部分会简单地越过我们的扩充部分,而且不用担心其存在。
此亦是使用用于得到测量并报告其发现的逻辑扩充应用数据或有效载荷的上述技术的情况。对照下,本发明将应用数据独自放在一边,并且配置协议,即传递有效载荷的封装。另一不同是逻辑扩充方法只工作在端点(例如,应用服务器,且多数是在客户端),而如上所述的本发明可由事务路径上的多个节点使用,其每个可提供其性能预期。
本发明的这些及其它目的、特征与优点可从下列具体实施例与附图的详细说明而变得更了解。


图1根据客户端应用/服务器应用实施例图解了本发明;图2A根据本发明的实施例图解了HTTP请求头;图2B根据本发明的实施例图解了服务器端HTTP应答头;图2C根据本发明的实施例图解了客户端HTTP应答头;图3根据本发明的实施例图解了处理无标记消息的方法;图4根据本发明的实施例图解了处理标记消息的方法;及图5根据本发明用以实施应用组件的计算设备图解了硬件实施例。
具体实施例方式
将在作为分布式计算网络的环球网(WWW),和作为说明性通信协议的超文本传输协议(HTTP)的背景下描述本发明。然而应当理解,本发明并未局限于任何特殊计算网络或任何特殊通信协议。本发明通常可应用于任何环境,其中期望无须改变应用或事务数据地得到相关性能分解,而且使事务的完成与事务性能特性知识的得到基本上同时发生,或至少同阶段发生。因此,本发明可使用在分布式应用中,这种应用包含至少两个分立的、经由某种通信形式而交互的应用组件。例如,虽然下述通信形式是例如互联网的网络,但是通信形式也可是一平台上的进程间通信。本领域技术人员根据这里公开的发明构思可想到各种不同的其它情况。
参考图1,对于一具体实施例而言,假设网络是互联网或内部网100,而且应用组件是在客户端105上执行的应用及在服务器110上执行的应用。再者,在一具体实施例中,假设使用本发明扩充的协议是由RFC 2098和RFC 1945定义的HTTP,这里参考引用了其公开内容,客户端应用程序是WEB浏览器(例如,Netscape、InternetExplorer),而且服务器应用在WEB服务器(例如,IBM的Apache、IIS(微软公司的互联网信息服务器)、IHS(IBM HTTP服务器))上执行。分布式应用事务包含向应用服务器请求内容的客户端应用,及作出应答的应用服务器。使用本发明产生性能信息,以便从客户端应用的角度测量往返响应时间,并且将响应时间分解成服务器应用处理请求和产生其应答所使用的时间。
对于HTTP而言,在通过行终结字符序列(通常是回车与换列)界限的文本行中包含一定义的信息序列。HTTP头包含一或多个这样的行,而且是使用一空行结束。此允许选择性地提供在头中传递的数据,以帮助管理下层的传输控制协议(TCP)Socket通信,或提供缓存指示,或提供例如头的发出方(例如,浏览器或服务器软件)所使用的软件的类型与版本的上下文信息。这些行中的信息通常遵循包含″关键字值″的格式要求。因此,HTTP解释器被编写成检查头中的行,测试关键字,且在适当时,根据关键字和/或它的对应数据(值)而采取行动。因为WWW已历经若干代的HTTP及其扩展,所以HTTP解释器被编写成灵活适应存在或不存在预期关键字的情况,而且当非预期关键字出现时,不会被破坏。本发明利用了此特性,其中将行加到HTTP头中以传递性能测量数据,从而允许客户端通过HTTP应答头接收服务器测量时延。此是在图1、2A、2B和2C的背景下描述的。
如图1所示,在客户端应用程序准备送出它的要求时,客户端应用程序获得时间标签115,如标示TC1所示,用以捕捉日期时间(例如,来自精确跟踪从″新纪元″经过的时间的时钟源,其中″新纪元″是指全球统一时间1970年1月1日午夜),而且可选择地产生标示为TXSeq的事务序列标识120,以区分此请求与在合理长的时间周期内发生的所有其它请求(例如,重复的事务标识是可能的,假定重复标识的出现时间有足够间隔,以允许进行报告来对其进行区分)。如图2A所示,此信息被加到HTTP请求头200中,以作为分别针对时间标签(例如,TS-WD_SOCKS-C46EC47E3A9A86C8.38C99)与事务序列标识(例如,TX-WD_SOCKS-C46EC47E3E8)的附加行205和210,或当解释此请求的下一应答时,可经由客户端应用程序存储以备用。
在时间标签行205中,关键字″TS-WD_SOCKS-C46EC47E″充当产生此信息的客户端标记或标识。关键字包括明确定义的前缀″TS-″,以标识包含时间标签的HTTP行;及可变后缀″WD_SOCKS-C46EC47E″,以标识从其得到时间标签的定时源。冒号与随后的空格(空白间隔)被用来形成上述″关键字值″格式。″3A9A86C8.38C99″是十六进制时间标签值,其中小数点左边数字是自新纪元所经过的秒数,而小数点右边的数字是自新纪元经过的秒的小数。注意,关键字中的″TS-″通常表示时间标签。
此外,在事务序列标识行210中,″TX-″是明确定义的关键字前缀,以标识包含事务标识的HTTP行。因此,″TS-″通常表示时间标签,″TX-″通常表示事务标识。行210中的″WD_SOCKS-C46EC47E″是标识此事务标识相关的具体来源(域)的可变后缀。应当理解,在此特殊说明的具体实施例中,使用一般-具体标识,其中″WD_SOCKS″对来源或域进行分类,而且″C46EC47E″唯一标识这种来源或域的实例。″3E8″是用以标识事务序列的十六进制值。
应当理解,明确定义的前缀与可变后缀的组合允许多个唯一标识的应用组件将其性能数据(例如,时间标签、时延、事务序列标识等)加入协议。即使在应用不能被唯一标识的情况也可被支持,因为包含具有明确定义的关键字前缀的关键字的行可通过时延排序,以建立性能分解的″洋葱皮″分层。
″洋葱皮″分层描述了″包含″关系的延续,例如,就象洋葱外皮包含内部洋葱的其余部分,而且每个随后的内皮可说是包含它内部的皮。与此类似地,由客户端发起并及经由代理到达服务器的事务可视为具有至少3″层″,即,客户端层是最外层,服务器是最内层,而且代理(在客户端与服务器之间)是中间层。
典型的情况是(i)事务从客户端经由代理到达服务器并且返回所经过的时间(时延)将会最长;(ii)服务器处理事务所经过的时间最短;及(iii)从代理接收到事务,到发送事务给服务器,以及与返回到代理所经过的时间将短于(i),但是长于(ii)。这些时序关系的产生是因为从外层到内层的通信会增加时间。
因此,即使唯一标识符不用于在事务上执行的处理的每一″层″,然而时延仍然可排序,而且层的相互之间的相对位置仍然可了解,例如最大时延在最接近事务发起方的位置,而且最短时延在最接近事务服务器的位置。
应当理解,附加行可将客户端选择性地标识为将这些行加入HTTP请求头的来源,以允许稍后对这些行进行搜寻与更新。包含此HTTP请求头的HTTP请求及需要的其它应用数据(例如,POST数据)经由互联网100被客户端应用程序105传送给服务器应用110。
应当理解,通过可变后缀在HTTP请求头中唯一标识行的″作者″的主要目的是允许作者在回程中发现其编写的行,以计算时延,及更新该行以存储时延,此将在下面说明。这适用于时间标签源没有资源存储初始时间标签和不从这些资源检索初始时间标签以计算时延的情况。本发明是将头当作″每个事务″的初始时间标签信息存储器。在大部分情况下,头中行的″作者″维护有关事务的一些信息,例如,代理可维护内部Socket/端口到外部Socket/端口的映射,所以它可通过对应的内部Socket传送在外部Socket上取回的数据,而且稍后从内部Socket取回应答,并且在适当的外部Socket上将它传回。映射表可被扩充以保存初始时间标签,而且稍后将它取回而与另一时间标签结合使用,以计算时延,并且将单一″完成″行写到应答头中。
当接收到HTTP请求时,服务器应用110解释HTTP请求,以分析该请求包含的任何时间标签或事务序列标识。服务器应用亦得到标示为TS1的时间标签125,解释HTTP请求头,及开始处理请求。当服务器应用准备响应HTTP请求时,从HTTP请求头所分析的信息与时间标签被存储以供稍后存取。应当理解,本发明亦支持可充当服务器及客户端的应用组件的观念,例如,先接收来自另一客户端的请求,然后将请求(或一相关请求)转送给另一服务器。在此情况下,本发明可用于这些角色之中每一个,例如,将一时间标签及一事务序列标识加到它的请求中,并且将服务器在新HTTP请求中接收的任何既有时间标签与事务序列标识转送给另一服务器。
在一些时间之后,例如,在服务器决定如何应答事务请求之后,服务器应用110准备针对HTTP请求的HTTP应答,包含一如图2B所示的HTTP应答头220。此包括增加从HTTP请求头(分别是行205和210)存储的任何时间标签或事务序列标识行,及得到标示为TS2的第二时间标签130。两时间标签(TS1和TS2)可用来计算一时延(例如,时延=TS2-TS1),并且行225(例如,TS-APACHE-SRIRAMA3A9A86CC.4E375.4D9DDA)被加到HTTP应答头220中,以标识服务器,其处理开始时的时间标签(TS1,在此范例是3A9A86CC.4E375),和时延(在此范例是4D9DDA)。
在时间标签行225中,关键字″TS-APACHE-SRIRAMA″包括明确定义的前缀″TS-″与充当时间标签来源″APACHE-SRIRAMA″的标识的可变后缀。注意,在此范例的关键字中,″APACHE″表示服务器类型,而″SRIRAMA″是此类型服务器的唯一实证。应当理解,此分类形式对于本发明不是必需的,而是为了说明对数据进行分类以用于报告目的,例如,报告来自APACHE类型服务器的所有时延的优选方式。此外,行225中的″3A9A86CC.4E375″是十六进制时间标签值,其中小数点左边的数字是从新纪元经过的秒数,小数点右边的数字是从新纪元经过的秒的小数。″4D9DDA″是用以表示时延(TS2-TS1)的十六进制值。应当理解,由于可从其它得到一对,本发明亦支持提供两个时间标签,例如TS2和TS1的观念,以取代一时间标签与一时延。HTTP应答头220接着通过HTTP应答被传送给客户端应用程序105。
虽然针对具体的说明性格式描述了本发明,但是应当理解,时间标签与事务序列信息可被格式化和组合在相同头行中,假定该信息传递本发明的概念。例如,在一可选的优选实施例中,TS-<标识>行可被格式化成使用十进制数值和/或具有标识数值的标记,例如t=<时间标签值>或D=<时延值>或seq=<事务序列标识>。本领域技术人员根据这里提供的发明构思可想到其它格式。
当接收到包含HTTP应答头220的HTTP应答时,客户端应用程序105得到标示为TC2的另一时间标签135,并且分析HTTP应答头以得到包含客户端先前产生的时间标签或事务序列标识,或代表事务的其它应用组件所产生的时间标签或事务序列标识的行。在客户端应用程序通过HTTP请求头200传送一时间标签行的情况下,HTTP应答头的行被检查,以找出客户端应用程序(例如,使用在行上的客户端标识信息)先前产生的时间标签行。在一请求时间标签被产生和保存以供稍后处理的情况下,它可被取出以用于此事务。一时延可被产生(时延=TC2-TC1),以反映事务来回行程响应时间的客户端预期。此可在HTTP应答头220中被加到客户端最初产生的既有行中,如此可形成如图2C所示的修改HTTP应答头220′。修改行如HTTP应答头220′中的行230所示(例如,TS-WD_SOCKS-C46EC47E3A9A86C8.38C99.1841478)。″1841478″表示事务来回行程响应时间的客户端预期,而行230中的其余信息是与行205中的相同。
应当理解,在没有行是先前由客户端产生的情况下,一新行可被加入HTTP应答头中,以形成修改的应答头,修改的应答头可显示客户端请求的时间标签与时延(或者可选地,响应接收的时间标签),客户端标识信息,和包含一事务序列标识的另一行。还应当理解,本发明可支持时间标签,时间标签来源标识,和在相同位置(例如,HTTP头行)或在多个位置(例如,多个HTTP头行)被加入的事务序列标识的概念。
因为产生针对客户端请求的完整响应可能需要额外的处理,所以服务器应用可选择性地得到后续时间标签140(如图1中TS3所示),以供稍后与事务关联。然而,因为这些可能在产生对客户端的响应之后发生,所以它们可被存储,以便与应答包含的事务性能信息进行离线相关。同样地,当从服务器应用接收到后续响应数据时,客户端应用程序可选择性地得到后续时间标签145,用以稍后与图1标示为TC3的事务关联。
应当理解,事务序列标识符可当作一相关器使用,其可用来在存储例如TS3信息的后续时间标签的记录或其它数据存储中进行搜寻。换句话说,传回客户端的头会在得到时间TS3之前离开。所以,如果客户端稍后想要将其时延TC3-TC2与服务器端时延TS3-TS2关联,它需要一相关器来查找此信息。TX-<标识符><序列标识符>可用于此目的。
应答中包含的结果性能分解信息可被客户端使用,以便通过检查时间标签和/或时延来导出与其它应用组件所提供服务有关的信息。例如,从请求送出到应答接收的时延的客户预期可被反映为TC2-TC1(在图1标示150),而且服务器应用应答请求的时延是TS2-TS1(在图1标示155)。客户可选择性地将接收其请求的整个响应所需的时延确定为TC3-TC2(在图1标示160),而且将总事务响应时间确定为TC3-TC1(在图1标示165)。
参考图3,其中示出了根据本发明实施例处理无标记消息的方法的一般概观。在此使用的″无标记消息″是指尚不具有嵌入根据本发明的通信协议的性能测量数据的消息,例如,如上面在图1、2A、2B和3C的背景下描述的。在步骤300,一无标记消息被接收。例如,这可以是处理尚未在″工具组件″内开始的消息。″工具组件″是指事务路径中提供时间标签信息的组件。例如,由于浏览器的商业代码不能修改,所以一代理可使用在客户机器的浏览器之前,以增加时间标签。无标记消息然后由此代理(已由浏览器产生)接收,而且作为工具组件的此代理在将其传送给服务器之前,将时间标签信息加入头中。WD_SOCKS可以是这种在客户端上执行的代理。
在步骤310,得到一本地时间标签,例如从系统时钟获得。在步骤320,构造一标记,其中包含时间标签信息与增加此标记的处理单元的身份。标记最好具有如图2A所示的上述格式″关键字值″,例如,TS-WD_SOCKS-C46EC47E3A9A86C8.38C99。该标记亦可以包括事务序列标识,例如,TX-WD_SOCKS-C46EC47E3E8。此标记被加入消息中,亦即,内嵌到如上所述的通信协议。在步骤330,启动针对消息的处理。此包括将增加标记的消息传送到其它机器。
图4根据本发明实施例图解了用于处理标记消息的方法的一般概观。在此使用的″标记消息″是指具有嵌入根据本发明的通信协议的性能测量数据的消息,例如在上面图1、2A、2B和2C的背景下描述的。在步骤400,标记消息被接收。在步骤410,例如从系统时钟获得本地时间标签。在步骤420,处理消息的组件的标记被找出,而且提取先前内嵌的时间标签。在步骤430,通过从在步骤410获得时间标签减去提取的时间标签,计算处理消息所经过的时间。在步骤440,经过的时间被记录及内嵌在消息中。此标记的范例可以是如图2B所示的TS-APACHE-SRIRAMA3A9A86CC.4E375.4D9DDA。
图5是根据本发明的例如一工作站或服务器的计算设备或系统的模块图。在图5显示的计算设备是可以执行至少一部分客户端应用程序(例如,图1的105)的客户端计算机系统的范例,可以执行至少一部分服务器应用(例如,在图1的110)的服务器计算机系统的范例,以及网络中任何其它采用本发明的计算设备的范例。图5的环境包含单一代表性的计算设备500,例如个人计算机、膝上型计算机、工作站、手持式计算机、信息家电等,包括可选择性提供、相关的外围设备。根据已知技术,工作站500包括微处理机502或等效处理能力,以及总线504,用于连接且允许微处理机502与计算设备500的组件之间的通信。注意,在一些计算设备中,可合并多个处理器。
微处理机502经由总线504与存储设备506通信。例如随机存取内存(RAM)、只读存储器(ROM)、闪存等的存储器508可直接存取,而例如硬盘的辅助存储设备510,以及例如软盘机、CD ROM驱动器、磁带存储设备等的可移动存储设备512可通过本领域已知的附加接口硬件与软件存取。可移动存储设备512具有适当类型的可移动介质514,例如磁盘、CD、磁带滚动条、固态存储等,可保存计算机可用数据,而且是计算机可用介质的形式。注意,计算设备500可以具有多个存储器(例如,RAM和ROM),辅助存储设备,和可移动存储设备(例如,软盘机与CD ROM机)。
计算设备500通常包括用户接口适配器516,其经由总线504将微处理器502连接到一或多个接口设备,例如键盘518、鼠标或其它指向设备520、显示器522(例如CRT监视器、LCD屏幕等)、打印机524、或任何其它用户接口设备,例如触摸屏,数字化输入板等。注意,计算设备500可使用多个用户接口适配器,以便与用户接口设备进行必要的连接。
计算设备500亦能经由通信适配器526而与其它计算设备、计算机、工作站等,或其网络通信,其中该通信适配器可以是例如电话、电缆、或无线调制解调器、综合业务数字网络(ISDN)适配器、数字用户线(DSL)适配器、局域网(LAN)适配器、或其它通信信道。此可使计算设备直接存取网络528(LAN、广局域网络(WAN)、互联网等),可用来存取其它网络或计算机的电话线530、诸如蜂窝电话网的无线网络532、及其它通信机构。注意,计算设备500可使用多个通信适配器进行必要的通信连接(例如,电话调制解调器卡及蜂窝数字分组数据(CDPD))。计算设备500可以和LAN或WAN中的其它计算设备关联,或计算设备可以是具有另一计算机等的客户端/服务器配置的客户端或服务器。
计算设备500提供了环境,其中操作系统534、中间件536与应用程序538软件执行任务,且能与在相同或其它计算设备上的软件通信。所有这些结构、及适当通信硬件与软件在本领域是已知的。
本领域技术人员应当理解,例如在此描述的计算机程序(例如,操作系统534、中间件536和/或应用程序538软件)通常被布置为计算机程序产品的一部分,这种计算机程序产品具有包含程序代码的计算机可用介质。因此,在此使用的″介质″、″计算机可用介质″包括磁盘、磁带、光盘、集成电路、可编程逻辑阵列(PLA)、通信电路上的远程传输、例如蜂窝网络的无线网络上的远程传输、或具有/没有适配器接口的任何其它计算机可用介质。注意,计算机可用介质的范例包括(但是未局限于)实物物理介质,例如CD ROM、磁盘、硬盘等,以及其它非实物物理介质,例如当电子发布程序时,可有线或无线传输的载波信号。而且注意,根据可从美国加州Mountain View市的Sun Microsystems公司获得的JAVA技术的″Servlet″或″Applet″可被认为是计算机程序产品。
虽然使能指令可″写在″磁盘或磁带上,″存储在″集成电路或PLA中,″传递″在通信电路或无线网络上,但是应当理解,对于在此描述的本发明的目的而言,计算机可用介质可被称为″承载″指令,或指令(或软件)可被称为″在″介质上。因此,在介质上″具体实施″的软件或指令包括上述及所有类似方法,其中指令或软件可与计算机可用介质相关。
为了简化,用语″计算机程序产品″可用来表示如上面定义的计算机可用介质,而且在其上承载或具体实施任何形式的软件或指令,以使计算机系统(或多个协作系统)可根据上述发明而操作。
用语″数据结构″是指可以预定方式使用的有意义数据值的特定组织。例如,网络分组具有多种不同数据单元,可由用以在不同计算机系统之间传输分组的通信网路与计算机节点使用和访问。分组是数据结构,而且当通过文件存储、当载入系统存储器、当通过通信网络等传输时,在计算机可用介质中具有与计算机程序产品相同方式的实质具体实施例。
应当理解,实现本发明的计算机硬件包含一或多个处理器,而且是一起操作、基本上独立、或分散于网络,而且进一步包括存储器,用以存储执行本发明所需的指令与计算。
本领域技术人员应当理解,根据本发明的系统能以本领域已知的各种不同方式建立。例如,如图5的背景下所述的通用计算设备可以配置适当软件,使得计算设备能够如上所述地工作。此外,离散电子组件可用来建立实施所有或部分功能的系统。最后注意,执行适当软件的多个计算设备或离散电子组件的组合能以类似方式使用。本质上,硬件被构造成(经由软件、定制设计等)执行构成本发明的功能单元。
应当理解,WWW比上面所引用的范例更复杂,其具有有助于扩展事务服务与传输的代理与缓存服务器。因为本发明标识时间源并使其与时间标签与时延信息关联,多个应用组件可使用本发明来增加它们的时延测量,结果当它从开始的客户端经由这些应用组件流动并且最后返回时,多个行被加入事务HTTP头中。头的检查可经由应用组件在沿着事务路径的任何点上发生,以搜集本发明的性能信息。更具体地,在事务路径的返回部分期间,一应用组件可检查先前的应用组件时延,及决定它要提供的服务。当经由事务的发起方接收到事务时,通过针对本发明的关键字检查HTTP应答头,可测量事务的响应时间,和所有先前参与应用组件的时延的分解。
虽然本发明的具体实施例是参考附图描述,但是应当理解,本发明并未局限于这些具体实施例,而且各种不同其它变化与修改可由本领域技术人员达成,而不致于违背本发明的范围或精神。
权利要求
1.一种根据分布式应用的一或多个应用组件而使用的方法,其中分布式应用的至少一部分被执行,该方法包含下列步骤根据该应用组件中的一个,在用于传递有关该分布式应用的执行的事务数据的通信协议中,内嵌与该分布式应用的性能有关的数据,其中该性能数据被内嵌在通信协议中,而无须改变事务数据;和将该内嵌性能数据与该事务数据传输给一或多个其它应用组件,使得在一或多个其它应用组件上获得相关应用性能数据和该事务数据。
2.根据权利要求1的方法,根据获得该内嵌性能数据与该事务数据的一或多个其它应用组件中的至少一个,还包括以下步骤处理与其它性能数据有关的该性能数据,其中该其它性能数据与一或多个其它应用组件有关;将与经过处理的性能数据有关的至少一部分结果内嵌在通信协议中,其中该通信协议被用来传递有关该分布式应用的执行的事务数据;及将内嵌结果和该事务数据传输给一或多个其它应用组件。
3.根据权利要求1的方法,根据获得该内嵌性能数据与该事务数据的一或多个其它应用组件中的至少一个,进一步包含以下步骤针对至少一个其它应用组件,将有关该分布式应用的性能的数据内嵌在通信协议中,该通信协议被用来传递与该分布式应用的执行有关的事务数据,其中该性能数据被内嵌在通信协议中,而无须改变事务数据;和将该内嵌性能数据与该事务数据传输给一或多个其它应用组件。
4.根据权利要求3的方法,其中该传输步骤进一步包含将来自一个应用组件,及来自至少一个其它应用组件的内嵌性能数据的至少一部分和该事务数据传输到一或多个其它应用组件。
5.根据权利要求1的方法,其中该性能数据包含与事务相关的经过时间,此事务与分布式应用有关。
6.根据权利要求1的方法,其中该性能数据包括下列之中的至少一个时间标签、时延、与应用组件相关的标识、及与涉及分布式应用的事务相关的标识。
7.根据权利要求1的方法,其中该性能数据的格式包含″关键字值″格式。
8.根据权利要求7的方法,其中该关键字包含前缀,用以标识数据格式;及可变后缀,用以将应用组件标识为定时源与事务序列源中的一个。
9.根据权利要求7的方法,其中该值包含时间标签与时延信息中的至少一个。
10.根据权利要求1的方法,其中n个应用组件可通过传输协议内嵌和传输性能数据,从而提供n级性能分解。
11.根据权利要求1的方法,其中该相关性能数据被报告给性能测量系统。
12.根据权利要求1的方法,其中该分布式应用在环球网上执行。
13.根据权利要求1的方法,其中该通信协议是超文本传输协议。
14.一种根据分布式应用的一或多个应用组件而使用的设备,其中该分布式应用的至少一部分被执行,该设备包含至少一处理器,用以(i)根据应用组件之一,内嵌有关分布式应用的性能的数据于一通信协议中,该通信协议被用来传递有关该分布式应用的执行的事务数据,其中该性能数据被内嵌在通信协议中,而无须改变事务数据;及(ii)将该内嵌性能数据与该事务数据传输给一或多个其它应用组件,使得在一或多个其它应用组件上获得相关应用性能数据和该事务数据。
15.根据权利要求14的设备,进一步包含至少另一处理器,其中根据获得该内嵌性能数据与该事务数据的一或多个其它应用组件中的至少一个,所述至少另一个处理器用以(i)处理与涉及一或多个其它应用组件的其它性能数据相关的性能数据;(ii)将与经过处理的性能数据相关的至少一部分结果内嵌在通信协议中,该通信协议被用来传递有关该分布式应用的执行的事务数据;及(iii)将内嵌结果和该事务数据传输给一或多个其它应用组件。
16.根据权利要求14的设备,进一步包含至少另一处理器,其中根据获得该内嵌性能数据与该事务数据的一或多个其它应用组件中的至少一个,所述至少另一个处理器用以(i)针对至少一个其它应用组件,将有关该分布式应用的性能的数据内嵌在通信协议中,该通信协议被用来传递与该分布式应用的执行有关的事务数据,其中该性能数据被内嵌在通信协议中,而无须改变事务数据;及(ii)将该内嵌性能数据与该事务数据传输给一或多个其它应用组件。
17.根据权利要求16的设备,其中传输操作进一步包括将来自一个应用组件,及来自至少一个其它应用组件的内嵌性能数据的至少一部分和该事务数据传输到一或多个其它应用组件。
18.根据权利要求14的设备,其中该性能数据包含与事务相关的经过时间,此事务与分布式应用有关。
19.根据权利要求14的设备,其中该性能数据包括下列之中的至少一个时间标签、时延、与应用组件相关的标识、及与涉及分布式应用的事务相关的标识。
20.根据权利要求14的设备,其中该性能数据的格式包含″关键字值″格式。
21.根据权利要求20的设备,其中该关键字包含前缀,用以标识数据格式;及可变后缀,用以将应用组件标识为定时源及事务序列源中的一个。
22.根据权利要求20的设备,其中该值包含时间标签与时延信息中的至少一个。
23.根据权利要求14的设备,其中n个应用组件可通过传输协议内嵌和传输性能数据,从而提供n级性能分解。
24.根据权利要求14的设备,其中该相关性能数据被报告给性能测量系统。
25.根据权利要求14的设备,其中该分布式应用在环球网上执行。
26.根据权利要求14的设备,其中该通信协议是超文本传输通信协议。
27.一种根据分布式应用的一或多个应用组件而使用的制造品,其中分布式应用的至少一部分被执行,包括含有一或多个程序的机器可读介质,所述程序在执行时实施下列步骤根据该应用组件中的一个,在用于传递有关该分布式应用的执行的事务数据的通信协议中,内嵌与该分布式应用的性能有关的数据,其中该性能数据被内嵌在通信协议中,而无须改变事务数据,使得可以将该内嵌性能数据与该事务数据传输给一或多个其它应用组件,从而在一或多个其它应用组件上可以获得相关应用性能数据和该事务数据。
全文摘要
本发明提供了根据应用性能分解而使用的技术,此技术利用了用于在分布式计算网络的应用组件之间传递事务的通信协议。明确而言,本发明扩充了通信协议,其中在协议中内嵌例如时间标签、时延测量数据的数据,而不是如既有方法那样扩充或改变应用或协议所传递的事务数据。因此,本发明可在此事务上提供了分布式应用组件的交互的自然相关,而无需修改应用或事务数据。因为相关与应用组件交互并行执行,所以只需要最小的数据管理开销,而且对于事务而言,可以实时进行相关性能分解。此外,分布式应用的后续处理阶段可解释通信协议,以搜集先前阶段的处理时延,以便对事务处置作出决定。
文档编号G06F11/34GK1524225SQ02806141
公开日2004年8月25日 申请日期2002年3月6日 优先权日2001年3月9日
发明者纳撒尼尔·米尔斯三世, 纳撒尼尔 米尔斯三世, 伊 克鲁格尔, 小雷罗伊·克鲁格尔, 斯瑞罗玛·M.·克里斯纳库玛, 玛 M. 克里斯纳库玛, 斯库兰特, 马克·斯库兰特, 海勒尔斯汀, 约瑟夫·海勒尔斯汀 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1