欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

在消息傳遞中間件環(huán)境中定義替換信道路由機(jī)制的系統(tǒng)的制作方法

文檔序號(hào):6488411閱讀:136來(lái)源:國(guó)知局
專(zhuān)利名稱(chēng):在消息傳遞中間件環(huán)境中定義替換信道路由機(jī)制的系統(tǒng)的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及消息傳遞中間件(middleware)環(huán)境,其中借助于消息隊(duì)列從源應(yīng)用程序通過(guò)傳輸網(wǎng)絡(luò)傳送消息,特別涉及一種用于在這種環(huán)境中定義替換信道路由選擇機(jī)制的系統(tǒng)。
背景技術(shù)
在消息傳遞(messaging)中間件環(huán)境,如IBM的MQ系列中,應(yīng)用程序通過(guò)傳輸網(wǎng)絡(luò),如局域網(wǎng)(LAN)、廣域網(wǎng)(WAN)或公共交換電話(huà)網(wǎng)絡(luò)(PSTN),借助于隊(duì)列進(jìn)行通信。在源方,應(yīng)用程序打開(kāi)隊(duì)列并且將消息放置到其中。移動(dòng)器或消息信道代理(MCA)是負(fù)責(zé)將消息移到位于目標(biāo)方的目標(biāo)隊(duì)列中的程序。
當(dāng)源應(yīng)用程序想要將消息發(fā)送給目標(biāo)應(yīng)用程序時(shí),它必須通過(guò)消息隊(duì)列接口(MQI)與源隊(duì)列管理器進(jìn)行通信,以便將消息放置到傳送隊(duì)列中。在將消息放置到隊(duì)列中之前,隊(duì)列管理器添加首標(biāo),該首標(biāo)包含來(lái)自遠(yuǎn)程隊(duì)列定義的信息,如目標(biāo)隊(duì)列管理器的名稱(chēng)和目標(biāo)隊(duì)列的名稱(chēng)。
通過(guò)通信信道來(lái)執(zhí)行消息的傳送??梢允謩?dòng)或自動(dòng)地啟動(dòng)這些信道。為了自動(dòng)地啟動(dòng)信道,必須將傳送隊(duì)列與信道啟動(dòng)隊(duì)列相關(guān)聯(lián),其中,當(dāng)要被傳送的消息被放置到傳送隊(duì)列中時(shí),將啟動(dòng)消息放置到該信道啟動(dòng)隊(duì)列中。作為MQ系列程序的信道啟動(dòng)器用來(lái)監(jiān)控啟動(dòng)隊(duì)列。當(dāng)信道啟動(dòng)器在啟動(dòng)隊(duì)列中檢測(cè)到消息時(shí),它啟動(dòng)正被使用的特定信道的消息信道代理(MCA),并且后面這個(gè)程序在網(wǎng)絡(luò)上將該消息移到該信道的目標(biāo)方。
在接收方,監(jiān)聽(tīng)器程序必須已經(jīng)被啟動(dòng)。該程序監(jiān)控特定端口,缺省地是專(zhuān)用于MQ系列的端口。當(dāng)消息到達(dá)時(shí),監(jiān)聽(tīng)器啟動(dòng)將消息移到指定的本地隊(duì)列中的、與信道相關(guān)聯(lián)的MCA??梢允謩?dòng)或自動(dòng)地啟動(dòng)處理進(jìn)入(incoming)消息的程序。為了自動(dòng)地啟動(dòng)該程序,MCA將進(jìn)入消息放置到本地隊(duì)列中,并且將觸發(fā)消息放置到由觸發(fā)監(jiān)控器監(jiān)控的啟動(dòng)隊(duì)列中。后面這個(gè)程序調(diào)用在處理定義中所指定的應(yīng)用程序,其發(fā)出從本地隊(duì)列獲得消息的命令。
在上面的系統(tǒng)中,可能存在由于連接性故障的通信問(wèn)題。在這種情況下,不能啟用要用來(lái)移動(dòng)消息的信道,并且消息保持在傳送隊(duì)列中。當(dāng)不再傳遞由消息傳遞中間件保證其傳遞的關(guān)鍵消息(例如,數(shù)據(jù)庫(kù)更新、訂單、庫(kù)存...)時(shí),這可能導(dǎo)致嚴(yán)重問(wèn)題。對(duì)這種問(wèn)題的唯一解決方案是停止隊(duì)列管理器(從而影響整個(gè)業(yè)務(wù)活動(dòng)的傳遞)并且手動(dòng)地定義替換通信路徑。這是較長(zhǎng)、關(guān)鍵且麻煩的處理,其要求對(duì)所有隊(duì)列管理器的相互通信的徹底監(jiān)控。此外,由于具有高技能的工作人員必須隨時(shí)可用以及準(zhǔn)備采取行動(dòng),因此該解決方案導(dǎo)致了大量的費(fèi)用。

發(fā)明內(nèi)容
因此,本發(fā)明的目的是提供一種系統(tǒng),其被適配成一旦要被使用的主信道出故障,就自動(dòng)地選擇替換信道,以便在消息傳遞中間件環(huán)境中的兩個(gè)應(yīng)用程序之間傳送消息。
因此,本發(fā)明涉及一種路由選擇系統(tǒng),用于在消息傳遞中間件系統(tǒng)中定義替換信道路由選擇機(jī)制,其中,借助于消息隊(duì)列,通過(guò)傳送網(wǎng)絡(luò)將消息從源應(yīng)用程序傳送到目標(biāo)應(yīng)用程序,這種消息傳遞中間件系統(tǒng)包括源隊(duì)列管理器,用于管理消息的發(fā)送;傳送隊(duì)列,由源應(yīng)用程序?qū)⒁粋魉偷南⒎胖玫狡渲?;主信道,用于在傳送網(wǎng)絡(luò)上傳送消息;接收隊(duì)列,用于接收消息并且由目標(biāo)應(yīng)用程序從其獲得這些消息;目標(biāo)隊(duì)列管理器,用于管理消息的接收;和事件隊(duì)列,其中,有關(guān)主信道的事件被放置到該事件隊(duì)列中。該系統(tǒng)包括有限狀態(tài)機(jī),用于接收信道事件作為激活輸入,并且針對(duì)每個(gè)信道事件提供要被采取的操作。所述操作之一是當(dāng)主信道出故障時(shí),在替換信道上傳送消息。


通過(guò)參考附圖閱讀下面對(duì)本發(fā)明的更具體描述,本發(fā)明的上述和其它目的、特征以及優(yōu)點(diǎn)將會(huì)變得更好理解,其中圖1是表示消息傳遞中間件系統(tǒng)的方框圖,其中與源隊(duì)列管理器相關(guān)聯(lián)的源應(yīng)用程序?qū)⑾l(fā)送到與目標(biāo)隊(duì)列管理器相關(guān)聯(lián)的目標(biāo)應(yīng)用程序;圖2是包括根據(jù)本發(fā)明的特征的源隊(duì)列管理器的示意圖;
圖3是表示將消息從源隊(duì)列管理器發(fā)送到目標(biāo)隊(duì)列管理器的流程的方框圖,并且其中使用了中間隊(duì)列管理器;以及圖4是每當(dāng)檢測(cè)到信道事件時(shí),由源隊(duì)列管理器實(shí)現(xiàn)的處理的流程圖。
具體實(shí)施例方式
參考圖1,假定源應(yīng)用程序10想要通過(guò)網(wǎng)絡(luò)14向目標(biāo)應(yīng)用程序12傳達(dá)消息,其中,網(wǎng)絡(luò)14可以是持久性網(wǎng)絡(luò),如局域網(wǎng)(LAN)、廣域網(wǎng)(WAN),或暫時(shí)性網(wǎng)絡(luò),如公共交換電話(huà)網(wǎng)絡(luò)(PSTN)、或綜合業(yè)務(wù)數(shù)字網(wǎng)(ISDN)。
在源方,在將消息傳輸?shù)絺魉完?duì)列QMB 20之前,由應(yīng)用程序且在源隊(duì)列管理器QMA 16的控制下,將每個(gè)消息放置(PUT指令)到遠(yuǎn)程隊(duì)列Q1 18中。然后,將隊(duì)列20的一個(gè)消息或多個(gè)消息從信道發(fā)送器(QMA.QMB)22傳送到目標(biāo)方的信道接收器(QMA.QMB)24。注意,在下文中,信道將指定源方的信道發(fā)送器和目標(biāo)方的信道接收器之間的邏輯連接。
在目標(biāo)方,由信道接收器(QMA.QMB)接收的消息在目標(biāo)隊(duì)列管理器QMB 26的控制下被排隊(duì)到本地隊(duì)列Q1 28中。必須注意,源方的遠(yuǎn)程隊(duì)列18不是真實(shí)的隊(duì)列,而是在目標(biāo)機(jī)器中的本地隊(duì)列28的定義。然后,在隊(duì)列管理器QMB 26的控制下,由目標(biāo)應(yīng)用程序獲得(GET指令)放置到本地隊(duì)列28中的消息。
針對(duì)另一個(gè)方向,處理是相同的。由目標(biāo)應(yīng)用程序12將消息放置在遠(yuǎn)程隊(duì)列Q2 30中,其中,該隊(duì)列30是源方的本地隊(duì)列Q2 32的定義。通過(guò)網(wǎng)絡(luò)14,將在傳送隊(duì)列QMA 34中所傳輸?shù)南男诺腊l(fā)送器(QMB.QMA)36傳送到信道接收器(QMB.QMA)38。
圖2示意性地示出了根據(jù)本發(fā)明的機(jī)制。如上所述,源應(yīng)用程序?qū)⒁粋€(gè)消息或幾個(gè)消息放置到遠(yuǎn)程隊(duì)列18中。在源隊(duì)列管理器的控制下,將消息傳輸?shù)絺魉完?duì)列20中。當(dāng)一個(gè)或幾個(gè)消息已被放置到傳送隊(duì)列20中時(shí),由遠(yuǎn)程隊(duì)列18將啟動(dòng)消息放置到啟動(dòng)隊(duì)列40中。信道啟動(dòng)器41持續(xù)地監(jiān)控啟動(dòng)隊(duì)列40,以便啟動(dòng)消息信道代理(MCA)42,其負(fù)責(zé)觸發(fā)通過(guò)網(wǎng)絡(luò)14從信道發(fā)送器22傳送消息。注意,當(dāng)將第一消息放置到傳送隊(duì)列中,或者每當(dāng)將消息放置到傳送隊(duì)列時(shí),或者當(dāng)隊(duì)列包含指定數(shù)目的消息時(shí),隊(duì)列管理器可以觸發(fā)MCA的啟動(dòng)。
假定因?yàn)樾诺腊l(fā)送器和信道接收器之間的連接出故障,所以不能建立從信道發(fā)送器22的消息傳送,根據(jù)本發(fā)明的機(jī)制避免了消息被累積在傳送隊(duì)列中而不被傳送。為此,程序MCA一知道要被使用的信道的連接性,就將消息放置在事件隊(duì)列中。假定MCA檢測(cè)到該信道已經(jīng)出故障,則在該信道上停止消息傳送的同時(shí),將消息“信道已停止”放置到事件隊(duì)列44中。
由負(fù)責(zé)通常監(jiān)控啟動(dòng)隊(duì)列的觸發(fā)監(jiān)控器46監(jiān)控事件隊(duì)列,以便調(diào)用在處理48中所指定的應(yīng)用程序,并且檢索在本地隊(duì)列中所接收的消息。當(dāng)由觸發(fā)監(jiān)控器46檢測(cè)到信道事件消息時(shí),該觸發(fā)監(jiān)控器46調(diào)用通過(guò)GET指令等待通知的信道路由選擇任務(wù)50,例如后臺(tái)進(jìn)程(daemon)。然后,該后臺(tái)任務(wù)激活有限狀態(tài)機(jī)52,其中,當(dāng)主信道發(fā)送器是SDR1并且替換信道發(fā)送器是SDR2、SDR3和SDR4時(shí),該有限狀態(tài)機(jī)52根據(jù)以下輸入來(lái)啟動(dòng)各種操作。

根據(jù)按照這些輸入、信道發(fā)送器和類(lèi)型而提供由有限狀態(tài)機(jī)52采取的操作的上表,當(dāng)事件是“信道已啟動(dòng)”并且類(lèi)型是“正?!睍r(shí),沒(méi)有操作。但是一旦信道被停止并且類(lèi)型是異常,就要采取操作。如果正被停止的信道是主信道但類(lèi)型是異常(該信道出故障),則要采取的操作是將信道發(fā)送器SDR1取路由到第一個(gè)可用的替換信道發(fā)送器,如SDR2、SDR3或SDR4。注意,當(dāng)信道出故障時(shí),這可能是由于鏈路、信道發(fā)送器、信道接收器、或其組合的故障。
參照?qǐng)D3,假定信道出故障并且主信道發(fā)送器SDR1不可用。在這種情況下,在QM1 60中,從遠(yuǎn)程隊(duì)列64接收消息的傳送隊(duì)列62不再通過(guò)使用SDR1來(lái)發(fā)送消息。假定在目標(biāo)隊(duì)列管理器QM2 66中,主信道接收器RCVR1一直可用,在由SDR2和RCVR1對(duì)而非SDR1和RCVR1對(duì)定義的信道上發(fā)送消息。但是,正被接收的消息始終被放置到相同的本地或傳送隊(duì)列68中。
假定不但主信道發(fā)送器SDR1不可用,而且主信道接收器RCVR2可用,則有可能使用不同的信道發(fā)送器和信道接收器對(duì),如SDR3和RCVR2對(duì),以便在網(wǎng)絡(luò)14上發(fā)送消息。然而,在QM2中所接收的消息被放置到相同的本地或傳送隊(duì)列68中。
在圖3所示的可替換實(shí)施例中,通過(guò)使用中間隊(duì)列管理器QM3 70來(lái)執(zhí)行從QM1到QM2的消息傳送。在這種情況下,通過(guò)網(wǎng)絡(luò)14將在QM1的傳送隊(duì)列62中排隊(duì)的消息從信道發(fā)送器SDR4發(fā)送到QM3的信道接收器RCVR3。將所接收的消息放置到本地或傳送隊(duì)列72中。然后,在它們被放置到傳送隊(duì)列72中之前,將其傳輸?shù)竭h(yuǎn)程隊(duì)列74中。必須注意,遠(yuǎn)程隊(duì)列74不是真實(shí)的隊(duì)列,而是包含QM2中的本地或傳送隊(duì)列68的特征的結(jié)構(gòu)。因此,對(duì)在QM2中從遠(yuǎn)程隊(duì)列74傳輸?shù)絺魉完?duì)列72的消息進(jìn)行格式化,以便將其轉(zhuǎn)發(fā)到QM2。如圖3所示,通過(guò)網(wǎng)絡(luò)14將消息從信道發(fā)送器SDR5發(fā)送到QM2的信道接收器RCVR2。
圖4示出了當(dāng)投遞(post)了信道事件時(shí),與由源隊(duì)列管理器執(zhí)行的步驟相對(duì)應(yīng)的流程圖。首先,由被放置在事件隊(duì)列中的信道事件觸發(fā)信道路由選擇任務(wù)50(見(jiàn)圖2)(步驟76),其中在優(yōu)選實(shí)施例中該信道路由選擇任務(wù)是后臺(tái)進(jìn)程。確定由該事件標(biāo)識(shí)的信道是否是正在由系統(tǒng)監(jiān)控的信道(步驟78)。如果否,則該處理循環(huán)回到開(kāi)頭。如果是,則確定信道事件是否是“信道已停止”(步驟80)。如果否,則該處理循環(huán)回到開(kāi)頭。如果是,則確定被停止的信道是否是主信道(步驟82)。如果是,則確定是否存在可用于替換主信道的替換信道(步驟84)。如果否,則該處理循環(huán)回到開(kāi)頭。
如果存在可以使用的替換信道,例如SDR2、SDR3或SDR4,則用主信道的傳送隊(duì)列名稱(chēng)更新所選擇的替換信道的傳送隊(duì)列名稱(chēng)。然后,用下次啟動(dòng)信道時(shí)要使用的指定的序列號(hào)重設(shè)該信道的消息序列號(hào)(步驟88)。下次啟動(dòng)該信道時(shí),除了重設(shè)發(fā)出命令的一端的值之外,還將另一端的值重設(shè)為相同值。下一步驟包括禁用傳送隊(duì)列觸發(fā),并且禁止對(duì)相關(guān)傳送隊(duì)列的GET(獲得)操作(步驟90)。然后,用替換信道名稱(chēng),如SDR2,更新相關(guān)處理的數(shù)據(jù)(步驟92)。最后,在該處理循環(huán)回到開(kāi)頭之前,重新啟用對(duì)傳送隊(duì)列的GET操作,并且啟用相關(guān)傳送隊(duì)列的觸發(fā)(步驟94)。
當(dāng)確定被停止的信道不是主信道(步驟82)時(shí),這意味著被停止的信道已經(jīng)是替換信道。在這種情況下,在用原始主信道名稱(chēng)更新相關(guān)處理的數(shù)據(jù),以便恢復(fù)初始配置(步驟98)之前,禁用傳送隊(duì)列觸發(fā)并且禁止GET操作(步驟96)。然后,如同主信道出故障的情況一樣,重設(shè)消息序列號(hào)(步驟100)。如前所述,下一步驟包括啟用GET操作并且啟用傳送隊(duì)列的觸發(fā)(步驟102)。然后,在循環(huán)回到該處理的開(kāi)頭之前,清除替換信道的傳送隊(duì)列名稱(chēng),以便消除用于替換路由選擇的邏輯通信鏈路(步驟104)。
權(quán)利要求
1.一種用于在消息傳遞中間件系統(tǒng)中定義替換信道路由選擇機(jī)制的路由選擇系統(tǒng),其中,借助于消息隊(duì)列,通過(guò)傳送網(wǎng)絡(luò)(14)將消息從源應(yīng)用程序(10)傳送到目標(biāo)應(yīng)用程序(12),這種消息傳遞中間件系統(tǒng)包括源隊(duì)列管理器(16),用于管理所述消息的發(fā)送;傳送隊(duì)列(20),由所述源應(yīng)用程序?qū)⒁粋魉偷南⒎胖玫狡渲?;主信?22,24),用于在所述傳送網(wǎng)絡(luò)上傳送所述消息;接收隊(duì)列(28),用于接收所述消息并且由所述目標(biāo)應(yīng)用程序從其獲得所述消息;目標(biāo)隊(duì)列管理器(26),用于管理所述消息的接收;和事件隊(duì)列(44),有關(guān)所述主信道的事件被放置到所述事件隊(duì)列(44)中;所述系統(tǒng)的特征在于,其包括有限狀態(tài)機(jī)(52),用于接收信道事件作為激活輸入,并且針對(duì)每個(gè)所述信道事件提供要被采取的操作,其中所述操作之一是當(dāng)所述主信道出故障時(shí),在替換信道上傳送消息。
2.如權(quán)利要求1所述的路由選擇系統(tǒng),還包括觸發(fā)監(jiān)控器裝置(46),用于監(jiān)控所述事件隊(duì)列(44)并且調(diào)用信道路由選擇任務(wù)(50),每次在所述事件隊(duì)列中檢測(cè)到信道事件時(shí),所述信道路由選擇任務(wù)(50)激活所述有限狀態(tài)機(jī)(52)。
3.如權(quán)利要求2所述的路由選擇系統(tǒng),其中,所述信道路由選擇任務(wù)(50)是后臺(tái)進(jìn)程。
4.如權(quán)利要求1、2或3所述的路由選擇系統(tǒng),還包括中間隊(duì)列管理器(70),并且其中當(dāng)所述主信道出故障時(shí)要被使用的替換信道是與所述源隊(duì)列管理器(60)相關(guān)聯(lián)的信道發(fā)送器和與所述中間隊(duì)列管理器相關(guān)聯(lián)的信道接收器之間的信道,自動(dòng)地將由所述中間隊(duì)列管理器管理的傳送隊(duì)列所接收的所述消息傳送到與所述目標(biāo)隊(duì)列管理器(66)相關(guān)聯(lián)的接收隊(duì)列。
5.如權(quán)利要求4所述的路由選擇系統(tǒng),其中在由所述中間隊(duì)列管理器管理的傳送隊(duì)列(72)中,從由所述源隊(duì)列管理器(60)管理的傳送隊(duì)列(62)接收的所述消息被放置到遠(yuǎn)程隊(duì)列(74)中,其中所述遠(yuǎn)程隊(duì)列(74)包含與所述目標(biāo)隊(duì)列管理器(66)相關(guān)聯(lián)的接收隊(duì)列(68)相同的特征,然后才將所述消息放置到與所述中間隊(duì)列管理器相關(guān)聯(lián)的所述傳送隊(duì)列中,以便自動(dòng)地將其傳送到與所述目標(biāo)隊(duì)列管理器相關(guān)聯(lián)的所述接收隊(duì)列。
全文摘要
一種用于在消息傳遞中間件系統(tǒng)中定義替換信道路由選擇機(jī)制的路由選擇系統(tǒng),其中借助于消息隊(duì)列、通過(guò)傳送網(wǎng)絡(luò)(14)將消息從源應(yīng)用程序(10)傳送到目標(biāo)應(yīng)用程序。通過(guò)傳送網(wǎng)絡(luò)在主信道上發(fā)送由源應(yīng)用程序放置在傳送隊(duì)列(20)中的消息。在接收隊(duì)列中接收消息并且由目標(biāo)應(yīng)用程序從其獲得該消息。該系統(tǒng)包括有限狀態(tài)機(jī)(52),用于從事件隊(duì)列(44)接收與主信道相關(guān)聯(lián)的信道事件作為激活輸入,并且針對(duì)每個(gè)信道事件提供要被采取的操作,這些操作之一是當(dāng)主信道出故障時(shí),在替換信道上傳送消息。
文檔編號(hào)G06F9/46GK1817014SQ200480019328
公開(kāi)日2006年8月9日 申請(qǐng)日期2004年3月25日 優(yōu)先權(quán)日2003年5月27日
發(fā)明者帕特里克·貝納德, 菲利普·法弗里 申請(qǐng)人:國(guó)際商業(yè)機(jī)器公司
網(wǎng)友詢(xún)問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
施秉县| 河东区| 阜宁县| 上杭县| 金溪县| 乌兰县| 寿阳县| 长宁县| 梨树县| 兴山县| 辉南县| 屏东市| 中西区| 丁青县| 迁安市| 元氏县| 突泉县| 紫云| 祁东县| 郓城县| 界首市| 临城县| 崇明县| 江山市| 麟游县| 建德市| 监利县| 色达县| 香格里拉县| 遂昌县| 襄汾县| 饶阳县| 报价| 从化市| 崇阳县| 浦东新区| 定陶县| 北碚区| 灵川县| 始兴县| 宁安市|