测量中间件响应时间的系统及方法

文档序号:6376192阅读:382来源:国知局
专利名称:测量中间件响应时间的系统及方法
技术领域
本申请涉及面向消息的中间件性能监测,更特别地涉及测量中间件响应时间的系统及方法。
背景技术
一般地,中间件是具有其自己的应用程序编程接口(“API”)以帮助隔离软件开发者与操作系统专用API的软件。中间件层经常位于客户端与服务器进程之间。通过测量与应用程序的中间件层关联的路由时间,问题可以被识别并纠正,导致改善的性能和可用性。当前,与中间件应用程序关联的路由时间可以通过改变应用程序本身的代码来测量。这种过程被认为是侵入的。用于测量路由时间的其它已知过程依靠大量资源并需要多个部件之间的同步。
因此,需要一种非侵入的系统及方法,其通过测量路由时间和存储器驻留时间例如存储于至少一个队列中的消息的驻留时间来监测中间件的性能。从而,可以做出关于配置的哪些部件是有问题的或潜在有问题的确定。也存在监测中间件性能但不需要同步的需要。

发明内容
本申请的一个方面提供一种监测中间件性能的方法。该方法可以包括确定沿着预先确定网络路由传送的消息的路由时间、确定至少一个队列驻留时间,该至少一个队列驻留时间反映至少一个其它消息存储于沿着预先确定网络路由设置的至少一个相应队列中的时间量,以及根据路由时间和该至少一个队列驻留时间计算中间件响应时间。
本申请的另一个方面提供一种监测中间件性能的方法。该方法可以包括确定用户定义的样品消息沿着预先确定的网络路由传送的路由时间,该路由时间反映样品消息从起始队列管理器传送到目的队列管理器然后沿着相同路由回到起始队列管理器的时间量、确定至少一个本地产生队列的至少一个队列驻留时间,该至少一个本地产生队列与起始队列管理器和/或目的队列管理器关联并且该至少一个队列驻留时间反映实际应用消息存储于该至少一个本地产生队列中的时间量,以及通过把路由时间加上该至少一个队列驻留时间来计算中间件响应时间。
本申请的又一个方面提供一种监测中间件性能的系统。该系统可以包括适合于产生样品消息和应用消息的计算机系统,以及电连接到计算机系统并编码有执行以下操作的指令的计算机存储器确定沿着预先确定的网络路由传送的样品消息的路由时间;确定至少一个队列驻留时间,该至少一个队列驻留时间反映应用消息存储于沿着预先确定的网络路由设置的至少一个相应队列中的时间量;以及根据路由时间和该至少一个队列驻留时间计算中间件响应时间。


图1说明监测中间件性能的本公开内容的示范方框图;图2说明确定路由时间、队列驻留时间以及响应时间的实施方案的示范流程图;图3说明确定路由时间的本公开内容的示范方框图;图4说明确定路由时间的实施方案的示范流程图;图5说明示范数据结构;图6说明确定队列驻留时间的本公开内容的示范方框图;图7说明确定队列驻留时间的实施方案的示范流程图;图8a说明开发路由的本公开内容的示范用户接口;图8b说明监测路由时间的本公开内容的示范用户接口;
图9a说明增加队列阈值的本公开内容的示范用户接口;以及图9b说明监测至少一个队列的本公开内容的示范用户接口。
具体实施例方式
在本申请的示范实施方案中,基于面向消息的中间件(“MOM”)的应用程序的应用程序中间件响应时间可以被估算而不改变相应的应用程序,因此是非侵入的,如这里所描述的。这种基于MOM的应用程序的例子是IBM出售的商标为WebSphereMQ的电子商务基础设施软件。WebSphereMQ是互连异构环境中的商务应用程序的中间件解决方案。中间件响应时间在本申请中描述为包括两个分量路由时间以及每个存储器驻留时间的总和。虽然存储器驻留时间在本申请中称为队列驻留时间,除了队列之外示范实施方案同样可适用于另外的存储媒介。另外,如这里所详细描述的,在确定中间件响应时间时,应用程序处理时间不被考虑。但是可选地,处理时间可以包含于响应时间确定中。
图1说明示范MOM网络100。MOM网络100包括三个示范队列管理器(“Qmgr”)或MOM控制器,在这里称为队列管理器队列管理器105a,队列管理器105b和队列管理器105c。队列管理器105a,105b,105c分别与节点A 150a,节点B 150b,节点C 150c和本地产生队列110a,110b,110c关联。此外,队列管理器105a,105b,105c分别与代理115,125,130和传送队列120a,120b,120c关联。MOM网络100中的队列管理器的数目以及与各个队列管理器关联的队列的数目及类型只是说明性的。数据可以从节点A 150a,节点B 150b和节点C 150c传送到集合点130。集合点130包括存储单元140和处理单元145。
每个传送队列与相应的远程队列定义关联,如可以在图1中看到。远程队列定义不是真实队列,而是就好像它们是真实队列一样被控制的别名。远程队列定义的作用在于定义物理目的队列名和队列管理器名。远程队列定义的使用对于本领域技术人员是众所周知的,因此不在这里详细描述。
下面将描述,样品消息沿着MOM网络100中与待监测应用程序所使用路径的相同的路径和网络路由从队列管理器105a传送来或传送到那里,并且样品消息沿着网络路由暂时存储于每个传送队列120a,120b,120c中。样品消息用来确定路由时间。另外,实际应用消息存储于本地产生队列110a,110b,110c处以确定相应的队列驻留时间。
图2说明估算MOM应用程序的应用程序中间件响应时间的示范流程图。为了测量MOM应用程序的估算响应时间,需要确定路由时间和至少一个队列驻留时间。确定应用程序中间件响应时间(“AMRT”)的示范方程如下AMRT=路由时间+∑(队列驻留时间)为了确定方程的路由时间分量,样品消息在205中产生。在示范实施方案中,样品消息包括分批在一起的多个消息。该多个消息的每个的大小可以是相同的或具有不同的大小。可选地,样品消息是单个消息。优选地,样品消息复制将在MOM网络100中传送的实际消息。分批于样品消息中的消息的数目以及每个消息的大小是用户控制的,例如通过与至少一个用户接口交互。
在210中样品消息被存储。与队列管理器105a关联的代理115将样品消息放入传送队列120a中。传送队列120a暂时存储待发送给位于队列管理器105b上的应用程序的另一部分的样品消息。与传送队列120a关联的远程队列定义指向或识别队列管理器105b,更特别地指向传送队列120b及其相关的远程队列定义。在消息传送之前,在215中起始时间由代理115确定。起始时间存储于样品消息500的字段505中,如图5中所示,并且在220中样品消息在MOM网络100中传送。
图4更详细地陈述样品消息的传送以及沿着路由的至少一个到达时间和至少发送时间的确定。在405中,样品消息从起始队列管理器105a经由中间队列管理器105b传送到目的队列管理器105c。特别地,样品消息首先传送到并暂时存储于传送队列120b中,因为与传送队列120a关联的远程队列定义指向传送队列120b。在节点B 150b处,在410中与代理125关联的通道或消息出口确定样品消息进入传送队列120b和退出传送队列120b的分别称为到达时间和发送时间的时间标记。到达时间和发送时间分别添加到样品消息的字段510a和字段510b中,如图5中所示。
接下来,与代理125关联的队列管理器105b上的应用程序分量取回暂时存储于传送队列120b中的样品消息并根据相应的远程队列定义将样品消息传送到目的队列管理器105c上的另一个应用程序分量。在目的队列管理器105c处,样品消息暂时存储于传送队列120c中。类似地,在节点C 150c处,在410中与代理130关联的通道或消息出口确定样品消息进入传送队列120c和退出传送队列120c的分别称为到达时间和发送时间的时间标记。到达时间和发送时间分别添加到样品消息的字段515a和字段515b中,如图5中所示。
与代理130关联的队列管理器105c上的应用程序分量取回暂时存储于传送队列120c中的消息并在415中根据相应的远程队列定义经由中间队列管理器105b将样品消息传送回起始队列管理器105a。在示范实施方案中,样品消息沿着与样品消息行驶到达目的队列管理器105c相同的路由传送回起始队列管理器105a,其目的在下面描述。样品消息的示范路由在图3中显示。样品消息的可选路由也在下面描述。在420中,类似于在410中,对于中间队列管理器105b确定样品消息的到达时间和发送时间。到达时间和发送时间存储于样品消息的字段520a和字段520b中,如图5中所示。一旦样品消息返回到起始队列管理器105a,在225中代理115确定结束时间,并且结束时间存储于样品消息的字段525中。在示范实施方案中,通过比较存储于每个接收消息的字段中的标识符,代理115确定从队列管理器105a传送的样品消息与接收消息相同。
指示图5中所示的各个时间标记的数据传送到集合点135。在230中,集合点135处的处理单元145确定路由时间。路由时间定义为样品消息从消息起源的队列管理器例如队列管理器105a跨越任何中间队列管理器传送到目的队列管理器例如队列管理器105c并使消息沿着相同路由从目的队列管理器105c传送回到起始队列管理器所花费的时间。在示范实施方案中,路由时间的测量依靠使用与待测量应用程序相同的路径通过MOM网络100发送样品消息的独立过程。如上所述,路由时间分量通过跨越测量中所涉及的所有队列管理器例如队列管理器105a,105b,105c创建一系列菊花链远程队列定义来测量。
基于存储于字段505中的起始时间标记和存储于字段525中的结束时间标记,在230中处理单元145确定路由时间。特别地,路由时间通过取起始时间标记和结束时间标记的差来确定。因为起始时间标记和结束时间标记与相同的队列管理器105a关联,同步不是一个问题。路由时间存储于集合点135处的存储单元140中。
此外,基于存储于字段510a...520b中的、中间队列管理器105b和目的队列管理器105c的到达时间标记和发送时间标记,队列管理器内时间由处理单元145确定。特别地,各个队列管理器的到达时间标记和相应发送时间之间的差代表队列管理器内时间。沿着MOM网络100的队列管理器内时间的总和代表总队列管理器处理时间。在示范实施方案这,沿着MOM网络100的队列管理器内时间的平均值也可以被计算。代表队列管理器内时间的数据也存储于存储单元140中。
除了确定路由时间分量之外,在235中为了计算中间件响应时间也需要队列驻留时间。图6和7说明队列驻留时间以及它如何在本申请的示范实施方案中被确定。队列驻留时间定义为实际应用消息存储于本地产生队列110a中、本地产生队列110b中以及本地产生队列110c中的时间,如图6中所述。队列驻留时间的总和称为总队列驻留时间。在示范实施方案中,队列驻留时间的测量依靠独立过程,其中各个代理采样放到各个本地产生队列上的实际应用消息,通过通道消息出口标识采样消息,以及捕捉消息从本地产生队列中拉出的时点。在示范实施方案中,消息以可调节的速率采样。基于消息的样本集,队列驻留时间被计算,如下面参考图7所描述的。
代理115,125,130分别确定本地产生队列110a,110b,110c的队列驻留时间。计算队列驻留时间的过程在这里仅参考代理115和本地产生队列110a来描述,因为该过程在MOM网络100中的节点B 150b和节点C 150c处被遵循。当应用程序将实际消息放到本地产生队列110a上时,在705中集合部件例如消息出口和API出口取消息的至少一个样品。在710中代理115确定并存储与采样消息关联的标识符(“ID”),并且分别在715和720中确定和存储放置时间标记。放置时间标记指示采样消息被放到本地产生队列110a上的时间。在示范实施方案中,ID设置于采样消息的字段中。当消息由应用程序分量从本地产生队列中取回时,在725中执行相应的取回消息的ID与存储的采样消息的ID之间的比较。如果实现绝对匹配,在730中称为获取时间标记的另一个时间标记被确定。获取时间标记指示从本地产生队列110a中取回采样消息的时间。然后在735中,本地产生队列110a的队列驻留时间由代理115确定。在示范实施方案中,队列驻留时间等于各个获取时间标记和各个放置时间标记之间的差。在740中所计算的队列驻留时间传送到集合点135。与每个队列管理器105a,105b,105c关联的队列驻留时间传送到集合点135。处理单元145将队列驻留时间加总以确定总队列驻留时间并将各个队列驻留时间和总队列驻留时间存储于存储单元140中。在又一个示范实施方案中,每个代理如下计算相应的队列驻留时间,即通过采样存储于队列中的多个消息、确定采样消息的相应放置时间标记和获取时间标记、计算多个队列驻留时间以及求时间间隔上队列驻留时间的平均值。
为了确定总队列驻留时间,MOM网络100中的队列管理器105a,105b,105c不需要同步,因为采样消息的放置时间标记和采样消息的获取时间标记之间的差对于各个本地产生队列而确定。
在240中包括称为路由时间的样品消息经由中间件网络传播的时间以及采样消息驻留于本地产生队列110a,110b,110c中的时间的估算应用程序中间件响应时间被确定。然后响应时间通过将路由时间与队列驻留时间的总和结合来确定。另外,网络时间可以通过从路由时间减去总队列管理器内时间来确定。
用于确定路由时间的本申请的示范实施方案参考保持与本地产生队列独立的链式传送队列来描述。通过使用传送队列,在MOM网络100上传送的实际应用消息的性能被仿真。但是,示范实施方案同样适合于使用本地产生队列和/或实际应用消息来确定路由时间从而响应时间。
通过将数据传送到集合点135和通过将该数据存储于存储单元140中,例如关于队列统计数字的额外性能信息可以被获得。这种队列统计数字包括平均队列驻留数据、高和低的队列驻留时间、获取时间标记的数值以及放置时间标记的数值。此外,可以设置阈值以产生警报,使得例如当队列驻留时间大于阈值时,对应相应队列的警报被传送。
另外,可以开发一个或多个用户接口,使得MOM网络100的性能可以被监测。用户可以监测响应时间、队列驻留时间和路由时间、这些时间是在预先确定的参数内还是超过阈值、样品消息中消息的个数以及每个消息的大小。例如,用户接口可以被开发并用来监测一个或多个队列的性能。
图8b说明用于监测本申请的至少一个队列的示范用户接口。此外,图7b用于监测本申请的路由时间的示范用户接口。用户接口可以包括所有队列的列表、每个队列的状态以及每个度量的阈值和当前值。所需要的参数及阈值可以由用户通过一个或多个附加的用户接口输入。图7a说明由代理用于开发样品消息将经历的路由的示范用户接口,而图8a说明用于增加特定代理的队列阈值的示范用户接口。
在示范实施方案中,路由构建应用程序用于定义样品消息的路径。使用路由构建应用程序,每个路由被命名并且各个队列管理器被添加。在本申请的示范实施方案中,样品消息从起始队列管理器105a经由中间队列管理器105b传送到目的队列管理器105c并且沿着精确相同的路径返回到起始队列管理器105a,如图3中所示。因此,起始队列管理器105a、中间队列管理器105b和目的队列管理器105c不需要同步以确定路由时间。可选地,通过改变与目的队列管理器105c关联的远程队列定义,样品消息可以经历不同的路径回到起始队列管理器105a。类似地,因为样品消息返回起始队列管理器105a,队列管理器不需要同步。但是,如果样品消息返回到起始队列管理器105a之外的队列管理器,那么该队列管理器和起始队列管理器105a需要同步以确定路由时间。
在又一种可选实施方案中,单向的路由时间可以被确定,这是样品消息从起始队列管理器105a传送到目的队列管理器105c的时间。起始队列管理器105a和目的队列管理器105c将需要同步以准确地估算路由时间。数据在集合点135处从各个队列管理器中收集,并且路由时间由处理单元145确定。
上面所描述的实施方案是本申请的说明性例子,不应当认为本申请局限于这些特定实施方案。本领域技术人员可以不背离在附加权利要求中定义的本发明的本质和范畴而实施各种改变和修改。
权利要求
1.一种监测中间件性能的方法,该方法包括确定沿着预先确定的网络路由传送的消息的路由时间;确定至少一个队列驻留时间,该至少一个队列驻留时间反映至少一个其它消息存储于沿着预先确定网络路由设置的至少一个相应队列中的时间量;以及根据路由时间和该至少一个队列驻留时间计算中间件响应时间。
2.根据权利要求1的方法,其中确定路由时间包括确定消息从源节点沿着预先确定的网络路由行进到目的节点然后回到源节点的时间量。
3.根据权利要求2的方法,其中确定路由时间包括确定指示消息何时从源节点发出的起始时间标记,将起始时间标记存储于消息的一个字段中,确定指示源节点何时从目的节点收到消息的结束时间标记,将结束时间标记存储于消息的另一个字段中,以及通过确定起始时间标记和结束时间标记之间的差计算路由时间。
4.根据权利要求1的方法,其中确定至少一个队列驻留时间包括采样多个应用消息,确定采样消息的标识符,该标识符存储于采样消息的字段中,存储采样消息的标识符,确定采样消息的放置时间标记,该放置时间标记指示采样消息何时放到本地产生队列上,将与从本地产生队列中取回的消息关联的标识符和采样消息的标识符比较,如果匹配被确定,那么确定采样消息的获取时间标记,该获取时间标记指示采样消息何时从本地产生队列中取回,以及通过确定放置时间标记和获取时间标记之间的差计算队列驻留时间。
5.根据权利要求1的方法,其中计算中间件响应时间包括将路由时间和该至少一个队列驻留时间加总。
6.根据权利要求1的方法,其中该消息是复制实际应用消息的用户定义的样品消息。
7.根据权利要求6的方法,其中用户定义的样品消息是分批在一起的多个消息,该多个消息具有相同的或不同的大小。
8.一种监测中间件性能的方法,该方法包括确定用户定义的样品消息沿着预先确定的网络路由传送的路由时间,该路由反映样品消息从起始队列管理器行进到目的队列管理器然后沿着相同路由回到起始队列管理器的时间量;确定至少一个本地产生队列的至少一个队列驻留时间,该至少一个本地产生队列与起始队列管理器和/或目的队列管理器关联并且该至少一个队列驻留时间反映实际应用消息存储于该至少一个本地产生队列中的时间量;以及通过把路由时间加上该至少一个队列驻留时间计算中间件响应时间。
9.一种监测中间件性能的系统,该系统包括适合于产生样品消息和应用消息的计算机系统;以及电连接到计算机系统并编码有用于执行以下操作的指令的计算机存储器确定沿着预先确定的网络路由传送的样品消息的路由时间;确定至少一个队列驻留时间,该至少一个队列驻留时间反映应用消息存储于沿着预先确定网络路由设置的至少一个相应队列中的时间量;以及根据路由时间和该至少一个队列驻留时间计算中间件响应时间。
全文摘要
用于监测中间件性能的系统及方法在这里描述。沿着预先确定的网络路由传送的样品消息的路由时间被确定,并且至少一个队列驻留时间被确定。该至少一个队列驻留时间反映实际应用消息存储于沿着网络路由设置的至少一个相应本地产生队列中的时间量。中间件响应时间根据该路由时间和该至少一个队列驻留时间来计算。
文档编号G06F15/173GK1833235SQ200380108165
公开日2006年9月13日 申请日期2003年12月30日 优先权日2003年1月3日
发明者安东尼·皮奇里利, 凯文·洛希, 托马斯·瑞安 申请人:计算机联合思想公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1