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

一種分布式企業(yè)服務(wù)總線消息交換方法

文檔序號(hào):7662109閱讀:217來源:國(guó)知局
專利名稱:一種分布式企業(yè)服務(wù)總線消息交換方法
技術(shù)領(lǐng)域
本發(fā)明涉及消息交換方法,主要是一種分布式企業(yè)服務(wù)總線消息交換方法。

背景技術(shù)
“企業(yè)服務(wù)總線”作為應(yīng)用系統(tǒng)的連接中樞,是構(gòu)筑SOA(Service Oriented Architecture,面向服務(wù)架構(gòu))為基礎(chǔ)的企業(yè)信息系統(tǒng)的必要元素。企業(yè)服務(wù)總線的定義可以簡(jiǎn)單的理解為由中間件技術(shù)實(shí)現(xiàn)并支持SOA的一組基礎(chǔ)架構(gòu),支持異構(gòu)環(huán)境中的服務(wù)、消息以及基于事件的交互,并且具有適當(dāng)?shù)姆?wù)級(jí)別和可管理性。通過企業(yè)服務(wù)總線實(shí)現(xiàn)應(yīng)用系統(tǒng)的快速接入,并通過更高級(jí)的事件、流程處理能力,能夠很好的將企業(yè)信息系統(tǒng)與實(shí)際業(yè)務(wù)協(xié)調(diào)起來,在保證原有投資的條件下,實(shí)現(xiàn)更加靈活和敏捷的企業(yè)信息系統(tǒng)改造。
在分布式的企業(yè)服務(wù)總線中,服務(wù)的提供者和消費(fèi)者可以以組件的形式部署到裝有企業(yè)服務(wù)總線容器(以下簡(jiǎn)稱容器)的任意一個(gè)網(wǎng)絡(luò)節(jié)點(diǎn)上,并通過消息的形式實(shí)現(xiàn)交互。而消息必須被封裝成規(guī)范的消息交換形式后,經(jīng)過容器的路由功能,才能完成在消費(fèi)者和提供者之間傳遞。
消息交換作為企業(yè)服務(wù)總線的核心功能,為部署到企業(yè)服務(wù)總線上的服務(wù)提供可靠的交互機(jī)制。傳統(tǒng)的消息交換方法一般采用遠(yuǎn)程過程調(diào)用(RPC)技術(shù),降低系統(tǒng)開發(fā)的復(fù)雜度,但該技術(shù)只支持同步調(diào)用,且消息交換雙方的調(diào)用接口是緊耦合的。目前比較流行的消息交換方法是采用面向消息中間件(MOM),其可以支持消息的同步/異步傳遞和事件驅(qū)動(dòng)的體系架構(gòu),同時(shí)提供消息持久化的功能。
消息交換的性能是決定分布式企業(yè)服務(wù)總線的性能主要因素之一,而單純的采用面向消息中間件技術(shù)對(duì)整個(gè)系統(tǒng)的性能有較大的影響。當(dāng)消息交換的雙方都處于分布式環(huán)境中的同一節(jié)點(diǎn)時(shí),通過面向消息中間件(如JMS)傳遞消息性能損失較大,這正是本發(fā)明所要解決的問題。


發(fā)明內(nèi)容
本發(fā)明要解決上述技術(shù)所存在的缺陷,提供一種高效的、可靠的、支持同步/異步的分布式企業(yè)服務(wù)總線消息交換方法。
本發(fā)明解決其技術(shù)問題所采用的技術(shù)方案這種分布式企業(yè)服務(wù)總線消息交換方法,步驟如下 (1)、部署到企業(yè)服務(wù)總線上的組件之間必須以消息的方式進(jìn)行交換,且該消息必須按照一定的格式進(jìn)行構(gòu)造,組件在發(fā)送消息時(shí)設(shè)置同步或異步發(fā)送、消息的交換模式和是否需要持久化,系統(tǒng)為每個(gè)服務(wù)提供一個(gè)用于接收消息的隊(duì)列; (2)、當(dāng)服務(wù)消費(fèi)者發(fā)送服務(wù)請(qǐng)求之后,其所在的容器必須根據(jù)消息中設(shè)定的地址信息對(duì)消息進(jìn)行路由,確定服務(wù)提供者; (3)、根據(jù)服務(wù)提供者所處的容器,采用不同的消息交換方法,服務(wù)消費(fèi)者和提供者之間的消息交換可分成兩種情況 參與消息交換的兩個(gè)組件位于分布式環(huán)境中的同一節(jié)點(diǎn)時(shí),即位于同一容器時(shí),消息不需要通過JMS服務(wù)器,而是直接被保存到目標(biāo)服務(wù)對(duì)應(yīng)的消息隊(duì)列中;若該消息需要持久化,則將其保存到文件系統(tǒng)中,通過這種優(yōu)化策略,可以顯著的提高消息交換的效率。
參與消息交換的兩個(gè)服務(wù)位于分布式環(huán)境中的不同節(jié)點(diǎn)時(shí),即位于不同容器時(shí),消息被封裝成JMS的消息對(duì)象,并通過JMS服務(wù)器發(fā)送到以目標(biāo)服務(wù)名稱命名的JMS隊(duì)列中,當(dāng)JMS的消息消費(fèi)者在接收到消息后,會(huì)將消息保存到目標(biāo)服務(wù)的消息隊(duì)列中。該過程中的消息持久化是由JMS服務(wù)器實(shí)現(xiàn)的。
本發(fā)明有益的效果是 ■支持同步/異步的消息發(fā)送方式; ■提供消息持久化的功能; ■當(dāng)消息交換的雙方位于同一容器時(shí),采用優(yōu)化策略,提高消息交換效率。



圖1規(guī)范化消息交換結(jié)構(gòu)圖; 圖2同一容器中的消息交換圖; 圖3不同容器間的消息交換圖。

具體實(shí)施例方式 下面結(jié)合附圖和實(shí)施例對(duì)本發(fā)明作進(jìn)一步介紹 圖1描述了規(guī)范化消息交換中包括的內(nèi)容。
1)服務(wù)消費(fèi)者在發(fā)送消息前,必須將規(guī)范化的消息放到消息交換中,然后設(shè)定服務(wù)提供者的地址(可以是服務(wù)端點(diǎn)、服務(wù)名稱或接口名稱),以及在屬性中設(shè)定采用的傳遞方式(同步或異步)。
2)在服務(wù)消費(fèi)者將消息發(fā)出后,其所在的容器將對(duì)消息進(jìn)行路由。如果服務(wù)消費(fèi)者指定的地址信息為服務(wù)名稱或接口名稱,則消息路由服務(wù)將查找對(duì)應(yīng)的服務(wù)端點(diǎn),并將該端點(diǎn)信息保存到服務(wù)端點(diǎn)中。接著,將服務(wù)端點(diǎn)對(duì)應(yīng)的組件名稱設(shè)為服務(wù)提供者ID,將服務(wù)消費(fèi)者的名稱設(shè)為服務(wù)消費(fèi)者ID。其中組件命名方式是由組件所在的容器名和用戶定義的組件名串連而成。
圖2描述了服務(wù)消費(fèi)者和提供者在同一個(gè)容器中時(shí)的消息交換方式 1)在服務(wù)消費(fèi)者構(gòu)造好規(guī)范化的消息交換后,可以通過對(duì)應(yīng)的消息傳輸通道將消息發(fā)送出去。
2)服務(wù)消費(fèi)者所在的容器發(fā)現(xiàn)有消息發(fā)出后,首先判斷消息發(fā)送的方式是同步還是異步若是異步發(fā)送,則新啟動(dòng)一個(gè)線程,否則繼續(xù)執(zhí)行。接著,調(diào)用消息交換模塊的消息路由服務(wù)功能。在消息路由過程中,容器根據(jù)服務(wù)信息注冊(cè)表中的相關(guān)信息,確定目標(biāo)端點(diǎn)和服務(wù)提供者。
3)在確定服務(wù)提供者后,比較服務(wù)提供者ID中組件所在的容器名和服務(wù)消費(fèi)者所在的容器名是否相同。若相同,則在本地容器中查找服務(wù)提供者,并將消息交換直接保存到其對(duì)應(yīng)的消息傳輸通道中的消息隊(duì)列中,同時(shí)將消息持久化。
4)服務(wù)提供者在處理消息之后,可以將返回信息放到原有的消息交換中,并直接發(fā)出。
5)容器在接收到返回消息后,可以根據(jù)消息交換中的服務(wù)消費(fèi)者ID,在本地查找服務(wù)消費(fèi)者,并將消息返回到服務(wù)消費(fèi)者對(duì)應(yīng)的消息傳輸通道的消息隊(duì)列中。
圖3描述了服務(wù)消費(fèi)者和提供者在不同容器中時(shí)的消息交換方式 1)在組件啟動(dòng)之前,容器都將用其名字為其創(chuàng)建一個(gè)JMS的消息隊(duì)列,并將該隊(duì)列保存到JMS消息代理中。
2)組件在發(fā)送消息后,服務(wù)消費(fèi)者所在的容器經(jīng)過上述的路由過程,確定服務(wù)提供者位于其它容器上。此時(shí),消息路由服務(wù)通過JMS消息代理,將規(guī)范化消息封裝成JMS的消息對(duì)象。然后以服務(wù)提供者ID作為目標(biāo)地址,通過JMS服務(wù)器(JTangMQ)將消息發(fā)送出去。
3)服務(wù)提供者對(duì)應(yīng)的JMS消息隊(duì)列在接收到消息后,將消息還原成規(guī)范化的消息,并將其保存到服務(wù)提供者對(duì)應(yīng)的消息傳輸通道中的消息隊(duì)列中。
4)服務(wù)提供者在處理消息之后,可以將返回信息放到原有的消息交換中,并直接發(fā)出。
5)容器在接收到返回消息后,將消息交給JMS消息代理。JMS消息代理根據(jù)服務(wù)消費(fèi)者ID,以相同的機(jī)制,通過JMS服務(wù)器,將消息返回到服務(wù)消費(fèi)者對(duì)應(yīng)的JMS消息隊(duì)列中。
6)最后,服務(wù)消費(fèi)者對(duì)應(yīng)的JMS消息隊(duì)列在接收到消息時(shí),將消息返回到服務(wù)消費(fèi)者對(duì)應(yīng)的消息傳輸通道中的消息隊(duì)列中。
上述實(shí)施例用來解釋說明本發(fā)明,而不是對(duì)本發(fā)明進(jìn)行限制,在本發(fā)明的精神和權(quán)利要求的保護(hù)范圍內(nèi),對(duì)本發(fā)明作出的任何修改和改變,都落入本發(fā)明的保護(hù)范圍。
權(quán)利要求
1.一種分布式企業(yè)服務(wù)總線消息交換方法,其特征在于步驟如下
(1)、部署到企業(yè)服務(wù)總線上的組件之間必須以消息的方式進(jìn)行交換,系統(tǒng)為每個(gè)服務(wù)提供一個(gè)用于接收消息的隊(duì)列;
(2)、當(dāng)服務(wù)消費(fèi)者發(fā)送服務(wù)請(qǐng)求之后,其所在的容器必須根據(jù)消息中設(shè)定的地址信息對(duì)消息進(jìn)行路由,確定服務(wù)提供者;
(3)、根據(jù)服務(wù)提供者所處的容器,采用不同的消息交換方法,服務(wù)消費(fèi)者和提供者之間的消息交換可分成兩種情況
參與消息交換的兩個(gè)組件位于分布式環(huán)境中的同一節(jié)點(diǎn)時(shí),即位于同一容器時(shí),消息不需要通過JMS服務(wù)器,而是直接被保存到目標(biāo)服務(wù)對(duì)應(yīng)的消息隊(duì)列中;
參與消息交換的兩個(gè)服務(wù)位于分布式環(huán)境中的不同節(jié)點(diǎn)時(shí),即位于不同容器時(shí),消息被封裝成JMS的消息對(duì)象,并通過JMS服務(wù)器發(fā)送到以目標(biāo)服務(wù)名稱命名的JMS隊(duì)列中,當(dāng)JMS的消息消費(fèi)者在接收到消息后,會(huì)將消息保存到目標(biāo)服務(wù)的消息隊(duì)列中。
2.根據(jù)權(quán)利要求1所述的分布式企業(yè)服務(wù)總線消息交換方法,其特征在于組件在發(fā)送消息時(shí)設(shè)置同步或異步發(fā)送、消息的交換模式和是否需要持久化。
3.根據(jù)權(quán)利要求1或2所述的分布式企業(yè)服務(wù)總線消息交換方法,其特征在于參與消息交換的兩個(gè)組件位于分布式環(huán)境中的同一節(jié)點(diǎn)時(shí),即位于同一容器時(shí),若該消息需要持久化,則將其保存到文件系統(tǒng)中。
4.根據(jù)權(quán)利要求1所述的分布式企業(yè)服務(wù)總線消息交換方法,其特征在于服務(wù)消費(fèi)者和提供者在同一個(gè)容器中時(shí)的消息交換方式具體步驟如下
1)在服務(wù)消費(fèi)者構(gòu)造好規(guī)范化的消息交換后,通過對(duì)應(yīng)的消息傳輸通道將消息發(fā)送出去;
2)服務(wù)消費(fèi)者所在的容器發(fā)現(xiàn)有消息發(fā)出后,首先判斷消息發(fā)送的方式是同步還是異步若是異步發(fā)送,則新啟動(dòng)一個(gè)線程,否則繼續(xù)執(zhí)行;接著,調(diào)用消息交換模塊的消息路由服務(wù)功能,在消息路由過程中,容器根據(jù)服務(wù)信息注冊(cè)表中的相關(guān)信息,確定目標(biāo)端點(diǎn)和服務(wù)提供者;
3)在確定服務(wù)提供者后,比較服務(wù)提供者ID中組件所在的容器名和服務(wù)消費(fèi)者所在的容器名是否相同;若相同,則在本地容器中查找服務(wù)提供者,并將消息交換直接保存到其對(duì)應(yīng)的消息傳輸通道中的消息隊(duì)列中,同時(shí)將消息持久化;
4)服務(wù)提供者在處理消息之后,將返回信息放到原有的消息交換中,并直接發(fā)出;
5)容器在接收到返回消息后,可以根據(jù)消息交換中的服務(wù)消費(fèi)者ID,在本地查找服務(wù)消費(fèi)者,并將消息返回到服務(wù)消費(fèi)者對(duì)應(yīng)的消息傳輸通道的消息隊(duì)列中。
5.根據(jù)權(quán)利要求1所述的分布式企業(yè)服務(wù)總線消息交換方法,其特征在于服務(wù)消費(fèi)者和提供者在不同容器中時(shí)的消息交換方式具體步驟如下
1)在組件啟動(dòng)之前,容器都將用其名字為其創(chuàng)建一個(gè)JMS的消息隊(duì)列,并將該隊(duì)列保存到JMS消息代理中;
2)組件在發(fā)送消息后,服務(wù)消費(fèi)者所在的容器經(jīng)過上述的路由過程,確定服務(wù)提供者位于其它容器上,此時(shí),消息路由服務(wù)通過JMS消息代理,將規(guī)范化消息封裝成JMS的消息對(duì)象,然后以服務(wù)提供者ID作為目標(biāo)地址,通過JMS服務(wù)器將消息發(fā)送出去;
3)服務(wù)提供者對(duì)應(yīng)的JMS消息隊(duì)列在接收到消息后,將消息還原成規(guī)范化的消息,并將其保存到服務(wù)提供者對(duì)應(yīng)的消息傳輸通道中的消息隊(duì)列中;
4)服務(wù)提供者在處理消息之后,將返回信息放到原有的消息交換中,并直接發(fā)出;
5)容器在接收到返回消息后,將消息交給JMS消息代理,JMS消息代理根據(jù)服務(wù)消費(fèi)者ID,以相同的機(jī)制,通過JMS服務(wù)器,將消息返回到服務(wù)消費(fèi)者對(duì)應(yīng)的JMS消息隊(duì)列中;
6)最后,服務(wù)消費(fèi)者對(duì)應(yīng)的JMS消息隊(duì)列在接收到消息時(shí),將消息返回到服務(wù)消費(fèi)者對(duì)應(yīng)的消息傳輸通道中的消息隊(duì)列中。
6.根據(jù)權(quán)利要求1所述的分布式企業(yè)服務(wù)總線消息交換方法,其特征在于規(guī)范化消息交換中包括的內(nèi)容
1)服務(wù)消費(fèi)者在發(fā)送消息前,將規(guī)范化的消息放到消息交換中,然后設(shè)定服務(wù)提供者的地址,以及在屬性中設(shè)定采用的傳遞方式,即同步或異步;
2)在服務(wù)消費(fèi)者將消息發(fā)出后,其所在的容器將對(duì)消息進(jìn)行路由;如果服務(wù)消費(fèi)者指定的地址信息為服務(wù)名稱或接口名稱,則消息路由服務(wù)將查找對(duì)應(yīng)的服務(wù)端點(diǎn),并將該端點(diǎn)信息保存到服務(wù)端點(diǎn)中;接著,將服務(wù)端點(diǎn)對(duì)應(yīng)的組件名稱設(shè)為服務(wù)提供者ID,將服務(wù)消費(fèi)者的名稱設(shè)為服務(wù)消費(fèi)者ID,其中組件命名方式是由組件所在的容器名和用戶定義的組件名串連而成。
全文摘要
本發(fā)明涉及一種分布式企業(yè)服務(wù)總線消息交換方法,步驟如下(1)部署到企業(yè)服務(wù)總線上的組件之間必須以消息的方式進(jìn)行交換,且該消息必須按照一定的格式進(jìn)行構(gòu)造,組件在發(fā)送消息時(shí)設(shè)置同步或異步發(fā)送、消息的交換模式和是否需要持久化,系統(tǒng)為每個(gè)服務(wù)提供一個(gè)用于接收消息的隊(duì)列;(2)當(dāng)服務(wù)消費(fèi)者發(fā)送服務(wù)請(qǐng)求之后,其所在的容器必須根據(jù)消息中設(shè)定的地址信息對(duì)消息進(jìn)行路由,確定服務(wù)提供者;(3)根據(jù)服務(wù)提供者所處的容器,采用不同的消息交換方法。本發(fā)明有益的效果是支持同步/異步的消息發(fā)送方式;提供消息持久化的功能;當(dāng)消息交換的雙方位于同一容器時(shí),采用優(yōu)化策略,提高消息交換效率。
文檔編號(hào)H04L12/58GK101184056SQ20071015670
公開日2008年5月21日 申請(qǐng)日期2007年12月4日 優(yōu)先權(quán)日2007年12月4日
發(fā)明者尹建偉, 陳韓偉, 路 金, 健 吳, 鄧水光, 瑩 李, 吳朝暉 申請(qǐng)人:浙江大學(xué)
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
边坝县| 黑龙江省| 略阳县| 潞西市| 晴隆县| 许昌市| 合阳县| 阿鲁科尔沁旗| 始兴县| 体育| 井研县| 淅川县| 中超| 石景山区| 谢通门县| 平定县| 札达县| 阳高县| 定州市| 中西区| 柳州市| 甘泉县| 巢湖市| 万年县| 喀什市| 灵川县| 区。| 淮南市| 马山县| 开化县| 武陟县| 迭部县| 淮滨县| 新疆| 景洪市| 治多县| 伊川县| 桦南县| 安庆市| 新津县| 中西区|