專利名稱:供異步消息接發(fā)系統(tǒng)使用的方法和設(shè)備的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及使用異步消息接發(fā)的分布式并行軟件系統(tǒng)。
背景技術(shù):
分布式并行軟件系統(tǒng)采用不同形式的電子通信。消息接發(fā)是一種這樣的通信模型。借助消息接發(fā),系統(tǒng)組件通過發(fā)送消息相互通信。消息傳送一些專用數(shù)據(jù)。
消息接發(fā)天生是異步的,因?yàn)橄到y(tǒng)組件在某一時(shí)刻發(fā)送消息,并且獨(dú)立于消息傳送和消息的任意接受者,繼續(xù)進(jìn)行計(jì)算。消息發(fā)送者可在稍后時(shí)刻接收對該消息的應(yīng)答。消息的發(fā)送者和接受者在時(shí)間上是獨(dú)立的,即它們不必同時(shí)存在于網(wǎng)絡(luò)上。
許多分布式并行軟件系統(tǒng)依賴于異步消息接發(fā),并且為此使用消息中間件。消息中間件指的是在軟件系統(tǒng)的組件之間實(shí)現(xiàn)消息接發(fā)操作的一種或多種軟件程序。借助消息中間件,消息一般被發(fā)送給某一形式的目的地,例如消息隊(duì)列,消息中間件的其它客戶程序,例如最終消息接受者隨后可從所述目的地讀取消息。從而,消息的發(fā)送者和接受者不必知道彼此的存在。
對于消息的發(fā)送者來說,各個(gè)消息傳送的失敗和成功很重要,甚至可能是關(guān)鍵性的。一般而言,依據(jù)其確定消息傳送失敗的專用標(biāo)準(zhǔn)可因發(fā)送者以及因消息而異。但是,規(guī)定這些標(biāo)準(zhǔn),根據(jù)標(biāo)準(zhǔn)評估消息發(fā)送,以及對評估結(jié)果起反應(yīng)都難以進(jìn)行,并且不易于得到現(xiàn)有的消息中間件的支持。
現(xiàn)有的消息中間件,例如MQSeries(IBM公司的商標(biāo)),或者Java Message Service JMS(Sun Microsystems公司的商標(biāo))的實(shí)現(xiàn)只支持非常有限的消息傳送失敗的概念,并且不能區(qū)分不同的失敗概念,基于每個(gè)消息,消息的發(fā)送者可以其它方式確定所述不同的失敗概念。消息的發(fā)送者只規(guī)定消息的目的地,并且可聲明消息傳送是可靠的。隨后,消息中間件確保即使在存在諸如系統(tǒng)崩潰之類故障的情況下,相對于目的地的消息傳送?,F(xiàn)有的消息中間件并不支持專用標(biāo)準(zhǔn)的確定,依據(jù)所述專用標(biāo)準(zhǔn),可確定消息傳送的失敗和成功。
發(fā)明內(nèi)容
本發(fā)明提供最好基于每條消息,確定并處理消息傳送結(jié)果的方法和設(shè)備。所述結(jié)果最好為“成功”或“失敗”。
本發(fā)明的一方面是一種供異步消息接發(fā)系統(tǒng)之用的基于計(jì)算機(jī)的方法,所述方法包括下述步驟為要在系統(tǒng)中發(fā)送的至少一個(gè)消息確定至少一種消息傳送結(jié)果條件,并使所述至少一種消息傳送結(jié)果條件和要在系統(tǒng)中發(fā)送的消息相關(guān)聯(lián);在系統(tǒng)中發(fā)送具有相關(guān)聯(lián)的至少一種消息傳送結(jié)果條件的消息;并監(jiān)視發(fā)送消息的傳送,根據(jù)相關(guān)聯(lián)的至少一種消息傳送結(jié)果條件,評估消息的傳送結(jié)果,從而可把消息的傳送結(jié)果通知消息的發(fā)送者。
在本發(fā)明的另一方面,提供一種由消息的發(fā)送者用于執(zhí)行下述步驟的應(yīng)用編程接口(i)基于每條消息,規(guī)定消息傳送結(jié)果條件;(ii)使消息和消息結(jié)果條件(的目標(biāo)表達(dá))相關(guān)聯(lián);(iii)發(fā)出具有這些結(jié)果條件的消息;(iv)相對于消息傳送的結(jié)果條件,詢問消息傳送的狀態(tài);(v)允許修改或替換為某一消息規(guī)定的結(jié)果條件;和(vi)指定接收評估結(jié)果通知的對象。
在本發(fā)明的另一方面,提供一種用于執(zhí)行一個(gè)或多個(gè)下述操作的基于計(jì)算機(jī)的設(shè)備(i)把消息結(jié)果條件表達(dá)為永久對象;(ii)觀察消息傳送;(iii)評估消息結(jié)果條件;(iv)回答相對于消息傳送結(jié)果條件,對消息傳送狀態(tài)的詢問;和(v)把關(guān)于發(fā)送的每個(gè)消息的評估結(jié)果通知消息發(fā)送者,或者發(fā)送者指定的對象??衫眠m合于實(shí)現(xiàn)這里提供的本發(fā)明教導(dǎo)的現(xiàn)有消息中間件實(shí)現(xiàn)所述設(shè)備。
下面結(jié)合附圖,詳細(xì)說明本發(fā)明的例證實(shí)施例,其中圖1是使用根據(jù)本發(fā)明的消息接發(fā)的系統(tǒng)的方框圖;圖2是根據(jù)本發(fā)明一個(gè)實(shí)施例的和圖4、圖5、圖6和圖7的流程圖相關(guān)的消息接發(fā)進(jìn)程的流程圖;圖3是根據(jù)本發(fā)明一個(gè)實(shí)施例的消息失敗確定進(jìn)程的流程圖;圖4是根據(jù)本發(fā)明一個(gè)實(shí)施例的消息發(fā)送進(jìn)程的流程圖;圖5是根據(jù)本發(fā)明一個(gè)實(shí)施例的消息傳送觀察進(jìn)程的流程圖;圖6是根據(jù)本發(fā)明一個(gè)實(shí)施例的消息失敗評估進(jìn)程的流程圖;圖7是根據(jù)本發(fā)明一個(gè)實(shí)施例的消息失敗條件修改進(jìn)程的流程圖;圖8是圖解說明適合于實(shí)現(xiàn)根據(jù)本發(fā)明的消息接發(fā)系統(tǒng)的計(jì)算機(jī)系統(tǒng)的通用硬件結(jié)構(gòu)的方框圖。
具體實(shí)施例方式
下面將在使用異步消息接發(fā)的例證軟件系統(tǒng)的環(huán)境下說明本發(fā)明。系統(tǒng)最好是分布式并行系統(tǒng)。眾所周知,分布式軟件系統(tǒng)是其中系統(tǒng)的組件可駐留在通過通信網(wǎng)絡(luò)耦接的兩個(gè)或更多計(jì)算機(jī)系統(tǒng)上的系統(tǒng),同時(shí)并行軟件系統(tǒng)是其中可并行,即同時(shí)處理幾個(gè)計(jì)算任務(wù)的系統(tǒng)。但是,要明白本發(fā)明并不局限于任意特殊的軟件系統(tǒng)體系結(jié)構(gòu)。相反,本發(fā)明通常更適合于其中希望確定并處理消息傳送結(jié)果的任意軟件系統(tǒng)結(jié)構(gòu)。下面描述的例證實(shí)施例將把“成功”和“失敗”看作結(jié)果條件,不過本發(fā)明并不局限于此。
如前所述,異步消息接發(fā)指的是與時(shí)間無關(guān)的軟件進(jìn)程之間的消息交換。一般來說,消息的發(fā)送者使用消息中間件把消息發(fā)送給由中間件管理的某一形式的目的地,例如遠(yuǎn)程消息隊(duì)列。消息的最終接受者是從目的地讀取消息的消息中間件的任意其它客戶程序。
另外,如前所述,對于消息的發(fā)送者來說,每個(gè)消息傳送的失敗和成功很重要,甚至可能是關(guān)鍵性的。一般而言,依據(jù)其確定消息傳送失敗的專用標(biāo)準(zhǔn)可因發(fā)送者以及因消息而異。例如,當(dāng)且僅當(dāng)消息m1分別在時(shí)間窗口t1和t2中到達(dá)特定的最終接受者r1和r2時(shí),才認(rèn)為消息m1被“成功傳送”。否則,如果存在少于五個(gè)的,在時(shí)間窗口t3中接收消息m2的不同匿名最終接受者,則認(rèn)為另一消息m2“失敗”。
但是,如前所述,規(guī)定這樣的標(biāo)準(zhǔn),根據(jù)標(biāo)準(zhǔn)評估消息發(fā)送,以及對評估結(jié)果作出反應(yīng)都難以進(jìn)行,并且不易得到現(xiàn)有消息中間件的支持。
現(xiàn)有的消息中間件只支持非常有限的消息傳送制作的概念,但是不區(qū)分不同的失敗概念,基于每個(gè)消息,消息的發(fā)送者可以確定所述不同的失敗概念。消息的發(fā)送者只規(guī)定消息的目的地,例如消息隊(duì)列。一般不指定消息的最終接受者。雖然消息中間件可確保可靠地把消息傳送給中間目的地,但是最終接受者對消息接受的確認(rèn)必須被應(yīng)用編碼(application-coded),并且得不到中間件的直接支持。
本發(fā)明引入更復(fù)雜的消息傳送失敗定義和管理。如同這里所述,可容易地對消息傳送失敗的不同概念編制程序,并且管理消息傳送失敗的負(fù)擔(dān)從發(fā)送者轉(zhuǎn)移到中間件。一種特殊應(yīng)用是發(fā)送者可通過單個(gè)操作的結(jié)果,確定一組操作,即消息發(fā)送的全部結(jié)果,這里,操作可具有不同的失敗條件。這樣的一種特殊情況是其成功依賴于其消息的成功傳送的交易。
如同下面詳細(xì)所述,在本發(fā)明的優(yōu)選方面,提供應(yīng)用編程接口,以便被消息的發(fā)送者用于(i)基于每條消息,規(guī)定消息傳送失敗條件;(ii)使消息和消息失敗條件(的對象表達(dá))關(guān)聯(lián)起來;(iii)發(fā)送具有這些失敗條件的消息;(iv)相對于消息傳送失敗條件,詢問消息傳送的狀態(tài);(v)允許修改或替換為消息指定的失敗條件;和(vi)指定接收失敗評估結(jié)果通知的對象。
此外,如同下面詳細(xì)所述,在本發(fā)明的另一優(yōu)選方面,提供一種基于計(jì)算機(jī)的設(shè)備,用于(i)把消息失敗條件表達(dá)為永久對象;(ii)觀察消息傳送;(iii)評估消息失?。?iv)回答相對于消息傳送失敗條件,對消息傳送狀態(tài)的詢問;和(v)把關(guān)于發(fā)送的每個(gè)消息的評估結(jié)果通知消息發(fā)送者??衫眠m合于實(shí)現(xiàn)這里提供的本發(fā)明教導(dǎo)的現(xiàn)有消息中間件實(shí)現(xiàn)所述設(shè)備。
要設(shè)置的關(guān)于代表消息傳送失敗條件的數(shù)值包括,例如委任或可選接受者的名單,目的地(例如消息隊(duì)列)和最終接受者(例如從目的地讀取消息的其它應(yīng)用程序?qū)ο?,關(guān)于特定或者匿名最終接受者讀取的消息的超時(shí)和所需時(shí)間窗口的說明,必須接收消息的任意最終接受者的數(shù)目或范圍的基數(shù)說明,以及適用于發(fā)送者或者消息傳送系統(tǒng)顯露的其它數(shù)值。
可以各種形式使消息失敗條件的表達(dá)彼此相關(guān)。這包括,例如呈廣義化-專業(yè)化層次和樹,或者鏈接表形式的排序。
下面詳細(xì)說明本發(fā)明的優(yōu)選實(shí)施例。
參見圖1,圖1的方框解說明了使用根據(jù)本發(fā)明一個(gè)實(shí)施例的消息接發(fā)的系統(tǒng)。該系統(tǒng)包括消息發(fā)送者102,例如發(fā)送消息的消息中間件的客戶程序。消息發(fā)送者102使用三個(gè)模塊。失敗定義模塊104用于確定消息傳送失敗條件。消息傳送模塊106用于發(fā)送具有失敗條件的消息。失敗評估模塊108用于關(guān)于消息傳送失敗條件,詢問消息傳送的狀態(tài)。
失敗定義模塊104產(chǎn)生并管理失敗條件的表達(dá)。這些表達(dá)是帶有如上所述那些數(shù)值的永久對象。
消息傳送模塊106發(fā)送具有相關(guān)失敗條件的消息,并觀察相對于目的地以及對于最終接受者的消息傳送。該模塊使用現(xiàn)有的消息中間件110,例如MQSeries或者JMS的實(shí)現(xiàn)。
失敗評估模塊108根據(jù)消息傳送模塊106所觀察的實(shí)際消息傳送,并按照與消息相關(guān)的失敗條件,把消息傳送評估為成功的消息傳送或者失敗的消息傳送。在發(fā)出消息之后的任意時(shí)刻,可查詢評估的狀態(tài),失敗評估模塊108把評估結(jié)果通知消息發(fā)送者,或者發(fā)送者指定的對象。為此,系統(tǒng)規(guī)定作為應(yīng)用編程接口(API)一部分的接口。該接口由作為應(yīng)用程序一部分的消息發(fā)送者(或者指定對象)實(shí)現(xiàn)和提供。
要認(rèn)識到這里術(shù)語“接口”被用作軟件工程的一個(gè)技術(shù)術(shù)語,接口組合某一服務(wù)提供者(例如對象)提供的一組操作(函數(shù))。從而,接口包括操作定義,并由軟件組件實(shí)現(xiàn)。軟件組件可以是應(yīng)用程序的組件或者是例如圖1中所示的消息傳送系統(tǒng)的組件。
現(xiàn)有的消息中間件110被用于(可靠地)把消息傳送給目的地12,例如消息隊(duì)列或者JMD Topic對象。為了觀察相對于最終消息接受者114的消息傳送,最終接受者可在從目的地112讀取消息之前,向消息傳送模塊登記,并提供可由消息傳送模塊106用于觀察的接口。該接口被系統(tǒng)定義為API的一部分,并由應(yīng)用程序(這種情況下,最終接受者)實(shí)現(xiàn),以便與系統(tǒng)通信。另一方面,最終接受者114可使用專用接口和對象從目的地讀取消息,從而,每當(dāng)最終接受者從目的地讀取消息,該對象都可自動(dòng)通知消息傳送模塊106。
要認(rèn)識到當(dāng)軟件系統(tǒng)是分布式的軟件系統(tǒng)時(shí),失敗定義模塊104,消息傳送模塊106,失敗評估模塊108和消息中間件110可駐留在一個(gè)或多個(gè)計(jì)算機(jī)系統(tǒng)上,而消息發(fā)送者102,目的地112和最終消息接受者114駐留在它們自己的獨(dú)立計(jì)算機(jī)系統(tǒng)上。借助適當(dāng)?shù)耐ㄐ啪W(wǎng)絡(luò),可耦接每個(gè)計(jì)算機(jī)系統(tǒng)。
現(xiàn)在參見圖2,圖中表示了描述根據(jù)本發(fā)明一個(gè)實(shí)施例的消息接發(fā)進(jìn)程的流程圖。具體地說,圖2和在不同附圖中詳述的步驟相關(guān),即消息失敗定義和消息發(fā)送(圖4,圖4又和圖3相關(guān)),消息傳送觀察(圖5),消息失敗評估(圖6)和消息失敗條件修改(圖7)。
通過在步驟202中發(fā)送具有失敗條件的消息(如圖4中所述)開始進(jìn)程200。一旦消息被發(fā)送,則在步驟204中觀察消息的傳送(圖5),同時(shí),在步驟206中評估失敗條件(圖6)??蛇x地,可在步驟208中修改消息的失敗條件。可在消息被發(fā)送之后立即并行進(jìn)行傳送觀察和失敗評估??稍诎l(fā)出消息之后的任意時(shí)間修改失敗條件,這會(huì)影響失敗評估進(jìn)程的結(jié)果。
現(xiàn)在參見圖3,圖中表示了描述根據(jù)本發(fā)明一個(gè)實(shí)施例的消息失敗定義的流程圖。通過在步驟302中確定是否需要特殊的(專用)消息失敗條件,開始進(jìn)程300。如果不需要任何特殊的失敗條件,則在步驟304中,從另一對象或永久存儲器產(chǎn)生或獲得標(biāo)準(zhǔn)的預(yù)定失敗模型的表達(dá),并且結(jié)束失敗定義的進(jìn)程。如果需要特殊的失敗條件,則在步驟306中,由使用失敗定義模塊的消息發(fā)送者確定失敗條件。一旦條件被確定,則在步驟308中產(chǎn)生關(guān)于特殊失敗模型的表達(dá),并結(jié)束該進(jìn)程。失敗條件的表達(dá)是永久對象。
現(xiàn)在參見圖4,圖4中的流程解說明了根據(jù)本發(fā)明的一個(gè)實(shí)施例的發(fā)送具有失敗條件的消息的進(jìn)程。
通過在步驟402中定義消息失敗(如同上面在圖3的環(huán)境中所述),或者通過在步驟404中產(chǎn)生要發(fā)送的消息,開始進(jìn)程400。這兩個(gè)步驟的任意順序都可以,但是為了完成在步驟406中使消息和失敗表達(dá)聯(lián)系起來的下一進(jìn)程步驟,這兩個(gè)步驟都需要被完成。隨后可在步驟408中,利用消息傳送模塊發(fā)送和失敗表達(dá)相聯(lián)系的消息。
現(xiàn)在參見圖5,圖5中的流程解說明了根據(jù)本發(fā)明一個(gè)實(shí)施例的消息傳送觀察。
當(dāng)消息傳送模塊(或者消息傳送模塊指定的實(shí)體)在步驟502中等待接收最終消息接受者給出的消息接受的確認(rèn)時(shí),開始進(jìn)程500。這樣的確認(rèn)可由最終接受者直接傳送給消息傳送模塊,或者通過使用最終接受者用于從目的地讀取消息的特殊接口和對象,間接傳送給消息傳送模塊。在直接通信的情況下,消息的讀取和把確認(rèn)接受發(fā)送給消息傳送模塊是兩個(gè)獨(dú)立的不同操作。在間接通信的情況下,當(dāng)接受者讀取消息時(shí),系統(tǒng)暗中自動(dòng)進(jìn)行確認(rèn)的發(fā)送。這種情況下,接受者使用系統(tǒng)提供的專用讀取操作。
當(dāng)收到一個(gè)確認(rèn)時(shí),在步驟504中,確定最終接受者的身份,并將其記錄在消息傳送日志中。消息傳送日志是被發(fā)送消息的最終消息接受者的永久記錄。隨后通過在步驟506中確定是否繼續(xù)進(jìn)行觀察,繼續(xù)該進(jìn)程。該判定會(huì)考慮外部和內(nèi)部超時(shí)。內(nèi)部超時(shí)是在系統(tǒng)內(nèi)規(guī)定的和消息相關(guān)的超時(shí)。外部超時(shí)是在系統(tǒng)之外管理的事件(可能由應(yīng)用程序管理),并且不和單一消息相關(guān);外部超時(shí)是導(dǎo)致進(jìn)程結(jié)束的外部事件。如果繼續(xù)進(jìn)行觀察,則從接收確認(rèn)的步驟,即步驟502重復(fù)進(jìn)程。如果觀察將要停止,則進(jìn)程結(jié)束。
現(xiàn)在參見圖6,圖中表示了描述根據(jù)本發(fā)明一個(gè)實(shí)施例的消息失敗評估的進(jìn)程的流程圖。
當(dāng)在步驟602中利用失敗表達(dá)(如上在圖3的環(huán)境中所述)和消息傳送日志(如上在圖5的環(huán)境中所述),評估發(fā)送消息m的所有未評估失敗條件時(shí),開始進(jìn)程600。一旦存在確定評估的標(biāo)準(zhǔn),則可把條件評為真或假;例如,發(fā)生超時(shí),或者最終消息接受者所讀取消息的確認(rèn)被輸入消息傳送日志。這樣的事件,或者其它事件可觸發(fā)條件的評估。
一旦一個(gè)條件被評估,則進(jìn)程繼續(xù)進(jìn)行,在步驟604中檢查特定的失敗條件是否被評估為真。評估為真的失敗條件暗示消息傳送失敗。如果是,則在步驟606中,失敗評估模塊把消息傳送失敗的結(jié)果通知發(fā)送給消息發(fā)送者,或者消息發(fā)送者指定的接收結(jié)果通知的對象。
在發(fā)送消息傳送失敗的結(jié)果通知之后,或者如果條件被評估為假,則通過在步驟608中確定是否繼續(xù)進(jìn)行評估,或者是否停止評估,繼續(xù)該進(jìn)程。如上所述,該判定會(huì)考慮外部和內(nèi)部超時(shí)。如果要繼續(xù)評估,則從評估消息m的所有未評估失敗條件的步驟,即步驟602重復(fù)該進(jìn)程。
如果判定要停止失敗評估,則在步驟610中,過程確定是否所有的失敗條件已被評估,并且是否所有條件都被評估為假。如果是,則在步驟612中,把消息傳送成功的結(jié)果通知發(fā)送給消息發(fā)送者,或者指定的通知對象。否則,以及在已發(fā)送消息傳送成功的通知的情況下,結(jié)束進(jìn)程。
失敗評估模塊108(圖1)提供消息發(fā)送者可在任意時(shí)刻使用其查詢評估的狀態(tài),例如迄今哪些條件已被評估,或者從最終接受者收到多少接受確認(rèn)的接口。
現(xiàn)在參見圖7,圖中的流程解說明了根據(jù)本發(fā)明的一個(gè)實(shí)施例,修改和/或替換關(guān)于被發(fā)送消息的失敗條件的進(jìn)程。
通過在步驟702中,確定是否需要修改失敗條件,即相應(yīng)的替換,開始進(jìn)程700。該判定可由消息發(fā)送者完成。在希望修改失敗條件的情況下,在步驟704中,按照上面在圖3的環(huán)境中描述的進(jìn)程,定義失敗條件,隨后在步驟706中使所得到的修改后的或者新的失敗表達(dá)和被發(fā)送的消息聯(lián)系起來。通過返回失敗條件修改的初始判定狀態(tài),即步驟702繼續(xù)該進(jìn)程。如果判定不進(jìn)行任何修改,則結(jié)束該進(jìn)程。
上面的詳細(xì)說明描述了實(shí)踐本發(fā)明的優(yōu)選方式。根據(jù)這里提供的教導(dǎo),本領(lǐng)域的技術(shù)人員可實(shí)現(xiàn)幾種變化。
例如,三個(gè)模塊,即失敗定義模塊,失敗評估模塊和消息傳送模塊(圖1)可被實(shí)現(xiàn)成單個(gè)模塊,或者可被分成更多的獨(dú)立模塊(例如,獨(dú)立的消息傳送觀察模塊)。
除了消息失敗條件之外,或者替代消息失敗條件,可規(guī)定消息成功條件??梢砸罁?jù)失敗來規(guī)定消息成功條件,即被轉(zhuǎn)換成對應(yīng)的失敗條件,從而如上所述的實(shí)現(xiàn)本發(fā)明的優(yōu)選方式在所有方面適合于成功條件。
其它變化可包括消息發(fā)送之前,消息失敗定義和消息產(chǎn)生的可變順序,最終接受者觀察消息讀取的不同方式,以及把消息的評估結(jié)果通知消息發(fā)送者的不同方式。
現(xiàn)在參見圖8,圖中表示了圖解說明計(jì)算機(jī)系統(tǒng)的通用硬件結(jié)構(gòu)的方框圖,所述計(jì)算機(jī)系統(tǒng)適合于實(shí)現(xiàn)采用附圖中描述,并且在這里詳細(xì)說明的消息接發(fā)進(jìn)程的系統(tǒng)的一或多個(gè)不同功能組件/模塊。要明白可在這樣的計(jì)算機(jī)系統(tǒng)上,或者在獨(dú)立的一個(gè)以上的這種計(jì)算機(jī)系統(tǒng)上實(shí)現(xiàn)如圖1的環(huán)境中舉例說明的消息接發(fā)系統(tǒng)的各個(gè)組件。
如圖所示,按照處理器800,存儲器810和I/O裝置820可實(shí)現(xiàn)該計(jì)算機(jī)系統(tǒng)。要認(rèn)識到這里使用的術(shù)語“處理器”包括任意處理器,例如包括CPU(中央處理器)和/或其它處理電路的處理器。這里使用的術(shù)語“存儲器”包括與處理器或CPU相關(guān)的存儲器,例如RAM,ROM,固定存儲器(例如硬盤驅(qū)動(dòng)器),可拆卸的存儲器(例如磁盤),快速存儲器等。另外,這里使用的術(shù)語“輸入/輸出裝置”包括把數(shù)據(jù)輸入處理器的一個(gè)或多個(gè)輸入裝置,例如鍵盤,和/或呈現(xiàn)和處理器相關(guān)的結(jié)果的一個(gè)或多個(gè)輸出裝置,例如CRT顯示器和/或打印機(jī)。另外要明白術(shù)語“處理器”可涉及一個(gè)以上的處理器,并且與處理器相關(guān)的各處部件可被其它處理器共享。
因此,包括用于實(shí)現(xiàn)這里所述的本發(fā)明的方法的指令或代碼的軟件組件可保存在一個(gè)或多個(gè)相關(guān)存儲器(例如ROM,固定或可拆卸的存儲器)中,并且當(dāng)準(zhǔn)備使用所述軟件組件時(shí),所述軟件組件被部分或者整個(gè)載入(例如載入RAM中),并被CPU執(zhí)行。
雖然這里參考附圖,說明了本發(fā)明的例證實(shí)施例,不過要明白本發(fā)明并不局限于這些具體實(shí)施例,本領(lǐng)域的技術(shù)人員可對這些實(shí)施例做出各種其它變化和修改。
權(quán)利要求
1.一種供異步消息接發(fā)系統(tǒng)使用的基于計(jì)算機(jī)的方法,所述方法包括下述步驟為要在系統(tǒng)中發(fā)送的至少一個(gè)消息確定至少一種消息傳送結(jié)果條件,并使所述至少一種消息傳送結(jié)果條件和要在系統(tǒng)中發(fā)送的消息相關(guān)聯(lián);在系統(tǒng)中發(fā)送具有相關(guān)聯(lián)的至少一種消息傳送結(jié)果條件的消息;和監(jiān)視發(fā)送消息的傳送,并根據(jù)相關(guān)聯(lián)的至少一種消息傳送結(jié)果條件,評估消息的傳送結(jié)果,從而可把消息的傳送結(jié)果通知消息的發(fā)送者。
2.按照權(quán)利要求1所述的方法,其中傳送結(jié)果是成功和失敗之一。
3.按照權(quán)利要求1或2所述的方法,其中與特定消息無關(guān)地確定至少一種消息傳送結(jié)果條件。
4.按照前述任意權(quán)利要求所述的方法,其中消息傳送結(jié)果條件被表達(dá)成永久對象。
5.按照權(quán)利要求4所述的方法,其中特定消息傳送結(jié)果條件表達(dá)是一組相關(guān)對象。
6.按照權(quán)利要求1-3任一所述的方法,其中要發(fā)送的消息和呈一個(gè)或多個(gè)永久對象形式的消息傳送結(jié)果條件的表達(dá)相關(guān)聯(lián)。
7.按照權(quán)利要求6所述的方法,其中消息傳送結(jié)果條件的特定表達(dá)和一組不同消息相關(guān)聯(lián)。
8.按照前述任意權(quán)利要求所述的方法,其中根據(jù)一個(gè)或多個(gè)目的地和一個(gè)或多個(gè)最終消息接受者中的至少一個(gè),執(zhí)行監(jiān)視傳送步驟。
9.按照權(quán)利要求1所述的方法,其中監(jiān)視傳送步驟包括把消息接受記錄在永久消息傳送日志中的步驟。
10.按照前述任意權(quán)利要求所述的方法,其中利用結(jié)果表達(dá)對象和其中記錄消息接受的消息傳送日志,評估傳送結(jié)果。
11.按照前述任意權(quán)利要求所述的方法,其中消息發(fā)送者詢問傳送結(jié)果評估的狀態(tài)。
12.按照前述任意權(quán)利要求所述的方法,其中傳送結(jié)果被發(fā)送給消息發(fā)送者。
13.按照權(quán)利要求1-11任一所述的方法,其中傳送結(jié)果被發(fā)送給消息發(fā)送者指定的接收結(jié)果通知的對象。
14.按照前述任意權(quán)利要求所述的方法,其中至少消息傳送監(jiān)視和傳送結(jié)果評估之一具有與之相關(guān)的超時(shí)。
15.按照前述任意權(quán)利要求所述的方法,還包括在消息被發(fā)出之后,修改和該消息相關(guān)聯(lián)的一種或多種消息傳送結(jié)果條件的步驟。
16.按照權(quán)利要求1-14任一所述的方法,還包括在消息已被發(fā)出之后,替換和該消息相關(guān)聯(lián)的一種或多種消息傳送結(jié)果條件的步驟。
17.一種供異步消息接發(fā)系統(tǒng)使用的設(shè)備,所述設(shè)備包括完成下述操作的一個(gè)或多個(gè)處理器(i)為要在系統(tǒng)中發(fā)送的至少一個(gè)消息確定至少一種消息傳送結(jié)果條件,并使所述消息傳送結(jié)果條件和要在系統(tǒng)中發(fā)送的消息相關(guān)聯(lián);(ii)在系統(tǒng)中發(fā)送具有相關(guān)聯(lián)的消息傳送結(jié)果條件的消息;和(iii)監(jiān)視發(fā)送消息的傳送,并根據(jù)相關(guān)聯(lián)消息傳送結(jié)果條件,評估消息的傳送結(jié)果,從而可把消息的傳送結(jié)果通知消息的發(fā)送者。
18.按照權(quán)利要求17所述的設(shè)備,其中消息傳送結(jié)果是成功和失敗之一。
19.按照權(quán)利要求17或18所述的設(shè)備,其中與特定消息無關(guān)地確定至少一種消息傳送結(jié)果。
20.按照權(quán)利要求17-19任一所述的設(shè)備,其中消息傳送結(jié)果條件被表達(dá)成永久對象。
21.按照權(quán)利要求20所述的設(shè)備,其中特定消息傳送結(jié)果條件表達(dá)是一組相關(guān)對象。
22.按照權(quán)利要求17-19任一所述的設(shè)備,其中要發(fā)送的消息和呈一個(gè)或多個(gè)永久對象形式的消息結(jié)果條件的表達(dá)相關(guān)聯(lián)。
23.按照權(quán)利要求22所述的設(shè)備,其中消息傳送結(jié)果條件的特定表達(dá)和一組不同消息相關(guān)聯(lián)。
24.按照權(quán)利要求17-23任一所述的設(shè)備,其中根據(jù)一個(gè)或多個(gè)目的地和一個(gè)或多個(gè)最終消息接受者中的至少一個(gè),執(zhí)行消息傳送監(jiān)視操作。
25.按照權(quán)利要求17-24任一所述的設(shè)備,其中消息傳送監(jiān)視操作包括把消息接受記錄在永久消息傳送日志中。
26.按照權(quán)利要求17-25任一所述的設(shè)備,其中利用結(jié)果表達(dá)對象和其中記錄消息接受的消息傳送日志,評估傳送結(jié)果。
27.按照權(quán)利要求17-26任一所述的設(shè)備,其中消息發(fā)送者詢問傳送結(jié)果評估的狀態(tài)。
28.按照權(quán)利要求17-27任一所述的設(shè)備,其中傳送結(jié)果被發(fā)送給消息發(fā)送者。
29.按照權(quán)利要求17-27任一所述的設(shè)備,其中傳送結(jié)果被發(fā)送給消息發(fā)送者指定的接收結(jié)果通知的對象。
30.按照權(quán)利要求17-29任一所述的設(shè)備,其中至少消息傳送結(jié)果監(jiān)視和傳送結(jié)果評估之一具有與之相關(guān)的超時(shí)。
31.按照權(quán)利要求17-30任一所述的設(shè)備,其中一個(gè)或多個(gè)處理器還在消息被發(fā)出之后,修改和該消息相關(guān)聯(lián)的一種或多種消息傳送結(jié)果條件。
32.按照權(quán)利要求17-30任一所述的設(shè)備,其中一個(gè)或多個(gè)處理器還在消息被發(fā)出之后,替換和該消息相關(guān)聯(lián)的一種或多種消息傳送結(jié)果條件。
33.一種包括指令的計(jì)算機(jī)程序,當(dāng)在數(shù)據(jù)處理系統(tǒng)上執(zhí)行所述指令時(shí),所述指令使所述系統(tǒng)執(zhí)行如權(quán)利要求1-16任一所述的方法。
34.一種和異步消息接發(fā)系統(tǒng)相關(guān)聯(lián)的應(yīng)用編程接口,所述接口包括當(dāng)被執(zhí)行時(shí),允許實(shí)現(xiàn)下述步驟的軟件代碼基于每條消息,規(guī)定消息傳送結(jié)果條件;使消息和消息結(jié)果條件相關(guān)聯(lián);發(fā)出具有相關(guān)聯(lián)的結(jié)果條件的消息;相對于消息傳送的結(jié)果條件,詢問消息傳送的狀態(tài);允許為某一消息規(guī)定的結(jié)果條件進(jìn)行至少修改和替換之一;和指定接收評估結(jié)果通知的對象。
35.一種供異步消息接發(fā)系統(tǒng)使用的設(shè)備,所述設(shè)備包括能夠完成下述操作的一個(gè)或多個(gè)處理器(i)把消息結(jié)果條件表達(dá)成永久對象;(ii)觀察消息傳送;(iii)評估消息結(jié)果條件;(iv)回答相對于消息傳送結(jié)果條件對消息傳送狀態(tài)進(jìn)行的詢問;和(v)把關(guān)于每個(gè)被發(fā)送消息的評估結(jié)果通知消息發(fā)送者或者發(fā)送者指定的對象。
全文摘要
一種供異步消息接發(fā)系統(tǒng)之用的基于計(jì)算機(jī)的方法,包括下述步驟(i)為要在系統(tǒng)中發(fā)送的至少一個(gè)消息確定至少一種消息傳送結(jié)果條件,并使所述至少一種消息傳送結(jié)果條件和要在系統(tǒng)中發(fā)送的消息相關(guān)聯(lián);(ii)在系統(tǒng)中發(fā)送具有相關(guān)消息傳送結(jié)果條件的消息;和(iii)監(jiān)視發(fā)送消息的傳送,根據(jù)相關(guān)聯(lián)消息傳送結(jié)果條件,評估消息的傳送結(jié)果,從而可把相對于最終接受者的消息傳送結(jié)果通知消息的發(fā)送者。
文檔編號G06F9/54GK1545655SQ01814095
公開日2004年11月10日 申請日期2001年7月26日 優(yōu)先權(quán)日2000年8月15日
發(fā)明者托馬斯·米卡爾森, 伊薩貝勒·魯費(fèi)路, 斯坦利·蘇頓, 史蒂芬·泰, 泰, 蘇頓, 勒 魯費(fèi)路, 托馬斯 米卡爾森 申請人:國際商業(yè)機(jī)器公司