对分布式事务的离散元素的跟踪的制作方法

文档序号:6454929
专利名称:对分布式事务的离散元素的跟踪的制作方法
技术领域
本发明一般涉及通信网络,尤其涉及基于计算机的通信网络中 的数据跟踪。
背景技术
随着计算机技术的发展,对分布式计算的需求也随之发展。第一 计算机程序向第二计算机程序或数据源请求和利用资源、或者第 一 计 算机程序发送消息给第二计算机程序都是很常见的。经常地,第二计 算机程序或数据源可能在与第 一计算机程序分开的计算机系统上执 行,因此这两个程序之间通过计算机网络的通信可能是必要的。因而, 计算机网络内对单个事务的处理可能需要分布在整个网络上的资源 之间的大量通信或交互。
虽然资源的分布是处理信息的一种有效方式,但是它可能导致大 量交互在网络上传播(travel)。在任意时刻,当这样的请求、响应 和/或消息在计算机网络上的机器之间传播时,对于大型系统而言,处 理数以千计或甚至数以百万计的这样的请求、响应和/或消息都并非罕 见。为了管理这些计算机网络,系统管理员使用大量工具来观察这样 的网络的质量。计算机网络的质量可通过数个度量来测量,包括处理 器负载、存储器负载、通信传输时间以及网络流量。在上面所引用的相关申请中所描述的一个这样的工具包括利用
单独(individual)令牌(token)来标记(tag)和跟踪(track)计算
机网络上的交互的监视工具。该工具能够识别单个交互,并能够将某 些形式的相关交互分组到单独事务。虽然监视工具可跟踪某些事务, 但是在该相关申请中所定义的协议并不处理其中可能难以确定不同
应用之间哪些单独消息或交互彼此相关的涉及程序和/或数据源之间
曰jfcjs; 丄A 4i /i ,I"主jw rn丄1> s Ai ,w> 曰士 >V"*r _v农、'店乂a j丄银4tt rji》a rr j^a'i曰w、j itri "7 。 a >u , 炎/"^m^i^r,R '刀,^ -、贝'/,t、y开叮乂" 洽
上的交互可提供用于观察计算机网络质量的工具,但是这样的工具不
可能提供关于单独事务的处理的质量的信息。
因此,所需要的是一种改进的方法和系统,用于将计算机网络上
的两个或多个交互分组到事务。

发明内容
本发明一般提供用于将计算机网络上的两个或多个通信分组到 事务中的方法和系统。在一个实施例中, 一种用于跟踪两个应用之间 异步通信的计算机实现的方法可包括接收与第一应用相关联的第一 事件记录。第一事件记录可表明第一应用发送了第一通信到第二应 用。该方法还可包括接收与第二应用相关联的第二事件记录。第二事 件记录可表明第二应用从第 一应用接收了第二通信。该方法还可包括 确定由第二应用所接收的第二通信是否对应于由第一应用所发送的 第一通信。而且,该方法可包括从被配置成监视第一应用和第二应用 之间通信的监视应用接收第三事件记录。第三事件记录可包括事务标 识符,事务标识符用于将第一事件记录和第二事件记录关联成属于一 组与公共事务相关的一个或多个事件记录。
在一个实施例中,可提供一种包含程序产品的计算机可读存储介 质。所述程序产品在由处理器执行时可执行操作,所述操作可包括接 收与第 一应用相关联的第 一事件记录。第 一事件记录可表明第 一应用 发送了第 一通信给第二应用。所述操作还可包括接收与第二应用相关 联的第二事件记录。第二事件记录可表明第二应用从第一应用接收了第二通信。所述操作还可包括确定由第二应用所接收的第二通信是否 对应于由第一应用所发送的第一通信。而且,所述操作可包括从被配 置成监视第 一应用和第二应用之间通信的监视应用接收第三事件记 录。第三事件记录可包括事务标识符,所述事务标识符用于将第一事 件记录和第二事件记录关联成属于一组与公共事务相关的一个或多 个事件记录。
在一个实施例中, 一种用于监视分布式计算环境中应用之间的通 信的系统可包括被配置成发送第 一通信给第二应用的第 一应用。第一 通信可与第一事件记录相对应。所述系统还可包括被配置成从第一应
用接收第二通信的第二应用。第二通信可与第二事件记录相对应。所 述系统还可包括管理服务器,其被配置成确定由第二应用所接收的第 二通信是否对应于由第 一应用所发送的第 一通信。管理服务器可被进 一步配置成从监视应用接收第三事件记录。监视应用可被配置成监视 第一应用和第二应用之间的通信,并且第三事件记录可包括事务标识 符,事务标识符用于将第一事件记录和笫二事件记录关联成属于一组 与公共事务相关的一个或多个事件记录。


通过参考附图中所示出的实施例可对上面简要概述的本发明进 行更具体的描述,使得可详细地理解获得本发明的上述特征、优点和 目的的方式。
但是,应当注意,附图仅仅示出本发明的典型实施例,因此不应 当被认为是对其范围的限制,因为本发明可具有其它等效实施例。
图l是说明可在其中实施本发明的实施例的联网系统的框图2是说明根据本发明 一 个实施例的GPS一MAP事件记录的数据 结构的框图,其中GPS一MAP事件记录被用于将相关交互关联成事务;
图3是描绘根据本发明 一 个实施例的用于创建GPS一MAP事件记 录的过程的流程图4A是说明根据本发明 一个实施例的其中被监视的第 一应用发送交互到被监视的第二应用的情形的框图4B是说明根据本发明 一个实施例的其中发送和接收应用被监 视的交互期间的数据流的框图5 A是说明根据本发明 一 个实施例的其中未被监视的第 一 应用 发送交互到被监视的第二应用的情形的框图5B是说明根据本发明 一个实施例的其中发送应用未被监视而 接收应用被监视的交互期间的数据流的框图6A是说明根据本发明 一 个实施例的其中被监视的第 一应用发 送交互到未被监视的第二应用的情形的框图6B是说明根据本发明 一 个实施例的其中发送应用被监视而接 收应用未被监视的交互期间的数据流的框图7A是说明根据本发明 一个实施例其中未被监视的第 一应用发 送交互(interaction)到未4皮监^L的第二应用的情形的框图7B是说明根据本发明 一个实施例的其中发送应用和接收应用 都不被监视的交互期间的数据流的框图8是描绘根据本发明一个实施例的用于确定交互路由系统可发 送哪些事件记录给交互监视器的过程的流程图。
图9是描绘根据本发明 一 个实施例的用于确定交互的事务的过程 的流程图。
具体实施例方式
本发明一般提供用于将计算机网络上的两个或多个通信分组到 事务中的方法和系统。在一个实施例中, 一种用于跟踪两个应用之间 异步通信的计算机实现的方法可包括接收与第一应用相关联的第一 事件记录。第一事件记录可表明第一应用发送了第一通信给第二应 用。所述方法还可包括接收与第二应用相关联的第二事件记录。第二 事件记录可表明第二应用从第 一应用接收了第二通信。所述方法还可 包括确定由第二应用所接收的第二通信是否对应于由第 一应用所发 送的第一通信。而且,所述方法可包括从被配置成监视第一应用和第二应用之间通信的监视应用接收第三事件记录。第三事件记录可包括 事务标识符,事务标识符被用于将第一和第二事件记录关联成属于一 组与公共事务相关的一个或多个事件记录。
下面参考本发明的实施例。但是,应当理解,本发明不限于特定 描述的实施例。反而,以下特征和元素(无论是否与不同的实施例有 关)的任意组合都可用于实现和实践本发明。而且,在各种实施例中, 本发明相对现有技术提供了大量优点。但是,虽然本发明的实施例相 对于其它可能的解决方案和/或现有技术可获得优点,但是给定实施例 是否具有特定优点并不限制本发明。因此,下面的方面、特征、实施 例和优点仅仅是示意性的,并且不应当被认为是所附权利要求的元素 或对所附权利要求的限制,除非在一个或多个权利要求中明确记载。 类似地,对"本发明"的引用不应当被认为是对这里所公开的任何发明 主旨的概括,并且不应当被认为是所附权利要求的元素或对所附权利 要求的限制,除非在一个或多个权利要求中明确记栽。
本发明的 一 个实施例被实现为用于与计算机系统 一 起使用的程
序产品,计算机系统例如是图1所示出并在下面描述的网络环境100 。
程序产品的一个或多个程序定义了实施例(包括这里所描述的方法) 的功能,并且可被包含在多种计算机可读介质上。示意性的计算机可
读介质包括但不限于(i)永久存储在不可写存储介质(例如,计算 才几中的只读存储器i殳备,诸如可由CD-ROM驱动器读取的CD-ROM 盘)上的信息;(ii)存储在可写存储介质(例如,软驱中的软盘或 硬盘驱动器)上的可变更的信息;和(iii)由通信介质、诸如通过计 算机或电话网络(包括无线通信)传送给计算机的信息。后一种实施 例具体包括从因特网或其它网络下载的信息。这样的计算机可读介质 在携带指示本发明的功能的计算机可读指令时代表本发明的实施例。
^口在"End陽To-End Transaction Tracking in the Enterprise (企业 中端到端事务跟踪,,中所描述的,计算机系统可处理一个或多个应用 环境、其中可执行应用的软件环境。例如,应用环境可包括Java⑧2 Platform Enterprise Edition (J2EE )应用月良务器实例、IBM的
12WebSphere MQ的消息传递基础结构。上
述应用环境具有多个显著区别,但是它们用于同一个目的为用户应
用提供执行环境。
例如,J2EE⑧应用服务器是其中可运行小型服务程序(servlet)、
Enterprise Java Beans (EJB)以及其它J2EE应用的Java容器 (container)。示例性J2EE应用服务器包括WebSphere应用服务器 (WAS)和Weblogic⑧。分布式WAS和Weblogic应用服务器实例都被
实现为为Java虚拟机(JVM)提供主机服务(host)的单个地址空间
或Unix⑧进程。
类似地,CICS可以是分布式或z/OS 事务处理监视器 (Transaction Processing Monitor ) 。 CICS可以-波实现为包括多个区 域(地址空间)的子系统。但是,单个CICS区域——通常是应用拥有
区域(AOR: Application Owning Region )-可以净皮i人为是应用环
境。在AOR应用环境中,用户应用可作为事务或任务运行。
如同上面所暗指的,应用环境可具有一个或多个区域。区域可以 是可作为存储器一部分的地址空间。在某些实施例中,区域可以是进 程。区域可包括至少一个执行单元。通常,执行单元可以是可作为一 个单元执行并且可以具有开始和结束的一组指令。两个或多个执行单 元可通过交互而在彼此之间通信。这里所说的交互构成在整个计算机 网络上分布的资源之间的通信。而且, 一组交互可全部彼此相关,作 为一个公共作业、任务或功能(在这里称为事务)的部分。例如,为 了处理用户请求,第 一应用可发起在数据通信网络上与其它应用的大 量交互。
由执行单元发送和接收的交互可被收集器(collector)——也被
称为应用监视器(application monitor)-监视。应用监视器可监
视一个或多个应用环境。因此,在一个实施例中, 一个应用监视器可 监视大量应用环境,其中每个应用环境包括多个区域,每个区域具有 多个彼此之间可以通信的执行单元。以该方式进行可能是麻烦的,而 且可能为本文档增加不必要的复杂性。为了清楚起见,本文档描述两
13个应用之间的交互,但是本领域技术人员将认识到,交互可发生在上 面讨论的框架内,并且不应当被限制到这里所公开的特定实施例。
通常,被执行以实现本发明的实施例的例程(routine)可以是 操作系统的一部分或者是特定的应用、组件、程序、模块、对象或指 令序列。本发明的计算机程序通常包括将被本地计算机翻译成机器可 读格式并因此翻译成可执行指令的多个指令。同样,程序包括变量和 数据结构,其本地地驻留到程序或者在存储器中或存储设备上被找 到。此外,下文所描述的各种程序可基于其在本发明的特定实施例中 被实现用于的应用而被识别。但是,应当理解,以下的任何特定程序 术语仅仅为了方便而使用,因而本发明不应当被仅仅限制到由这样的 术语所标识和/或暗指的任何特定应用。
网络和计算机系统
图1是说明可在其中实施本发明的实施例的联网系统100的框图。 通常,联网系统100包括客户(例如用户的)计算机102 (示出了4个 这样的客户计算机102)和至少一个服务器134 (示出了3个这样的服 务器134)。客户计算才几102和服务器计算机134经由网络116连接。通 常,网络116可以是局域网(LAN)和/或广域网(WAN)。在一个特 定实施例中,网络116是因特网。
客户计算机102和服务器计算机134提供例如台式计算机、服务器 计算机、膝上型计算机、平板计算机等各种现有计算机系统的简化表 示。此外,客户机系统102可代表其它计算设备,诸如个人数字助理 (PDA)和支持无线标记语言(WML)的移动电话。但是,本发明 不限于任何特定计算系统,并且可被适配以在新的计算系统和设备可 用时利用它们。网络116可代表任何合适的网络,包括小型局域网、 企业内部网、诸如因特网的大型广域网,或其任意组合。
客户计算机102包括中央处理单元(CPU) 104,其经由总线130 被连接到内存(memory) 114、存储器(storage) 112、输入设备108、 输出设备110和网络接口设备124。输入设备108可以是用于向客户计算机102提供输入的任何设备。例如,可使用键盘、小键盘、光笔、 触摸屏、轨迹球、或语音识别单元、音频/视频播放器等等。输出设备 可以是用于提供输出给用户的任何设备,例如任何传统的显示屏或扬 声器组及其各自的接口卡,即显卡和声卡。虽然与输入设备108分开 示出,但是输出设备110和输入设备108可以组合。例如,可使用具有 集成的触摸屏的显示屏、具有集成的键盘的显示器、或与文字语音转 换器结合的语音识别单元。
网络接口设备128可以是任何进入/退出(entry/exit)设备,其被 配置成允许客户计算机102和服务器计算机134之间经由网络116的网 络通信。例如,网络接口设备128可以是网络适配器或其它网络接口 卡(NIC)。
存储器124优选是直接访问存储设备(DASD)。虽然作为单个 单元示出,但是它可以是固定和/或可移动存储设备的组合,诸如硬盘 驱动器、软盘驱动器、磁带驱动器、可移动存储卡或光存储器。内存 114和存储器112可以是跨多个主存储设备和辅助存储设备的一个虚 拟地址空间的一部分。
客户计算机102通常处于在内存114中所示出的操作系统122的控 制下。可有利地使用的示意性操作系统包括Linux⑧和Microsoft⑧的 Windows⑧。更一般地,可4吏用支持这里所7>开的功能(例如,通过 网络的应用间的通信)的任何操作系统。
位于内存114中的信息可以还包括一般性的应用118及其相关联 的监视应用120、以及网络资源124。 一般性的应用118可以是与数据 源和/或其它应用通信以完成任务的任何应用。在一个实施例中,数据 源和/或其它应用可以与一般性的应用118位于不同的客户计算机102 上。应用监视器120可跟踪一般性的应用118和另一应用或数据源之间 的所有交互,并且可将这样的交互的存在通过网络116发送到运行在 服务器134上的交互监视器152。网络资源124可被用来允许其它应用 经由网路接口128访问网络116。
内存114优选是足够大以保持本发明的必要的编程和数据结构的随机存取存储器。虽然内存114作为单个实体被示出,但是应当理解, 内存114实际上可包括多个模块,并且内存114可以多个级存在,从高 速寄存器和高速緩存器到较低速但是较大的DRAM芯片。
示意性地,内存114包括应用118,其中应用118当在CPU 104上 执行时提供对于在各个服务器计算机134之间交换信息以及在一个或 多个服务器计算机134处定位网络地址的支持。在一个实施例中,应 用118是包括基于网络的图形用户界面(GUI)的网络浏览器,其允许 用户导航(navigate)和显示位于因特网上的网页。但是,更一般地, 该应用可以是被配置成在客户计算机102和服务器计算机134之间传 送数据(例如HTML、 XML、 Java等)的瘦客户才几应用(thin client application )。
每个服务器计算机134通常包括CPU 136、内存144、网络接口设 备156、输入设备138、输出设备140和存储设备142,它们通过总线158 而彼此耦接。内存144可以是足够大以保持位于服务器134上的必要的 编程和数据结构的随机存取存储器。编程和数据结构可以由CPU 136 在操作过程中根据需要访问和执行。如图所示,内存144包含操作系 统154、交互路由系统(IRS: interaction routing system) 150、交互 监视器152以及消息传递控制器106。操作系统154可管理服务器硬件 和在服务器计算机134上执行的应用。IRS 150可帮助在不同客户计算 才几102上运行的两个或多个应用118之间的通信。作为说明,IRS 150 可以是ApacheTomcat⑧或IBM的WebSphere产品的实例。但是,更一 般地,可以想到,本发明可适用于任何应用服务器和应用。
交互监4见器152可利用由应用监—见器120和/或IRS 150所生成的 通信事件记录来确定网络116的状态。当消息从一个客户计算机102发 送到另 一个时,消息传递控制器106可临时将该消息存储在队列中。 该消息可以是事务的一部分,其中发起请求的第一应用要求来自第二 应用的返回消息。虽然IRS150、交互监视器152和消息传递控制器106 被描述为位于同一服务器134上,但是其每一个可独立地被包含在服 务器134中,而跟其它两个应用的位置无关。
16图l仅仅是用于联网的客户计算机102和服务器134的一种硬件/ 软件配置。本发明的实施例可应用于任何相当的硬件配置,无论计算 机系统是复杂的多用户计算设备、单用户工作站还是不具有其自己的 非易失性存储器的网络设备。而且,应当理解,虽然参考包括HTML、 XML和Java编程语言的特定语言,但是本发明不限于特定语言、标准 或版本。因此,本领域技术人员将认识到,本发明可适用于其它语言, 并且本发明还可适用于特定语言的将来的变化,以及现在还未知的其 它语言。而且,IRS150和消息传递控制器106仅仅是示意性的,并且 可以想到被适配以支持任何已知和未知的协议/功能的其它实施例。
GPS—MAP事件记录
事件记录限定在网络116上传播的交互的一个或多个方面,并且 可由连接到网络116的各种应用(例如118、 120和150)生成。可选地, 事件记录一旦被生成就可以被发送到监视工具,以帮助测定网络性 能。如在相关申请"End國to-End Transaction Tracking in the Enterprise"中所概述的,协议(下面也被概述)利用被称为全局发布 服务器(GPS: global publishing server )的监视工具,并且GPS事件 记录可^皮用于跟踪两个或多个应用118之间的交互。在一个实施例中, 存在两种主要类型的交互消息和调用(invocation)。但是,更一 般地,如上所述,交互指的是发生在被模拟(imitated)为公共作业、 任务或功能的一部分,即作为公共事务的一部分的两个或多个应用之 间的数据通信。
例如,交互包括从第 一应用118发送到消息传递控制106的两个应 用118之间的消息,其中消息可被临时存储,直到其被笫二应用118取 回(retrieve)。可利用以下事件记录来处理对消息的跟踪 GPS一PUT一START 、 GPS_PUT END 、 GPS_GET_START和 GPS—GET—END。在一个实施例中,当第一应用118开始和完成发送 消息到消息传递控制器106时,第 一 应用监视器120可将 GPS—PUT—START和GPS—PUT_END事件记录发送给交互监视器152。类似地,当第二应用118开始和完成从消息传递控制器106取回 消息时,第二应用监视器120可将GPS_GET—START和 GPS_GET—END事件记录发送给交互监视器152。
交互的另一种形式包括可从第一应用118直接发送到第二应用 118的两个应用118之间的调用(例如,i者如RMI/IIOP之类的远程过 程调用的形式)。第一应用118通常要求来自笫二应用118的响应交互。 可利用以下事件记录来处理对调用的跟踪GPS_INVOKE—START、 GPS—INVOKE—END 、 GPS_RECEIVE_START 和
GPS_RECEIVE_END。在一个实施例中,当第一应用118开始和完成 发送调用给第二应用118时,第一应用监视器120可将 GPS—IN VOKE—ST ART和GPS_INVOKE—END事件记录发送给交互 监视器152。类似地,当第二应用118开始和完成从第一应用118取回 调用时,第二应用监视器120可将GPS—RECEIVE—START和 GPS—RECEIVE—END事件记录发送给交互监视器152。
假设这两组事件记录之间的相似性,更多的例子将利用消息传递 类型事件记录,但是应当理解,调用类型事件记录同样可应用于本发 明。
在一个实施例中,可利用每个事件记录而将数据发送给交互监视 器152。这样的数据可包括应用标识符、令牌标识符和时间戳。应用 标识符是可指示导致了特定事件记录被发送给交互监视器152的应用 118的标识符。作为比较,令牌标识符是可指示导致了特定事件记录 被发送给交互监视器152的交互的标识符,时间戳是可指示特定事件 记录何时纟皮发送的标识符。
在一个实施例中,上面描述的协议可被用来获得各种应用之间的 交互的处理的端到端视图。这可通过比较由交互监视器152所接收的 事件记录(例如GPS—PUT—START ( app—ID , token_ID_A , timestamp )、 GPS—GET一START ( app一ID, token_ID_B, timestamp) 等)中的令牌标识符来实现。包含相同令牌标识符的事件记录可以是 单个交互的一部分。在某些情况下,特别是在同步通信中,交互监视器152可以能够分析交互的模式,并从而将两个或多个交互分组成事 务。特别地,这在对于同步交互发生已知路径(例如A-〉B和B->C) 时发生。因此,交互监视器152可将形成该路径的交互关联成一个事 件,例如A->B->C。在其它情况下,可能需要外部信息,以将相关 的交互分组。
在一个实施例中,关联事件记录可被添加到上面定义的协议中, 以提供这样的外部信息。关联事件记录可为每个交互而被发送,并且 可包含事务标识符,以将每个交互关联到事务。例如,GPS—MAP事 件记录可被交互监视器152用来将相关的交互关联到事务。GPS_MAP 事件记录是对于上述协议的必要的附加,使得其能力可被扩展到包括 将异步交互分组到事务中(如同这里详细描述的)。图2是说明根据 本发明一个实施例的GPS一MAP事件记录202的数据结构200的框图。 数据结构200可包含令牌标识符(token_ID ) 206和事务标识符 "ran—ID) 204。
图3是描绘根据本发明 一 个实施例的用于创建GPS—MAP事件记 录202的过程300的流程图。当交互路由系统(IRS ) 150从第一应用118 接收到交互时,过程从步骤302开始。如同所描述的,交互可以是第 一应用118对于来自第二应用118的信息的请求,或者可以是从第一应 用118到第二应用118的消息。
在步骤304,如同在End-to-End Transaction Tracking in the Enterprise中所概述的,IRS 150可将交互路由到第二应用118,如可 在交互的首标(header )部分中或根据存储在IRS 150中的预定义的交 互路由方案而指定的那样。在一个实施例中,附加功能可被添加到IRS 150中,使得可使用GPS—MAP事件记录202。因此,在步骤302, IRS 150 可创建空的GPS—MAP数据结构200 。
在步骤306, IRS 150可分析交互,确定其令牌标识符206,并利 用来自交互的令牌标识符206填充空的数据结构200。令牌标识符206 可被交互监视器152用来将GPS一MAP事件记录202与其它包含相同令 牌标识符206的事件记录相关联。在一个实施例中,在步骤308, IRS 150可通过将外部指定的规则 应用于交互而生成事务标识符204。事务标识符可被用来将每个交互 与事务相关联,如同下面描述的那样,并且外部指定的规则可由IRS 150定义,或者可由IRS 150的用户预先定义。规则可基于交互的任何 特征。例如,可指示IRS 150基于包含在交互中的数据、交互的始发 应用118的身份、交互的接收应用118的身份、交互所传播的网络路径 和/或交互的数据大小来标识事务。
在一个实施例中, 一旦已经生成事务标识符204,事务标识符204 就可被添加到数据结构200,如步骤310所示。在步骤312,完整的 GPS—MAP事件记录202可被发送给交互监视器152,其中GPS—MAP 事件记录202可变成与交互监视器152所接收的可包含相同令牌标识 符的多个事件记录相关联。
因此,由多个事件记录所描述的每个交互可变成与GPS—MAP事 件记录中所包含的事务标识符204相关联。
可替换地,GPS—MAP事件记录可由应用监视器120或任何其它 被配置用于分析在网络上传播的交互的应用118来生成。虽然关联事 件记录GPS一MAP在上面针对特定实施例;故定义,^f旦是本领域技术人 员将认识到,关联事件记录可被指定为任何事物,并可包含上面没有 描述的大量其它字段。例如,事件记录可包含时间戳、生成了关联事 件记录的服务器的标识、和/或特定事务标识符的大量实例。
关联事件记录到消息传递环境的应用
在一个实施例中,并非所有应用118都具有相关的应用监视器 120。因此,对于两个应用之间的交互,可能存在四种可能的情形 从被监一见的应用118到,皮监^f见的应用118的交互;从未^皮监碎见的应用 118到#皮监—见的应用118的交互,称为混合交互;从^皮监^L的应用118 到未被监视的应用118的交互,也是混合交互;从未被监视的应用118 到另 一未被监视的应用118的交互。图4A到图7B说明用于监视被配置 用于上述每种情形的交互和事务的各种实施例,如下面所述。两个被监视的应用之间的交互
在一个实施例中,应用118可具有相关联的应用监视器120。当应 用118发送消息时,应用监视器120可发送GPS—PUT—START和 GPS—PUT_END (以下记作GPS—PUT)事件记录给交互监视器152。 类似地,当应用118接收消息时,应用监视器120可发送 GPS—GET—START和GPS—GET—END (下文中记作GPS—GET )事件 记录给交互监视器152。如上所述,这些事件记录可帮助跟踪消息(或 更一般地,交互)。因此,每个被监视的组件可包括应用监视器120。
图4A是说明根据本发明 一个实施例的其中第 一被监视的应用 118a发送第一交互402给第二被监视的应用118b的情形400的框图。第 一应用118a可由第 一应用监碎见器120a监视,并且第二应用118b可由第 二应用监视器120b监视。如图所示,应用118a、 118b运行在分开的客 户计算机102a、 102b上。但是,应用118a、 118b可运行在同一客户计 算机102上。
在 一水忠. 必筐 一 吞百4m;i古从筮一 7^7 Jfl 11 劳i关?ll TRS
150,并且然后到第二应用118b时,第一应用监视器120a可发送 GPS—PUT事件记录404给交互监视器152。此外,IRS 150可发送 GPS—MAP事件记录406给交互监视器152,并且第二应用监视器120b 可发送GPS—GET事件记录408给交互监视器152。
图4B说明根据本发明 一 个实施例的在情形400中来自应用监视 器120a、 120b以及IRS 150的数据流450。应用标识符、或app—ID 454 是可指示导致了特定事件记录被发送给交互监视器152的应用118的 标识符。因此,来自第一应用监视器120a的事件记录包含appJD—A 454a,来自第二应用监视器120b的事件记录包含appJD—B 454b。
数据流450还说明第二应用118b发送第二交互452给第一应用 118a。在第二交互452中,令牌标识符456b不同于第一交互402中的令 牌标识符456a,因为每个单独交互通常具有其自己唯一的令牌标识符 456,因而允许交互监视器150标识每个单独交互。但是,在第一和第
21二交互402、 452这两者中,事务标识符458是相同的,从而说明这两 个交互402、 452可以是同一事务的部分。
在一个实施例中,可由第一应用监视器120a或第二应用监视器 120b (而不是IRS 150 )将GPS—MAP事件记录发送给交互监视器152。 这可能由于多种原因而发生。例如,IRS 150可能没被配置成发送 GPS—MAP记录;相反,应用监视器120可能被如此配置。
未被监视的应用发送交互到被监视的应用
图5A是说明根据本发明 一个实施例的其中未被监视的第 一应用 118a发送交互502到被监视的第二应用118b的情形500的框图。第二应 用118b可由应用监视器120b监视。如图所示,应用118a、 118b运行在 分开的客户计算机102a、 102b上。但是,应用118a、 118b可运行在同 一客户计算机102上。
在一个实施例中,当第一交互502^皮从第一应用118a发送到IRS 150、然后到第二应用118b时,IRS 150可发送GPS—PUT和GPS—MAP 事件记录504给交互监视器152。而且,应用监视器120b可发送 GPS—GET事件记录506给交互监视器152。重要的是,这可允许完全 监视其中并非所有组件都被监视的事务。
图5B说明根据本发明 一 个实施例的在情形500中来自应用监视 器120b以及IRS 150的数据流550。在情形500中,IRS 150上的配置文 件可规定第一应用118a不被监视。因此,除了GPS—MAP事件记录之 外,IRS 150还可发送与笫一应用118a相关联的GPS—PUT事件记录, 使得交互502的完整记录可出现在交互监视器上。
在一个实施例中,IRS 150上的配置文件可能不指定与第一应用 118a相关联的应用标识符,因而IRS 150可将与GPS—MAP事件记录一 起使用的相同事务标识符552替换到GPS—PUT事件记录中。可替换地, IRS 150上的配置文件可指定与第一应用118a相关联的应用标识符, 并且IRS 150可将该应用标识符包括在GPS一PUT事件记录中。因此, 交互监视器152所接收的事件记录可与上面参考图4A和4B所述的那些事件记录一样完整。在任一种情况中,交互监视器152可使用事件记 录来完全描绘交互,包括将交互与事务相关联。在示例性情形500中, 没有令牌标识符554可从第一应用118a传递给IRS 150。因此,IRS 150 可为交互502生成令牌标识符554。
在一个实施例中,可由应用监视器120b (而不是IRS 150)将 GPS—PUT和GPS—MAP事件记录发送给交互监视器152。这可能由于 多种原因而发生。例如,IRS 150可能没被配置成发送事件记录;相 反,应用监视器120可能被如此配置。可替换地,IRS150和应用监视 器120可通信以便在确定两者中哪一个将发送与交互相关联的事件记 录之前,确定两者中哪一个拥有更多的可用来描述交互的数据。
被监视的应用发送交互到未被监视的应用
图6A是说明根据本发明 一个实施例的其中被监视的第 一应用 118a发送交互602到未被监视的第二应用118b的情形600的框图。第一 应用118a可由应用监^L器120b监3见。如图所示,应用118a、 118b运4亍 在分开的客户计算机102a、 102b上。但是,应用118a、 118b可运行在 同一客户计算机102上。
在一个实施例中,当第一交互602被从第一应用118a发送到IRS 150,然后到第二应用118b时,应用监视器120a可发送GPS—PUT事件 记录604给交互监4见器152。而且,IRS 150可发送GPS—MAP和 GPS—GET事件记录606给交互监视器152。重要的是,这可允许完全 监视其中并非所有组件都被监视的事务。
图6B说明根据本发明 一 个实施例的在情形600中来自应用监视 器120a以及IRS 150的数据流650。在情形600中,IRS 150上的配置文 件可规定第二应用118b不被监视。因此,IRS 150可发送与第二应用 118b相关联的GPS—GET事件记录以及GPS—MAP事件记录,使得交互 602的完整记录可出现在交互监视器上。
在一个实施例中,IRS 150上的配置文件可能不指定与第二应用 118b相关联的应用标识符,并且因而IRS 150可将与GPS一MAP事件记
23录一起使用的相同事务标识符652替换到GPS—GET事件记录中。可替 换地,IRS 150上的配置文件可指定与第二应用118b相关联的应用标 识符,并且IRS 150可将这个应用标识符包括在GPS—GET事件记录 中。因此,交互监视器152所接收的事件记录可与上面参考图4A和4B 所述的事件记录一样完整。在任一种情况中,交互监视器152可使用 事件记录来完全描绘交互,包括将交互与事务相关联。
在一个实施例中,可由应用监—见器120a (而不是IRS 150)将 GPS—MAP和GPS—GET事件记录发送给交互监视器152。这可由于多 种原因而发生。例如,IRS 150可能没被配置成发送事件记录;相反, 应用监视器120可能被如此配置。可替换地,IRS 150和应用监视器120 可通信以便在确定两者中哪一个将发送与交互相关联的事件记录之 前,确定两者中的哪一个拥有更多的可用来描述交互的数据。
两个未^皮监^L的应用之间的交互
图7A是说明根据本发明 一个实施例的其中未被监视的第 一应用 118a发送交互702到未被监视的第二应用118b的情形700的框图。如图 所示,应用118a、 118b运行在分开的客户计算机102a、 102b上。但是, 应用118a、 118b可运行在同一客户计算机102上。
在一个实施例中,当第一交互702^皮从第一应用118a发送到IRS 150,然后到第二应用118b时,IRS 150可发送GPS—PUT、 GPS—MAP 和GPS—GET事件记录704给交互监视器152。重要的是,这可允许完 全监视其中并非所有组件都被监视的事务。
图7B说明根据本发明 一 个实施例的在情形700中来自IRS 150的 数据流750。在所描绘的情形700中,IRS 150可知道应用118a、 118b 都没被监视。因此,IRS 150可发送与第一和第二应用118a、 118b相 关联的GPS—PUT和GPS—GET事件记录以及GPS—MAP事件记录,使 得交互702的完整记录可出现在交互监视器上。
在一个实施例中,IRS 150上的配置文件可不指定与任一应用 118a、 118b相关联的应用标识符,并且因而IRS 150可将与GPS—MAP事件记录一起使用的相同事务标识符752替换到GPS一PUT和 GPS—GET事件记录中。可替换地,IRS 150上的配置文件可指定与这 一个或两个应用118a、 118b相关联的应用标识符,并且IRS 150可将 这个应用标识符包括在GPS—PUT和/或GPS—GET事件记录中一个或 两个。因此,交互监视器152所接收的事件记录可与上面参考图4A和 4B所述的那些事件记录一样完整。在任一种情况中,交互监视器152 可使用事件记录来完全描绘交互,包括将交互与事务相关联。在示例 性情形700中,没有令牌标识符754可从第一应用118a传递给IRS 150。 因此,IRS 150可为交互702生成令牌标识符754。
在一个实施例中,IRS 150上的配置文件可不规定给定应用118 是否具有应用监视器120。从而,IRS 150可在假设应用118没有应用 监视器120的情况下工作,并且可发送必要的事件记录给交互管理器 152,如上所述。可安全地作出该假设,因为即使应用118实际上被应 用监视器120监视,IRS 152所发送的附加的事件记录也可以是可容易 ;陂标识和4交正的重复记录。
用于确定哪些事件记录应当^皮IRS发送的过程
图8是描绘根据本发明 一 个实施例的用于确定交互路由系统15 0 可发送哪些事件记录给交互监视器152的过程800的流程图。过程从步 骤802开始,其中IRS 150检测交互并生成适当的GPS—MAP事件记录, 如同上面针对过程300所描述的那样。
在步骤804, IRS 150确定交互是否在两个未被监视的应用118之 间。如果发起应用和接收应用118都未被监视,则在步骤806, IRS150 生成并发送GPS—PUT、 GPS—MAP和GPS—GET事件记录给交互监视 器152。
否则,在步骤808, IRS 150确定发起应用118和接收应用118是否 都被监视。如果是,则在步骤810, IRS 150生成并发送GPS—MAP事 件记录给交互监视器152。
否则,交互是在一个被监视的应用118和一个未被监视的应用118之间的混合交互,IRS 150在步骤812对其加以验证。如果IRS150确定 交互不是混合的,如在步骤816中,则可能已经发生了错误,并且IRS 150可忽略该交互。可替换地,IRS 150可对该错误记入日志。
如果在步骤812验证了交互是在被监视的应用118和未被监视的 应用118之间,则过程800可进行到步骤814,其中IRS 150可确定发起 交互的应用118是否^皮监一见。如果该发起应用118^皮监^f见,则过程800 可进行到步骤820,其中IRS 150生成并发送GPS—MAP和GPS—GET事 件记录给交互监视器152。
否则,发起应用118没被监视,并且过程800可进行到步骤818, 其中IRS 150生成并发送GPS—PUT和GPS—MAP事件记录给交互监视 器152。
在一个实施例中,可由应用监视器120或可以不必是IRS 150的另 一了解网络116上的通信的应用来将事件记录发送给交互监视器152。
用于关联交互与事务的过程
图9是描绘根据本发明 一 个实施例的用于确定交互的事务的过程 卯O的流程图。该过程可从步骤902开始,其中GPS—PUT、 GPS—MAP 和GPS一GET事件记录可被生成并发送给交互监视器102,如同上面针 对过程800所描述的那样。
在904,交互监视器152可通过定位所有包含相同令牌标识符的 GPS—PUT和GPS—GET事件记录来定义交互,如同上面所述的。 GPS—PUT和GPS—GET事件记录的完整集合可完全定义交互在网络 116上的传输。
一旦已经定义了交互,则在步骤906,交互监视器152可将交互与 GPS—MAP事件记录相关联,其中该GPS—MAP事件记录与定义了该交 互的GPS—PUT和GPS—GET事件记录包含相同的令牌标识符。
在步骤908,可由将GPS—MAP事件记录中的事务标识符与交互 相链接的交互监视器152来执行关联。如果不止一个交互具有相同的 交易标识符,则交互可以是相同事务的一部分。在一个实施例中, 一个或多个定义交互的GPS一PUT和/或 GPS—GET命令可能不出现在交互监视器152上。在这种情况下,交互 监视器152可利用事件记录的部分集来关联部分定义的交互与给定的 事务。
有利地,本发明的实施例允许同步和异步交互都被关联成组,其 中组中的每个交互是相同任务、作业或功能的一部分(即相同事务的 一部分)。而且,可在交互涉及被监视的和/或未被监视的应用时发生 该关联。这允许系统管理员根据否则无法区别的交互集合来分析各个 交互的元素的性能特性。
虽然前面涉及本发明的实施例,但是可设计其它和更多本发明的 实施例,而不背离本发明的基本范围,并且其范围由所附的权利要求 所确定。
为了避免疑惑,全篇说明书和权利要求中使用的术语"包括"不应 当4皮解释为"仅仅由...构成"。
权利要求
1. 一种跟踪两个应用之间的异步通信的计算机实现方法,包括接收与第一应用相关联的第一事件记录,其中所述第一事件记录表明所述第一应用发送了第一通信给第二应用;接收与所述第二应用相关联的第二事件记录,其中所述第二事件记录表明所述第二应用从所述第一应用接收了第二通信;确定所述第二通信是否对应于所述第一通信;以及从被配置成监视所述第一应用和所述第二应用之间的通信的监视应用接收第三事件记录,其中所述第三事件记录包括事务标识符,所述事务标识符用于将所述第一事件记录和所述第二事件记录相关联成属于一组与公共事务相关的一个或多个事件记录。
2. 如权利要求l所述的方法,其中所述第 一事件记录包括第 一应用标识符和第 一令牌; 所述第二事件记录包括第二应用标识符和第二令牌;并且 所述第三事件记录还包括第三令牌。
3. 如权利要求2所述的方法,其中确定由所述第二应用所接收的 所述第二通信是否对应于由所述第 一应用所发送的所述第 一通信包 括确定所述第 一令牌和所述第二令牌是否匹配。
4. 如权利要求2或3所述的方法,还包括将所述第一事件记录和 第二事件记录与一组与公共事务相关的一个或多个事件记录关联,其 中所述关联包括通过确定所述第一令牌、所述第二令牌和所述第三令牌是否匹 配,确定所述第三事件记录是否对应于所述第一事件记录和所述第二 事件记录;以及如果对应,则将所述第 一事件记录和所述第二事件记录与 一组包 含相同事务标识符的一个或多个事件记录关联,从而定义事务。
5. 如权利要求2、 3或4所述的方法,还包括将规则应用于第三 通信以生成所述事务标识符,其中如果所述第一令牌和所述第三令牌 匹配,则所述第三通信对应于由所述第 一应用所发送的所述第 一通
6. 如权利要求5所述的方法,其中所述规则是规定如何由包含在 所述第三通信中的一个或多个数据、所述第三通信的发送应用、所述 第三通信的接收应用、所述第三通信在计算机网络中所采用的路径以 及所述第三通信的大小生成所述事务标识符的外部指定的规则。
7. 如任一项前述权利要求所述的方法,其中所述异步通信是消 息和调用之一。
8. 如权利要求7所述的方法,其中所述异步通信是客户信息控制 系统(CICS⑧)调用、Java⑧应用服务器方法调用、WebSphere MQ 应用服务器消息、信息管理系统(IMS )消息、Weblogic⑧通信和 WebSphere⑧应用服务器(WAS)调用中之一。
9. 一种包括计算机可用介质的计算机程序产品,所述计算机可 用介质包括计算机可读程序,其中所述计算机可读程序当在计算机上 执行时使所述计算机执行操作,所述操作包括接收与第一应用相关联的第一事件记录,其中所述第一事件记录 表明所述第 一应用发送了第 一通信给第二应用;接收与所述第二应用相关联的第二事件记录,其中所述第二事件 记录表明所述第二应用从所述第 一应用接收了第二通信;确定所述第二通信是否对应于所述第一通信;以及从被配置成监视所述第一应用和所述第二应用之间的通信的监 视应用接收第三事件记录,其中所述第三事件记录包括事务标识符, 所述事务标识符用于将所述第一事件记录和所述第二事件记录相关 联成属于一组与公共事务相关的一个或多个事件记录。
10. 如权利要求9所述的计算机程序产品,其中 所述第一事件记录包括第一应用标识符和第一令牌; 所述第二事件记录包括第二应用标识符和第二令牌;并且 所述第三事件记录还包括第三令牌。
11. 如权利要求10所述的计算机程序产品,其中确定由所述第二 应用所接收的所述第二通信是否对应于由所述第一应用所发送的所 述第一通信包括确定所述第 一令牌和所述第二令牌是否匹配。
12. 如权利要求10或11所述的计算机程序产品,其中所述操作还 包括将所述笫一事件记录和第二事件记录与一組与公共事务相关的 一个或多个事件记录关联,其中所述关联包括通过确定所述第一令牌、所述第二令牌和所述第三令牌是否匹 配,确定所述第三事件记录是否对应于所述第一事件记录和所述第二 事件记录;以及如果对应,则将所述第一事件记录和所述第二事件记录与一组包 含相同事务标识符的一个或多个事件记录关联,从而定义事务。
13. 如权利要求IO、 11或12所述的计算机程序产品,其中所述操 作还包括将规则应用于第三通信,以生成所述事务标识符,其中如果所述 第 一令牌和所述第三令牌匹配,则所述第三通信对应于由所述第 一应用所发送的所述第一通信。
14. 如权利要求13所述的计算机程序产品,其中所述规则是规定 如何由包含在所述第三通信中的一个或多个数据、所述第三通信的发 送应用、所述第三通信的接收应用、所述第三通信在计算机网络中采 用的路径和所述第三通信的大小生成所述事务标识符的外部指定的 规则。
15. —种用于监视分布式计算环境中应用之间的通信的系统,所 述系统包括第一应用,被配置成发送第一通信给第二应用,其中所述第一通 信对应于第一事件记录;所述第二应用,被配置成从所述第一应用接收第二通信,其中所 述第二通信对应于第二事件记录;管理服务器,被配置成确定所述第二通信是否对应于所述第一通信;以及 从被配置成监视所述第 一应用和所述第二应用之间的通信 的监视应用接收第三事件记录,其中所述第三事件记录包括事务标识 符,所述事务标识符用于将所述第一事件记录和所述第二事件记录相 关联成属于一组与公共事务相关的一个或多个事件记录。
16. 如权利要求15所述的系统,其中 所述第一事件记录包括第一应用标识符和第一令牌; 所述第二事件记录包括第二应用标识符和第二令牌;以及 所述第三事件记录还包括第三令牌。
17. 如权利要求16所述的系统,其中所述管理服务器还被配置成 通过被配置成确定所述第 一令牌与所述第二令牌是否匹配,确定所述 第二通信是否对应于所述第一通信。
18. 如权利要求16或17所述的系统,其中所述管理服务器还被配置成通过确定所述第一令牌、所述第二令牌和所述第三令牌是否匹 配,确定所述第三事件记录是否对应于所述第一事件记录和所述第二 事件记录;以及如果对应,则将所述第一事件记录和所述第二事件记录与一组包 含相同事务标识符的一个或多个事件记录关联,从而定义事务。
19. 如权利要求16、 17或18所述的系统,其中所述监^f见应用还4皮 配置成将规则应用于第三通信,以生成所述事务标识符,其中如果所 述笫 一令牌和所述第三令牌匹配,则所述第三通信对应于由所述第一 应用所发送的所述第一通信。
20. 如权利要求19所述的系统,其中所述规则是规定如何从包含 在所述第三通信中的一个或多个数据、所述第三通信的发送应用、所 述第三通信的接收应出用、所述第三通信在计算机网络中采用的路径和 所述第三通信的大小生成所述事务标识符的外部指定的规则。
21. —种用于跟踪异步处理环境中分布式事务的离散元素的方 法,包括监视被配置成处理所述分布式事务的多个应用; 将所述异步处理环境中从第一应用到第二应用的异步数据通信相关联为所述分布式事务的一部分,其中所述异步数据通信是所述分布式事务的离散元素。
22. 如权利要求21所述的方法,其中所述监视包括 监视所述第 一应用和所述第二应用之间的所述异步数据通信; 生成描述所述通信的事件记录; 发送所述事件记录给管理服务器;以及将所述事件记录与相关事件记录关联,以描述所述异步数据通信 的处理。
23.如权利要求21或22所述的方法,其中所述关联包括 将描述第一异步数据通信的第一组一个或多个事件记录与描述 其它异步数据通信的第二组一个或多个事件记录相比较;从所述第二组事件记录中识别包含与所述第一组事件记录相同的事务标识符的事件记录子集;以及如果存在任何这样的事件记录子集,则确定所述第一异步数据通 信和由所述事件记录子集所描述的异步数据通信是所述分布式事务 的部分。
全文摘要
用于将计算机网络上的两个或多个通信分组成事务的方法和系统。一个实施例包括跟踪两个应用之间的异步通信的方法。所述方法包括接收与第一和第三应用相关联的第一和第三事件记录,其中第一和第三事件记录指示在第一和第三应用之间的交互的发生。所述方法还可包括从第二应用接收第二事件记录。第二事件记录可由管理服务器用于将所述第一和第三交互分组成属于公共事务。
文档编号G06F9/46GK101454756SQ200780018950
公开日2009年6月10日 申请日期2007年5月30日 优先权日2006年6月16日
发明者J-J·海勒 申请人:国际商业机器公司
再多了解一些
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1