CN100568858C - 在分布式数据处理系统中监视报文的方法和系统 - Google Patents
在分布式数据处理系统中监视报文的方法和系统 Download PDFInfo
- Publication number
- CN100568858C CN100568858C CNB2005100999774A CN200510099977A CN100568858C CN 100568858 C CN100568858 C CN 100568858C CN B2005100999774 A CNB2005100999774 A CN B2005100999774A CN 200510099977 A CN200510099977 A CN 200510099977A CN 100568858 C CN100568858 C CN 100568858C
- Authority
- CN
- China
- Prior art keywords
- message
- server
- eas marker
- moving
- remote client
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L51/00—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
- H04L51/21—Monitoring or handling of messages
- H04L51/234—Monitoring or handling of messages for tracking messages
Abstract
本申请涉及在分布式数据处理系统中监视报文的方法和系统,以及产品。典型的实施例包括:将包含监视标记的报文放到服务器上的队列上;接收从所述服务器上的队列获取所述报文的调用;利用在服务器上运行的API出口程序,判断所述获取报文的调用是由在远程客户机上运行的过程发出的还是由在该服务器上运行的过程发出的;以及,如果所述获取报文的调用是由在服务器上运行的过程发出的,则利用所述API出口程序从所述报文移除所述监视标记。许多实施例还包括,如果所述获取报文的调用是由在远程客户机上的过程发出的,则利用在所述远程客户机上运行的通道出口程序从所述报文中移除所述监视标记。
Description
技术领域
本发明的技术领域是数据处理,更具体地,是用于在分布式数据处理系统中监视报文的方法、系统和产品。
背景技术
面向报文的中间件(Message oriented middleware (″MOM″))实现软件部件或者应用程序之间的通信方法。MOM系统既实现点到点功能,又实现公开-订购(publish-subscribe)功能。在点到点领域,源应用程序(“生产程序”(producer))产生用于目标应用程序(“消费程序”(consumer))的报文。这样的MOM系统常常被想像为对等设施,因为任何客户程序都可以用作生产程序或者消费程序,这取决于其在特定时刻的功能。就客户机-服务器的意义而言,也就是,任何客户机能够为任何其它客户机生产报文,或者消费来自其它任何客户机的报文。每一个MOM客户机一般连接到一个报文收发中介(messaging agent)(有时称为“队列管理器”),后者提供用于建立、发送、接收和读取报文的设备。
MOM系统支持松散连接而且一般来说异步的分布式数据通信。生产程序部件将报文发送到目的地(一般是报文队列),消费程序接收方能够从所述目的地检出所述报文。为了通信,生产程序和消费程序相互之间并不需要为了数据通信而相互可用(在线或者连接)。事实上,生产程序不需要知道有关消费程序的任何东西,消费程序也不需要知道有关生产程序的任何东西。生产程序和消费程序只需要知道使用什么报文格式和什么目的地(或者报文队列)。在这方面,报文收发不同于紧耦合(tightly coupled)技术,比如公用对象请求代理程序体系结构Common Object Request Broker Architecture(″CORBA″))或者Java的远程方法调用(Remote Method Invocation(″RMI″)),它们需要一个调用应用程序以知道远程应用程序的方法。
一条“报文”是从一个计算机应用程序电子传递到另一个计算机程序的一个信息单元。报文的例子通常包括电子邮件消息和数据通信协议比如HTTP或者TCP/IP中的消息。根据本发明的实施例中的许多消息都是在面向报文的中间件(MOM)中传递的信息的单元。MOM有一点儿不同于许多其它类型的报文。例如,电子邮件消息实现的是从人到人或者从软件应用程序到人的人类可读的通信。HTTP报文代表的是对特定计算机资源的请求以及对这样的请求的响应。而MOM报文用于软件应用程序和其它软件应用程序之间的通信,以实现业务逻辑。也就是说,MOM报文通常传递的是某种形式的业务逻辑(财务处理、在线销售或者市场营销、财务计算、保险业务等)的操作的输入数据或者输出数据。MOM系统的例子包括IBM的MQSeries产品、JMS(Java报文服务)以及MSMQ(微软报文队列)。
如上所述,MOM报文一般传递的是某种形式的业务逻辑的操作的输入数据或者输出数据。目前有可用的监视工具来通过从外部监视影响报文收发的因素来监视报文收发系统的性能。这样的传统的监视工具当前可以从许多公司获得,比如BMC Software TM,Bristol TM,NastelTM,QPasaTM,RecondaTM以及本领域技术人员所知的其它一些公司。这些传统的报文收发监视工具不使用监视其它类型的事务可用的技术,例如在事务开始时嵌入事务监视标记,并随每一阶段的事务或者每一项事务传递监视标记。在这样的事务监视工具中,事务监视标记一般是包含定义要被监视的事务的类型的信息、用来量度事务性能的度量标准以及有关事务所用的过程的信息的数据结构。当前可用的一种这样的事务监视应用程序是的Tivoli Monitoring forTransaction Performance Version 5.1(Tivoli事务性能监视5.1版,″TMTPTM″)。
传统的报文收发系统不在报文源向报文中嵌入事务监视标记,也不再目的地抽取监视标记,因为它们不提供将监视标记嵌入报文本身中的机制,也不提供判断消费过程是在远程客户机上运行(在这种情况下,在远程客户机上,应当移除监视标记)还是在服务器本身上运行(在这种情况下,在服务器上,应当移除监视标记)的机制。因此,一直存在对改进的用于监视分布式数据处理系统中的报文的方法、系统和产品的需要,需要它们能够判断在队列上获取报文的调用是由在远程客户机上运行的消费过程发出的,还是由在服务器上运行的消费过程发出的,如果获取报文的调用是由服务器上运行的过程发出的,则从报文中移除监视标记。
发明内容
提供了用于监视分布式数据处理系统中的报文的方法、系统和产品。典型的实施例包括:将包含监视标记的报文放到服务器上的队列上;接收从所述服务器上的队列获取所述报文的调用;利用在服务器上运行的API出口程序,判断所述获取报文的调用是由在远程客户机上运行的过程发出的还是由在该服务器上运行的过程发出的;以及,如果所述获取报文的调用是由在服务器上运行的过程发出的,则利用所述API出口程序从所述报文移除所述监视标记。许多实施例还包括:如果所述获取报文的调用是由在远程客户机上的过程发出的,则利用在所述远程客户机上运行的通道出口程序从所述报文中移除所述监视标记。
一些实施例包括:利用在远程客户机上运行的通道出口程序,向报文中插入监视标记。在许多这样的实施例中,利用在远程客户机上运行的通道出口程序在报文中插入监视标记是通过调用ARM API完成的。
一些实施例包括:利用在所述服务器上运行的API出口程序,在报文中插入监视标记。在许多这样的实施例中,利用在所述服务器上运行的API出口程序在报文中插入监视标记是通过调用ARM API完成的。
从下面对附图所示的本发明的实施例的详细说明可以更加明确本发明的上述以及其它目的、特征和优点。在附图中,相同的附图标记表示本发明的实施例中的相同的部件。
附图说明
图1图解了根据本发明的实施例能够监视报文的举例的数据处理系统;
图2是根据本发明的实施例可用于在分布式数据处理系统中监视报文的举例的计算机结构的流水线图;
图3是根据本发明的实施例可用于在分布式数据处理系统中监视报文的自动化计算装置的框图;
图4的流程图用于图解用于在分布式数据处理系统中监视报文的举例的方法;
图5是利用在远程客户设备上运行的通道出口程序在报文中插入监视标记的举例的方法的数据流图;
图6图解了利用在服务器上运行的API出口程序在报文中插入监视标记的另一个举例的方法。
具体实施方式
引言
在本说明书中,在很大的程度上,是就监视分布式数据处理系统中的报文的方法来描述本发明的。但是,本领域的普通技术人员会认识到,包括适当的编程装置以根据这里所描述的方法来工作的任何计算机系统也在本发明的范围之内。适当的编程装置包括指令计算机系统执行本发明的方法的各步骤的任何装置,例如包括:由处理单元和耦接到计算机存储器的算术逻辑电路构成的系统,这样的系统具有在计算机存储器中进行存储的能力,所述计算机存储器包括被配置为存储数据和本发明的方法的由处理单元来执行的程序指令和编程步骤的电子电路。
本发明还可以被实现在计算机程序产品比如盘或者其它记录介质中,用于与任何合适的数据处理系统一起使用。计算机程序产品的实施例可以利用任何用于机器可读信息的记录介质,包括磁性介质、光学介质或者其它合适的介质。本领域普通技术人员很容易认识到,任何具有合适的编程装置的计算机系统都能够执行实现在程序产品中的本发明的方法的步骤。本领域的普通技术人员很容易认识到,尽管在本说明书中描述的大多数实施例都是面向安装在计算机硬件上并在上面执行的软件的,但是,实现为固件或者硬件的替换实施例也在本发明的范围内。
在分布式数据处理系统中监视报文
下面结合始于图1的附图描述用于在分布式数据处理系统中监视报文的举例的方法、系统和产品。图1图示了根据本发明的实施例能够监视报文的举例的数据处理系统。图1的系统包括许多在网络中连接起来用于数据通信的计算机。图1的系统的每一个计算机都能够利用在报文源插入消息中的监视标记来监视分布式数据处理系统中的报文,并在消息目的地移除监视标记。图1的数据处理系统包括广域网(WAN)(101)和局域网(LAN)(103)。图1的架构的网络连接方面只是用于说明,而不是限制性的。事实上,根据本发明的实施例的用于在分布式数据处理系统中监视报文的系统可以被连接为LAN、WAN、内联网、互联网、因特网、Web(环球网)、万维网本身,或者本领域普通技术人员可以想到的其它连接。这样的网络是可以用来在在整个数据处理系统内连接在一起的各种设备和计算机之间提供数据通信连接的媒介。
在图1的例子中,服务器(106)实现LAN(103)和WAN(101)之间的网关、路由器或者桥。在图1的例子中,根据本发明的实施例,服务器(106)能够在分布式数据处理系统中监视报文。在分布式处理系统中,比如图1所举例的系统中,报文驻留于报文的生产程序和报文的消费程序之间的中间计算机上的中间报文队列中的情况并不少见。常常是,当源队列管理器和目标队列管理器之间没有直接的通信链路时,这样的报文就通过一个或者多个中间队列管理器。这样的消息就被说成是在生产过程和消费过程之间转发(中继,hop)。利用嵌在报文中的监视标记监视这样的系统是一个特别的挑战,因为必须在目的地将监视标记移除。也就是,消费过程必须移除监视标记。当报文驻留于中间队列中时,或者在生产程序和消费程序之间中继,并且消费过程当前正在客户机和服务器本身上同时运行时,必须判断报文是由远程客户机还是服务器上的目的地消费过程检出的。当目的地消费过程在服务器上运行时,服务器就是目的地,应当移除监视标记。当目的地消费过程在远程客户机上运行时,客户机(不是服务器)是目的地,应当在客户机上移除监视标记。
图1的服务器(106)能够接收从服务器(106)上的队列获取包含监视标记的报文的调用,利用在服务器上运行的API出口程序判断该获取报文的调用是由远程客户机上运行的过程发出的还是由服务器(106)本身上运行的过程发出的。如果该获取报文的调用是由服务器(106)上运行的过程发出的,则图1的举例的服务器(106)能够利用API出口程序从报文移除监视标记。“API出口程序”是在服务器上运行的修改典型MOM调用的软件。对于这样的由应用程序发出的修改的MOM调用,在队列管理器开始处理该调用之前调用API出口程序,在队列管理器完成对该调用的处理之后再次调用该API出口程序。在图1的例子中,在服务器上,API出口程序由服务器上的过程或者远程客户机上的过程发出的从队列获取报文的调用来激活。之后,API出口程序被编程为判断获取报文的调用是由远程客户机上运行的过程发出的还是由在服务器本身上运行的过程发出的。如果获取报文的调用是由服务器上运行的过程发出的,则API出口程序被编程为:在将该报文传递到在远程客户机上运行的消费过程之前,从报文中移除监视标记。
在图1的例子中,若干举例的远程客户设备包括PDA(112)、计算机工作站(104)、移动电话(110)和个人计算机(108)通过WAN(101)连接到服务器(106)以进行数据通信。支持网络的移动电话(110)通过无线链路(116)连接到WAN(101),PDA(112)通过无线链路(114)连接到WAN(101)。在图1的例子中,个人计算机(108)通过有线连接(120)连接到WAN(101),计算机工作站(104)通过有线连接(122)连接到WAN(101)。在图1的例子中,若干远程客户设备比如膝上型计算机(126)和个人计算机(102)通过LAN(103)连接到服务器(106)以进行数据通信。膝上型计算机(126)通过无线链路(118)连接到LAN(103),个人计算机(102)通过有线连接(124)连接到LAN(103)。
构成图1所示的举例的系统的服务器以及其它设备的布置只是用于说明,而不是限制性的。根据本发明的各种实施例的有用的数据处理系统可以包括本领域普通技术人员容易想到的图1未图示的另外的服务器、路由器、其它设备和对等结构。这样的数据处理系统中的网络可以支持许多数据通信协议,例如包括TCP/IP,HTTP,WAP,HDTP,以及本领域普通技术人员可以想到的其它协议。除了图1所示的硬件平台之外,本发明的各种实施例可以在各种硬件平台上实现。
为了进一步说明,图2给出了可用于根据本发明的实施例在分布式数据处理系统中监视报文的举例的计算机结构的流水线图。具体地,图2描述了一种举例的用于面向报文的中间件系统的结构,其例如可以用IBM的MQSeries产品、JMS(Java报文服务)、MSMQ(微软报文队列)或者本领域普通技术人员可以想到的其它报文收发系统来实现。图2的结构包括通过网络(216)连接到服务器(106)以用于数据通信的远程客户机(202),在该服务器上安装了管理报文队列(203)的操作的报文队列管理器(222)。报文队列(203)是一个其中可以存储和移除报文的多元素数据结构。
在图2的例子中,一个生产过程(206)运行在客户机(202)上。举例的生产过程(206)是在远程客户机上实现业务逻辑的计算机应用程序,其通过远程客户机(202)上运行的通道出口程序(212)、数据通信通道(214)和服务器(106)上的通道出口程序(213)将报文发送到服务器上的队列管理器(212),然后发到队列(203)。在将报文放到队列(203)上之前,在远程客户机(202)上运行的通道出口程序(212)在报文内插入监视标记。“通道出口程序”是在远程客户机(202)上运行、修改典型的MOM调用的软件。对于生产过程发出的这样的经过修改的MOM调用,在处理该调用之前激活通道出口程序。在图2的例子中,在将报文放到队列(203)上之前,被激活的通道出口程序(212)将监视标记插入报文中。
消费过程也是实现业务逻辑的计算机应用程序,从队列(203)获取报文。消费过程通过队列管理器从队列取得输入报文,并可以通过队列管理器将输出报文返回给队列。在根据业务逻辑从队列检出报文并处理报文时,在本说明书中将消费应用程序说成是在“消费”报文。在图2的例子中,图示了两个消费过程。一个消费过程(220)在服务器(106)上运行,通过安装在服务器(106)上的队列管理器(222)从队列(203)取得输入报文。在图2的例子中,另一个消费过程(230)在另一个远程客户机(204)上运行,通过安装在远程客户机(204)上的通道出口程序(236)从同一队列(203)取得输入报文。
在图2的例子中,在收到从队列(203)获取包含监视标记的报文的调用时,队列管理器(222)被编程为利用在服务器(106)上运行的API出口程序(226)判断要获得报文(406)的调用是由在远程客户机(204)上运行的过程(230)还是由在服务器(106)上运行的过程(220)发出的。如果要获取报文(406)的调用是由服务器(106)上运行的过程(220)发出的,则图2的队列管理器被编程为:在将报文传递到消费过程(220)之前,利用API出口程序(226)从报文(406)移除监视标记(408)。
在图2的例子中,如果要获得报文(406)的调用是由远程客户机(204)上的消费过程(230)发出的,则队列管理器(222)不移除标记(408),因为服务器(106)不是目的地。相反,队列管理器(222)将该消息传递到安装在远程客户机(204)上的通道出口程序(236)。在图2的例子中,在将报文传递到消费过程(230)之前,在远程客户机上运行的通道出口程序(236)从报文(406)移除监视标记(408)。
如上所述,根据本发明的在分布式数据处理系统对报文的监视一般是利用计算机,也就是自动化计算装置实现的。为了进一步说明,图3图解了一个自动化计算装置的框图,该计算装置包括可用于根据本发明的实施例在分布式数据处理系统中监视报文的计算机(134)。图3的计算机(134)包括至少一个计算机处理器(156)或者CPU,以及随机存取存储器(168)(RAM)。操作系统(154)存储在RAM(168)中。可用于根据本发明的实施例的操作系统包括Unix、Linux、Microsoft NTTM以及本领域普通技术人员可以想到的许多其它操作系统。图3的例子中的操作系统(154)被图示为在RAM(168)中,但是操作系统的许多部件一般也被存储在非易失性存储器(166)中。
存储在RAM(168)中的还有面向报文的中间件(302)。面向报文的中间件(MOM)在软件部件或者应用程序(306)之间实现通信方法。MOM系统既实现点到点功能,也实现公开-订购功能。MOM系统的例子包括IBM的MQSeries产品、JMS(Java报文服务)、以及MSMQ(微软报文队列)。
存在RAM(168)中的还有报文收发监视工具(304)。报文监视常常是由事务监视应用程序提供的,例如根据本发明的实施例加以修改的可从获得的Tivoli Monitoring for TransactionPerformance Version 5.1(″TMTPTM″)。图3的举例的报文监视工具(304)能够通过在报文源插入监视标记并在目的地从报文抽出监视标记来监视报文收发。监视标记一般是数据结构,其包含定义被监视的事务的类型(比如报文收发)的信息、用来量度事务的性能的度量标准,以及有关在报文内插入标记的过程的信息。在TMTP中,监视标记一般被称为“关联子”(correlator),其通过激活一个调用而被返回到ARM应用程序接口(API)中。“ARM”是用于进行应用程序响应时间测量的开放式API,可用于进行报文收发监视,提供用于获得称为“关联子”的测量标记的API。
存储在RAM中的还有应用程序(168)。图3的举例的应用程序(168)是实现业务逻辑、利用面向报文的中间件发送和接收报文的计算机应用程序。
图3的计算机(134)包括通过系统总线(160)连接到处理器(156)以及计算机的其它部件的非易失性计算机存储器(166)。非易失性计算机存储器(166)可以被实现为硬盘驱动器(170)、光盘驱动器(172)、电可擦可编程只读存储器空间(所谓的EEPROM′或者闪存)(174)、RAM驱动器(未图示),或者本领域普通技术人员可以想到的任何其它种类的计算机存储器。
图3的举例的计算机(134)包括通信适配器(167),所述通信适配器(167)用于实现数据通信(184)的到其它计算机(182)(包括服务器、客户机以及本领域普通技术人员可以想到的其它计算机)的连接,包括通过网络的连接。通信适配器实现用于数据通信的连接的硬件层次,通过它们,本地设备和远程设备或者服务器相互直接发送以及通过网络发送数据通信。通信适配器的可用于根据本发明的实施例在分布式数据处理系统中监视报文的例子包括用于有线拨号连接的调制解调器、用于有线LAN连接的以太网(IEEE 802.3)适配器以及用于无线LAN连接的802.11b适配器。
图3的举例的计算机包括一个或者多个输入输出接口适配器(178)。计算机中的输入输出接口适配器例如通过软件驱动程序或者计算机硬件实现面向用户的输入输出,用于控制向显示设备(180)比如计算机显示屏的输出,以及来自用户输入设备(181)比如键盘和鼠标的用户输入。
为了进一步说明,图4给出了用于图解在分布式数据处理系统中用于监视报文的举例的方法的流程图,其包括向报文(406)插入(401)监视标记(408)。监视标记(408)向报文(406)中的插入(401)是在报文源由可以在客户机或者服务器上运行的生产过程执行的。为了进一步说明,图5给出了图解通过利用在远程客户设备上运行的通道出口程序在报文(406)中插入监视标记(408)的举例的方法的数据流图。在图5的例子中,通道出口程序是在远程客户机上运行的修改典型的MOM放置调用(put call)比如MQSeries中的MQPUT或者MQPUT1的软件。当在客户机上运行的生产过程发出一个放置调用时,就在将报文放置到队列上之前激活所述通道出口程序(504)。图5的方法包括利用在远程客户机(410)上运行的通道出口程序(504)在报文(406)中插入(506)监视标记(408)。
在图5的方法中,利用在远程客户机(410)上运行的通道出口程序(504)在报文(406)中插入监视标记(408)是通过调用(508)ARM API(510)执行的。“ARM”是用于进行应用程序响应时间测量的开放式API,可用于进行报文收发监视,提供用于获得称为“关联子”的测量标记的API。激活arm_start()方法调用将向调用通道返回用于插入报文中的关联子。
如上所述,监视标记向报文中的插入可以由在客户机或者服务器上运行的生产过程执行。为了进一步说明,图6图解了用于利用在服务器上运行的API出口程序在报文(406)中插入监视标记(408)的另一个举例的方法。图6的方法包括利用在服务器(106)上运行的API出口程序(226)在报文(406)中插入(602)监视标记(408)。API出口程序是在服务器上运行的修改典型的MOM调用比如放置调用(put call)的软件。对于应用程序发出的这样的修改后的放置调用,API出口程序被激活以在报文内插入监视标记。
在图6的方法中,利用在服务器(106)上运行的API出口程序(226)在报文(406)中插入(602)监视标记(408)是通过调用(604)ARM API(510)执行的。“ARM”是用于进行应用程序响应时间测量的开放式API,可用于进行报文收发监视,提供用于获得称为“关联子”的测量标记的API。激活arm_start()方法调用将向调用API出口程序返回用于插入报文中的关联子。
如上所述,在报文源插入监视标记,在报文目的地移除监视标记。下面继续看图4:图4的方法包括将包含监视标记(408)的报文(406)放置(402)到服务器(106)上的队列(404)上。将包含监视标记(408)的报文(406)放置(402)到服务器(106)上的队列(404)上一般是这样执行的:通过调用诸如connectQueueMgr()之类的方法连接到服务器上的队列管理器,通过调用诸如openQuue()之类的方法打开一个队列。队列被打开之后,将包含监视标记(408)的报文(406)放置(402)到服务器(106)上的队列(404)上可以这样执行:通过调用诸如put()这样的方法,将报文放置到队列上,然后通过调用诸如close()这样的方法关闭队列。
图4的方法包括接收(414)要从服务器(106)上的队列(404)获取(418)所述报文(406)的调用。类似于将报文放到队列上的方式,从服务器(106)上的队列(404)获取报文(406)一般是这样执行的:通过调用诸如connectQueueMgr()之类的方法连接到服务器上的队列管理器,通过调用诸如openQuue()之类的方法打开一个队列。队列被打开之后,从服务器(106)上的队列(404)获取报文(406)一般这样执行:通过调用诸如get()这样的方法,从队列获取报文,然后通过调用诸如close()这样的方法关闭队列。
图4的方法包括利用在服务器(106)上运行的API出口程序(226)判断(422)所述获取(418)报文(406)的调用是由在远程客户机(410)上运行的过程(230)发出的还是由在服务器(106)上运行的过程(220)发出的(422)。如上所述,API出口程序是在服务器上运行的、由MOM调用比如获取调用激活的软件。对于这样的经过修改后的获取调用,激活API出口程序来判断获取报文的调用是由远程客户机上运行的过程发出的还是由服务器(106)上运行的过程发出的。
一种判断(422)所述获取(418)报文(406)的调用是由在远程客户机(410)上运行的过程(230)发出的还是由在服务器(106)上运行的过程(220)发出的方法,是判断作为获取调用的参数传递的缓冲区是不是通过将缓冲区的第一位设置为表示调用由远程客户机激活的标记来生成的。在某些实施例中,当远程客户设备上的消费过程调用get()方法从队列获取报文时,在执行该获取调用之前,先激活远程客户机上的通道出口程序。该通道出口程序被编程为:通过将缓冲区的第一位设置为客户机标记,生成作为获取调用的参数传递的缓冲区。在许多这样的实施例中,所述通道出口程序还被编程为修改所述缓冲区本身的长度,以容纳被指定为客户机标记的额外比特位。在这样的实施例中,在服务器侧完成获取函数调用之前,并且在将来自队列的报文写到作为获取调用的参数传递的缓冲区中之前,安装在服务器上的队列管理器激活API出口程序。该API出口程序被编程为判断该缓冲区的被指定为客户机标记的第一位是否被设置了。如果没有设置该标记,则API出口程序缺省地判断是服务器本身上的过程发出了获取所述报文的调用。如果设置了该标记,则API出口程序判断是远程客户机上的过程发出了获取所述报文的调用。
如果获取(418)报文(406)的调用是由服务器(106)上运行的过程(220)发出(426)的,则图4的方法包括利用所述API出口程序(226)从所述报文(406)中移除(430)所述监视标记(408)。关于获取(418)报文(406)的调用是由服务器(106)上运行的过程(220)发出(426)的判断恰当地指出了消费过程是该报文的目的地,因此监视标记应当从报文中移除。
如果获取(418)报文(406)的调用不是由服务器(106)上运行的过程(220)发出(424)的,则API出口程序(226)判断获取(418)报文(406)的调用不是由服务器上运行的过程发出的,不移除监视标记。在设置缓冲区的第一位作为客户机标记以及修改缓冲区长度以容纳额外比特位的实施例中,API出口程序被编程为在将恢复了长度的缓冲区传到服务器上的队列管理器之前恢复缓冲区长度,以将报文写入该缓冲区。
图4的方法还包括:如果获取(418)报文(406)的调用是由远程客户机(410)上运行的过程(230)发出(424)的,则利用在远程客户机(410)上运行的通道出口程序(504)从报文(406)中移除(428)所述监视标记(408)。关于获取(418)报文(406)的调用是由客户机上运行的过程(220)而不是由服务器(106)上运行的过程发出(424)的判断恰当地指出了远程客户机是该报文的目的地,因此监视标记应当由在远程客户机上运行的通道出口程序从报文中移除。
从上面的说明可以理解,在本发明的各种实施例中可以作各种变化和修改而不脱离本发明的实质范围。本说明书中的描述只是用于说明的目的而不能被理解为限制性的。本发明的范围仅由所附权利要求的语言予以限制。
Claims (12)
1.一种在分布式数据处理系统中监视报文的方法,包括:
将包含监视标记的报文放到服务器上的队列上;
接收从所述服务器上的队列获取所述报文的调用;
利用在服务器上运行的应用程序接口API出口程序,判断所述获取报文的调用是由在远程客户机上运行的过程发出的还是由在该服务器上运行的过程发出的;以及
如果所述获取报文的调用是由在服务器上运行的过程发出的,则利用所述API出口程序从所述报文移除所述监视标记。
2.如权利要求1所述的方法,还包括:如果所述获取报文的调用是由在远程客户机上的过程发出的,则利用在所述远程客户机上运行的通道出口程序从所述报文中移除所述监视标记。
3.如权利要求1所述的方法,还包括:利用在远程客户机上运行的通道出口程序,向报文中插入监视标记。
4.如权利要求3所述的方法,其中,利用在远程客户机上运行的通道出口程序在报文中插入监视标记的步骤还包括调用应用程序响应时间测量ARM API。
5.如权利要求1所述的方法,还包括:利用在所述服务器上运行的API出口程序,在报文中插入监视标记。
6.如权利要求5所述的方法,其中,利用在所述服务器上运行的API出口程序在报文中插入监视标记的步骤还包括调用ARM API。
7.一种在分布式数据处理系统中监视报文的系统,包括:
将包含监视标记的报文放到服务器上的队列上的装置;
接收从所述服务器上的队列获取所述报文的调用的装置;
判断装置,利用在服务器上运行的应用程序接口API出口程序,判断所述获取报文的调用是由在远程客户机上运行的过程发出的还是由在该服务器上运行的过程发出的;以及
用于如果所述获取报文的调用是由在服务器上运行的过程发出的,则利用所述API出口程序从所述报文移除所述监视标记的装置。
8.如权利要求7所述的系统,还包括:用于如果所述获取报文的调用是由在远程客户机上的过程发出的,则利用在所述远程客户机上运行的通道出口程序从所述报文中移除所述监视标记的装置。
9.如权利要求7所述的系统,还包括:利用在远程客户机上运行的通道出口程序,向报文中插入监视标记的装置。
10.如权利要求9所述的系统,其中,利用在远程客户机上运行的通道出口程序在报文中插入监视标记的装置还包括调用应用程序响应时间测量ARM API的装置。
11.如权利要求7所述的系统,还包括:利用在所述服务器上运行的API出口程序,在报文中插入监视标记的装置。
12.如权利要求11所述的系统,其中,利用在所述服务器上运行的API出口程序在报文中插入监视标记的装置还包括调用ARMAPI的装置。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/014,059 | 2004-12-16 | ||
US11/014,059 US20060136932A1 (en) | 2004-12-16 | 2004-12-16 | Monitoring messages in a distributed data processing system |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1791072A CN1791072A (zh) | 2006-06-21 |
CN100568858C true CN100568858C (zh) | 2009-12-09 |
Family
ID=36597717
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2005100999774A Expired - Fee Related CN100568858C (zh) | 2004-12-16 | 2005-09-12 | 在分布式数据处理系统中监视报文的方法和系统 |
Country Status (2)
Country | Link |
---|---|
US (2) | US20060136932A1 (zh) |
CN (1) | CN100568858C (zh) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7814501B2 (en) * | 2006-03-17 | 2010-10-12 | Microsoft Corporation | Application execution in a network based environment |
GB0610303D0 (en) * | 2006-05-24 | 2006-07-05 | Ibm | A method for attaching to a partitioned queue spread across a plurality of messaging servers |
US7898964B1 (en) * | 2007-10-10 | 2011-03-01 | Sprint Communications Company L.P. | Queue information monitoring system and method |
US8621010B2 (en) * | 2008-03-17 | 2013-12-31 | International Business Machines Corporation | Method and system for protecting messaging consumers |
US8850452B2 (en) * | 2009-10-23 | 2014-09-30 | International Business Machines Corporation | Correlating parts of composite transactions involving asynchronous calling mechanisms |
US8973000B2 (en) * | 2010-05-11 | 2015-03-03 | Hewlett-Packard Development Company, L.P. | Determining multiprogramming levels |
US8438247B1 (en) * | 2010-12-21 | 2013-05-07 | Amazon Technologies, Inc. | Techniques for capturing data sets |
US8931107B1 (en) | 2011-08-30 | 2015-01-06 | Amazon Technologies, Inc. | Techniques for generating block level data captures |
US9405597B1 (en) | 2015-05-01 | 2016-08-02 | Salesforce.Com, Inc. | Centralized throttling service |
US20180197124A1 (en) * | 2017-01-10 | 2018-07-12 | Hitender Tholia | Method of generating, assigning and managing a software (or an electronic) token/stub/rolling number (a.k.a queue token or a wait token) either by selecting or scanning a QR Code or a Bar-Code or a NFC Tag or any other electronic interfaces through a personal mobile device/s AND invoking integrated services using published visual interfaces through a personal mobile device/s. |
CN109218364A (zh) * | 2017-07-04 | 2019-01-15 | 武汉安天信息技术有限责任公司 | 加密流量数据的监控方法、代理服务器端、待监控客户端和监控系统 |
CN114710311B (zh) * | 2022-02-11 | 2024-01-02 | 浙江高信技术股份有限公司 | 一种多项目消息管理方法和系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5826270A (en) * | 1995-12-28 | 1998-10-20 | Csg Systems, Inc. | Methods and systems for client or customer-site transaction processing in a distributed database system |
CN1197565A (zh) * | 1995-08-14 | 1998-10-28 | 国际商业机器公司 | 改进的邮件系统消息排队分配业务 |
CN1456005A (zh) * | 2000-07-07 | 2003-11-12 | 软线股份公司 | 消息传送代理系统 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020174174A1 (en) * | 2001-04-13 | 2002-11-21 | Anupriya Ramraj | System and method for monitoring execution time of a transaction |
CA2381737A1 (en) * | 2002-04-15 | 2003-10-15 | Ibm Canada Limited-Ibm Canada Limitee | Framework for managing data that provides correlation information in a distributed computing system |
US7496903B2 (en) * | 2003-08-12 | 2009-02-24 | Hewlett-Packard Development Company, L.P. | Synthesizing application response measurement (ARM) instrumentation |
US7194664B1 (en) * | 2003-09-08 | 2007-03-20 | Poon Fung | Method for tracing application execution path in a distributed data processing system |
-
2004
- 2004-12-16 US US11/014,059 patent/US20060136932A1/en not_active Abandoned
-
2005
- 2005-09-12 CN CNB2005100999774A patent/CN100568858C/zh not_active Expired - Fee Related
-
2008
- 2008-03-31 US US12/059,532 patent/US7979866B2/en not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1197565A (zh) * | 1995-08-14 | 1998-10-28 | 国际商业机器公司 | 改进的邮件系统消息排队分配业务 |
US5826270A (en) * | 1995-12-28 | 1998-10-20 | Csg Systems, Inc. | Methods and systems for client or customer-site transaction processing in a distributed database system |
CN1456005A (zh) * | 2000-07-07 | 2003-11-12 | 软线股份公司 | 消息传送代理系统 |
Also Published As
Publication number | Publication date |
---|---|
US20060136932A1 (en) | 2006-06-22 |
CN1791072A (zh) | 2006-06-21 |
US7979866B2 (en) | 2011-07-12 |
US20080172676A1 (en) | 2008-07-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100568858C (zh) | 在分布式数据处理系统中监视报文的方法和系统 | |
US7200676B2 (en) | Transmitting and receiving messages through a customizable communication channel and programming model | |
CN101305551B (zh) | 用于通信系统中的分布式工作流的构造和执行的方法、系统、网络节点和设备 | |
EP2378716B1 (en) | Systems for conducting communications among components of multidomain industrial automation system | |
EP2378740B1 (en) | Method for conducting communications among components of multidomain industrial automation system | |
CN101202714A (zh) | 消息传送环境中向服务提供方分发消息请求的方法和装置 | |
EP1590734A1 (en) | System and method for managing distributed computer processes | |
US20110258262A1 (en) | Systems and methods for conducting communications among components of multidomain industrial automation system | |
CN101098341A (zh) | 用于交互地从数据库流式传输数据的方法和设备 | |
US7634583B2 (en) | Systems and methods that utilize persisted push/pull state to provide reliable message publishing | |
US7886019B2 (en) | Service oriented architecture automation by cab or taxi design pattern and method | |
CN103034578A (zh) | 一种应用数据监控方法和装置 | |
CN101490700B (zh) | 智能卡终端侧数据和管理框架 | |
CN102648458A (zh) | 与可自配置外围装置兼容的主机/外围本地互连 | |
CN102185860A (zh) | 用于集成电路制造设备的标准化底层控制驱动系统 | |
EP2341692B1 (en) | Communication between integrated device and mobile application client on mobile personal communication device | |
KR101558289B1 (ko) | 메시지 처리 파이프라인 구성 | |
CN101411165B (zh) | 利用代理服务器控制嵌入式设备与外部的通信的方法和设备 | |
KR100788851B1 (ko) | 컴퓨팅 장치의 구성요소 사이의 지정된 접속을 결정하는 시스템 및 방법 | |
CN102144238A (zh) | Ic芯片、信息处理装置、软件模块控制方法、信息处理系统、信息处理方法以及程序 | |
CN102833357A (zh) | 一种与第三方通信的接口平台 | |
US8352610B2 (en) | Matching interest and availability of services in distributed federated service domains | |
CN108459902A (zh) | 用于处理订单业务的方法、装置及电子设备 | |
US7571017B2 (en) | Intelligent data multiplexer | |
CN100407141C (zh) | 一种实现软件结合的方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20091209 Termination date: 20100912 |