專利名稱:消息隊列中邏輯關(guān)聯(lián)的消息的自動合并的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及消息隊列管理領(lǐng)域,并且更具體地,涉及消息隊列中邏輯關(guān)聯(lián)的消息 的程序性(programmatic)關(guān)聯(lián)。
背景技術(shù):
在信息技術(shù)領(lǐng)域中,消息隊列是用于處理間通信或線程間通信的軟件工程組件。 該組件使用消息器可以將消息放入其中的、以及指定的接收器可以從其中提取消息的隊 列。在該方面,消息隊列可以是使得能夠在消息器和指定的接收器之間異步傳遞消息的通 信組件。在操作時,消息隊列可以支持多個消息器和接收器,使得對于一組參與方可以實現(xiàn) 異步通信。消息隊列的異步特性提供了用于不同技術(shù)的理想的技術(shù)耦合器。具體地,只要單 獨(dú)的技術(shù)可以訪問消息隊列,單獨(dú)并不同的技術(shù)就可以處理傳遞的消息,使得可以進(jìn)行通 信。具體地,消息隊列可以通過用于打開、寫入、讀和關(guān)閉消息隊列的應(yīng)用編程接口(API) 來暴露(expose)不同的方法調(diào)用(call)。每個應(yīng)用又可以包括調(diào)用(invoke)這些方法 調(diào)用(call)的序列以將消息放置在消息隊列中或者從消息隊列中提取消息的邏輯。具體 地,在操作時,當(dāng)請求時,API可以搜索消息隊列來尋找可用消息,并且可以將它返回給正請 求的邏輯。通常,一個或多個應(yīng)用將消息放置在消息隊列上以被其他應(yīng)用所處理。當(dāng)消息到 達(dá)消息隊列時,可以處理消息,或者可以積累消息以在稍后進(jìn)行處理。在后一種情況下,可 以在恰當(dāng)時邏輯地關(guān)聯(lián)所積累的消息。例如,可以通過共同主題將屬于相同主題的消息、例 如屬于與相同帳戶有關(guān)的金融操作的消息、或者屬于相同的人的聯(lián)系人(contact)管理操 作的消息邏輯地關(guān)聯(lián)。典型地,當(dāng)由應(yīng)用處理消息隊列中的邏輯關(guān)聯(lián)的消息時,消息隊列中的每個消息 獨(dú)立于消息隊列中的其它消息而被處理。在該方面,在消息隊列中的每個消息屬于將由應(yīng) 用執(zhí)行的事務(wù)(transaction)的情況下,響應(yīng)于來自消息隊列的相應(yīng)消息的提取來執(zhí)行每 個事務(wù),而不管與保持在消息隊列中的任何其它消息相應(yīng)的任何其它事務(wù)?;蛘撸瑧?yīng)用可以 預(yù)處理消息隊列中的所有消息來識別邏輯關(guān)聯(lián)的消息,并且可以在處理所合并的消息之前 執(zhí)行所識別的邏輯關(guān)聯(lián)的消息的合并。然而,本領(lǐng)域技術(shù)人將將意識到,即便在邏輯地關(guān)聯(lián)的消息隊列中的消息的情況 下應(yīng)用仍然有責(zé)任單獨(dú)處理消息隊列中的消息或者在處理所合并的消息之前執(zhí)行邏輯關(guān) 聯(lián)的消息的合并以解決邏輯關(guān)聯(lián)。在任一情況下,將需要額外的計算機(jī)處理,增大了應(yīng)用程 序的復(fù)雜性和處理時間。
發(fā)明內(nèi)容
本發(fā)明實施例解決了與消息隊列管理有關(guān)的現(xiàn)有技術(shù)的缺點,并提供了一種用于 在消息隊列中消息合并的新穎且非顯而易見的方法、系統(tǒng)和計算機(jī)程序產(chǎn)品。在本發(fā)明的實施例中,可以提供一種用于在消息隊列中消息合并的方法。該方法可以包括在由主機(jī)計 算平臺的處理器在存儲器中執(zhí)行的消息隊列管理器中接收用于將新消息添加到消息隊列 的請求。該方法還可以包括識別將新消息與消息隊列中現(xiàn)存消息相關(guān)聯(lián)的關(guān)聯(lián)鍵(key),并 在消息隊列中定位對應(yīng)于所識別的關(guān)聯(lián)鍵的關(guān)聯(lián)消息。最后,該方法可以包括將新消息與 消息隊列中所定位的關(guān)聯(lián)消息相合并。在本發(fā)明的另一實施例中,可以提供一種消息排隊數(shù)據(jù)處理系統(tǒng)。該系統(tǒng)可以包 括包含存儲器和至少一個處理器的主機(jī)計算平臺。該系統(tǒng)還可以包括與主機(jī)計算平臺耦連 的消息隊列,以及與消息隊列耦連并在主機(jī)計算平臺的存儲器中由處理器執(zhí)行的消息隊列 管理器。該系統(tǒng)還可以包括與消息隊列管理器耦連的消息合并模塊。該模塊可以包括在由 計算機(jī)的處理器在存儲器中執(zhí)行時使能的程序代碼,以在由消息隊列管理器接收的用于將 新消息添加到消息隊列的請求中,識別將新消息與消息隊列中現(xiàn)存消息相關(guān)聯(lián)的關(guān)聯(lián)鍵, 在消息隊列中定位對應(yīng)于所識別的關(guān)聯(lián)的關(guān)聯(lián)消息,并將新消息與消息隊列中所定位的關(guān) 聯(lián)消息相合并。本發(fā)明的其他方面將部分在如下描述中闡述,部分從描述中將顯而易見,或者可 以通過本發(fā)明的實踐來學(xué)習(xí)。將通過所附權(quán)利要求中具體指出的元件和組合來實現(xiàn)和達(dá)到 本發(fā)明的方面。將理解的是,前述大致描述和如下詳細(xì)描述僅僅是示范性和解釋性的,并且 不限制所要求保護(hù)的本發(fā)明。
合并于該說明書中并組成該說明書的一部分的附圖例示了本發(fā)明的實施例,并與 描述一起用來解釋本發(fā)明的原則。在此例示的實施例是優(yōu)選的,然而要理解的是,本發(fā)明不 限于所示的精確布置和手段,其中圖1是用于邏輯地合并在消息隊列中的排隊消息的處理的圖示說明;圖2是被配置來邏輯地合并在消息隊列中的排隊消息的消息排隊數(shù)據(jù)處理系統(tǒng) 的示意性說明;以及圖3是說明用于邏輯地合并在消息隊列中的排隊消息的處理的流程圖。
具體實施例方式本發(fā)明實施例提供了用于自動合并邏輯關(guān)聯(lián)的消息的方法、系統(tǒng)和計算機(jī)程序產(chǎn) 品。在本發(fā)明的實施例中,可以接收消息放置在消息隊列中。例如,通過參考消息的消息頭 部中的數(shù)據(jù)或者嵌入在消息本身中的數(shù)據(jù),通過環(huán)境變量,參考包括在用于將消息放置在 消息隊列上的命令(directive)中的參數(shù)、可以確定是否合并所接收的消息的指示。如果 確定合并所接收的消息,則可以使用消息頭部中的數(shù)據(jù)和/或消息數(shù)據(jù),來使用用于將所 接收的消息與消息隊列中的另一消息相關(guān)聯(lián)的關(guān)聯(lián)鍵來建立兩個消息之間的關(guān)聯(lián)性。以這 種方式,通過合并所關(guān)聯(lián)的消息,可以減少消息隊列中消息的數(shù)量。在進(jìn)一步說明中,圖1圖示性地描繪了用于邏輯地合并消息隊列中的排隊消息的 處理。如圖1所示,一個或多個應(yīng)用Iio可以利用消息隊列120來在消息隊列120中交換 多個應(yīng)用消息140A。隊列管理器130可以管理由應(yīng)用110進(jìn)行的將消息140A投遞到消息 隊列120上以及由應(yīng)用110進(jìn)行的將消息140A從消息隊列120中去除,來用于應(yīng)用110中的處理。注意的是,當(dāng)給定的應(yīng)用110之一請求隊列管理器130將消息140B添加到消息隊 列120上時,隊列管理器130可以確定是否將消息140B與已經(jīng)位于消息隊列120中的消息 140A中另一關(guān)聯(lián)的消息相合并。如果是,則隊列管理器130可以在與消息140A相關(guān)聯(lián)的消 息隊列120中識別消息140A中特定的一個消息,并且隊列管理器130還可以基于合并規(guī)則 150中所選擇的一個來執(zhí)行消息140B與消息140A中相關(guān)聯(lián)的一個的合并。一旦應(yīng)用了合并規(guī)則150中所選擇的一個,就可以將消息140B的內(nèi)容與消息隊列 中消息140中關(guān)聯(lián)的一個相合并,并且可以丟棄消息140B?;蛘?,可以將消息140中關(guān)聯(lián)的 一個的內(nèi)容與消息140B相關(guān)聯(lián),并且可以從消息隊列120中去除消息140中關(guān)聯(lián)的一個并 丟棄。作為另一替代實施例,可以將消息140B的內(nèi)容和消息隊列中消息140中關(guān)聯(lián)的一個 的內(nèi)容組合為新的消息,并將其放置在消息隊列120中。在任何情況下,可以由隊列管理器 130執(zhí)行消息140B與消息隊列120中消息140中關(guān)聯(lián)的一個的合并,而不會不必要地加重 應(yīng)用110的負(fù)擔(dān)。可以在消息排隊數(shù)據(jù)處理系統(tǒng)中實現(xiàn)參考圖1描述的處理。在另一示例中,圖2是 被配置來邏輯地合并在消息隊列中的排隊消息的消息排隊數(shù)據(jù)處理系統(tǒng)的示意性圖示。該 系統(tǒng)可以包括一個或多個服務(wù)器210,每個服務(wù)器包括一個或多個處理器、存儲器和操作系 統(tǒng),每個服務(wù)器210主管一個或多個應(yīng)用220的執(zhí)行。可以在計算機(jī)通信網(wǎng)絡(luò)240上通過 終端用戶客戶端計算設(shè)備230訪問一個或多個應(yīng)用220。此外,可以在計算機(jī)通信網(wǎng)絡(luò)MO 上將服務(wù)器210中單獨(dú)的一些與另一服務(wù)器可通信地相耦連。還可以在計算機(jī)通信網(wǎng)絡(luò)240上將具有存儲器和至少一個處理器的主機(jī)計算平 臺250與服務(wù)器210可通信地相耦連。主機(jī)計算平臺250可以支持由消息隊列管理器280 管理的消息隊列260的操作。在這方面,消息隊列管理器280可以是由主機(jī)計算平臺250 的一個或多個處理器在存儲器中執(zhí)行的、并管理由應(yīng)用220中不同的應(yīng)用經(jīng)由計算機(jī)通信 網(wǎng)絡(luò)240對消息隊列沈0中的消息270的訪問的計算機(jī)程序。此外,消息隊列沈0中的每 個消息270可以包括如本領(lǐng)域眾所周知的在消息主體中表達(dá)的內(nèi)容以及頭部部分,以由消 息隊列管理器280用來確定對于消息隊列260如何處理消息270中相應(yīng)的一個。消息合并模塊四0可以與消息隊列管理器觀0相耦連,或者是消息隊列管理器觀0 的部件。消息合并模塊290可以包括當(dāng)被處理器執(zhí)行同時被裝載到計算機(jī)的存儲器中時、 可以管理消息隊列沈0中消息270中所選擇的一些的邏輯地合并的程序代碼。在該方面, 消息合并模塊290可以作為程序代碼在主機(jī)計算平臺250的存儲器中或者在直接或經(jīng)由計 算機(jī)通信網(wǎng)絡(luò)240與主機(jī)計算平臺250可通信地相耦連的不同計算平臺的存儲器內(nèi)執(zhí)行。當(dāng)在計算機(jī)的存儲器中被處理器執(zhí)行時,消息合并模塊四0的程序代碼可以識別 應(yīng)用220用來將消息放置在消息隊列沈0中的請求。對于每個請求,程序代碼可以確定相 對于消息隊列260中的消息270中現(xiàn)存的一個、邏輯地合并對于消息是否是優(yōu)選的。該確 定可以基于存儲在消息的頭部中、在消息主體中或者在為消息隊列260存儲的其本身參數(shù) 中的數(shù)據(jù)、或者作為參數(shù)由應(yīng)用程序接口傳遞的數(shù)據(jù)、或者可由消息合并模塊290訪問的 作為環(huán)境變量可得的數(shù)據(jù)。對于與將相對于消息隊列沈0中的消息270中現(xiàn)存的一個邏輯 地合并的消息相應(yīng)的每個請求,程序代碼可以在消息隊列260中定位消息270中現(xiàn)存的一 個,并且可以將合并規(guī)則應(yīng)用到所定位的消息270中現(xiàn)存的一個以及請求中的相應(yīng)消息。 最后,程序代碼可以將每個所合并的消息存儲在消息隊列沈0中。
在消息合并模塊四0的操作的再一說明中,圖3是圖示用于邏輯地合并消息隊列 中的排隊消息的處理的流程圖。開始于塊305,可以接收應(yīng)用置入(put)請求用于可以包 括消息主體和消息頭部的消息。請求還可以包括一個或多個參數(shù),例如是否將消息與消息 隊列中的現(xiàn)存消息邏輯地合并的指示,以及在是的情況下的與現(xiàn)存消息相應(yīng)的關(guān)聯(lián)鍵。然 而,在實施例的替代方面中,可以將參數(shù)作為消息頭部的一部分、作為消息主體的內(nèi)容的一 部分、作為消息隊列的屬性、作為環(huán)境變量、作為隊列消息的內(nèi)容、或者作為文件或數(shù)據(jù)庫 中的內(nèi)容來提供。在塊310中,可以為消息裝載如果存在的合并指示符。在判斷塊315中,可以確定 邏輯地合并對于消息是否是優(yōu)選的。在邏輯地合并對于消息不是優(yōu)選的情況下,在塊360 中,可以將消息存儲在消息隊列中,并且在塊365中處理可以結(jié)束。反之,如果在判斷塊315 中確定邏輯地合并優(yōu)選,則在塊320中可以為消息裝載關(guān)聯(lián)鍵,并且在塊325中可以使用關(guān) 聯(lián)鍵定位消息隊列中的關(guān)聯(lián)消息。關(guān)聯(lián)鍵可以是初始請求的一個參數(shù)或多個參數(shù),作為消 息頭部的一部分、作為消息主體的內(nèi)容的一部分、作為消息隊列的屬性、作為環(huán)境變量、作 為隊列消息的內(nèi)容、作為文件或數(shù)據(jù)庫中的內(nèi)容、作為隊列管理器屬性、作為隊列消息的一 部分。在判斷塊330中,可以確定對于關(guān)聯(lián)鍵是否沒有關(guān)聯(lián)消息可以在消息隊列中定位。 如果沒有,則在塊360中可以將消息存儲在消息隊列中,并且在塊365中處理可以結(jié)束。反 之,處理可以繼續(xù)到塊335。在塊335中,可以裝載合并規(guī)則來將消息與在消息隊列中所定位的關(guān)聯(lián)消息相合 并。合并規(guī)則可以包括每個消息中相關(guān)數(shù)據(jù)的描述以及如何將相關(guān)數(shù)據(jù)組合到單一消息 中。例如,合并規(guī)則可以提供將每個消息中的數(shù)據(jù)映射到另一消息的標(biāo)記語言以及用于將 數(shù)據(jù)合并到所合并的消息中的位置中的命令。作為另一例子,合并規(guī)則可以是用于執(zhí)行將 兩個消息的數(shù)據(jù)物理合并到單一消息中的可執(zhí)行腳本或程序??蛇x地,可以以消息為基礎(chǔ) 在消息上指定合并規(guī)則,或者可以配置消息合并模塊來使用具體合并規(guī)則。作為另一選擇, 合并規(guī)則可以指定是否以從兩個消息的合并得到的修改形式用消息取代在隊列中所定位 的關(guān)聯(lián)消息、或者是否以從兩個消息的合并得到的修改形式更新所定位的關(guān)聯(lián)消息。在塊340中,可以根據(jù)合并規(guī)則來合并消息,并在判斷塊345中,可以確定是否以 從兩個消息的合并得到的修改形式用消息取代在隊列中所定位的關(guān)聯(lián)消息、或者是否以從 兩個消息的合并得到的修改形式更新所定位的關(guān)聯(lián)消息。如果是前者,則在塊355中可以 從消息隊列中去除所定位的關(guān)聯(lián)消息,并在塊360中可以將消息的合并形式添加到消息隊 列。如果是后者,則在塊350中,可以用所合并的數(shù)據(jù)來更新所定位的關(guān)聯(lián)消息,并在塊365 中處理可以結(jié)束。如本領(lǐng)域技術(shù)人員將意識到的,可以將本發(fā)明的方面體現(xiàn)為系統(tǒng)、方法或計算機(jī) 程序產(chǎn)品。從而,本發(fā)明的方面可以采取全部硬件實施例、全部軟件實施例(包括固件、駐 留軟件、微代碼等)或者組合軟件和硬件方面的實施例的形式,在此可以將它們大體上稱 為“電路”、“模塊”或“系統(tǒng)”。此外,本發(fā)明的方面可以采取體現(xiàn)在一個或多個計算機(jī)可讀 介質(zhì)中的計算機(jī)程序產(chǎn)品的形式,其中在計算機(jī)可讀介質(zhì)上具有計算機(jī)可讀程序代碼??梢岳靡粋€或多個計算機(jī)可讀介質(zhì)的任何組合。計算機(jī)可讀介質(zhì)可以是計算可 讀信號介質(zhì)或者計算機(jī)可讀存儲介質(zhì)。計算機(jī)可讀存儲介質(zhì)可以是例如但不限于電的、磁 的、光的、電磁的、或半導(dǎo)體的系統(tǒng)、裝置或設(shè)備、或者前述任何恰當(dāng)組合。計算機(jī)可讀存儲介質(zhì)的更具體例子(非窮盡列表)將包括如下具有一條或多條線路的電連接、便攜式計算 機(jī)磁盤、硬盤、隨機(jī)存取存儲器(RAM)、只讀存儲器(ROM)、可擦除可編程只讀存儲器(EPR0M 或閃存)、光纖、便攜式壓縮盤只讀存儲器(CD-ROM)、光存儲設(shè)備、磁存儲設(shè)備或者前述任 何恰當(dāng)組合。在本文檔的上下文中,計算機(jī)可讀存儲介質(zhì)可以是可以包括或存儲可以由指 令執(zhí)行系統(tǒng)、裝置或設(shè)備使用或者與之相聯(lián)系的程序的任何有形介質(zhì)。計算機(jī)可讀信號介質(zhì)可以包括具有在其中體現(xiàn)的計算機(jī)可讀程序代碼的傳播數(shù) 據(jù)信號,例如在基帶中或者作為載波的一部分。這樣的傳播信號可以采取多種形式中的任 何一種,包括但不限于電磁波、光波或者其任何恰當(dāng)組合。計算機(jī)可讀信號介質(zhì)可以是不是 計算機(jī)可讀存儲介質(zhì)的任何計算機(jī)可讀介質(zhì),并且可以通信、傳播或傳輸由指令執(zhí)行系統(tǒng)、 裝置或設(shè)備使用或與之相聯(lián)系的程序??梢允褂萌魏吻‘?dāng)介質(zhì)來發(fā)送在計算機(jī)可讀介質(zhì)上體現(xiàn)的程序代碼,包括但不限 于無線、有線、光纖線纜、射頻等或者前述任何恰當(dāng)組合。可以以一種或多個編程語言的任 何組合來寫用于執(zhí)行本發(fā)明的方面的操作的計算機(jī)程序代碼,包括面向?qū)ο缶幊陶Z言以及 傳統(tǒng)處理編程語言。程序代碼可以作為單機(jī)軟件包全部在用戶的計算機(jī)上執(zhí)行、部分在用 戶的計算機(jī)上執(zhí)行、部分在用戶的計算機(jī)上執(zhí)行并部分在遠(yuǎn)程計算機(jī)上執(zhí)行,或者全部在 遠(yuǎn)程計算機(jī)或服務(wù)器上執(zhí)行。在后一種方案中,可以通過任何類型的網(wǎng)絡(luò)將遠(yuǎn)程計算機(jī)與 用戶的計算機(jī)相連,包括局域網(wǎng)(LAN)或者廣域網(wǎng)(WAN),或者可以進(jìn)行到外部計算機(jī)的連 接(例如,使用互聯(lián)網(wǎng)服務(wù)提供商通過互聯(lián)網(wǎng))。上面參考根據(jù)本發(fā)明實施例的方法、裝置(系統(tǒng))和計算機(jī)程序產(chǎn)品的流程 示和/或框圖描述了本發(fā)明的方面。在這方面,圖中的流程圖和框示了根據(jù)本發(fā)明的 各種實施例的系統(tǒng)、方法和計算機(jī)程序產(chǎn)品的可能實現(xiàn)方式的架構(gòu)、功能和操作。例如,流 程圖或框圖中的每個塊可以代表模塊、部分或者代碼的一部分,其包含用于實現(xiàn)特定邏輯 功能的一個或多個可執(zhí)行指令。還應(yīng)該注意的是,在一些替代實現(xiàn)方式中,塊中標(biāo)注的功能 可以不按照圖中標(biāo)注的順序發(fā)生。例如,以連續(xù)形式示出的兩個塊實際上可以基本并發(fā)地 執(zhí)行,或者取決于所涉及的功能,有時可以將塊以相反的順序執(zhí)行。還將注意的是,可以由 執(zhí)行特定功能或動作的基于專用硬件的系統(tǒng)或者專用硬件和計算機(jī)指令的組合來實現(xiàn)框 圖和/或流程示的每個塊以及框圖和/或流程示中塊的組合。還將理解的是,可以通過計算機(jī)程序指令來實現(xiàn)流程示和/或框圖的每個塊 以及流程示和/或框圖中塊的組合??梢詫⑦@些計算機(jī)程序指令提供給通用計算機(jī)、 專用計算機(jī)或其他可編程數(shù)據(jù)處理裝置的處理器以產(chǎn)生機(jī)器,使得經(jīng)由計算機(jī)或其他可編 程數(shù)據(jù)處理裝置的處理器執(zhí)行的指令創(chuàng)建用于實現(xiàn)在流程圖和/或框圖塊或多個塊中指 定的功能/動作的手段。 還可以將這些計算機(jī)程序指令存儲在可以弓I導(dǎo)計算機(jī)、其他可編程數(shù)據(jù)處理裝置 或其他設(shè)備以特定方式起作用的計算機(jī)可讀介質(zhì)中,使得存儲在計算機(jī)可讀介質(zhì)中的指令 產(chǎn)生包括實現(xiàn)在流程圖和/或框圖塊或塊中指定的功能/動作的指令的制造物。還可以將 計算機(jī)程序指令裝載到計算機(jī)、其他計算機(jī)數(shù)據(jù)處理裝置或其他設(shè)置上以使操作步驟序列 在計算機(jī)、其他可編程裝置或其他設(shè)備上執(zhí)行而產(chǎn)生計算機(jī)實現(xiàn)的處理,使得在計算機(jī)或 其他可編程裝置上執(zhí)行的指令提供用于實現(xiàn)在流程圖和/或框圖塊或塊中指定的功能/動 作的處理。
8
最后,在此使用的術(shù)語僅僅為了描述特定實施例的目的,而不試圖限制本發(fā)明。如 在此所使用的,單數(shù)形式“一”、“一個”和“該”也試圖包括復(fù)數(shù)形式,除非上下文清楚地指示 相反的情況。將進(jìn)一步理解的是,當(dāng)在該說明書中使用時,術(shù)語“包括”和/或“包含”說明 特定特征、整數(shù)、步驟、操作、元件和/或部件的存在,而不排除一個或多個其他特征、整數(shù)、 步驟、操作、元件、部件和/或其組合的存在或添加。如下權(quán)利要求中的所有手段或步驟加上功能元件的相應(yīng)結(jié)構(gòu)、材料、動作和等價 物試圖包括任何結(jié)構(gòu)、材料或動作來與明確要求保護(hù)的其他所要求的元件組合執(zhí)行功能。 為了說明和描述的目的提供本發(fā)明的描述,而不試圖窮盡或以所公開的形式來限制本發(fā) 明。許多修改和變型對于本領(lǐng)域技術(shù)人員將是明顯的,而不脫離本發(fā)明的范圍和精神。選 擇并描述了實施例以優(yōu)選理解本發(fā)明的原則和實際應(yīng)用,并使得本領(lǐng)域其他技術(shù)人員可以 理解本發(fā)明以用于具有與所考慮的特定使用相適宜的各種修改的各種實施例。參考本發(fā)明實施例詳細(xì)描述了本申請的發(fā)明,將明顯的是,修改和變型是有可能 的,而不脫離在如下所附權(quán)利要求中限定的本發(fā)明的范圍。
權(quán)利要求
1.一種用于在消息隊列中消息合并的方法,所述方法包括在由主機(jī)計算平臺的處理器在存儲器中執(zhí)行的消息隊列管理器中接收用于將新消息 添加到消息隊列的請求;識別將所述新消息與所述消息隊列中現(xiàn)存消息相關(guān)聯(lián)的關(guān)聯(lián)鍵; 在消息中定位對應(yīng)于所識別的關(guān)聯(lián)鍵的關(guān)聯(lián)消息;以及 將所述新消息與所述消息隊列中所定位的關(guān)聯(lián)消息相合并。
2.根據(jù)權(quán)利要求1所述的方法,還包括 確定是否為所接收的請求指定合并指示符;僅僅在為所接收的請求指定所述合并指示符的情況下,執(zhí)行所述識別、定位和合并;以及否則,如果沒有為所接收的請求指定所述合并指示符,則將所述新消息存儲在所述消 息隊列上而不執(zhí)行所述識別、定位和合并。
3.根據(jù)權(quán)利要求1所述的方法,其中將所述新消息與所述消息隊列中所定位的關(guān)聯(lián)消 息相合并包括裝載針對所述新消息和所定位的關(guān)聯(lián)消息的合并規(guī)則;將所述合并規(guī)則應(yīng)用到所述新消息和所定位的關(guān)聯(lián)消息中的每一個中的數(shù)據(jù)以產(chǎn)生 合并數(shù)據(jù);以及用所述合并數(shù)據(jù)來更新所述消息隊列中所定位的關(guān)聯(lián)消息,同時丟棄所述新消息。
4.根據(jù)權(quán)利要求1所述的方法,其中將所述新消息與所述消息隊列中所定位的關(guān)聯(lián)消 息相合并包括裝載針對所述新消息和所定位的關(guān)聯(lián)消息的合并規(guī)則;將所述合并規(guī)則應(yīng)用到所述新消息和所定位的關(guān)聯(lián)消息中的每一個中的數(shù)據(jù)以產(chǎn)生 合并數(shù)據(jù);以及更新所述新消息,將所述新消息存儲在所述消息隊列中,并從所述消息隊列中去除所 定位的關(guān)聯(lián)消息。
5.一種消息排隊數(shù)據(jù)處理系統(tǒng),包括包含存儲器和至少一個處理器的主機(jī)計算平臺; 與所述主機(jī)計算平臺耦連的消息隊列;與所述消息隊列耦連并在所述主機(jī)計算平臺的所述存儲器中由所述處理器執(zhí)行的消 息隊列管理器;以及與所述消息隊列管理器耦連的消息合并模塊,所述模塊包括在由計算機(jī)的處理器在存 儲器中執(zhí)行時使能的程序代碼,以在由所述消息隊列管理器接收的用于將新消息添加到所 述消息隊列的請求中,識別將所述新消息與所述消息隊列中現(xiàn)存消息相關(guān)聯(lián)的關(guān)聯(lián)鍵,在 所述消息隊列中定位對應(yīng)于所識別的關(guān)聯(lián)的關(guān)聯(lián)消息,并將所述新消息與所述消息隊列中 所定位的關(guān)聯(lián)消息相合并。
6.根據(jù)權(quán)利要求5所述的系統(tǒng),其中對于所述新消息將所述關(guān)聯(lián)鍵放置在消息頭部中。
7.根據(jù)權(quán)利要求5所述的系統(tǒng),其中將所述關(guān)聯(lián)鍵放置在所接收的請求的參數(shù)中。
8.根據(jù)權(quán)利要求5所述的系統(tǒng),其中將所述關(guān)聯(lián)鍵放置在所述新消息的主體中。
9.根據(jù)權(quán)利要求5所述的系統(tǒng),其中將所述關(guān)聯(lián)鍵作為所述消息隊列的屬性放置。
10.根據(jù)權(quán)利要求5所述的系統(tǒng),其中所述關(guān)聯(lián)鍵是環(huán)境變量。
11.根據(jù)權(quán)利要求5所述的系統(tǒng),其中將所述關(guān)聯(lián)鍵放置在用于所述消息隊列管理器 的文件中。
12.根據(jù)權(quán)利要求5所述的系統(tǒng),其中還使得所述消息合并模塊的程序代碼能夠裝載 針對所述新消息和所定位的關(guān)聯(lián)消息的合并規(guī)則,將所述合并規(guī)則應(yīng)用到所述新消息和所 定位的關(guān)聯(lián)消息中的每一個中的數(shù)據(jù)以產(chǎn)生合并數(shù)據(jù),以及用合并數(shù)據(jù)來更新所述消息隊 列中所定位的關(guān)聯(lián)消息,同時丟棄所述新消息。
13.根據(jù)權(quán)利要求5所述的系統(tǒng),其中所述合并規(guī)則是被編程來合并所述新消息和所 定位的關(guān)聯(lián)消息中的每一個中的數(shù)據(jù)的可執(zhí)行腳本。
14.根據(jù)權(quán)利要求5所述的系統(tǒng),其中所述合并規(guī)則是被編程來合并所述新消息和所 定位的關(guān)聯(lián)消息中的每一個中的數(shù)據(jù)的可執(zhí)行程序。
15.一種用于在消息隊列中消息合并的系統(tǒng),所述系統(tǒng)包括用于執(zhí)行權(quán)利要求1-4中 任一項所述方法的步驟的裝置。
全文摘要
本發(fā)明實施例提供了一種用于在消息隊列中消息合并的方法、系統(tǒng)和計算機(jī)程序產(chǎn)品。在本發(fā)明的實施例中,可以提供一種用于在消息隊列中消息合并的方法。該方法可以包括在由主機(jī)計算平臺的處理器在存儲器中執(zhí)行的消息隊列管理器中接收用于將新消息添加到消息隊列的請求。該方法還可以包括用于規(guī)定是否應(yīng)該發(fā)生合并的合并指示符。該方法還可以包括識別將新消息與消息隊列中現(xiàn)存消息相關(guān)聯(lián)的關(guān)聯(lián)鍵,并在消息隊列中定位對應(yīng)于所識別的關(guān)聯(lián)鍵的關(guān)聯(lián)消息。最后,該方法可以包括將新消息與消息隊列中所定位的關(guān)聯(lián)消息相合并。
文檔編號G06F9/46GK102087615SQ201010549939
公開日2011年6月8日 申請日期2010年11月15日 優(yōu)先權(quán)日2009年12月3日
發(fā)明者布賴特·W·迪克森, 艾倫·T·錢德勒 申請人:國際商業(yè)機(jī)器公司