專利名稱:在分布式數(shù)據(jù)處理系統(tǒng)中監(jiān)視報(bào)文的方法和系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明的技術(shù)領(lǐng)域是數(shù)據(jù)處理,更具體地,是用于在分布式數(shù)據(jù)處理系統(tǒng)中監(jiān)視報(bào)文的方法、系統(tǒng)和產(chǎn)品。
背景技術(shù):
面向報(bào)文的中間件(Message oriented middleware(″MOM″))實(shí)現(xiàn)軟件部件或者應(yīng)用程序之間的通信方法。MOM系統(tǒng)既實(shí)現(xiàn)點(diǎn)到點(diǎn)功能,又實(shí)現(xiàn)公開(kāi)-訂購(gòu)(publish-subscribe)功能。在點(diǎn)到點(diǎn)領(lǐng)域,源應(yīng)用程序(“生產(chǎn)程序”(producer))產(chǎn)生用于目標(biāo)應(yīng)用程序(“消費(fèi)程序”(consumer))的報(bào)文。這樣的MOM系統(tǒng)常常被想像為對(duì)等設(shè)施,因?yàn)槿魏慰蛻舫绦蚨伎梢杂米魃a(chǎn)程序或者消費(fèi)程序,這取決于其在特定時(shí)刻的功能。就客戶機(jī)-服務(wù)器的意義而言,也就是,任何客戶機(jī)能夠?yàn)槿魏纹渌蛻魴C(jī)生產(chǎn)報(bào)文,或者消費(fèi)來(lái)自其它任何客戶機(jī)的報(bào)文。每一個(gè)MOM客戶機(jī)一般連接到一個(gè)報(bào)文收發(fā)中介(messaging agent)(有時(shí)稱為“隊(duì)列管理器”),后者提供用于建立、發(fā)送、接收和讀取報(bào)文的設(shè)備。
MOM系統(tǒng)支持松散連接而且一般來(lái)說(shuō)異步的分布式數(shù)據(jù)通信。生產(chǎn)程序部件將報(bào)文發(fā)送到目的地(一般是報(bào)文隊(duì)列),消費(fèi)程序接收方能夠從所述目的地檢出所述報(bào)文。為了通信,生產(chǎn)程序和消費(fèi)程序相互之間并不需要為了數(shù)據(jù)通信而相互可用(在線或者連接)。事實(shí)上,生產(chǎn)程序不需要知道有關(guān)消費(fèi)程序的任何東西,消費(fèi)程序也不需要知道有關(guān)生產(chǎn)程序的任何東西。生產(chǎn)程序和消費(fèi)程序只需要知道使用什么報(bào)文格式和什么目的地(或者報(bào)文隊(duì)列)。在這方面,報(bào)文收發(fā)不同于緊耦合(tightly coupled)技術(shù),比如公用對(duì)象請(qǐng)求代理程序體系結(jié)構(gòu)Common Obiect Request Broker Architecture(″CORBA″))或者Java的遠(yuǎn)程方法調(diào)用(Remote Method Invocation(″RMI″)),它們需要一個(gè)調(diào)用應(yīng)用程序以知道遠(yuǎn)程應(yīng)用程序的方法。
一條“報(bào)文”是從一個(gè)計(jì)算機(jī)應(yīng)用程序電子傳遞到另一個(gè)計(jì)算機(jī)程序的一個(gè)信息單元。報(bào)文的例子通常包括電子郵件消息和數(shù)據(jù)通信協(xié)議比如HTTP或者TCP/IP中的消息。根據(jù)本發(fā)明的實(shí)施例中的許多消息都是在面向報(bào)文的中間件(MOM)中傳遞的信息的單元。MOM有一點(diǎn)兒不同于許多其它類型的報(bào)文。例如,電子郵件消息實(shí)現(xiàn)的是從人到人或者從軟件應(yīng)用程序到人的人類可讀的通信。HTTP報(bào)文代表的是對(duì)特定計(jì)算機(jī)資源的請(qǐng)求以及對(duì)這樣的請(qǐng)求的響應(yīng)。而MOM報(bào)文用于軟件應(yīng)用程序和其它軟件應(yīng)用程序之間的通信,以實(shí)現(xiàn)業(yè)務(wù)邏輯。也就是說(shuō),MOM報(bào)文通常傳遞的是某種形式的業(yè)務(wù)邏輯(財(cái)務(wù)處理、在線銷售或者市場(chǎng)營(yíng)銷、財(cái)務(wù)計(jì)算、保險(xiǎn)業(yè)務(wù)等)的操作的輸入數(shù)據(jù)或者輸出數(shù)據(jù)。MOM系統(tǒng)的例子包括IBM的MQSeries產(chǎn)品、JMS(Java報(bào)文服務(wù))以及MSMQ(微軟報(bào)文隊(duì)列)。
如上所述,MOM報(bào)文一般傳遞的是某種形式的業(yè)務(wù)邏輯的操作的輸入數(shù)據(jù)或者輸出數(shù)據(jù)。目前有可用的監(jiān)視工具來(lái)通過(guò)從外部監(jiān)視影響報(bào)文收發(fā)的因素來(lái)監(jiān)視報(bào)文收發(fā)系統(tǒng)的性能。這樣的傳統(tǒng)的監(jiān)視工具當(dāng)前可以從許多公司獲得,比如BMC SoftwareTM,BristolTM,NastelTM,QPasaTM,RecondaTM以及本領(lǐng)域技術(shù)人員所知的其它一些公司。這些傳統(tǒng)的報(bào)文收發(fā)監(jiān)視工具不使用監(jiān)視其它類型的事務(wù)可用的技術(shù),例如在事務(wù)開(kāi)始時(shí)嵌入事務(wù)監(jiān)視標(biāo)記,并隨每一階段的事務(wù)或者每一項(xiàng)事務(wù)傳遞監(jiān)視標(biāo)記。在這樣的事務(wù)監(jiān)視工具中,事務(wù)監(jiān)視標(biāo)記一般是包含定義要被監(jiān)視的事務(wù)的類型的信息、用來(lái)量度事務(wù)性能的度量標(biāo)準(zhǔn)以及有關(guān)事務(wù)所用的過(guò)程的信息的數(shù)據(jù)結(jié)構(gòu)。當(dāng)前可用的一種這樣的事務(wù)監(jiān)視應(yīng)用程序是IBM的Tivoli Monitoring forTransaction Performance Version 5.1(Tivoli事務(wù)性能監(jiān)視5.1版,″TMTPTM″)。
傳統(tǒng)的報(bào)文收發(fā)系統(tǒng)不在報(bào)文源向報(bào)文中嵌入事務(wù)監(jiān)視標(biāo)記,也不再目的地抽取監(jiān)視標(biāo)記,因?yàn)樗鼈儾惶峁⒈O(jiān)視標(biāo)記嵌入報(bào)文本身中的機(jī)制,也不提供判斷消費(fèi)過(guò)程是在遠(yuǎn)程客戶機(jī)上運(yùn)行(在這種情況下,在遠(yuǎn)程客戶機(jī)上,應(yīng)當(dāng)移除監(jiān)視標(biāo)記)還是在服務(wù)器本身上運(yùn)行(在這種情況下,在服務(wù)器上,應(yīng)當(dāng)移除監(jiān)視標(biāo)記)的機(jī)制。因此,一直存在對(duì)改進(jìn)的用于監(jiān)視分布式數(shù)據(jù)處理系統(tǒng)中的報(bào)文的方法、系統(tǒng)和產(chǎn)品的需要,需要它們能夠判斷在隊(duì)列上獲取報(bào)文的調(diào)用是由在遠(yuǎn)程客戶機(jī)上運(yùn)行的消費(fèi)過(guò)程發(fā)出的,還是由在服務(wù)器上運(yùn)行的消費(fèi)過(guò)程發(fā)出的,如果獲取報(bào)文的調(diào)用是由服務(wù)器上運(yùn)行的過(guò)程發(fā)出的,則從報(bào)文中移除監(jiān)視標(biāo)記。
發(fā)明內(nèi)容
提供了用于監(jiān)視分布式數(shù)據(jù)處理系統(tǒng)中的報(bào)文的方法、系統(tǒng)和產(chǎn)品。典型的實(shí)施例包括將包含監(jiān)視標(biāo)記的報(bào)文放到服務(wù)器上的隊(duì)列上;接收從所述服務(wù)器上的隊(duì)列獲取所述報(bào)文的調(diào)用;利用在服務(wù)器上運(yùn)行的API出口程序,判斷所述獲取報(bào)文的調(diào)用是由在遠(yuǎn)程客戶機(jī)上運(yùn)行的過(guò)程發(fā)出的還是由在該服務(wù)器上運(yùn)行的過(guò)程發(fā)出的;以及,如果所述獲取報(bào)文的調(diào)用是由在服務(wù)器上運(yùn)行的過(guò)程發(fā)出的,則利用所述API出口程序從所述報(bào)文移除所述監(jiān)視標(biāo)記。許多實(shí)施例還包括如果所述獲取報(bào)文的調(diào)用是由在遠(yuǎn)程客戶機(jī)上的過(guò)程發(fā)出的,則利用在所述遠(yuǎn)程客戶機(jī)上運(yùn)行的通道出口程序從所述報(bào)文中移除所述監(jiān)視標(biāo)記。
一些實(shí)施例包括利用在遠(yuǎn)程客戶機(jī)上運(yùn)行的通道出口程序,向報(bào)文中插入監(jiān)視標(biāo)記。在許多這樣的實(shí)施例中,利用在遠(yuǎn)程客戶機(jī)上運(yùn)行的通道出口程序在報(bào)文中插入監(jiān)視標(biāo)記是通過(guò)調(diào)用ARM API完成的。
一些實(shí)施例包括利用在所述服務(wù)器上運(yùn)行的API出口程序,在報(bào)文中插入監(jiān)視標(biāo)記。在許多這樣的實(shí)施例中,利用在所述服務(wù)器上運(yùn)行的API出口程序在報(bào)文中插入監(jiān)視標(biāo)記是通過(guò)調(diào)用ARM API完成的。
從下面對(duì)附圖所示的本發(fā)明的實(shí)施例的詳細(xì)說(shuō)明可以更加明確本發(fā)明的上述以及其它目的、特征和優(yōu)點(diǎn)。在附圖中,相同的附圖標(biāo)記表示本發(fā)明的實(shí)施例中的相同的部件。
圖1圖解了根據(jù)本發(fā)明的實(shí)施例能夠監(jiān)視報(bào)文的舉例的數(shù)據(jù)處理系統(tǒng);圖2是根據(jù)本發(fā)明的實(shí)施例可用于在分布式數(shù)據(jù)處理系統(tǒng)中監(jiān)視報(bào)文的舉例的計(jì)算機(jī)結(jié)構(gòu)的流水線圖;圖3是根據(jù)本發(fā)明的實(shí)施例可用于在分布式數(shù)據(jù)處理系統(tǒng)中監(jiān)視報(bào)文的自動(dòng)化計(jì)算裝置的框圖;圖4的流程圖用于圖解用于在分布式數(shù)據(jù)處理系統(tǒng)中監(jiān)視報(bào)文的舉例的方法;圖5是利用在遠(yuǎn)程客戶設(shè)備上運(yùn)行的通道出口程序在報(bào)文中插入監(jiān)視標(biāo)記的舉例的方法的數(shù)據(jù)流圖;圖6圖解了利用在服務(wù)器上運(yùn)行的API出口程序在報(bào)文中插入監(jiān)視標(biāo)記的另一個(gè)舉例的方法。
具體實(shí)施例方式
引言在本說(shuō)明書(shū)中,在很大的程度上,是就監(jiān)視分布式數(shù)據(jù)處理系統(tǒng)中的報(bào)文的方法來(lái)描述本發(fā)明的。但是,本領(lǐng)域的普通技術(shù)人員會(huì)認(rèn)識(shí)到,包括適當(dāng)?shù)木幊萄b置以根據(jù)這里所描述的方法來(lái)工作的任何計(jì)算機(jī)系統(tǒng)也在本發(fā)明的范圍之內(nèi)。適當(dāng)?shù)木幊萄b置包括指令計(jì)算機(jī)系統(tǒng)執(zhí)行本發(fā)明的方法的各步驟的任何裝置,例如包括由處理單元和耦接到計(jì)算機(jī)存儲(chǔ)器的算術(shù)邏輯電路構(gòu)成的系統(tǒng),這樣的系統(tǒng)具有在計(jì)算機(jī)存儲(chǔ)器中進(jìn)行存儲(chǔ)的能力,所述計(jì)算機(jī)存儲(chǔ)器包括被配置為存儲(chǔ)數(shù)據(jù)和本發(fā)明的方法的由處理單元來(lái)執(zhí)行的程序指令和編程步驟的電子電路。
本發(fā)明還可以被實(shí)現(xiàn)在計(jì)算機(jī)程序產(chǎn)品比如盤(pán)或者其它記錄介質(zhì)中,用于與任何合適的數(shù)據(jù)處理系統(tǒng)一起使用。計(jì)算機(jī)程序產(chǎn)品的實(shí)施例可以利用任何用于機(jī)器可讀信息的記錄介質(zhì),包括磁性介質(zhì)、光學(xué)介質(zhì)或者其它合適的介質(zhì)。本領(lǐng)域普通技術(shù)人員很容易認(rèn)識(shí)到,任何具有合適的編程裝置的計(jì)算機(jī)系統(tǒng)都能夠執(zhí)行實(shí)現(xiàn)在程序產(chǎn)品中的本發(fā)明的方法的步驟。本領(lǐng)域的普通技術(shù)人員很容易認(rèn)識(shí)到,盡管在本說(shuō)明書(shū)中描述的大多數(shù)實(shí)施例都是面向安裝在計(jì)算機(jī)硬件上并在上面執(zhí)行的軟件的,但是,實(shí)現(xiàn)為固件或者硬件的替換實(shí)施例也在本在分布式數(shù)據(jù)處理系統(tǒng)中監(jiān)視報(bào)文下面結(jié)合始于圖1的附圖描述用于在分布式數(shù)據(jù)處理系統(tǒng)中監(jiān)視報(bào)文的舉例的方法、系統(tǒng)和產(chǎn)品。圖1圖示了根據(jù)本發(fā)明的實(shí)施例能夠監(jiān)視報(bào)文的舉例的數(shù)據(jù)處理系統(tǒng)。圖1的系統(tǒng)包括許多在網(wǎng)絡(luò)中連接起來(lái)用于數(shù)據(jù)通信的計(jì)算機(jī)。圖1的系統(tǒng)的每一個(gè)計(jì)算機(jī)都能夠利用在報(bào)文源插入消息中的監(jiān)視標(biāo)記來(lái)監(jiān)視分布式數(shù)據(jù)處理系統(tǒng)中的報(bào)文,并在消息目的地移除監(jiān)視標(biāo)記。圖1的數(shù)據(jù)處理系統(tǒng)包括廣域網(wǎng)(WAN)(101)和局域網(wǎng)(LAN)(103)。圖1的架構(gòu)的網(wǎng)絡(luò)連接方面只是用于說(shuō)明,而不是限制性的。事實(shí)上,根據(jù)本發(fā)明的實(shí)施例的用于在分布式數(shù)據(jù)處理系統(tǒng)中監(jiān)視報(bào)文的系統(tǒng)可以被連接為L(zhǎng)AN、WAN、內(nèi)聯(lián)網(wǎng)、互聯(lián)網(wǎng)、因特網(wǎng)、Web(環(huán)球網(wǎng))、萬(wàn)維網(wǎng)本身,或者本領(lǐng)域普通技術(shù)人員可以想到的其它連接。這樣的網(wǎng)絡(luò)是可以用來(lái)在在整個(gè)數(shù)據(jù)處理系統(tǒng)內(nèi)連接在一起的各種設(shè)備和計(jì)算機(jī)之間提供數(shù)據(jù)通信連接的媒介。
在圖1的例子中,服務(wù)器(106)實(shí)現(xiàn)LAN(103)和WAN(101)之間的網(wǎng)關(guān)、路由器或者橋。在圖1的例子中,根據(jù)本發(fā)明的實(shí)施例,服務(wù)器(106)能夠在分布式數(shù)據(jù)處理系統(tǒng)中監(jiān)視報(bào)文。在分布式處理系統(tǒng)中,比如圖1所舉例的系統(tǒng)中,報(bào)文駐留于報(bào)文的生產(chǎn)程序和報(bào)文的消費(fèi)程序之間的中間計(jì)算機(jī)上的中間報(bào)文隊(duì)列中的情況并不少見(jiàn)。常常是,當(dāng)源隊(duì)列管理器和目標(biāo)隊(duì)列管理器之間沒(méi)有直接的通信鏈路時(shí),這樣的報(bào)文就通過(guò)一個(gè)或者多個(gè)中間隊(duì)列管理器。這樣的消息就被說(shuō)成是在生產(chǎn)過(guò)程和消費(fèi)過(guò)程之間轉(zhuǎn)發(fā)(中繼,hop)。利用嵌在報(bào)文中的監(jiān)視標(biāo)記監(jiān)視這樣的系統(tǒng)是一個(gè)特別的挑戰(zhàn),因?yàn)楸仨氃谀康牡貙⒈O(jiān)視標(biāo)記移除。也就是,消費(fèi)過(guò)程必須移除監(jiān)視標(biāo)記。當(dāng)報(bào)文駐留于中間隊(duì)列中時(shí),或者在生產(chǎn)程序和消費(fèi)程序之間中繼,并且消費(fèi)過(guò)程當(dāng)前正在客戶機(jī)和服務(wù)器本身上同時(shí)運(yùn)行時(shí),必須判斷報(bào)文是由遠(yuǎn)程客戶機(jī)還是服務(wù)器上的目的地消費(fèi)過(guò)程檢出的。當(dāng)目的地消費(fèi)過(guò)程在服務(wù)器上運(yùn)行時(shí),服務(wù)器就是目的地,應(yīng)當(dāng)移除監(jiān)視標(biāo)記。當(dāng)目的地消費(fèi)過(guò)程在遠(yuǎn)程客戶機(jī)上運(yùn)行時(shí),客戶機(jī)(不是服務(wù)器)是目的地,應(yīng)當(dāng)在客戶機(jī)上移除監(jiān)視標(biāo)記。
圖1的服務(wù)器(106)能夠接收從服務(wù)器(106)上的隊(duì)列獲取包含監(jiān)視標(biāo)記的報(bào)文的調(diào)用,利用在服務(wù)器上運(yùn)行的API出口程序判斷該獲取報(bào)文的調(diào)用是由遠(yuǎn)程客戶機(jī)上運(yùn)行的過(guò)程發(fā)出的還是由服務(wù)器(106)本身上運(yùn)行的過(guò)程發(fā)出的。如果該獲取報(bào)文的調(diào)用是由服務(wù)器(106)上運(yùn)行的過(guò)程發(fā)出的,則圖1的舉例的服務(wù)器(106)能夠利用API出口程序從報(bào)文移除監(jiān)視標(biāo)記?!癆PI出口程序”是在服務(wù)器上運(yùn)行的修改典型MOM調(diào)用的軟件。對(duì)于這樣的由應(yīng)用程序發(fā)出的修改的MOM調(diào)用,在隊(duì)列管理器開(kāi)始處理該調(diào)用之前調(diào)用API出口程序,在隊(duì)列管理器完成對(duì)該調(diào)用的處理之后再次調(diào)用該API出口程序。在圖1的例子中,在服務(wù)器上,API出口程序由服務(wù)器上的過(guò)程或者遠(yuǎn)程客戶機(jī)上的過(guò)程發(fā)出的從隊(duì)列獲取報(bào)文的調(diào)用來(lái)激活。之后,API出口程序被編程為判斷獲取報(bào)文的調(diào)用是由遠(yuǎn)程客戶機(jī)上運(yùn)行的過(guò)程發(fā)出的還是由在服務(wù)器本身上運(yùn)行的過(guò)程發(fā)出的。如果獲取報(bào)文的調(diào)用是由服務(wù)器上運(yùn)行的過(guò)程發(fā)出的,則API出口程序被編程為在將該報(bào)文傳遞到在遠(yuǎn)程客戶機(jī)上運(yùn)行的消費(fèi)過(guò)程之前,從報(bào)文中移除監(jiān)視標(biāo)記。
在圖1的例子中,若干舉例的遠(yuǎn)程客戶設(shè)備包括PDA(112)、計(jì)算機(jī)工作站(104)、移動(dòng)電話(110)和個(gè)人計(jì)算機(jī)(108)通過(guò)WAN(101)連接到服務(wù)器(106)以進(jìn)行數(shù)據(jù)通信。支持網(wǎng)絡(luò)的移動(dòng)電話(110)通過(guò)無(wú)線鏈路(116)連接到WAN(101),PDA(112)通過(guò)無(wú)線鏈路(114)連接到WAN(101)。在圖1的例子中,個(gè)人計(jì)算機(jī)(108)通過(guò)有線連接(120)連接到WAN(101),計(jì)算機(jī)工作站(104)通過(guò)有線連接(122)連接到WAN(101)。在圖1的例子中,若干遠(yuǎn)程客戶設(shè)備比如膝上型計(jì)算機(jī)(126)和個(gè)人計(jì)算機(jī)(102)通過(guò)LAN(103)連接到服務(wù)器(106)以進(jìn)行數(shù)據(jù)通信。膝上型計(jì)算機(jī)(126)通過(guò)無(wú)線鏈路(118)連接到LAN(103),個(gè)人計(jì)算機(jī)(102)通過(guò)有線連接(124)連接到LAN(103)。
構(gòu)成圖1所示的舉例的系統(tǒng)的服務(wù)器以及其它設(shè)備的布置只是用于說(shuō)明,而不是限制性的。根據(jù)本發(fā)明的各種實(shí)施例的有用的數(shù)據(jù)處理系統(tǒng)可以包括本領(lǐng)域普通技術(shù)人員容易想到的圖1未圖示的另外的服務(wù)器、路由器、其它設(shè)備和對(duì)等結(jié)構(gòu)。這樣的數(shù)據(jù)處理系統(tǒng)中的網(wǎng)絡(luò)可以支持許多數(shù)據(jù)通信協(xié)議,例如包括TCP/IP,HTTP,WAP,HDTP,以及本領(lǐng)域普通技術(shù)人員可以想到的其它協(xié)議。除了圖1所示的硬件平臺(tái)之外,本發(fā)明的各種實(shí)施例可以在各種硬件平臺(tái)上實(shí)現(xiàn)。
為了進(jìn)一步說(shuō)明,圖2給出了可用于根據(jù)本發(fā)明的實(shí)施例在分布式數(shù)據(jù)處理系統(tǒng)中監(jiān)視報(bào)文的舉例的計(jì)算機(jī)結(jié)構(gòu)的流水線圖。具體地,圖2描述了一種舉例的用于面向報(bào)文的中間件系統(tǒng)的結(jié)構(gòu),其例如可以用IBM的MQSeries產(chǎn)品、JMS(Java報(bào)文服務(wù))、MSMQ(微軟報(bào)文隊(duì)列)或者本領(lǐng)域普通技術(shù)人員可以想到的其它報(bào)文收發(fā)系統(tǒng)來(lái)實(shí)現(xiàn)。圖2的結(jié)構(gòu)包括通過(guò)網(wǎng)絡(luò)(216)連接到服務(wù)器(106)以用于數(shù)據(jù)通信的遠(yuǎn)程客戶機(jī)(202),在該服務(wù)器上安裝了管理報(bào)文隊(duì)列(203)的操作的報(bào)文隊(duì)列管理器(222)。報(bào)文隊(duì)列(203)是一個(gè)其中可以存儲(chǔ)和移除報(bào)文的多元素?cái)?shù)據(jù)結(jié)構(gòu)。
在圖2的例子中,一個(gè)生產(chǎn)過(guò)程(206)運(yùn)行在客戶機(jī)(202)上。舉例的生產(chǎn)過(guò)程(206)是在遠(yuǎn)程客戶機(jī)上實(shí)現(xiàn)業(yè)務(wù)邏輯的計(jì)算機(jī)應(yīng)用程序,其通過(guò)遠(yuǎn)程客戶機(jī)(202)上運(yùn)行的通道出口程序(212)、數(shù)據(jù)通信通道(214)和服務(wù)器(106)上的通道出口程序(213)將報(bào)文發(fā)送到服務(wù)器上的隊(duì)列管理器(212),然后發(fā)到隊(duì)列(203)。在將報(bào)文放到隊(duì)列(203)上之前,在遠(yuǎn)程客戶機(jī)(202)上運(yùn)行的通道出口程序(212)在報(bào)文內(nèi)插入監(jiān)視標(biāo)記。“通道出口程序”是在遠(yuǎn)程客戶機(jī)(202)上運(yùn)行、修改典型的MOM調(diào)用的軟件。對(duì)于生產(chǎn)過(guò)程發(fā)出的這樣的經(jīng)過(guò)修改的MOM調(diào)用,在處理該調(diào)用之前激活通道出口程序。在圖2的例子中,在將報(bào)文放到隊(duì)列(203)上之前,被激活的通道出口程序(212)將監(jiān)視標(biāo)記插入報(bào)文中。
消費(fèi)過(guò)程也是實(shí)現(xiàn)業(yè)務(wù)邏輯的計(jì)算機(jī)應(yīng)用程序,從隊(duì)列(203)獲取報(bào)文。消費(fèi)過(guò)程通過(guò)隊(duì)列管理器從隊(duì)列取得輸入報(bào)文,并可以通過(guò)隊(duì)列管理器將輸出報(bào)文返回給隊(duì)列。在根據(jù)業(yè)務(wù)邏輯從隊(duì)列檢出報(bào)文并處理報(bào)文時(shí),在本說(shuō)明書(shū)中將消費(fèi)應(yīng)用程序說(shuō)成是在“消費(fèi)”報(bào)文。在圖2的例子中,圖示了兩個(gè)消費(fèi)過(guò)程。一個(gè)消費(fèi)過(guò)程(220)在服務(wù)器(106)上運(yùn)行,通過(guò)安裝在服務(wù)器(106)上的隊(duì)列管理器(222)從隊(duì)列(203)取得輸入報(bào)文。在圖2的例子中,另一個(gè)消費(fèi)過(guò)程(230)在另一個(gè)遠(yuǎn)程客戶機(jī)(204)上運(yùn)行,通過(guò)安裝在遠(yuǎn)程客戶機(jī)(204)上的通道出口程序(236)從同一隊(duì)列(203)取得輸入報(bào)文。
在圖2的例子中,在收到從隊(duì)列(203)獲取包含監(jiān)視標(biāo)記的報(bào)文的調(diào)用時(shí),隊(duì)列管理器(222)被編程為利用在服務(wù)器(106)上運(yùn)行的API出口程序(226)判斷要獲得報(bào)文(406)的調(diào)用是由在遠(yuǎn)程客戶機(jī)(204)上運(yùn)行的過(guò)程(230)還是由在服務(wù)器(106)上運(yùn)行的過(guò)程(220)發(fā)出的。如果要獲取報(bào)文(406)的調(diào)用是由服務(wù)器(106)上運(yùn)行的過(guò)程(220)發(fā)出的,則圖2的隊(duì)列管理器被編程為在將報(bào)文傳遞到消費(fèi)過(guò)程(220)之前,利用API出口程序(226)從報(bào)文(406)移除監(jiān)視標(biāo)記(408)。
在圖2的例子中,如果要獲得報(bào)文(406)的調(diào)用是由遠(yuǎn)程客戶機(jī)(204)上的消費(fèi)過(guò)程(230)發(fā)出的,則隊(duì)列管理器(222)不移除標(biāo)記(408),因?yàn)榉?wù)器(106)不是目的地。相反,隊(duì)列管理器(222)將該消息傳遞到安裝在遠(yuǎn)程客戶機(jī)(204)上的通道出口程序(236)。在圖2的例子中,在將報(bào)文傳遞到消費(fèi)過(guò)程(230)之前,在遠(yuǎn)程客戶機(jī)上運(yùn)行的通道出口程序(236)從報(bào)文(406)移除監(jiān)視標(biāo)記(408)。
如上所述,根據(jù)本發(fā)明的在分布式數(shù)據(jù)處理系統(tǒng)對(duì)報(bào)文的監(jiān)視一般是利用計(jì)算機(jī),也就是自動(dòng)化計(jì)算裝置實(shí)現(xiàn)的。為了進(jìn)一步說(shuō)明,圖3圖解了一個(gè)自動(dòng)化計(jì)算裝置的框圖,該計(jì)算裝置包括可用于根據(jù)本發(fā)明的實(shí)施例在分布式數(shù)據(jù)處理系統(tǒng)中監(jiān)視報(bào)文的計(jì)算機(jī)(134)。圖3的計(jì)算機(jī)(134)包括至少一個(gè)計(jì)算機(jī)處理器(156)或者CPU,以及隨機(jī)存取存儲(chǔ)器(168)(RAM)。操作系統(tǒng)(154)存儲(chǔ)在RAM(168)中??捎糜诟鶕?jù)本發(fā)明的實(shí)施例的操作系統(tǒng)包括Unix、Linux、Microsoft NTTM以及本領(lǐng)域普通技術(shù)人員可以想到的許多其它操作系統(tǒng)。圖3的例子中的操作系統(tǒng)(154)被圖示為在RAM(168)中,但是操作系統(tǒng)的許多部件一般也被存儲(chǔ)在非易失性存儲(chǔ)器(166)中。
存儲(chǔ)在RAM(168)中的還有面向報(bào)文的中間件(302)。面向報(bào)文的中間件(MOM)在軟件部件或者應(yīng)用程序(306)之間實(shí)現(xiàn)通信方法。MOM系統(tǒng)既實(shí)現(xiàn)點(diǎn)到點(diǎn)功能,也實(shí)現(xiàn)公開(kāi)-訂購(gòu)功能。MOM系統(tǒng)的例子包括IBM的MQSeries產(chǎn)品、JMS(Java報(bào)文服務(wù))、以及MSMQ(微軟報(bào)文隊(duì)列)。
存在RAM(168)中的還有報(bào)文收發(fā)監(jiān)視工具(304)。報(bào)文監(jiān)視常常是由事務(wù)監(jiān)視應(yīng)用程序提供的,例如根據(jù)本發(fā)明的實(shí)施例加以修改的可從IBM獲得的Tivoli Monitoring for TransactionPerformance Version 5.1(″TMTPTM″)。圖3的舉例的報(bào)文監(jiān)視工具(304)能夠通過(guò)在報(bào)文源插入監(jiān)視標(biāo)記并在目的地從報(bào)文抽出監(jiān)視標(biāo)記來(lái)監(jiān)視報(bào)文收發(fā)。監(jiān)視標(biāo)記一般是數(shù)據(jù)結(jié)構(gòu),其包含定義被監(jiān)視的事務(wù)的類型(比如報(bào)文收發(fā))的信息、用來(lái)量度事務(wù)的性能的度量標(biāo)準(zhǔn),以及有關(guān)在報(bào)文內(nèi)插入標(biāo)記的過(guò)程的信息。在TMTP中,監(jiān)視標(biāo)記一般被稱為“關(guān)聯(lián)子”(correlator),其通過(guò)激活一個(gè)調(diào)用而被返回到ARM應(yīng)用程序接口(API)中?!癆RM”是用于進(jìn)行應(yīng)用程序響應(yīng)時(shí)間測(cè)量的開(kāi)放式API,可用于進(jìn)行報(bào)文收發(fā)監(jiān)視,提供用于獲得稱為“關(guān)聯(lián)子”的測(cè)量標(biāo)記的API。
存儲(chǔ)在RAM中的還有應(yīng)用程序(168)。圖3的舉例的應(yīng)用程序(168)是實(shí)現(xiàn)業(yè)務(wù)邏輯、利用面向報(bào)文的中間件發(fā)送和接收?qǐng)?bào)文的計(jì)算機(jī)應(yīng)用程序。
圖3的計(jì)算機(jī)(134)包括通過(guò)系統(tǒng)總線(160)連接到處理器(156)以及計(jì)算機(jī)的其它部件的非易失性計(jì)算機(jī)存儲(chǔ)器(166)。非易失性計(jì)算機(jī)存儲(chǔ)器(166)可以被實(shí)現(xiàn)為硬盤(pán)驅(qū)動(dòng)器(170)、光盤(pán)驅(qū)動(dòng)器(172)、電可擦可編程只讀存儲(chǔ)器空間(所謂的EEPROM′或者閃存)(174)、RAM驅(qū)動(dòng)器(未圖示),或者本領(lǐng)域普通技術(shù)人員可以想到的任何其它種類的計(jì)算機(jī)存儲(chǔ)器。
圖3的舉例的計(jì)算機(jī)(134)包括通信適配器(167),所述通信適配器(167)用于實(shí)現(xiàn)數(shù)據(jù)通信(184)的到其它計(jì)算機(jī)(182)(包括服務(wù)器、客戶機(jī)以及本領(lǐng)域普通技術(shù)人員可以想到的其它計(jì)算機(jī))的連接,包括通過(guò)網(wǎng)絡(luò)的連接。通信適配器實(shí)現(xiàn)用于數(shù)據(jù)通信的連接的硬件層次,通過(guò)它們,本地設(shè)備和遠(yuǎn)程設(shè)備或者服務(wù)器相互直接發(fā)送以及通過(guò)網(wǎng)絡(luò)發(fā)送數(shù)據(jù)通信。通信適配器的可用于根據(jù)本發(fā)明的實(shí)施例在分布式數(shù)據(jù)處理系統(tǒng)中監(jiān)視報(bào)文的例子包括用于有線撥號(hào)連接的調(diào)制解調(diào)器、用于有線LAN連接的以太網(wǎng)(IEEE 802.3)適配器以及用于無(wú)線LAN連接的802.11b適配器。
圖3的舉例的計(jì)算機(jī)包括一個(gè)或者多個(gè)輸入輸出接口適配器(178)。計(jì)算機(jī)中的輸入輸出接口適配器例如通過(guò)軟件驅(qū)動(dòng)程序或者計(jì)算機(jī)硬件實(shí)現(xiàn)面向用戶的輸入輸出,用于控制向顯示設(shè)備(180)比如計(jì)算機(jī)顯示屏的輸出,以及來(lái)自用戶輸入設(shè)備(181)比如鍵盤(pán)和鼠標(biāo)的用戶輸入。
為了進(jìn)一步說(shuō)明,圖4給出了用于圖解在分布式數(shù)據(jù)處理系統(tǒng)中用于監(jiān)視報(bào)文的舉例的方法的流程圖,其包括向報(bào)文(406)插入(401)監(jiān)視標(biāo)記(408)。監(jiān)視標(biāo)記(408)向報(bào)文(406)中的插入(401)是在報(bào)文源由可以在客戶機(jī)或者服務(wù)器上運(yùn)行的生產(chǎn)過(guò)程執(zhí)行的。為了進(jìn)一步說(shuō)明,圖5給出了圖解通過(guò)利用在遠(yuǎn)程客戶設(shè)備上運(yùn)行的通道出口程序在報(bào)文(406)中插入監(jiān)視標(biāo)記(408)的舉例的方法的數(shù)據(jù)流圖。在圖5的例子中,通道出口程序是在遠(yuǎn)程客戶機(jī)上運(yùn)行的修改典型的MOM放置調(diào)用(put call)比如MQSeries中的MQPUT或者M(jìn)QPUT1的軟件。當(dāng)在客戶機(jī)上運(yùn)行的生產(chǎn)過(guò)程發(fā)出一個(gè)放置調(diào)用時(shí),就在將報(bào)文放置到隊(duì)列上之前激活所述通道出口程序(504)。圖5的方法包括利用在遠(yuǎn)程客戶機(jī)(410)上運(yùn)行的通道出口程序(504)在報(bào)文(406)中插入(506)監(jiān)視標(biāo)記(408)。
在圖5的方法中,利用在遠(yuǎn)程客戶機(jī)(410)上運(yùn)行的通道出口程序(504)在報(bào)文(406)中插入監(jiān)視標(biāo)記(408)是通過(guò)調(diào)用(508)ARM API(510)執(zhí)行的?!癆RM”是用于進(jìn)行應(yīng)用程序響應(yīng)時(shí)間測(cè)量的開(kāi)放式API,可用于進(jìn)行報(bào)文收發(fā)監(jiān)視,提供用于獲得稱為“關(guān)聯(lián)子”的測(cè)量標(biāo)記的API。激活arm_start()方法調(diào)用將向調(diào)用通道返回用于插入報(bào)文中的關(guān)聯(lián)子。
如上所述,監(jiān)視標(biāo)記向報(bào)文中的插入可以由在客戶機(jī)或者服務(wù)器上運(yùn)行的生產(chǎn)過(guò)程執(zhí)行。為了進(jìn)一步說(shuō)明,圖6圖解了用于利用在服務(wù)器上運(yùn)行的API出口程序在報(bào)文(406)中插入監(jiān)視標(biāo)記(408)的另一個(gè)舉例的方法。圖6的方法包括利用在服務(wù)器(106)上運(yùn)行的API出口程序(226)在報(bào)文(406)中插入(602)監(jiān)視標(biāo)記(408)。API出口程序是在服務(wù)器上運(yùn)行的修改典型的MOM調(diào)用比如放置調(diào)用(put call)的軟件。對(duì)于應(yīng)用程序發(fā)出的這樣的修改后的放置調(diào)用,API出口程序被激活以在報(bào)文內(nèi)插入監(jiān)視標(biāo)記。
在圖6的方法中,利用在服務(wù)器(106)上運(yùn)行的API出口程序(226)在報(bào)文(406)中插入(602)監(jiān)視標(biāo)記(408)是通過(guò)調(diào)用(604)ARM API(510)執(zhí)行的?!癆RM”是用于進(jìn)行應(yīng)用程序響應(yīng)時(shí)間測(cè)量的開(kāi)放式API,可用于進(jìn)行報(bào)文收發(fā)監(jiān)視,提供用于獲得稱為“關(guān)聯(lián)子”的測(cè)量標(biāo)記的API。激活arm_start()方法調(diào)用將向調(diào)用API出口程序返回用于插入報(bào)文中的關(guān)聯(lián)子。
如上所述,在報(bào)文源插入監(jiān)視標(biāo)記,在報(bào)文目的地移除監(jiān)視標(biāo)記。下面繼續(xù)看圖4圖4的方法包括將包含監(jiān)視標(biāo)記(408)的報(bào)文(406)放置(402)到服務(wù)器(106)上的隊(duì)列(404)上。將包含監(jiān)視標(biāo)記(408)的報(bào)文(406)放置(402)到服務(wù)器(106)上的隊(duì)列(404)上一般是這樣執(zhí)行的通過(guò)調(diào)用諸如connectQueueMgr()之類的方法連接到服務(wù)器上的隊(duì)列管理器,通過(guò)調(diào)用諸如openQuue()之類的方法打開(kāi)一個(gè)隊(duì)列。隊(duì)列被打開(kāi)之后,將包含監(jiān)視標(biāo)記(408)的報(bào)文(406)放置(402)到服務(wù)器(106)上的隊(duì)列(404)上可以這樣執(zhí)行通過(guò)調(diào)用諸如put()這樣的方法,將報(bào)文放置到隊(duì)列上,然后通過(guò)調(diào)用諸如close()這樣的方法關(guān)閉隊(duì)列。
圖4的方法包括接收(414)要從服務(wù)器(106)上的隊(duì)列(404)獲取(418)所述報(bào)文(406)的調(diào)用。類似于將報(bào)文放到隊(duì)列上的方式,從服務(wù)器(106)上的隊(duì)列(404)獲取報(bào)文(406)一般是這樣執(zhí)行的通過(guò)調(diào)用諸如connectQueueMgr()之類的方法連接到服務(wù)器上的隊(duì)列管理器,通過(guò)調(diào)用諸如openQuue()之類的方法打開(kāi)一個(gè)隊(duì)列。隊(duì)列被打開(kāi)之后,從服務(wù)器(106)上的隊(duì)列(404)獲取報(bào)文(406)一般這樣執(zhí)行通過(guò)調(diào)用諸如get()這樣的方法,從隊(duì)列獲取報(bào)文,然后通過(guò)調(diào)用諸如close()這樣的方法關(guān)閉隊(duì)列。
圖4的方法包括利用在服務(wù)器(106)上運(yùn)行的API出口程序(226)判斷(422)所述獲取(418)報(bào)文(406)的調(diào)用是由在遠(yuǎn)程客戶機(jī)(410)上運(yùn)行的過(guò)程(230)發(fā)出的還是由在服務(wù)器(106)上運(yùn)行的過(guò)程(220)發(fā)出的(422)。如上所述,API出口程序是在服務(wù)器上運(yùn)行的、由MOM調(diào)用比如獲取調(diào)用激活的軟件。對(duì)于這樣的經(jīng)過(guò)修改后的獲取調(diào)用,激活A(yù)PI出口程序來(lái)判斷獲取報(bào)文的調(diào)用是由遠(yuǎn)程客戶機(jī)上運(yùn)行的過(guò)程發(fā)出的還是由服務(wù)器(106)上運(yùn)行的過(guò)程發(fā)出的。
一種判斷(422)所述獲取(418)報(bào)文(406)的調(diào)用是由在遠(yuǎn)程客戶機(jī)(410)上運(yùn)行的過(guò)程(230)發(fā)出的還是由在服務(wù)器(106)上運(yùn)行的過(guò)程(220)發(fā)出的方法,是判斷作為獲取調(diào)用的參數(shù)傳遞的緩沖區(qū)是不是通過(guò)將緩沖區(qū)的第一位設(shè)置為表示調(diào)用由遠(yuǎn)程客戶機(jī)激活的標(biāo)記來(lái)生成的。在某些實(shí)施例中,當(dāng)遠(yuǎn)程客戶設(shè)備上的消費(fèi)過(guò)程調(diào)用get()方法從隊(duì)列獲取報(bào)文時(shí),在執(zhí)行該獲取調(diào)用之前,先激活遠(yuǎn)程客戶機(jī)上的通道出口程序。該通道出口程序被編程為通過(guò)將緩沖區(qū)的第一位設(shè)置為客戶機(jī)標(biāo)記,生成作為獲取調(diào)用的參數(shù)傳遞的緩沖區(qū)。在許多這樣的實(shí)施例中,所述通道出口程序還被編程為修改所述緩沖區(qū)本身的長(zhǎng)度,以容納被指定為客戶機(jī)標(biāo)記的額外比特位。在這樣的實(shí)施例中,在服務(wù)器側(cè)完成獲取函數(shù)調(diào)用之前,并且在將來(lái)自隊(duì)列的報(bào)文寫(xiě)到作為獲取調(diào)用的參數(shù)傳遞的緩沖區(qū)中之前,安裝在服務(wù)器上的隊(duì)列管理器激活A(yù)PI出口程序。該API出口程序被編程為判斷該緩沖區(qū)的被指定為客戶機(jī)標(biāo)記的第一位是否被設(shè)置了。如果沒(méi)有設(shè)置該標(biāo)記,則API出口程序缺省地判斷是服務(wù)器本身上的過(guò)程發(fā)出了獲取所述報(bào)文的調(diào)用。如果設(shè)置了該標(biāo)記,則API出口程序判斷是遠(yuǎn)程客戶機(jī)上的過(guò)程發(fā)出了獲取所述報(bào)文的調(diào)用。
如果獲取(418)報(bào)文(406)的調(diào)用是由服務(wù)器(106)上運(yùn)行的過(guò)程(220)發(fā)出(426)的,則圖4的方法包括利用所述API出口程序(226)從所述報(bào)文(406)中移除(430)所述監(jiān)視標(biāo)記(408)。關(guān)于獲取(418)報(bào)文(406)的調(diào)用是由服務(wù)器(106)上運(yùn)行的過(guò)程(220)發(fā)出(426)的判斷恰當(dāng)?shù)刂赋隽讼M(fèi)過(guò)程是該報(bào)文的目的地,因此監(jiān)視標(biāo)記應(yīng)當(dāng)從報(bào)文中移除。
如果獲取(418)報(bào)文(406)的調(diào)用不是由服務(wù)器(106)上運(yùn)行的過(guò)程(220)發(fā)出(424)的,則API出口程序(226)判斷獲取(418)報(bào)文(406)的調(diào)用不是由服務(wù)器上運(yùn)行的過(guò)程發(fā)出的,不移除監(jiān)視標(biāo)記。在設(shè)置緩沖區(qū)的第一位作為客戶機(jī)標(biāo)記以及修改緩沖區(qū)長(zhǎng)度以容納額外比特位的實(shí)施例中,API出口程序被編程為在將恢復(fù)了長(zhǎng)度的緩沖區(qū)傳到服務(wù)器上的隊(duì)列管理器之前恢復(fù)緩沖區(qū)長(zhǎng)度,以將報(bào)文寫(xiě)入該緩沖區(qū)。
圖4的方法還包括如果獲取(418)報(bào)文(406)的調(diào)用是由遠(yuǎn)程客戶機(jī)(410)上運(yùn)行的過(guò)程(230)發(fā)出(424)的,則利用在遠(yuǎn)程客戶機(jī)(410)上運(yùn)行的通道出口程序(504)從報(bào)文(406)中移除(428)所述監(jiān)視標(biāo)記(408)。關(guān)于獲取(418)報(bào)文(406)的調(diào)用是由客戶機(jī)上運(yùn)行的過(guò)程(220)而不是由服務(wù)器(106)上運(yùn)行的過(guò)程發(fā)出(424)的判斷恰當(dāng)?shù)刂赋隽诉h(yuǎn)程客戶機(jī)是該報(bào)文的目的地,因此監(jiān)視標(biāo)記應(yīng)當(dāng)由在遠(yuǎn)程客戶機(jī)上運(yùn)行的通道出口程序從報(bào)文中移除。
從上面的說(shuō)明可以理解,在本發(fā)明的各種實(shí)施例中可以作各種變化和修改而不脫離本發(fā)明的實(shí)質(zhì)范圍。本說(shuō)明書(shū)中的描述只是用于說(shuō)明的目的而不能被理解為限制性的。本發(fā)明的范圍僅由所附權(quán)利要求的語(yǔ)言予以限制。
權(quán)利要求
1.一種在分布式數(shù)據(jù)處理系統(tǒng)中監(jiān)視報(bào)文的方法,包括將包含監(jiān)視標(biāo)記的報(bào)文放到服務(wù)器上的隊(duì)列上;接收從所述服務(wù)器上的隊(duì)列獲取所述報(bào)文的調(diào)用;利用在服務(wù)器上運(yùn)行的API出口程序,判斷所述獲取報(bào)文的調(diào)用是由在遠(yuǎn)程客戶機(jī)上運(yùn)行的過(guò)程發(fā)出的還是由在該服務(wù)器上運(yùn)行的過(guò)程發(fā)出的;以及如果所述獲取報(bào)文的調(diào)用是由在服務(wù)器上運(yùn)行的過(guò)程發(fā)出的,則利用所述API出口程序從所述報(bào)文移除所述監(jiān)視標(biāo)記。
2.如權(quán)利要求1所述的方法,還包括如果所述獲取報(bào)文的調(diào)用是由在遠(yuǎn)程客戶機(jī)上的過(guò)程發(fā)出的,則利用在所述遠(yuǎn)程客戶機(jī)上運(yùn)行的通道出口程序從所述報(bào)文中移除所述監(jiān)視標(biāo)記。
3.如權(quán)利要求1所述的方法,還包括利用在遠(yuǎn)程客戶機(jī)上運(yùn)行的通道出口程序,向報(bào)文中插入監(jiān)視標(biāo)記。
4.如權(quán)利要求3所述的方法,其中,利用在遠(yuǎn)程客戶機(jī)上運(yùn)行的通道出口程序在報(bào)文中插入監(jiān)視標(biāo)記的步驟還包括調(diào)用ARM API。
5.如權(quán)利要求1所述的方法,還包括利用在所述服務(wù)器上運(yùn)行的API出口程序,在報(bào)文中插入監(jiān)視標(biāo)記。
6.如權(quán)利要求5所述的方法,其中,利用在所述服務(wù)器上運(yùn)行的API出口程序在報(bào)文中插入監(jiān)視標(biāo)記的步驟還包括調(diào)用ARM API。
7.一種在分布式數(shù)據(jù)處理系統(tǒng)中監(jiān)視報(bào)文的系統(tǒng),包括將包含監(jiān)視標(biāo)記的報(bào)文放到服務(wù)器上的隊(duì)列上的裝置;接收從所述服務(wù)器上的隊(duì)列獲取所述報(bào)文的調(diào)用的裝置;判斷裝置,利用在服務(wù)器上運(yùn)行的API出口程序,判斷所述獲取報(bào)文的調(diào)用是由在遠(yuǎn)程客戶機(jī)上運(yùn)行的過(guò)程發(fā)出的還是由在該服務(wù)器上運(yùn)行的過(guò)程發(fā)出的;以及利用所述API出口程序從所述報(bào)文移除所述監(jiān)視標(biāo)記的裝置。
8.如權(quán)利要求7所述的系統(tǒng),還包括利用在所述遠(yuǎn)程客戶機(jī)上運(yùn)行的通道出口程序從所述報(bào)文中移除所述監(jiān)視標(biāo)記的裝置。
9.如權(quán)利要求7所述的系統(tǒng),還包括利用在遠(yuǎn)程客戶機(jī)上運(yùn)行的通道出口程序,向報(bào)文中插入監(jiān)視標(biāo)記的裝置。
10.如權(quán)利要求9所述的系統(tǒng),其中,利用在遠(yuǎn)程客戶機(jī)上運(yùn)行的通道出口程序在報(bào)文中插入監(jiān)視標(biāo)記的裝置還包括調(diào)用ARM API的裝置。
11.如權(quán)利要求7所述的系統(tǒng),還包括利用在所述服務(wù)器上運(yùn)行的API出口程序,在報(bào)文中插入監(jiān)視標(biāo)記的裝置。
12.如權(quán)利要求11所述的系統(tǒng),其中,利用在所述服務(wù)器上運(yùn)行的API出口程序在報(bào)文中插入監(jiān)視標(biāo)記的裝置還包括調(diào)用ARMAPI的裝置。
13.一種在分布式數(shù)據(jù)處理計(jì)算機(jī)程序產(chǎn)品中監(jiān)視報(bào)文的計(jì)算機(jī)程序產(chǎn)品,包括記錄介質(zhì)記錄在所述記錄介質(zhì)上的,用于將包含監(jiān)視標(biāo)記的報(bào)文放到服務(wù)器上的隊(duì)列上的裝置;記錄在所述記錄介質(zhì)上的,用于接收從所述服務(wù)器上的隊(duì)列獲取所述報(bào)文的調(diào)用的裝置;記錄在所述記錄介質(zhì)上的判斷裝置,利用在服務(wù)器上運(yùn)行的API出口程序,判斷所述獲取報(bào)文的調(diào)用是由在遠(yuǎn)程客戶機(jī)上運(yùn)行的過(guò)程發(fā)出的還是由在該服務(wù)器上運(yùn)行的過(guò)程發(fā)出的;以及記錄在所述記錄介質(zhì)上的,用于利用所述API出口程序從所述報(bào)文移除所述監(jiān)視標(biāo)記的裝置。
14.如權(quán)利要求13所述的系統(tǒng),還包括記錄在所述記錄介質(zhì)上的,用于利用在所述遠(yuǎn)程客戶機(jī)上運(yùn)行的通道出口程序從所述報(bào)文中移除所述監(jiān)視標(biāo)記的裝置。
15.如權(quán)利要求13所述的系統(tǒng),還包括記錄在所述記錄介質(zhì)上的,用于利用在遠(yuǎn)程客戶機(jī)上運(yùn)行的通道出口程序向報(bào)文中插入監(jiān)視標(biāo)記的裝置。
16.如權(quán)利要求15所述的系統(tǒng),其中,記錄在所述記錄介質(zhì)上的,用于利用在遠(yuǎn)程客戶機(jī)上運(yùn)行的通道出口程序在報(bào)文中插入監(jiān)視標(biāo)記的裝置還包括記錄在所述記錄介質(zhì)上的,用于調(diào)用ARM API的裝置。
17.如權(quán)利要求13所述的系統(tǒng),還包括記錄在所述記錄介質(zhì)上的,用于利用在所述服務(wù)器上運(yùn)行的API出口程序在報(bào)文中插入監(jiān)視標(biāo)記的裝置。
18.如權(quán)利要求17所述的系統(tǒng),其中,記錄在所述記錄介質(zhì)上的,用于利用在所述服務(wù)器上運(yùn)行的API出口程序在報(bào)文中插入監(jiān)視標(biāo)記的裝置還包括記錄在所述記錄介質(zhì)上的,用于調(diào)用ARM API的裝置。
全文摘要
本申請(qǐng)涉及在分布式數(shù)據(jù)處理系統(tǒng)中監(jiān)視報(bào)文的方法和系統(tǒng),以及產(chǎn)品。典型的實(shí)施例包括將包含監(jiān)視標(biāo)記的報(bào)文放到服務(wù)器上的隊(duì)列上;接收從所述服務(wù)器上的隊(duì)列獲取所述報(bào)文的調(diào)用;利用在服務(wù)器上運(yùn)行的API出口程序,判斷所述獲取報(bào)文的調(diào)用是由在遠(yuǎn)程客戶機(jī)上運(yùn)行的過(guò)程發(fā)出的還是由在該服務(wù)器上運(yùn)行的過(guò)程發(fā)出的;以及,如果所述獲取報(bào)文的調(diào)用是由在服務(wù)器上運(yùn)行的過(guò)程發(fā)出的,則利用所述API出口程序從所述報(bào)文移除所述監(jiān)視標(biāo)記。許多實(shí)施例還包括,如果所述獲取報(bào)文的調(diào)用是由在遠(yuǎn)程客戶機(jī)上的過(guò)程發(fā)出的,則利用在所述遠(yuǎn)程客戶機(jī)上運(yùn)行的通道出口程序從所述報(bào)文中移除所述監(jiān)視標(biāo)記。
文檔編號(hào)H04L12/58GK1791072SQ20051009997
公開(kāi)日2006年6月21日 申請(qǐng)日期2005年9月12日 優(yōu)先權(quán)日2004年12月16日
發(fā)明者阿努拉德哈·阿拉賓達(dá)·波塞, 邁克爾·羅格·梅利 申請(qǐng)人:國(guó)際商業(yè)機(jī)器公司