專利名稱:利用消息隊(duì)列識(shí)別以設(shè)備中的消息接收作為目標(biāo)的應(yīng)用的系統(tǒng)和方法
技術(shù)領(lǐng)域:
本發(fā)明通常涉及通信,尤其涉及用于維持應(yīng)用和傳輸之間關(guān)聯(lián)的系統(tǒng)和方法,從而促進(jìn)響應(yīng)的消息被指向特定應(yīng)用或應(yīng)用實(shí)例的定位。
背景技術(shù):
雖然計(jì)算機(jī)仍被用于它們的傳統(tǒng)處理目的,但通信基礎(chǔ)設(shè)施中的進(jìn)展和協(xié)議已經(jīng)將標(biāo)準(zhǔn)計(jì)算設(shè)備轉(zhuǎn)換為有價(jià)值的通信工具。計(jì)算機(jī)在從局域網(wǎng)(LAN)到廣泛到達(dá)的諸如互聯(lián)網(wǎng)的全球區(qū)域網(wǎng)(GAN)的網(wǎng)絡(luò)上相互通信,以及與其它電子設(shè)備通信。諸如移動(dòng)電話、個(gè)人數(shù)字助理(PDA)等等其它電子設(shè)備已經(jīng)經(jīng)歷了相似的變換,。今天,這些無(wú)線設(shè)備被廣泛應(yīng)用于不同的通信。舉個(gè)例子,雖然模擬移動(dòng)電話傳統(tǒng)的用于模擬語(yǔ)音通信,但是現(xiàn)在以及未來(lái)的移動(dòng)電話則是一個(gè)能夠傳送語(yǔ)音、數(shù)據(jù)、圖像、視頻以及其它多媒體內(nèi)容的強(qiáng)大的通信工具。PDA,曾經(jīng)的便攜日歷和組織工具,現(xiàn)在通常具有諸如E-mail,互聯(lián)網(wǎng)訪問(wèn)等的網(wǎng)絡(luò)通信能力。隨著無(wú)線和有線網(wǎng)絡(luò)構(gòu)架的融合,各種類(lèi)型的信息能夠在無(wú)線和有線終端進(jìn)行通信。
在設(shè)備之間進(jìn)行如此的通信時(shí),在這些設(shè)備上可操作的程序、應(yīng)用、應(yīng)用實(shí)例等等(下文簡(jiǎn)稱“應(yīng)用”)通常需要和其它設(shè)備上的應(yīng)用進(jìn)行通信。例如,應(yīng)用層上的一個(gè)應(yīng)用產(chǎn)生傳送到更低層軟件結(jié)構(gòu)如傳輸層、網(wǎng)絡(luò)層、數(shù)據(jù)鏈路層以及物理層的消息,在那里該封裝消息通過(guò)網(wǎng)絡(luò)傳輸?shù)狡渌O(shè)備。接收設(shè)備接收到的消息在該軟件結(jié)構(gòu)中上移以便最終將原始消息提供給該接收設(shè)備上的一個(gè)應(yīng)用。
為了促進(jìn)消息的通信,可以使用消息隊(duì)列。通常,消息隊(duì)列涉及到從一個(gè)應(yīng)用中接收消息并將它們轉(zhuǎn)發(fā)給一個(gè)接收方應(yīng)用的功能。該消息隊(duì)列作為傳播消息的臨時(shí)存儲(chǔ)設(shè)備。這樣的消息隊(duì)列通常位于正在發(fā)送和接收該消息的設(shè)備中,并可選地位于邏輯上被放置在發(fā)送和接收設(shè)備之間的網(wǎng)絡(luò)上的中間計(jì)算系統(tǒng)中。
消息隊(duì)列的使用刪除了來(lái)自應(yīng)用本身的消息通信的許多方面。比如當(dāng)通信應(yīng)用之間沒(méi)有連接時(shí),消息隊(duì)列存儲(chǔ)消息。另一益處是可靠性,因?yàn)橄㈥?duì)列的使用提供安全且有序的消息遞送。因此,應(yīng)用消息隊(duì)列的一個(gè)益處是不需要應(yīng)用開(kāi)發(fā)者開(kāi)發(fā)甚至不需要完全了解執(zhí)行消息與他們的應(yīng)用之間的這些有序轉(zhuǎn)送的基礎(chǔ)功能。
當(dāng)消息隊(duì)列從傳輸層接收到消息時(shí),它必須知道該消息指向哪個(gè)應(yīng)用實(shí)例。它并不總是足以識(shí)別出該應(yīng)用類(lèi)型,這是因?yàn)橹鳈C(jī)可能同時(shí)運(yùn)行幾個(gè)應(yīng)用軟件實(shí)例。此外,應(yīng)用實(shí)例被暫緩或終止的時(shí)候情況變得更為復(fù)雜。因此,當(dāng)消息被激活或重新激活時(shí),它必須被傳遞給正確的應(yīng)用。
在沒(méi)有使用消息隊(duì)列的地方,不存在這個(gè)問(wèn)題,因?yàn)閼?yīng)用實(shí)例直接激活并使用傳輸協(xié)議實(shí)例。但是,當(dāng)使用消息隊(duì)列時(shí),這種關(guān)聯(lián)丟失了。一種解決辦法是在兩端引入消息隊(duì)列,以便能夠使用特定的(和可能專用的)協(xié)議或分組報(bào)頭來(lái)唯一識(shí)別正在通信的應(yīng)用。例如,發(fā)送消息隊(duì)列添加一個(gè)包含唯一標(biāo)識(shí)符的專用消息隊(duì)列報(bào)頭。
但是,這種方法把消息隊(duì)列的使用限制到僅當(dāng)兩個(gè)通信端支持同種類(lèi)型消息隊(duì)列時(shí)的那些情況。這導(dǎo)致了碎片并且從開(kāi)發(fā)者的觀點(diǎn)來(lái)看是不期望的。在這樣一種情況下,開(kāi)發(fā)者必須制定不同版本的軟件或包括對(duì)另一端有和沒(méi)有消息隊(duì)列的情況的支持。
因此,期望提供一種方式即僅在端到端通信信道的一側(cè)配置消息隊(duì)列。還期望能克服在通信端之間為唯一識(shí)別該通信對(duì)等體而具有(可能專用的)協(xié)議和/或分組報(bào)頭的需要。本發(fā)明給現(xiàn)有技術(shù)的這些以及其它問(wèn)題提供了一個(gè)解決方案,并且提供許多勝過(guò)實(shí)現(xiàn)消息隊(duì)列的現(xiàn)有技術(shù)消息事務(wù)處理的優(yōu)點(diǎn)。
發(fā)明概述為了克服上述現(xiàn)有技術(shù)中的限制,以及為了克服在閱讀并理解了說(shuō)明書(shū)后將變得明顯的其它限制,本發(fā)明公開(kāi)了一種用于在應(yīng)用之間傳送消息的系統(tǒng)和方法。
根據(jù)本發(fā)明的一個(gè)實(shí)施例,提供一種促進(jìn)應(yīng)用之間消息通信的方法。該方法包括獲得應(yīng)用標(biāo)識(shí)符,并獲得對(duì)應(yīng)出站(outbound)邏輯連接標(biāo)識(shí)符,所述對(duì)應(yīng)出站邏輯連接標(biāo)識(shí)符與來(lái)自它們各自的可由應(yīng)用標(biāo)識(shí)符識(shí)別的應(yīng)用的消息傳遞相關(guān)。應(yīng)用標(biāo)識(shí)符和它們對(duì)應(yīng)的出站邏輯連接標(biāo)識(shí)符之間的關(guān)聯(lián)被建立起來(lái)。響應(yīng)的入站(inbound)消息被指向具有與出站邏輯連接標(biāo)識(shí)符相關(guān)的應(yīng)用標(biāo)識(shí)符的應(yīng)用,該出站邏輯連接標(biāo)識(shí)符對(duì)應(yīng)于響應(yīng)入站消息的入站邏輯連接標(biāo)識(shí)符。
在這樣一個(gè)方法的更特定的實(shí)施例中,入站邏輯連接標(biāo)識(shí)符與所建立關(guān)聯(lián)的出站邏輯連接標(biāo)識(shí)符進(jìn)行比較,并且至少一個(gè)匹配于入站邏輯連接標(biāo)識(shí)符的出站邏輯連接標(biāo)識(shí)符被識(shí)別。利用具有與匹配的出站邏輯連接標(biāo)識(shí)符建立的關(guān)聯(lián)的應(yīng)用標(biāo)識(shí)符,可以識(shí)別出響應(yīng)的入站消息將要被指向的應(yīng)用。根據(jù)其它特定實(shí)施例,出站邏輯連接標(biāo)識(shí)符可以包括出站傳輸標(biāo)識(shí)符、出站套接字標(biāo)識(shí)符、分別與傳送進(jìn)程或線程相關(guān)的出站傳送進(jìn)程或線程標(biāo)識(shí)符、端口標(biāo)識(shí)符、會(huì)話標(biāo)識(shí)符等。根據(jù)這樣一個(gè)方法的又一其它特定實(shí)施例,建立關(guān)聯(lián)包括在每個(gè)應(yīng)用標(biāo)識(shí)符和它對(duì)應(yīng)的出站邏輯連接標(biāo)識(shí)符之間創(chuàng)建一個(gè)鏈接、通過(guò)表中的一個(gè)條目使應(yīng)用標(biāo)識(shí)符和它們對(duì)應(yīng)的出站邏輯連接標(biāo)識(shí)符相關(guān)、創(chuàng)建條目表,其中每個(gè)條目包括用于傳遞特定消息的應(yīng)用標(biāo)識(shí)符和它對(duì)應(yīng)的出站邏輯連接標(biāo)識(shí)符之一等操作中的任何一個(gè)。在一個(gè)特定實(shí)施例中,創(chuàng)建條目表包括使用消息隊(duì)列(MQ)創(chuàng)建條目表。這樣一種方法也可以通過(guò)存儲(chǔ)在計(jì)算機(jī)可讀介質(zhì)上的軟件指令來(lái)實(shí)現(xiàn)。
根據(jù)本發(fā)明的另一實(shí)施例,提供一種使用消息隊(duì)列(MQ)識(shí)別出多個(gè)應(yīng)用之間作為至少一個(gè)響應(yīng)消息的目標(biāo)的應(yīng)用的方法。該方法包括接收應(yīng)用標(biāo)識(shí)符和出站傳輸標(biāo)識(shí)符,這里出站傳輸標(biāo)識(shí)符唯一識(shí)別出來(lái)自該應(yīng)用標(biāo)識(shí)符所識(shí)別的應(yīng)用的用于消息傳遞的邏輯連接。應(yīng)用標(biāo)識(shí)符和出站傳輸標(biāo)識(shí)符之間的關(guān)聯(lián)被建立起來(lái)??赡芙邮盏脚c響應(yīng)消息的接收相關(guān)的以及目的地為該應(yīng)用的入站傳輸標(biāo)識(shí)符。接著可能通過(guò)把入站傳輸標(biāo)識(shí)符匹配于出站傳輸標(biāo)識(shí)符來(lái)識(shí)別出一個(gè)應(yīng)用作為響應(yīng)消息的目標(biāo)。根據(jù)應(yīng)用標(biāo)識(shí)符和所匹配的出站傳輸標(biāo)識(shí)符之間的關(guān)聯(lián)來(lái)確定該應(yīng)用的特定應(yīng)用標(biāo)識(shí)符。在一個(gè)特定實(shí)施例中,通過(guò)存儲(chǔ)在計(jì)算機(jī)可讀介質(zhì)上的軟件指令來(lái)實(shí)現(xiàn)這樣一種方法。
根據(jù)本發(fā)明的另一實(shí)施例,提供一種可操作于網(wǎng)絡(luò)上并能夠與至少一個(gè)目的地設(shè)備通信消息的源設(shè)備。該源設(shè)備包括為從該源設(shè)備傳送的一個(gè)或多個(gè)出站消息中的每一個(gè)存儲(chǔ)應(yīng)用標(biāo)識(shí)符和對(duì)應(yīng)出站邏輯連接標(biāo)識(shí)符的聯(lián)系的存儲(chǔ)器。消息隊(duì)列(MQ)模塊配置為對(duì)入站消息的入站邏輯連接標(biāo)識(shí)符和所存儲(chǔ)的聯(lián)系的出站邏輯連接標(biāo)識(shí)符進(jìn)行比較。MQ識(shí)別出具有與匹配于入站邏輯連接標(biāo)識(shí)符的出站邏輯連接標(biāo)識(shí)符相聯(lián)的應(yīng)用標(biāo)識(shí)符的本地應(yīng)用。
在這樣一種源設(shè)備的更特定的實(shí)施例中,以軟件實(shí)現(xiàn)MQ模塊,并且該源設(shè)備包括處理器,該處理器配置為執(zhí)行MQ軟件以建立應(yīng)用標(biāo)識(shí)符和對(duì)應(yīng)出站邏輯連接標(biāo)識(shí)符的聯(lián)系,比較入站邏輯連接標(biāo)識(shí)符和所存儲(chǔ)聯(lián)系的出站邏輯連接標(biāo)識(shí)符,并識(shí)別具有與匹配于入站邏輯連接標(biāo)識(shí)符的出站邏輯連接標(biāo)識(shí)符相聯(lián)的應(yīng)用標(biāo)識(shí)符的本地應(yīng)用。在這樣一種源設(shè)備的另一特定實(shí)施例中,MQ模塊進(jìn)一步配置為在存儲(chǔ)器中為從該源設(shè)備通信的每個(gè)出站消息建立應(yīng)用標(biāo)識(shí)符和對(duì)應(yīng)出站邏輯連接標(biāo)識(shí)符的聯(lián)系。
根據(jù)本發(fā)明的另一實(shí)施例,提供一個(gè)通過(guò)網(wǎng)絡(luò)在應(yīng)用之間傳送信息的系統(tǒng)。該系統(tǒng)包括具有多個(gè)用于通過(guò)網(wǎng)絡(luò)傳送消息的源應(yīng)用(其可包括應(yīng)用、應(yīng)用實(shí)例、應(yīng)用進(jìn)程/線程等)的源設(shè)備。該系統(tǒng)還包括具有至少一個(gè)用于接收消息和響應(yīng)于所接收的消息用于提供應(yīng)答消息的目的地應(yīng)用的目的地設(shè)備。該源設(shè)備包括為從該源設(shè)備通信的多個(gè)出站消息中的每一個(gè)存儲(chǔ)應(yīng)用標(biāo)識(shí)符和對(duì)應(yīng)出站邏輯連接標(biāo)識(shí)符的聯(lián)系的存儲(chǔ)器。該源設(shè)備進(jìn)一步包括源消息隊(duì)列(MQ)模塊,其配置為比較響應(yīng)消息的入站邏輯連接標(biāo)識(shí)符和所存儲(chǔ)的聯(lián)系的出站邏輯連接標(biāo)識(shí)符,和識(shí)別出具有與匹配于入站邏輯連接標(biāo)識(shí)符的出站邏輯連接標(biāo)識(shí)符相聯(lián)的應(yīng)用標(biāo)識(shí)符的本地應(yīng)用。
在這樣一種系統(tǒng)的更特定的實(shí)施例中,目的地設(shè)備配置為直接發(fā)送和接收消息,而且不使用本地MQ。在另一特定實(shí)施例中,目的地設(shè)備包括不同于源MQ類(lèi)型的目的地MQ。
表征本發(fā)明的這些以及各種其它優(yōu)點(diǎn)和新穎性特征在附加到這里并于此形成一部分的權(quán)利要求中被特別指出。可是,為了更好地理解本發(fā)明、它的優(yōu)點(diǎn)以及通過(guò)它的使用所獲得的目的,應(yīng)該對(duì)于此形成了另外一個(gè)部分的附圖以及所伴隨的敘述性內(nèi)容進(jìn)行參考,這些內(nèi)容中示出并描述了根據(jù)本發(fā)明的系統(tǒng)和方法的典型示例。
結(jié)合在如下附圖中說(shuō)明的實(shí)施例來(lái)描述本發(fā)明。
圖1是示出其中可應(yīng)用本發(fā)明原理的一個(gè)典型網(wǎng)絡(luò)環(huán)境的框圖;圖2是說(shuō)明分層軟件體系結(jié)構(gòu)中消息隊(duì)列的體系布局的代表性示例框圖;圖3A是說(shuō)明沒(méi)有使用消息隊(duì)列的應(yīng)用和傳送實(shí)例之間的關(guān)聯(lián)的框圖;
圖3B是說(shuō)明使用消息隊(duì)列的應(yīng)用和傳送實(shí)例之間的傳統(tǒng)關(guān)聯(lián)的分裂的框圖;圖4是說(shuō)明通過(guò)在通信兩端使用消息隊(duì)列解決圖3B描述的分裂的一種方式的框圖;圖5是說(shuō)明根據(jù)本發(fā)明提供應(yīng)用和傳輸標(biāo)識(shí)符之間的一種關(guān)聯(lián)的一個(gè)實(shí)施例框圖;圖6是說(shuō)明根據(jù)本發(fā)明維持應(yīng)用和傳輸標(biāo)識(shí)符之間關(guān)聯(lián)的一個(gè)實(shí)施例框圖;圖7是說(shuō)明其中通信多方中只有一方使用MQ的實(shí)現(xiàn)ID表的方式的一個(gè)發(fā)明詳述在可仿效實(shí)施例的如下說(shuō)明中,對(duì)附圖進(jìn)行了引用,附圖在此形成了該說(shuō)明的一部分并且其中通過(guò)說(shuō)明示出了可以實(shí)踐本發(fā)明的代表性實(shí)施例。應(yīng)該理解的是,可以應(yīng)用其它實(shí)施例,因?yàn)榭梢赃M(jìn)行結(jié)構(gòu)和操作上的改變而不偏離本通常,本發(fā)明提供一種在應(yīng)用之間傳送消息的系統(tǒng)和方法,其中消息隊(duì)列(MQ)被實(shí)現(xiàn)為少于所有通信應(yīng)用,和/或當(dāng)與通信設(shè)備相關(guān)的MQ不使用如協(xié)議和/或分組報(bào)頭時(shí)。在應(yīng)用標(biāo)識(shí)符和它們的對(duì)應(yīng)傳輸標(biāo)識(shí)符(或其它邏輯連接標(biāo)識(shí)符)之間創(chuàng)建關(guān)聯(lián),該對(duì)應(yīng)傳輸標(biāo)識(shí)符是在從該設(shè)備發(fā)送一則消息之后被提供。當(dāng)響應(yīng)消息被發(fā)送到該應(yīng)用時(shí),該消息必須能夠定位發(fā)送第一個(gè)消息的應(yīng)用或應(yīng)用實(shí)例。根據(jù)本發(fā)明,這通過(guò)查閱先前創(chuàng)建的應(yīng)用標(biāo)識(shí)符和傳輸標(biāo)識(shí)符之間的關(guān)聯(lián)來(lái)完成。當(dāng)與入站消息相關(guān)的傳輸標(biāo)識(shí)符與所創(chuàng)建關(guān)聯(lián)的傳輸標(biāo)識(shí)符進(jìn)行比較時(shí),可能探測(cè)到與所創(chuàng)建關(guān)聯(lián)的傳輸標(biāo)識(shí)符的一個(gè)(或多個(gè))的匹配,這進(jìn)而又給目標(biāo)應(yīng)用供應(yīng)適當(dāng)?shù)膽?yīng)用標(biāo)識(shí)符。
在一個(gè)實(shí)施例中,本發(fā)明把軟件結(jié)構(gòu)包含在包括涉及應(yīng)用間通信的功能的有線和/或移動(dòng)通信系統(tǒng)中。如前所述,消息排隊(duì)方法學(xué)被用于促進(jìn)應(yīng)用之間的通信。圖1是說(shuō)明其中可應(yīng)用本發(fā)明原理的典型網(wǎng)絡(luò)環(huán)境100的框圖。網(wǎng)絡(luò)環(huán)境100可以包括例如一個(gè)或多個(gè)無(wú)線網(wǎng)絡(luò)102和/或有線網(wǎng)絡(luò)104。一個(gè)(多個(gè))無(wú)線網(wǎng)絡(luò)102可以表示任何一個(gè)或多個(gè)已知的或未來(lái)的無(wú)線網(wǎng)絡(luò)技術(shù),諸如全球移動(dòng)通信系統(tǒng)(GSM)、通用移動(dòng)通信系統(tǒng)(UMTS)、個(gè)人通信業(yè)務(wù)(PCS)、時(shí)分多址(TDMA)、碼分多址(CDMA)、寬帶CDMA(WCDMA)、或其它移動(dòng)網(wǎng)絡(luò)傳輸技術(shù)。其它無(wú)線通信裝置還可以耦合各種終端,諸如短距離無(wú)線技術(shù)(如藍(lán)牙)。任何無(wú)線設(shè)備106或其它通信終端可被耦合到這樣一個(gè)(多個(gè))無(wú)線網(wǎng)絡(luò)102,諸如移動(dòng)電話108和其它移動(dòng)通信裝置、膝上型電腦或其它便攜式計(jì)算機(jī)110、個(gè)人數(shù)字助理(PDA)112、或任何由通用無(wú)線設(shè)備114表示的能夠經(jīng)無(wú)線網(wǎng)絡(luò)102通信的其它類(lèi)似的終端。由無(wú)線設(shè)備116表示的任何數(shù)量的無(wú)線設(shè)備可以耦合到無(wú)線網(wǎng)絡(luò)102。其它設(shè)備或網(wǎng)絡(luò)元件118、120也可以耦合到無(wú)線網(wǎng)絡(luò)102。這樣一個(gè)網(wǎng)絡(luò)元件的一個(gè)實(shí)例是服務(wù)器118。
一個(gè)(多個(gè))有線網(wǎng)絡(luò)104可包括諸如互聯(lián)網(wǎng)的全球區(qū)域網(wǎng)(GAN)、一個(gè)或多個(gè)廣域網(wǎng)(WAN)、局域網(wǎng)(LAN)等。能夠通信的任何計(jì)算設(shè)備或其它終端可經(jīng)由有線網(wǎng)絡(luò)104操作,比如計(jì)算機(jī)122、124(包括臺(tái)式機(jī)、工作站、膝上型電腦、會(huì)議系統(tǒng)等)或能夠經(jīng)網(wǎng)絡(luò)104通信的其它任何類(lèi)似的計(jì)算設(shè)備。其它設(shè)備或網(wǎng)絡(luò)元件126、128也可以耦合到有線網(wǎng)104。例如,服務(wù)器126可以提供內(nèi)容、數(shù)據(jù)等等給任何一個(gè)或多個(gè)其它計(jì)算機(jī)122、124,無(wú)線設(shè)備106、116和/或其它服務(wù)器118或其它網(wǎng)絡(luò)元件120、128。用具有程序或應(yīng)用的任何網(wǎng)絡(luò)元件可應(yīng)用本發(fā)明,其中期望與其它程序/應(yīng)用的通信。另外,雖然本發(fā)明在網(wǎng)絡(luò)環(huán)境中尤其有益,但是本發(fā)明同樣適用于其中應(yīng)用或應(yīng)用實(shí)例之間發(fā)生通信的獨(dú)立系統(tǒng)。
在圖1的圖示實(shí)施例中,每一個(gè)示出的網(wǎng)絡(luò)元件包括可以與其它網(wǎng)絡(luò)元件中的其它應(yīng)用通信的一個(gè)或多個(gè)應(yīng)用。例如,無(wú)線設(shè)備包括一個(gè)(多個(gè))應(yīng)用130,服務(wù)器118和126分別包括一個(gè)(多個(gè))應(yīng)用132和134,以及計(jì)算設(shè)備122包括一個(gè)(多個(gè))應(yīng)用136。用于促進(jìn)此類(lèi)應(yīng)用之間的通信的軟件通常被稱作應(yīng)用通信“中間件”。
本發(fā)明是針對(duì)此類(lèi)中間件的一方面,即消息隊(duì)列,其促進(jìn)此類(lèi)應(yīng)用130、132、134、136和/或其它應(yīng)用之間的通信。通過(guò)網(wǎng)絡(luò)的應(yīng)用數(shù)據(jù)常常被稱作消息。消息隊(duì)列在傳輸期間提供網(wǎng)絡(luò)中的一個(gè)保存位置來(lái)臨時(shí)存儲(chǔ)消息。通常,消息隊(duì)列(MQ)可位于計(jì)算機(jī)、服務(wù)器、或其它發(fā)送消息的系統(tǒng)中,和位于接收消息的系統(tǒng)中。例如,任何網(wǎng)絡(luò)元件106、118、122、126中的任何一個(gè)可包括MQ,諸如分別是MQ 140、142、144、146??商娲模缫粋€(gè)或多個(gè)MQ 148所示,MQ可以作為中間計(jì)算系統(tǒng)邏輯上位于發(fā)送和接收系統(tǒng)之間。如下更詳細(xì)的描述,本發(fā)明允許應(yīng)用相互之間利用MQ通信,盡管在通信設(shè)備的一個(gè)中缺少M(fèi)Q或通信設(shè)備中的MQ之間不相兼容。
無(wú)線和有線網(wǎng)絡(luò)通信通常按照分層軟件結(jié)構(gòu)進(jìn)行描述,概略地基于現(xiàn)有技術(shù)中已知的開(kāi)放式系統(tǒng)互聯(lián)參考模型(OSI)。圖2是說(shuō)明這樣一種分層軟件結(jié)構(gòu)中消息隊(duì)列的結(jié)構(gòu)布置的典型實(shí)例的框圖。這個(gè)實(shí)施例假定無(wú)線終端200和另一個(gè)終端或服務(wù)器(服務(wù)器/終端202)的應(yīng)用之間的無(wú)線/蜂窩通信。該終端200包括其包括有應(yīng)用-A 204、應(yīng)用-B 206、直到由應(yīng)用n 208代表的無(wú)限制數(shù)量的應(yīng)用的典型應(yīng)用。相似的,該服務(wù)器/終端202包含了包括有應(yīng)用X 210、直到由應(yīng)用m 212代表的無(wú)限制數(shù)量的應(yīng)用的典型應(yīng)用。這些應(yīng)用,與任何期望的或需要的應(yīng)用編程接口(API)一起代表每個(gè)堆棧的應(yīng)用層。
傳輸控制協(xié)議(TCP)214、216和用戶數(shù)據(jù)報(bào)協(xié)議(UDP)218、220堆棧業(yè)務(wù)描述典型的傳輸層協(xié)議。典型地,TCP或UDP協(xié)議被用于移動(dòng)互聯(lián)網(wǎng)設(shè)備或有線設(shè)備以承載應(yīng)用相關(guān)的消息?;ヂ?lián)網(wǎng)協(xié)議(IP)222、224堆棧業(yè)務(wù)描述典型的網(wǎng)絡(luò)層協(xié)議,其被用來(lái)在基于IP的網(wǎng)絡(luò)上承載數(shù)據(jù)。在圖示的實(shí)施例中,各種無(wú)線/蜂窩協(xié)議226、228可代表數(shù)據(jù)鏈路層和傳輸層之間的協(xié)議。這樣的協(xié)議包括,例如短消息業(yè)務(wù)(SMS)、多媒體消息業(yè)務(wù)(MMS)、無(wú)線應(yīng)用協(xié)議(WAP)等。結(jié)構(gòu)上,MQ 230、232位于圖2所示實(shí)例中的通信協(xié)議和應(yīng)用之間。終端200和服務(wù)器/終端202之間的連接,如通信信道234所描述的,可以是僅偶發(fā)性可用的不可靠連接。MQ 230、232解決這種情況。但是,如在下面更詳細(xì)描述的,不是所有的設(shè)備都使用MQ。另外,即使通信設(shè)備的每個(gè)都使用MQ,該MQ可能在與所傳送的信息相關(guān)的協(xié)議和/或分組報(bào)頭方面不兼容。
當(dāng)MQ從傳輸層接收到消息(如TCP 214/216;UDP 218/220等)時(shí),它必須知道該消息指向哪個(gè)應(yīng)用和/或應(yīng)用實(shí)例。并非總是足以識(shí)別出該應(yīng)用類(lèi)型,因?yàn)橹鳈C(jī)(如計(jì)算機(jī)、移動(dòng)終端等)可能同時(shí)運(yùn)行應(yīng)用軟件的幾個(gè)實(shí)例。此外,由于應(yīng)用實(shí)例可被臨時(shí)暫停或者甚至被終止的事實(shí),因此情況變得更為復(fù)雜。因此,當(dāng)應(yīng)用或應(yīng)用實(shí)例被激活或者重新被激活時(shí),消息必須被傳遞到正確的應(yīng)用(包括離散的應(yīng)用或應(yīng)用進(jìn)程)或應(yīng)用實(shí)例。
當(dāng)沒(méi)有使用MQ時(shí),這個(gè)問(wèn)題不會(huì)出現(xiàn)。這是因?yàn)樵搼?yīng)用直接激活并使用該協(xié)議。圖3A描述了這種情況,并說(shuō)明沒(méi)有使用MQ的典型情況的框圖。在圖示的實(shí)例中,應(yīng)用-A的兩個(gè)實(shí)例是激活的,即應(yīng)用-A實(shí)例-1 300和應(yīng)用-A實(shí)例-2 302。這種情況下,每個(gè)應(yīng)用實(shí)例直接與不同的傳輸協(xié)議實(shí)例相關(guān)。例如,調(diào)用應(yīng)用-A實(shí)例-1 300將調(diào)用傳輸協(xié)議實(shí)例-1 304,調(diào)用應(yīng)用-A實(shí)例-2302將調(diào)用傳輸協(xié)議實(shí)例-2 306。在傳輸層使用TCP的更特定的實(shí)例中,假定應(yīng)用-A實(shí)例-1 300和實(shí)例-2 302對(duì)應(yīng)于同時(shí)運(yùn)行的兩個(gè)瀏覽器應(yīng)用。不使用MQ,每個(gè)將打開(kāi)自己的TCP套接字來(lái)發(fā)送超文本傳輸協(xié)議(HTTP)消息。因此,在每個(gè)瀏覽器實(shí)例300、302和TCP進(jìn)程304、306之間分別有一一對(duì)應(yīng)的關(guān)系。
MQ的使用提供了許多優(yōu)點(diǎn),并因此經(jīng)常期望使用MQ。然而,MQ的使用使得圖3A所示的傳統(tǒng)關(guān)聯(lián)無(wú)效。這在圖3B中進(jìn)行描述,其中在應(yīng)用實(shí)例300、302和傳輸實(shí)例304、306之間使用MQ 308。如可看到的,傳輸和應(yīng)用實(shí)例之間的關(guān)聯(lián)是無(wú)效的。在更特定的實(shí)例中,再次假定應(yīng)用-A實(shí)例-1 300和實(shí)例-2 302對(duì)應(yīng)于同時(shí)運(yùn)行的兩個(gè)瀏覽器應(yīng)用。瀏覽器的兩個(gè)實(shí)例300、302都可向MQ308發(fā)送一個(gè)HTTP請(qǐng)求,并且然后被暫?;蚪K止。同時(shí),MQ308向前發(fā)送該消息到目的地。當(dāng)目的地設(shè)備(如服務(wù)器)作出響應(yīng),MQ308必須知道該響應(yīng)指向?yàn)g覽器實(shí)例300、302中的哪個(gè)。不幸的是,可能該傳輸使用同一標(biāo)識(shí)符,諸如TCP端口號(hào),因此該響應(yīng)不能被指向適當(dāng)?shù)膽?yīng)用實(shí)例。
當(dāng)使用MQ時(shí),通常假定在通信兩端都使用MQ,諸如在客戶端/終端和服務(wù)器。這部分地由于需要唯一識(shí)別通信應(yīng)用的事實(shí),包括在應(yīng)用有幾個(gè)運(yùn)行的實(shí)例并且每個(gè)實(shí)例可以進(jìn)入暫?;蚪K止?fàn)顟B(tài)的地方。如前所述,該MQ必須知道從傳輸層接收到的消息被指向哪個(gè)應(yīng)用和應(yīng)用實(shí)例。簡(jiǎn)單的解決辦法是在兩端引進(jìn)MQ,和使用特定協(xié)議或分組報(bào)頭來(lái)唯一識(shí)別兩端正在通信的應(yīng)用。這樣一種協(xié)議或分組報(bào)頭可能是專門(mén)用來(lái)完成這個(gè)目標(biāo),但是在任何情況下兩個(gè)通信端必須支持同類(lèi)型的MQ。例如,發(fā)送MQ可增加包含唯一標(biāo)識(shí)符的專用MQ報(bào)頭。這在圖4中進(jìn)行描述,其提供了說(shuō)明在通信兩端使用MQ的解決辦法的框圖。
在圖4的實(shí)例中,一個(gè)應(yīng)用的三個(gè)應(yīng)用實(shí)例與終端400相關(guān),包括應(yīng)用-A實(shí)例-1 402、應(yīng)用-A實(shí)例-2 404、應(yīng)用-A實(shí)例-3 406。在終端400提供有一個(gè)MQ408,邏輯上在應(yīng)用實(shí)例和傳輸層410之間。所述實(shí)例中通信的另一端是服務(wù)器412,該服務(wù)器包括服務(wù)器應(yīng)用414和邏輯上在服務(wù)器應(yīng)用414和傳輸層418之間的MQ416。傳輸層420也可以沿通信信道出現(xiàn)在各種網(wǎng)絡(luò)元件422。假定服務(wù)器應(yīng)用414要發(fā)送一個(gè)消息到應(yīng)用實(shí)例402、404、406中的一個(gè)。唯一標(biāo)識(shí)符(ID)424被用于唯一識(shí)別該通信應(yīng)用。例如,發(fā)送MQ416可向包含唯一ID 424的消息426增加專用MQ報(bào)頭來(lái)識(shí)別接收應(yīng)用實(shí)例??商鎿Q地,發(fā)送MQ416可使用一些具體和可能專用的協(xié)議來(lái)為該消息識(shí)別目的地應(yīng)用實(shí)例402、404、406。使用與消息426一起傳送的這個(gè)唯一ID 424,可以識(shí)別出應(yīng)用實(shí)例402、404、406中的適當(dāng)?shù)囊粋€(gè)。
然而,這種方法把MQ的使用限制在僅當(dāng)兩個(gè)通信端都支持同類(lèi)型的MQ的情況。這自然導(dǎo)致了碎片,并且從應(yīng)用開(kāi)發(fā)者的觀點(diǎn)來(lái)看是不期望的。例如,可能開(kāi)發(fā)者必須使用不同版本的軟件,或包括對(duì)另外一端有或沒(méi)有MQ的情況的支持。本發(fā)明克服了這個(gè)問(wèn)題,并且克服了在通信端之間為唯一識(shí)別通信對(duì)等體使用可能的專用協(xié)議和/或分組報(bào)頭的需要。本發(fā)明還允許MQ使用在甚至僅在端到端通信信道的一側(cè)上部署MQ的情況下。
本發(fā)明規(guī)定了應(yīng)用和傳輸標(biāo)識(shí)符的關(guān)聯(lián)的存儲(chǔ),來(lái)促進(jìn)對(duì)作為消息目的地的應(yīng)用和/或應(yīng)用實(shí)例的隨后識(shí)別。如上所述,這允許MQ使用在甚至僅在端到端通信信道的一側(cè)上部署MQ的情況下,和消除了在兩端實(shí)現(xiàn)MQ的通信信道的每一端對(duì)同類(lèi)型MQ的需要。在本發(fā)明的一個(gè)實(shí)施例中,所存儲(chǔ)的應(yīng)用和傳輸標(biāo)識(shí)符的相互關(guān)系通過(guò)維持一個(gè)表(下文稱為“ID-表”)來(lái)實(shí)現(xiàn),該表識(shí)別出與具體應(yīng)用相關(guān)的應(yīng)用和傳輸。根據(jù)本發(fā)明,所使用的特定標(biāo)識(shí)符可以改變,因?yàn)槿魏慰捎玫膽?yīng)用和傳輸標(biāo)識(shí)符都會(huì)被使用,只要提供了它們之間的相互關(guān)系。例如,可通過(guò)把使用由MQ提供的唯一ID來(lái)識(shí)別的應(yīng)用與使用傳輸協(xié)議實(shí)例的識(shí)別所識(shí)別的傳輸相關(guān)聯(lián)來(lái)提供應(yīng)用/傳輸關(guān)聯(lián)??梢允褂闷渌膽?yīng)用和傳輸標(biāo)識(shí)符,如下更詳細(xì)的描述。如此,當(dāng)MQ從傳輸層接收到一個(gè)消息時(shí),它可以訪問(wèn)所存儲(chǔ)的應(yīng)用/傳輸標(biāo)識(shí)符的關(guān)聯(lián)來(lái)確定該消息被指向哪個(gè)應(yīng)用/應(yīng)用實(shí)例。因此,本發(fā)明消除了在通信信道的兩端擁有一個(gè)MQ、或至少相同MQ的需要。
圖5是說(shuō)明根據(jù)本發(fā)明在應(yīng)用和應(yīng)用標(biāo)識(shí)符之間提供一種關(guān)聯(lián)的一個(gè)實(shí)施例的框圖。在圖5的實(shí)施例中,示出了兩個(gè)應(yīng)用實(shí)例,包括應(yīng)用-A實(shí)例-1 500和應(yīng)用-A實(shí)例-2 502。示出了兩個(gè)傳輸協(xié)議實(shí)例,包括傳輸協(xié)議實(shí)例-1 504和傳輸協(xié)議實(shí)例-2 506。還使用一個(gè)MQ 508來(lái)促進(jìn)消息發(fā)送到接收應(yīng)用。然而,MQ 508的邏輯位置中斷了應(yīng)用和應(yīng)用實(shí)例之間的任何關(guān)聯(lián)。根據(jù)本發(fā)明,創(chuàng)建每個(gè)消息傳輸?shù)膽?yīng)用和傳輸標(biāo)識(shí)符的關(guān)聯(lián),當(dāng)消息目標(biāo)(如服務(wù)器、另外的終端等)響應(yīng)于最初發(fā)送消息的應(yīng)用或應(yīng)用實(shí)例時(shí),該關(guān)聯(lián)隨后可以用于識(shí)別正確的應(yīng)用或應(yīng)用實(shí)例。在圖5的圖示實(shí)施例中,應(yīng)用和傳輸標(biāo)識(shí)符的關(guān)聯(lián)可以使用本地ID-表510來(lái)維持。該ID-表510因此至少維持在消息被發(fā)送時(shí)所使用的應(yīng)用標(biāo)識(shí)符和傳輸標(biāo)識(shí)符的條目,并維持在消息傳輸中使用的對(duì)應(yīng)的應(yīng)用和傳輸標(biāo)識(shí)符之間的關(guān)聯(lián)。
圖6是說(shuō)明一個(gè)其中維持應(yīng)用和傳輸標(biāo)識(shí)符之間的關(guān)聯(lián)的實(shí)施例的圖表。在所述實(shí)施例中,實(shí)現(xiàn)一個(gè)ID-表600。ID-表600包括如條目602、604、606、608所表示的一個(gè)或多個(gè)表的條目,直到由條目610描述的不定數(shù)量的條目。在這樣一個(gè)ID-表600的一個(gè)實(shí)施例中,只維持應(yīng)用ID 612和傳輸ID 614之間的關(guān)聯(lián)。對(duì)于應(yīng)用ID 612,MQ為應(yīng)用或應(yīng)用實(shí)例產(chǎn)生唯一標(biāo)識(shí)符,或使用另外一個(gè)可用的標(biāo)識(shí)符諸如假如操作系統(tǒng)支持時(shí)的應(yīng)用進(jìn)程的進(jìn)程號(hào)。對(duì)于傳輸ID 614,MQ使用任何可用的傳輸標(biāo)識(shí)符,諸如假如操作系統(tǒng)支持時(shí)的協(xié)議進(jìn)程的進(jìn)程號(hào),或假如傳輸協(xié)議層提供時(shí)的套接字號(hào)等。對(duì)于特定消息,使用應(yīng)用ID 612和傳輸ID 614在ID-表600中創(chuàng)建一個(gè)條目。例如,條目602可包括被描述為APP-PROCESS#616的應(yīng)用ID 612和被描述為SOCKET#618的傳輸ID 614的關(guān)聯(lián)。標(biāo)識(shí)符614、618的這個(gè)關(guān)聯(lián)被維持并被用于響應(yīng)消息被指向的適當(dāng)應(yīng)用/應(yīng)用實(shí)例的隨后識(shí)別。
該MQ因此維持一個(gè)把特定應(yīng)用連接到特定傳輸?shù)谋?00。在一個(gè)實(shí)施例中,該表以這樣一種方式構(gòu)造,即它盡可能地獨(dú)立于操作系統(tǒng)的特征。當(dāng)發(fā)送一個(gè)消息時(shí),MQ在本地為應(yīng)用提供唯一的ID 612,并且該唯一的ID被存儲(chǔ)到該表中。該唯一的ID可通過(guò)MQ產(chǎn)生,如果MQ有一個(gè)可用的進(jìn)程標(biāo)識(shí)符(如APP-PROCESS#616)該唯一ID可以是進(jìn)程標(biāo)識(shí)符,或可以是應(yīng)用的另一個(gè)唯一標(biāo)識(shí)符。對(duì)應(yīng)的傳輸ID 614也可以存儲(chǔ)到表600,以及可使用傳輸特定的標(biāo)識(shí)符來(lái)獲得,諸如TCP或UDP套接字號(hào),或進(jìn)程或線程,這取決于環(huán)境支持什么。
在本發(fā)明的一個(gè)實(shí)施例中,ID-表600(或其它數(shù)據(jù)結(jié)構(gòu))還包含關(guān)于所使用的標(biāo)識(shí)符的特性的信息。例如,應(yīng)用ID類(lèi)型620和/或傳輸ID類(lèi)型622可以包括在表600的一個(gè)、多個(gè)或所有的條目中。例如,應(yīng)用ID類(lèi)型可以是由MQ產(chǎn)生的唯一ID、進(jìn)程號(hào)、或其它類(lèi)似的指示符。類(lèi)似地,傳輸ID類(lèi)型622可以是套接字號(hào)、端口號(hào)、會(huì)話標(biāo)識(shí)符、進(jìn)程號(hào)、線程號(hào)、或其它類(lèi)似的指示符。作為一個(gè)實(shí)例,一些類(lèi)型的操作系統(tǒng)返回唯一識(shí)別TCP進(jìn)程的TCP套接字號(hào)。該TCP套接字號(hào)可被用作傳輸ID 614,接著傳輸ID類(lèi)型622可以是一個(gè)套接字號(hào)或更明確地是TCP套接字號(hào)。根據(jù)該操作系統(tǒng),MQ可能得到涉及傳輸?shù)囊恍┢渌鼧?biāo)識(shí)符,諸如傳輸進(jìn)程/線程本身的標(biāo)識(shí)符而不是套接字號(hào)。
除了圖6描述的那些字段之外的附加的和/或不同的字段,可與ID-表600相關(guān)。另外,這樣的標(biāo)識(shí)符的關(guān)聯(lián)本身不需要在“表”中。相反,根據(jù)本發(fā)明可以使用能夠維持有關(guān)標(biāo)識(shí)符之間的這種關(guān)聯(lián)的任何數(shù)據(jù)結(jié)構(gòu)或鏈接特征。例如,鏈接、指針、鏈接表、數(shù)組等可以用于在應(yīng)用標(biāo)識(shí)符和邏輯連接標(biāo)識(shí)符(如傳輸標(biāo)識(shí)符)之間建立所需要的關(guān)聯(lián)。
圖7是說(shuō)明其中僅在通信方之一中應(yīng)用MQ的實(shí)現(xiàn)ID-表的一種方式的一個(gè)實(shí)施例的框圖。在圖7的實(shí)例中,一個(gè)應(yīng)用的三個(gè)應(yīng)用實(shí)例與終端700相關(guān),包括應(yīng)用-A實(shí)例-1 702和應(yīng)用-A實(shí)例-2 704和應(yīng)用-A實(shí)例-3 706。在終端700提供有MQ708,其邏輯上位于所述應(yīng)用實(shí)例和傳輸層710之間。與MQ708相關(guān)聯(lián)的是ID-表712,其存儲(chǔ)應(yīng)用和傳輸標(biāo)識(shí)符的關(guān)聯(lián),如前描述。在所描述的例子中通信的另一端包括另一個(gè)通信設(shè)備,在本例中是服務(wù)器714。該服務(wù)器714包括服務(wù)器應(yīng)用716,并可選地包括邏輯上位于服務(wù)器應(yīng)用716和傳輸層720之間的MQ718。傳輸層722也可以出現(xiàn)在沿通信信道的各種網(wǎng)絡(luò)元件724上。
操作中,諸如應(yīng)用-A實(shí)例-1 702的應(yīng)用或應(yīng)用實(shí)例可以調(diào)用MQ708的業(yè)務(wù)。這樣做的時(shí)候,應(yīng)用實(shí)例702識(shí)別出目的地。MQ708返回一個(gè)唯一的標(biāo)識(shí)符給可以在將來(lái)使用的應(yīng)用實(shí)例702。MQ708初始化一個(gè)傳輸,例如TCP套接字、UDP套接字等。操作系統(tǒng)或傳輸710通常返回一些涉及傳輸信道的標(biāo)識(shí)符的類(lèi)型,無(wú)論這是套接字號(hào)、進(jìn)程或線程標(biāo)識(shí)符等。例如,UNIX型操作系統(tǒng)通常返回一個(gè)唯一識(shí)別TCP進(jìn)程的TCP套接字號(hào)。在另一個(gè)實(shí)施例中,標(biāo)識(shí)符可以與傳輸進(jìn)程本身相關(guān)。
接著MQ708把應(yīng)用號(hào)(如“ID_application”)和傳輸標(biāo)識(shí)符(如“ID_transport”)都寫(xiě)入到ID-表712。如前所述,包括關(guān)于標(biāo)識(shí)符特性的信息也是必要的或有利的,例如傳輸類(lèi)型,以便指示是使用套接字號(hào)還是進(jìn)程號(hào)識(shí)另傳輸。表712被維持直到應(yīng)用702指示它的終止,或一些預(yù)定時(shí)間周期已經(jīng)截止而沒(méi)有使用,或一些其它的預(yù)定事件發(fā)生。
當(dāng)消息726從服務(wù)器應(yīng)用716到達(dá)時(shí),可能不應(yīng)用MQ718的業(yè)務(wù)??商鎿Q地,服務(wù)器714可以應(yīng)用MQ718,但可能不是與MQ708相同類(lèi)型的,并且由MQ718使用的任何特定協(xié)議或分組報(bào)頭可能對(duì)MQ708沒(méi)用。在所描述的例子中,消息726不包括任何特定或?qū)S脠?bào)頭來(lái)把消息有效負(fù)荷728(和標(biāo)準(zhǔn)報(bào)頭)指向應(yīng)用實(shí)例702中正確的一個(gè),并因此不應(yīng)用MQ718的業(yè)務(wù)。
當(dāng)消息726從另一通信端點(diǎn)(有或沒(méi)有MQ)到達(dá)時(shí),MQ708確定消息是從哪個(gè)套接字或進(jìn)程接收的。MQ708接著查閱ID-表712,并對(duì)其中接收到該消息的套接字和ID-表712中的傳輸標(biāo)識(shí)符進(jìn)行比較。基于在ID-表712中定位匹配的套接字,可以確定相關(guān)的應(yīng)用進(jìn)程/實(shí)例。在圖7的例子中,相關(guān)的應(yīng)用實(shí)例將識(shí)別出應(yīng)用-A實(shí)例-1702。該消息于是被轉(zhuǎn)發(fā)到正確的應(yīng)用實(shí)例,或可替換地存儲(chǔ)到與MQ708相關(guān)的隊(duì)列(例如當(dāng)應(yīng)用實(shí)例被暫停時(shí))。
圖8是說(shuō)明根據(jù)本發(fā)明傳送消息的方式的一個(gè)實(shí)施例的消息流程圖。這個(gè)實(shí)施例從設(shè)備(例如用于圖8用途的移動(dòng)終端)的觀點(diǎn)描述通信,該設(shè)備可以向另外的設(shè)備(例如用于圖8用途的服務(wù)器)發(fā)起通信和從該服務(wù)器接收消息。因此,移動(dòng)終端的模塊包括應(yīng)用進(jìn)程/實(shí)例800、消息隊(duì)列(MQ802)、傳輸協(xié)議進(jìn)程/實(shí)例804和用于使應(yīng)用ID和傳輸ID相關(guān)聯(lián)的數(shù)據(jù)結(jié)構(gòu)806。在圖示實(shí)施例中,所使用的數(shù)據(jù)結(jié)構(gòu)是ID_表806。
圖8的消息流程包括調(diào)用808 MQ802的業(yè)務(wù)的應(yīng)用800。當(dāng)調(diào)用時(shí),該應(yīng)用識(shí)別出消息的目的地。更具體的,應(yīng)用800可以通過(guò)應(yīng)用編程接口(API)調(diào)用MQ,并識(shí)別目標(biāo)主機(jī)、應(yīng)用和可能還有協(xié)議。也可能是應(yīng)用提議要使用的唯一標(biāo)識(shí)符。MQ802返回810唯一應(yīng)用ID給應(yīng)用800。如果該應(yīng)用首先已經(jīng)提出一個(gè)ID,那么MQ在返回它之前會(huì)檢測(cè)它是唯一的。MQ802還初始化812一個(gè)傳輸,其導(dǎo)致傳輸804返回814傳輸ID。在一個(gè)實(shí)施例中,這包括考慮協(xié)議和創(chuàng)建(fork)進(jìn)程作決定的MQ802。作為響應(yīng),返回進(jìn)程號(hào)、套接字號(hào)等等。現(xiàn)在具有應(yīng)用ID和傳輸ID的MQ802,寫(xiě)入816這個(gè)信息到ID_表806或以另外一種方式存儲(chǔ)應(yīng)用ID/傳輸ID關(guān)聯(lián)。應(yīng)用800發(fā)送818一個(gè)(多個(gè))消息到MQ 802。MQ 802向ID_表806請(qǐng)求820傳輸ID,接著ID_表806向MQ802返回822傳輸ID以促進(jìn)傳遞824一個(gè)(多個(gè))消息到傳輸進(jìn)程??商娲?,MQ802可能已經(jīng)具有來(lái)自于傳輸ID的早期返回814的傳輸ID,在這種情況下就不需要附加的請(qǐng)求820和返回822了。
ID_表806如今配備有經(jīng)應(yīng)用800發(fā)送的一個(gè)(多個(gè))消息的應(yīng)用ID和傳輸ID的關(guān)聯(lián)。當(dāng)從另一個(gè)通信端點(diǎn)接收到826響應(yīng)消息時(shí),MQ802可以確定從哪個(gè)套接字/進(jìn)程接收到消息。MQ802向ID_表806請(qǐng)求828該傳輸ID,然后ID_表806返回830該傳輸ID到MQ802。使用發(fā)現(xiàn)的套接字/進(jìn)程,和返回的傳輸ID(也就是套接字、進(jìn)程等),MQ802可以傳遞832響應(yīng)消息到正確的應(yīng)用進(jìn)程/實(shí)例800。
圖9是說(shuō)明根據(jù)本發(fā)明的一個(gè)實(shí)施例向/從多個(gè)應(yīng)用實(shí)例傳送消息的方式的一個(gè)消息流程圖。為了圖9的描述的目的,假定終端應(yīng)用存在兩個(gè)實(shí)例,應(yīng)用實(shí)例-1 900和應(yīng)用實(shí)例-2 902,以及假定這些應(yīng)用實(shí)例在終端和服務(wù)器之間使用專用消息。這些應(yīng)用實(shí)例可以表示任何類(lèi)型應(yīng)用的多個(gè)實(shí)例,例如簿記軟件。在這個(gè)特定的例子中,傳輸協(xié)議906可以是UDP,并且應(yīng)用總是假定UDP端口號(hào)為“1234”。終端用戶因此同時(shí)運(yùn)行兩個(gè)應(yīng)用實(shí)例,并且在終端使用MQ904。
應(yīng)用實(shí)例-1 900利用函數(shù)調(diào)用發(fā)送908消息到MQ904。此類(lèi)消息調(diào)用的例子在下面例1中示出send_message(udp,102.233.242.202,1234,message)例1MQ904接收該函數(shù)調(diào)用,提供910唯一ID“1001”,并返回912該值到應(yīng)用實(shí)例-1 900。然后應(yīng)用實(shí)例-1 900存儲(chǔ)914該ID“1001”,例如存儲(chǔ)該ID到盤(pán),并進(jìn)入暫停狀態(tài)。MQ904調(diào)用916一個(gè)UDP套接字到IP主機(jī)“102.233.242.202”和到UDP端口“1234”以及接收918一個(gè)UDP套接字號(hào)“111”。MQ904存儲(chǔ)920新條目到ID_表922。此類(lèi)條目的例子在下面表1中示出
表1MQ904發(fā)送924消息到UDP套接字以傳送到服務(wù)器926。
類(lèi)似的步驟對(duì)第二應(yīng)用實(shí)例-2 902中重復(fù)。更具體的,應(yīng)用實(shí)例-2 902利用函數(shù)調(diào)用發(fā)送930消息到MQ904。此類(lèi)消息調(diào)用的例子在下面的例2中示出send_message(udp,102.233.242.202,1234,message)例2可見(jiàn),由應(yīng)用實(shí)例-2 902發(fā)送的消息調(diào)用與由應(yīng)用實(shí)例-1 900發(fā)送的消息調(diào)用相同。MQ904接收該函數(shù)調(diào)用,提供932唯一ID“1002”,并返回934該值到應(yīng)用實(shí)例-2 902。然后應(yīng)用實(shí)例-2 902存儲(chǔ)936該ID“1002”,并進(jìn)入暫停狀態(tài)。MQ904調(diào)用938UDP套接字到IP主機(jī)“102.233.242.202”和到UDP端口“1234”以及接收940UDP套接字號(hào)“112”。MQ904存儲(chǔ)942新條目到ID_表922。此類(lèi)條目的例子在下面的表2中示出
表2MQ904發(fā)送944消息到UDP套接字以傳送到服務(wù)器926。
服務(wù)器926從應(yīng)用實(shí)例900、902接收消息并處理響應(yīng)。如在路徑946、948上所描述的,服務(wù)器926將響應(yīng)發(fā)送回終端。應(yīng)當(dāng)注意的是可以以任何順序發(fā)回響應(yīng),并不需要按照它們接收的順序發(fā)回。MQ904從UDP套接字111接收950消息。如在路徑952、954上所描述的來(lái)查閱ID_表922,并且MQ904確定消息與具有唯一ID“1001”的應(yīng)用相關(guān)。MQ904利用應(yīng)用ID號(hào)存儲(chǔ)956消息。用戶激活958應(yīng)用實(shí)例-1 900。該應(yīng)用從盤(pán)中檢索960應(yīng)用ID,并為可能的消息檢查962 MQ904,例如使用“get_message(1001)”函數(shù)調(diào)用。MQ904接收請(qǐng)求,并返回964該消息。以類(lèi)似的方式,應(yīng)用實(shí)例-2 902可以使用UDP套接字112和唯一ID“1002”從MQ904中檢索它的消息。
本發(fā)明也適用于不同的協(xié)議和不同的軟件體系結(jié)構(gòu)層。例如,雖然為促進(jìn)理解本發(fā)明的目的于此已經(jīng)描述了傳輸標(biāo)識(shí)符,本發(fā)明可用于其它邏輯連接標(biāo)識(shí)符,這取決于正在傳送消息的體系結(jié)構(gòu)層。本發(fā)明同樣可用于在另一層開(kāi)始的消息傳輸,例如表示層、會(huì)話層、網(wǎng)絡(luò)層等。因此,本發(fā)明提供了進(jìn)程標(biāo)識(shí)符和邏輯連接標(biāo)識(shí)符的關(guān)聯(lián)來(lái)最終定位和引導(dǎo)響應(yīng)消息回到進(jìn)程,即使該進(jìn)程不在應(yīng)用層進(jìn)行操作,或邏輯連接標(biāo)識(shí)符位于傳輸層。
圖10是根據(jù)本發(fā)明的一個(gè)實(shí)施例用于在應(yīng)用之間促進(jìn)消息通信的方法的流程圖。獲得1000應(yīng)用ID和對(duì)應(yīng)的出站邏輯連接ID,例如傳輸ID。出站邏輯連接ID因此對(duì)應(yīng)于套接字、端口、會(huì)話等,其中將發(fā)送出站消息。邏輯連接ID與來(lái)自由它們各自的應(yīng)用ID識(shí)別的應(yīng)用的消息傳輸相關(guān)。然后建立應(yīng)用ID和它們的對(duì)應(yīng)出站邏輯連接ID的關(guān)聯(lián)1002。例如,通過(guò)在ID_表中輸入相關(guān)的應(yīng)用ID和連接ID來(lái)建立關(guān)聯(lián)。響應(yīng)于應(yīng)用所發(fā)送的消息的入站消息被指向1004具有與出站邏輯連接ID相關(guān)的應(yīng)用ID的應(yīng)用,其中出站邏輯連接ID對(duì)應(yīng)于入站邏輯連接ID。例如,從另一個(gè)設(shè)備(例如服務(wù)器)接收到的消息被指向在ID_表中具有鏈接到出站傳輸ID的應(yīng)用ID的應(yīng)用,其中該出站傳輸ID匹配入站傳輸ID。根據(jù)本發(fā)明的一個(gè)實(shí)施例,這些操作至少部分地由MQ執(zhí)行。
圖11是用于在多個(gè)應(yīng)用之間識(shí)別出作為一個(gè)響應(yīng)消息目標(biāo)的應(yīng)用的方法的流程圖。接收到1100應(yīng)用標(biāo)識(shí)符和出站傳輸ID。從這方面來(lái)看,應(yīng)用ID的接收可能涉及唯一ID在MQ的產(chǎn)生,或可替代的可能涉及接收可用于MQ的唯一ID,例如進(jìn)程號(hào)。以前述任何一種方式創(chuàng)建1102應(yīng)用ID和出站傳輸ID之間的關(guān)聯(lián)。接收1104與呼入消息相關(guān)的入站傳輸ID。使用前面創(chuàng)建的應(yīng)用標(biāo)識(shí)符和出站傳輸ID的關(guān)聯(lián)識(shí)別1106目標(biāo)應(yīng)用。例如,入站傳輸ID匹配1108于ID表中的出站傳輸ID,并且根據(jù)這個(gè)關(guān)聯(lián)可以確定1110應(yīng)用ID。
本發(fā)明可以用于向/從任何類(lèi)型設(shè)備中的應(yīng)用傳送消息,該消息可以利用網(wǎng)絡(luò)或其它連接來(lái)傳送。此類(lèi)設(shè)備包括諸如臺(tái)式計(jì)算機(jī)、工作站、膝上型計(jì)算機(jī)之類(lèi)的計(jì)算設(shè)備,或能夠經(jīng)網(wǎng)絡(luò)訪問(wèn)信息的其它任何計(jì)算系統(tǒng)。這些計(jì)算設(shè)備還包括諸如內(nèi)容服務(wù)器、存儲(chǔ)服務(wù)器、用于多媒體消息業(yè)務(wù)(MMS)的多媒體消息業(yè)務(wù)中心(MMSC)、用于短消息業(yè)務(wù)(SMS)的短消息業(yè)務(wù)中心(SMSC)之類(lèi)的網(wǎng)絡(luò)服務(wù)器,或任何能夠通過(guò)諸如互聯(lián)網(wǎng)之類(lèi)網(wǎng)絡(luò)與其它系統(tǒng)和設(shè)備通信的其它網(wǎng)絡(luò)元件。這些設(shè)備還包括移動(dòng)設(shè)備,其中經(jīng)由無(wú)線網(wǎng)絡(luò)完成網(wǎng)絡(luò)訪問(wèn),該無(wú)線網(wǎng)絡(luò)可能最終耦合到有線網(wǎng)絡(luò),也可以最終不耦合到有線網(wǎng)絡(luò)。這些移動(dòng)設(shè)備可以是諸如無(wú)線/蜂窩電話、個(gè)人數(shù)字助理(PDA)的任何類(lèi)型的無(wú)線設(shè)備、或能夠進(jìn)行無(wú)線通信的其它無(wú)線手持裝置和便攜式計(jì)算設(shè)備。這些有線和移動(dòng)設(shè)備應(yīng)用計(jì)算機(jī)電路和軟件來(lái)控制和管理傳統(tǒng)的設(shè)備活動(dòng)以及本發(fā)明提供的功能。硬件、固件、軟件或它們的組合可用于實(shí)現(xiàn)這里所述的各種MQ和鏈接操作。能夠?qū)崿F(xiàn)根據(jù)本發(fā)明的操作的典型移動(dòng)終端計(jì)算系統(tǒng)的例子在圖12中進(jìn)行說(shuō)明。本領(lǐng)域的技術(shù)人員應(yīng)該理解典型的移動(dòng)計(jì)算環(huán)境1200只表示可能與這些移動(dòng)設(shè)備相關(guān)的典型的通用功能,并且有線計(jì)算系統(tǒng)類(lèi)似的還包括執(zhí)行這些操作的計(jì)算電路。
根據(jù)本發(fā)明適于執(zhí)行MQ功能的典型移動(dòng)計(jì)算布置1200可以與許多不同類(lèi)型的無(wú)線設(shè)備相關(guān)。典型移動(dòng)計(jì)算布置1200包括處理/控制單元1202,例如微處理器、精簡(jiǎn)指令集計(jì)算機(jī)(RISC)、或其它中央處理模塊。處理單元1202不必是單個(gè)設(shè)備,并且可以包括一個(gè)或多個(gè)處理器。例如,處理單元可以包括主處理器和耦合來(lái)與主處理器通信的相關(guān)的從處理器。
處理單元1202控制由程序貯存器/存儲(chǔ)器1204中可用的程序所描述的移動(dòng)終端的基本功能。因此,處理單元1202能夠執(zhí)行與本發(fā)明相關(guān)的MQ鏈接和應(yīng)用進(jìn)程/實(shí)例標(biāo)識(shí)功能。更具體的,程序貯存器/存儲(chǔ)器1204可以包括用于在移動(dòng)終端上實(shí)現(xiàn)功能和應(yīng)用的操作系統(tǒng)和程序模塊。例如,程序貯存器可以包括一個(gè)或多個(gè)只讀存儲(chǔ)器(ROM)、閃動(dòng)ROM、可編程和/或可擦除ROM、隨機(jī)存取存儲(chǔ)器(RAM)、用戶接口模塊(SIM)、無(wú)線接口模塊(WIM)、智能卡、或其它可拆卸存儲(chǔ)器設(shè)備等。在本發(fā)明的一個(gè)實(shí)施例中,與貯存器/存儲(chǔ)器1204相關(guān)的程序模塊存儲(chǔ)在非易失的電可擦除可編程ROM(EEPROM)、閃動(dòng)ROM等中,以使信息在移動(dòng)終端斷電時(shí)不被丟失。實(shí)現(xiàn)常規(guī)移動(dòng)終端操作和根據(jù)本發(fā)明的操作的相關(guān)軟件也可以經(jīng)由數(shù)據(jù)信號(hào)發(fā)送到移動(dòng)計(jì)算布置1200,例如經(jīng)由諸如互聯(lián)網(wǎng)和中間無(wú)線網(wǎng)絡(luò)的一個(gè)或多個(gè)網(wǎng)絡(luò)被電子地下載。
處理器1202還耦合到與移動(dòng)終端相關(guān)的用戶接口1206元件。移動(dòng)終端的用戶接口1206例如可以包括諸如液晶顯示器的顯示器1208、鍵盤(pán)1210、揚(yáng)聲器1212和麥克風(fēng)1214。正如本領(lǐng)域中已知的,這些和其它用戶接口元件耦合到處理器1202。可以使用其它用戶接口機(jī)制,諸如語(yǔ)音命令、開(kāi)關(guān)、觸摸墊/屏、使用定點(diǎn)設(shè)備的圖形用戶接口、軌跡球、游戲桿、或其它用戶接口機(jī)制。
移動(dòng)計(jì)算布置1200還包括執(zhí)行無(wú)線傳輸?shù)膫鹘y(tǒng)電路。數(shù)字信號(hào)處理器(DSP)1216可被用于執(zhí)行各種功能,包括模數(shù)(A/D)轉(zhuǎn)換、數(shù)模(D/A)轉(zhuǎn)換、語(yǔ)音編碼/解碼、加密/解密、誤差檢測(cè)和糾正、比特流轉(zhuǎn)換、濾波等。通常耦合到天線1220的收發(fā)器1218,發(fā)送輸出的無(wú)線信號(hào)1222和接收與無(wú)線設(shè)備相關(guān)的輸入的無(wú)線信號(hào)1224。
根據(jù)本發(fā)明,MQ功能例如可以在操作系統(tǒng)或軟件體系結(jié)構(gòu)中被實(shí)現(xiàn)。例如,處理器1202可以在程序貯存器/存儲(chǔ)器1204中存儲(chǔ)的程序模塊的指導(dǎo)下提供MQ功能。應(yīng)用1226和MQ1228程序可以存儲(chǔ)到貯存器/存儲(chǔ)器1204。一個(gè)應(yīng)用編程接口(API)1230可被用于促進(jìn)MQ1228和應(yīng)用1226之間的消息傳輸。程序貯存器/存儲(chǔ)器1204也可以存儲(chǔ)所創(chuàng)建的應(yīng)用ID和傳輸ID的關(guān)聯(lián),例如由ID_表1232所描述的。
圖12的移動(dòng)計(jì)算布置1200被提供作為可以應(yīng)用本發(fā)明的原理的計(jì)算環(huán)境的典型實(shí)例。根據(jù)這里提供的說(shuō)明,本領(lǐng)域的技術(shù)人員應(yīng)該理解本發(fā)明同樣可應(yīng)用于各種其它已知和未來(lái)的移動(dòng)和有線計(jì)算環(huán)境。例如,桌上計(jì)算設(shè)備類(lèi)似的包括處理器、存儲(chǔ)器、用戶接口和數(shù)據(jù)通信電路。因此,本發(fā)明可應(yīng)用于經(jīng)由網(wǎng)絡(luò)傳送數(shù)據(jù)的任何已知的計(jì)算結(jié)構(gòu)。
使用在這里提供的說(shuō)明,通過(guò)使用產(chǎn)生編程軟件、固件、硬件或者它們的任何組合的標(biāo)準(zhǔn)編程和/或工程技術(shù),本發(fā)明可以被實(shí)現(xiàn)為一個(gè)機(jī)器、進(jìn)程或制造產(chǎn)品。最后得到的任何具有計(jì)算機(jī)可讀程序代碼的一個(gè)(多個(gè))程序可以被包含在一個(gè)或多個(gè)計(jì)算機(jī)可用介質(zhì)上,比如盤(pán)、光盤(pán)、可移動(dòng)的存儲(chǔ)設(shè)備、諸如RAM、ROM、PROMS之類(lèi)的半導(dǎo)體存儲(chǔ)器等等。包含執(zhí)行與本發(fā)明相關(guān)功能的代碼的制造產(chǎn)品旨在包含一個(gè)計(jì)算機(jī)程序,該計(jì)算機(jī)程序永久或者臨時(shí)存在于任何計(jì)算機(jī)可用介質(zhì)上或者存在于傳輸這樣一個(gè)程序的任何傳輸介質(zhì)中。傳輸介質(zhì)包括但是不限制為經(jīng)由無(wú)線/無(wú)線電波通信網(wǎng)、互聯(lián)網(wǎng)、內(nèi)聯(lián)網(wǎng)、基于電話/調(diào)制解調(diào)器的網(wǎng)絡(luò)通信、硬布線/電纜通信網(wǎng)、衛(wèi)星通信以及其它固定或者移動(dòng)網(wǎng)絡(luò)系統(tǒng)/通信鏈路的傳輸。從在這里提供的說(shuō)明中,本領(lǐng)域技術(shù)人員應(yīng)該很容易能夠把所述的已創(chuàng)建的軟件與適當(dāng)?shù)耐ㄓ没驅(qū)S糜?jì)算機(jī)硬件結(jié)合來(lái)創(chuàng)建根據(jù)本發(fā)明的一個(gè)系統(tǒng)和方法。
為了例示和說(shuō)明的目的已經(jīng)提出了本發(fā)明的典型實(shí)施例的上述說(shuō)明。它不意指窮舉性的或者把本發(fā)明限制為所公開(kāi)的精確形式??紤]到上述教導(dǎo),許多修改和變化是可能的。因此,本發(fā)明的范圍并非要由這詳細(xì)的說(shuō)明書(shū)來(lái)限制,而是由附加到此的權(quán)利要求書(shū)來(lái)確定。
權(quán)利要求
1.一種用于促進(jìn)應(yīng)用之間消息通信的方法,該方法包括獲得應(yīng)用標(biāo)識(shí)符和對(duì)應(yīng)出站邏輯連接標(biāo)識(shí)符,所述對(duì)應(yīng)出站邏輯連接標(biāo)識(shí)符與來(lái)自可由它們各自的應(yīng)用標(biāo)識(shí)符識(shí)別的應(yīng)用的消息傳遞相關(guān);建立應(yīng)用標(biāo)識(shí)符和它們的對(duì)應(yīng)出站邏輯連接標(biāo)識(shí)符之間的關(guān)聯(lián);和把響應(yīng)的入站消息指向具有與出站邏輯連接標(biāo)識(shí)符相關(guān)的應(yīng)用標(biāo)識(shí)符的應(yīng)用,該出站邏輯連接標(biāo)識(shí)符對(duì)應(yīng)于響應(yīng)的入站消息的入站邏輯連接標(biāo)識(shí)符。
2.權(quán)利要求1的方法,進(jìn)一步包括比較入站邏輯連接標(biāo)識(shí)符與所建立關(guān)聯(lián)的出站邏輯連接標(biāo)識(shí)符,并識(shí)別出與入站邏輯連接標(biāo)識(shí)符匹配的至少一個(gè)出站邏輯連接標(biāo)識(shí)符;和使用具有與匹配的出站邏輯連接標(biāo)識(shí)符建立的關(guān)聯(lián)的應(yīng)用標(biāo)識(shí)符來(lái)識(shí)別出該響應(yīng)的入站消息所指向的那個(gè)應(yīng)用。
3.權(quán)利要求1的方法,其中獲得對(duì)應(yīng)出站邏輯連接標(biāo)識(shí)符包括獲得出站傳輸標(biāo)識(shí)符。
4.權(quán)利要求3的方法,其中獲得出站傳輸標(biāo)識(shí)符包括通過(guò)傳輸協(xié)議獲得出站套接字標(biāo)識(shí)符。
5.權(quán)利要求3的方法,其中獲得出站傳輸標(biāo)識(shí)符包括獲得與傳輸進(jìn)程相關(guān)的出站傳輸進(jìn)程標(biāo)識(shí)符。
6.權(quán)利要求3的方法,其中獲得出站傳輸標(biāo)識(shí)符包括獲得與傳輸線程相關(guān)的出站傳輸線程標(biāo)識(shí)符。
7.權(quán)利要求3的方法,其中獲得出站傳輸標(biāo)識(shí)符包括獲得基于套接字、端口、傳輸進(jìn)程、傳輸線程和可用于軟件分層的傳輸層的會(huì)話中至少一個(gè)的標(biāo)識(shí)符。
8.權(quán)利要求1的方法,其中建立應(yīng)用標(biāo)識(shí)符和它們的對(duì)應(yīng)出站邏輯連接標(biāo)識(shí)符之間的關(guān)聯(lián)包括在每個(gè)應(yīng)用標(biāo)識(shí)符和它的對(duì)應(yīng)出站邏輯連接標(biāo)識(shí)符之間創(chuàng)建一個(gè)鏈接。
9.權(quán)利要求1的方法,其中建立應(yīng)用標(biāo)識(shí)符和它們的對(duì)應(yīng)出站邏輯連接標(biāo)識(shí)符之間的關(guān)聯(lián)包括經(jīng)由表中的一個(gè)條目把應(yīng)用標(biāo)識(shí)符和它們的對(duì)應(yīng)出站邏輯連接標(biāo)識(shí)符相關(guān)聯(lián)。
10.權(quán)利要求1的方法,其中建立應(yīng)用標(biāo)識(shí)符和它們的對(duì)應(yīng)出站邏輯連接標(biāo)識(shí)符之間的關(guān)聯(lián)包括創(chuàng)建條目表,其中每個(gè)條目都包括用于傳輸特定消息的應(yīng)用標(biāo)識(shí)符的一個(gè)和它的對(duì)應(yīng)出站邏輯連接標(biāo)識(shí)符。
11.權(quán)利要求10的方法,其中創(chuàng)建條目表包括使用消息隊(duì)列(MQ)創(chuàng)建該條目表。
12.權(quán)利要求11的方法,進(jìn)一步包括利用MQ維持該條目表。
13.一種用于使用消息隊(duì)列(MQ)在多個(gè)應(yīng)用中識(shí)別出成為至少一個(gè)響應(yīng)消息的目標(biāo)的至少一個(gè)應(yīng)用的方法,該方法包括接收應(yīng)用標(biāo)識(shí)符和出站傳輸標(biāo)識(shí)符,其中出站傳輸標(biāo)識(shí)符唯一識(shí)別來(lái)自該應(yīng)用標(biāo)識(shí)符所識(shí)別的應(yīng)用的消息傳遞的邏輯連接;創(chuàng)建應(yīng)用標(biāo)識(shí)符和出站傳輸標(biāo)識(shí)符之間的關(guān)聯(lián);接收與目的地是該應(yīng)用的響應(yīng)消息的接收相關(guān)的入站傳輸標(biāo)識(shí)符;通過(guò)把入站傳輸標(biāo)識(shí)符匹配到出站傳輸標(biāo)識(shí)符來(lái)識(shí)別作為響應(yīng)消息目標(biāo)的應(yīng)用,和根據(jù)應(yīng)用標(biāo)識(shí)符和匹配的出站傳輸標(biāo)識(shí)符之間的關(guān)聯(lián)確定該應(yīng)用的應(yīng)用標(biāo)識(shí)符。
14.權(quán)利要求13的方法,其中接收應(yīng)用標(biāo)識(shí)符和出站傳輸標(biāo)識(shí)符包括接收多個(gè)應(yīng)用標(biāo)識(shí)符和對(duì)應(yīng)的出站傳輸標(biāo)識(shí)符;創(chuàng)建應(yīng)用標(biāo)識(shí)符和出站傳輸標(biāo)識(shí)符之間的關(guān)聯(lián)包括創(chuàng)建多個(gè)關(guān)聯(lián),從對(duì)應(yīng)于多個(gè)應(yīng)用標(biāo)識(shí)符的多個(gè)應(yīng)用中傳遞的每個(gè)消息一個(gè);接收入站傳輸標(biāo)識(shí)符包括接收與目的地為多個(gè)應(yīng)用中的一個(gè)目標(biāo)應(yīng)用的響應(yīng)消息的接收相關(guān)的入站傳輸標(biāo)識(shí)符;和識(shí)別作為響應(yīng)消息目標(biāo)的應(yīng)用包括把入站傳輸標(biāo)識(shí)符匹配到多個(gè)關(guān)聯(lián)的出站傳輸標(biāo)識(shí)符中的一個(gè)。
15.權(quán)利要求13的方法,其中創(chuàng)建應(yīng)用標(biāo)識(shí)符和出站傳輸之間的關(guān)聯(lián)包括創(chuàng)建具有多個(gè)條目的ID表,其中每個(gè)條目包括應(yīng)用標(biāo)識(shí)符之一和出站傳輸標(biāo)識(shí)符之一。
16.權(quán)利要求13的方法,其中接收應(yīng)用標(biāo)識(shí)符包括接收與該應(yīng)用相關(guān)的現(xiàn)有標(biāo)識(shí)符。
17.權(quán)利要求13的方法,其中接收應(yīng)用標(biāo)識(shí)符包括在MQ接收對(duì)應(yīng)于應(yīng)用的進(jìn)程號(hào)。
18.權(quán)利要求13的方法,其中接收應(yīng)用標(biāo)識(shí)符包括在MQ產(chǎn)生應(yīng)用標(biāo)識(shí)符。
19.權(quán)利要求13的方法,進(jìn)一步包括確定MQ是否有可用的進(jìn)程標(biāo)識(shí)符,和其中接收應(yīng)用標(biāo)識(shí)符包括如果進(jìn)程標(biāo)識(shí)符在MQ可用則使用該進(jìn)程標(biāo)識(shí)符作為應(yīng)用標(biāo)識(shí)符。
20.權(quán)利要求19的方法,其中接收應(yīng)用標(biāo)識(shí)符包括如果進(jìn)程標(biāo)識(shí)符不可用則在MQ產(chǎn)生應(yīng)用標(biāo)識(shí)符。
21.權(quán)利要求13的方法,進(jìn)一步包括存儲(chǔ)應(yīng)用標(biāo)識(shí)符和出站傳輸標(biāo)識(shí)符之間的關(guān)聯(lián)。
22.權(quán)利要求13的方法,進(jìn)一步包括把響應(yīng)消息指向由應(yīng)用標(biāo)識(shí)符識(shí)別的應(yīng)用。
23.權(quán)利要求13的方法,其中多個(gè)應(yīng)用包括兩個(gè)或更多不同應(yīng)用、應(yīng)用實(shí)例和應(yīng)用進(jìn)程的任意組合。
24.權(quán)利要求13的方法,其中把入站傳輸標(biāo)識(shí)符匹配到出站傳輸標(biāo)識(shí)符包括對(duì)入站傳輸標(biāo)識(shí)符與多個(gè)已創(chuàng)建的關(guān)聯(lián)進(jìn)行比較以便從具有匹配的出站傳輸標(biāo)識(shí)符的已創(chuàng)建關(guān)聯(lián)中定位應(yīng)用標(biāo)識(shí)符。
25.可在網(wǎng)絡(luò)上操作的并能夠與至少一個(gè)目的地設(shè)備之間傳送消息的源設(shè)備,包括存儲(chǔ)器,為從該源設(shè)備傳送的多個(gè)出站消息中的每一個(gè)存儲(chǔ)應(yīng)用標(biāo)識(shí)符和對(duì)應(yīng)出站邏輯連接標(biāo)識(shí)符的聯(lián)系;和消息隊(duì)列(MQ)模塊,配置為比較入站消息的入站邏輯連接標(biāo)識(shí)符和所存儲(chǔ)的聯(lián)系的出站邏輯連接標(biāo)識(shí)符,并識(shí)別具有與匹配于入站邏輯連接標(biāo)識(shí)符的出站邏輯連接標(biāo)識(shí)符相聯(lián)的應(yīng)用標(biāo)識(shí)符的本地應(yīng)用。
26.如權(quán)利要求25的源設(shè)備,其中MQ模塊被以軟件實(shí)現(xiàn),并且其中該源設(shè)備包括處理器,該處理器配置為執(zhí)行MQ軟件以建立應(yīng)用標(biāo)識(shí)符和對(duì)應(yīng)出站邏輯連接標(biāo)識(shí)符的聯(lián)系,比較入站邏輯連接標(biāo)識(shí)符和所存儲(chǔ)聯(lián)系的出站邏輯連接標(biāo)識(shí)符,并識(shí)別具有與匹配于入站邏輯連接標(biāo)識(shí)符的出站邏輯連接標(biāo)識(shí)符相聯(lián)的應(yīng)用標(biāo)識(shí)符的本地應(yīng)用。
27.如權(quán)利要求25的源設(shè)備,其中MQ模塊進(jìn)一步配置為在存儲(chǔ)器中為從源設(shè)備傳送的多個(gè)出站消息的每一個(gè)建立應(yīng)用標(biāo)識(shí)符和對(duì)應(yīng)出站邏輯連接標(biāo)識(shí)符的聯(lián)系。
28.如權(quán)利要求25的源設(shè)備,其中該存儲(chǔ)器包括存儲(chǔ)應(yīng)用標(biāo)識(shí)符和對(duì)應(yīng)出站邏輯連接標(biāo)識(shí)符的聯(lián)系的數(shù)據(jù)結(jié)構(gòu)。
29.如權(quán)利要求28的源設(shè)備,其中該數(shù)據(jù)結(jié)構(gòu)包括應(yīng)用標(biāo)識(shí)符和對(duì)應(yīng)出站邏輯連接標(biāo)識(shí)符的聯(lián)系表。
30.如權(quán)利要求25的源設(shè)備,其中該存儲(chǔ)器包括存儲(chǔ)應(yīng)用標(biāo)識(shí)符和對(duì)應(yīng)出站邏輯連接標(biāo)識(shí)符的聯(lián)系的鏈接表。
31.如權(quán)利要求25的源設(shè)備,其中MQ模塊進(jìn)一步配置為將入站消息指向與匹配于入站邏輯連接標(biāo)識(shí)符的出站邏輯連接標(biāo)識(shí)符相聯(lián)的已識(shí)別本地應(yīng)用。
32.如權(quán)利要求25的源設(shè)備,進(jìn)一步包括處理器,其中本地應(yīng)用包括可在處理器上操作的應(yīng)用實(shí)例、可在處理器上操作的不同應(yīng)用、和可在處理器上操作的包括多個(gè)消息類(lèi)別的應(yīng)用進(jìn)程中的任何一個(gè)或多個(gè)。
33.如權(quán)利要求25的源設(shè)備,其中源設(shè)備包括無(wú)線通信裝置和有線計(jì)算系統(tǒng)中的任何一個(gè)。
34.如權(quán)利要求25的源設(shè)備,其中MQ模塊包括結(jié)構(gòu)上位于與本地應(yīng)用相關(guān)的應(yīng)用層和傳輸層之間的軟件模塊。
35.一種通過(guò)網(wǎng)絡(luò)在多個(gè)應(yīng)用之間傳送信息的系統(tǒng),包括(a)源設(shè)備,包括用于經(jīng)網(wǎng)絡(luò)傳送消息的多個(gè)源應(yīng)用;(b)目的地設(shè)備,包括用于接收一個(gè)或多個(gè)消息和響應(yīng)于所接收的消息提供應(yīng)答消息的至少一個(gè)目的地應(yīng)用;其中源設(shè)備包括(i)存儲(chǔ)器,為從源設(shè)備傳送的多個(gè)出站消息中的每一個(gè)存儲(chǔ)應(yīng)用標(biāo)識(shí)符和對(duì)應(yīng)出站邏輯連接標(biāo)識(shí)符的聯(lián)系;和(ii)源消息隊(duì)列(MQ)模塊,配置為比較應(yīng)答消息的入站邏輯連接標(biāo)識(shí)符和所存儲(chǔ)的聯(lián)系的出站邏輯連接標(biāo)識(shí)符,和識(shí)別出具有與匹配于入站邏輯連接標(biāo)識(shí)符的出站邏輯連接標(biāo)識(shí)符相聯(lián)的應(yīng)用標(biāo)識(shí)符的本地應(yīng)用。
36.如權(quán)利要求35的系統(tǒng),其中該目的地設(shè)備配置為不使用目的地MQ直接發(fā)送和接收消息。
37.如權(quán)利要求35的系統(tǒng),其中該目的地設(shè)備包括不同于源MQ類(lèi)型的目的地MQ。
38.如權(quán)利要求35的系統(tǒng),其中該多個(gè)源應(yīng)用包括離散應(yīng)用、共同應(yīng)用的實(shí)例和應(yīng)用進(jìn)程中的任何一個(gè)或多個(gè)。
39.如權(quán)利要求35的系統(tǒng),其中該源設(shè)備和該目的地設(shè)備包括無(wú)線通信裝置和有線計(jì)算系統(tǒng)中的任何一個(gè)。
40.如權(quán)利要求35的系統(tǒng),其中該網(wǎng)絡(luò)包括無(wú)線網(wǎng)絡(luò)和有線網(wǎng)絡(luò)中的一個(gè)或多個(gè)。
41.一種其上存儲(chǔ)有指令的計(jì)算機(jī)可讀介質(zhì),該指令可由計(jì)算系統(tǒng)執(zhí)行,用于通過(guò)執(zhí)行步驟促進(jìn)應(yīng)用之間的消息通信,這些步驟包括獲得應(yīng)用標(biāo)識(shí)符和對(duì)應(yīng)出站邏輯連接標(biāo)識(shí)符,所述對(duì)應(yīng)出站邏輯連接標(biāo)識(shí)符與來(lái)自可由它們各自的應(yīng)用標(biāo)識(shí)符識(shí)別的應(yīng)用的消息傳遞相關(guān);建立應(yīng)用標(biāo)識(shí)符和它們對(duì)應(yīng)的出站邏輯連接標(biāo)識(shí)符之間的關(guān)聯(lián);響應(yīng)的入站消息被指向具有與出站邏輯連接標(biāo)識(shí)符相關(guān)的應(yīng)用標(biāo)識(shí)符的應(yīng)用,該出站邏輯連接標(biāo)識(shí)符對(duì)應(yīng)于響應(yīng)入站消息的入站邏輯連接標(biāo)識(shí)符。
42.一種其上存儲(chǔ)有指令的計(jì)算機(jī)可讀介質(zhì),該指令可由計(jì)算系統(tǒng)執(zhí)行,其用于通過(guò)執(zhí)行步驟在多個(gè)應(yīng)用中識(shí)別出作為至少一個(gè)響應(yīng)消息的目標(biāo)的至少一個(gè)應(yīng)用,這些步驟包括接收應(yīng)用標(biāo)識(shí)符和出站傳輸標(biāo)識(shí)符,其中出站傳輸標(biāo)識(shí)符唯一識(shí)別出用于來(lái)自該應(yīng)用標(biāo)識(shí)符所識(shí)別的應(yīng)用的消息傳遞的邏輯連接;創(chuàng)建應(yīng)用標(biāo)識(shí)符和出站傳輸標(biāo)識(shí)符之間的關(guān)聯(lián);接收與目的地為該應(yīng)用的響應(yīng)消息的接收相關(guān)的入站傳輸標(biāo)識(shí)符;和通過(guò)把入站傳輸標(biāo)識(shí)符匹配于出站傳輸標(biāo)識(shí)符來(lái)識(shí)別出一個(gè)應(yīng)用作為響應(yīng)消息的目標(biāo),并根據(jù)應(yīng)用標(biāo)識(shí)符和所匹配的出站傳輸標(biāo)識(shí)符之間的關(guān)聯(lián)來(lái)為應(yīng)用確定應(yīng)用標(biāo)識(shí)符。
全文摘要
一種用于促進(jìn)應(yīng)用(130、132、134和136)之間的消息通信(MQ)的系統(tǒng)、裝置和方法。獲得應(yīng)用標(biāo)識(shí)符和對(duì)應(yīng)出站邏輯連接標(biāo)識(shí)符,所述對(duì)應(yīng)出站邏輯連接標(biāo)識(shí)符與來(lái)自可由它們各自的應(yīng)用標(biāo)識(shí)符識(shí)別的應(yīng)用的消息傳遞相關(guān)。建立應(yīng)用標(biāo)識(shí)符和它們的對(duì)應(yīng)出站邏輯連接標(biāo)識(shí)符之間的關(guān)聯(lián)。響應(yīng)的入站消息被指向具有與出站邏輯連接標(biāo)識(shí)符相關(guān)的應(yīng)用標(biāo)識(shí)符的應(yīng)用,該出站邏輯連接標(biāo)識(shí)符對(duì)應(yīng)于響應(yīng)入站消息的入站邏輯連接標(biāo)識(shí)符。
文檔編號(hào)H04L29/06GK1748390SQ200480003565
公開(kāi)日2006年3月15日 申請(qǐng)日期2004年1月30日 優(yōu)先權(quán)日2003年2月5日
發(fā)明者J·魯圖 申請(qǐng)人:諾基亞有限公司