消息中間件基于規(guī)則的多目標(biāo)路由和復(fù)制技術(shù)的制作方法
【專利摘要】本發(fā)明適用于計算機(jī)【技術(shù)領(lǐng)域】,提供了消息中間件基于規(guī)則的多目標(biāo)路由和復(fù)制技術(shù),所述方法包括:中間件接收客戶端發(fā)送的消息;若配置了業(yè)務(wù)配置信息,所述中間件解析所述消息攜帶的業(yè)務(wù)標(biāo)識,所述業(yè)務(wù)配置信息包括業(yè)務(wù)字段、預(yù)設(shè)業(yè)務(wù)標(biāo)識和若干個目的地址;若所述業(yè)務(wù)標(biāo)識與所述業(yè)務(wù)配置信息的預(yù)設(shè)業(yè)務(wù)標(biāo)識匹配,則所述中間件復(fù)制所述消息;所述中間件按照所述若干個目的地址轉(zhuǎn)發(fā)所述消息。本發(fā)明,實現(xiàn)了通過插件方式支持多種業(yè)務(wù)協(xié)議的消息的多個目標(biāo)復(fù)制和轉(zhuǎn)發(fā),不限制業(yè)務(wù)協(xié)議。
【專利說明】消息中間件基于規(guī)則的多目標(biāo)路由和復(fù)制技術(shù)
【技術(shù)領(lǐng)域】
[0001]本發(fā)明屬于計算機(jī)【技術(shù)領(lǐng)域】,尤其涉及消息中間件基于規(guī)則的多目標(biāo)路由和復(fù)制技術(shù)。
【背景技術(shù)】
[0002]目前,服務(wù)端與客戶端之間的消息一對多傳輸模式為發(fā)布/訂閱模式,如IBMWebSphere MQ中的發(fā)布/訂閱,客戶端只需發(fā)布(或訂閱)某一主題的發(fā)布(或訂閱)消息,便可實現(xiàn)消息的一對多、多對一、多對多的傳遞,從空間和時間上解耦了發(fā)布者和訂閱者。
[0003]然而發(fā)布/訂閱模式是基于應(yīng)用程序的,需要應(yīng)用層來配合使用的,并且需要由主題來實現(xiàn)消息之間的聯(lián)系,這與我們希望單純只是消息傳遞、與業(yè)務(wù)協(xié)議無關(guān),以及服務(wù)端變化時無需改造客戶端的愿望是不一致的。
【發(fā)明內(nèi)容】
[0004]本發(fā)明實施例提供了消息中間件基于規(guī)則的多目標(biāo)路由和復(fù)制技術(shù),旨在解決現(xiàn)有消息模式限制消息的業(yè)務(wù)協(xié)議,服務(wù)端變化時,需要客戶端配合,升級成本高的問題。
[0005]一方面,提供一種消息復(fù)制和轉(zhuǎn)發(fā)的方法,所述方法包括:
[0006]中間件接收客戶端發(fā)送的消息;
[0007]若配置了業(yè)務(wù)配置信息,所述中間件解析所述消息攜帶的業(yè)務(wù)標(biāo)識,所述業(yè)務(wù)配置信息包括業(yè)務(wù)字段、預(yù)設(shè)業(yè)務(wù)標(biāo)識和若干個目的地址;
[0008]若所述業(yè)務(wù)標(biāo)識與所述業(yè)務(wù)配置信息的預(yù)設(shè)業(yè)務(wù)標(biāo)識匹配,則所述中間件復(fù)制所述消息;
[0009]所述中間件按照所述若干個目的地址轉(zhuǎn)發(fā)所述消息。
[0010]另一方面,提供一種消息復(fù)制和轉(zhuǎn)發(fā)的中間件,所述中間件包括:
[0011]消息接收單元,用于接收客戶端發(fā)送的消息;
[0012]消息解析單元,用于若配置了業(yè)務(wù)配置信息,解析所述消息攜帶的業(yè)務(wù)標(biāo)識,所述業(yè)務(wù)配置信息包括業(yè)務(wù)字段、預(yù)設(shè)業(yè)務(wù)標(biāo)識和若干個目的地址;
[0013]消息復(fù)制單元,用于若所述業(yè)務(wù)標(biāo)識與所述業(yè)務(wù)配置信息的預(yù)設(shè)業(yè)務(wù)標(biāo)識匹配,則復(fù)制所述消息;
[0014]消息轉(zhuǎn)發(fā)單元,用于按照所述若干個目的地址轉(zhuǎn)發(fā)所述消息。
[0015]在本發(fā)明實施例,中間件接收客戶端發(fā)送的消息;若配置了業(yè)務(wù)配置信息,所述中間件解析所述消息攜帶的業(yè)務(wù)標(biāo)識,所述業(yè)務(wù)配置信息包括業(yè)務(wù)字段、預(yù)設(shè)業(yè)務(wù)標(biāo)識和若干個目的地址;若所述業(yè)務(wù)標(biāo)識與所述業(yè)務(wù)配置信息的預(yù)設(shè)業(yè)務(wù)標(biāo)識匹配,則所述中間件復(fù)制所述消息;所述中間件按照所述若干個目的地址轉(zhuǎn)發(fā)所述消息,本發(fā)明,實現(xiàn)了通過插件方式支持多種業(yè)務(wù)協(xié)議的消息的多個目標(biāo)復(fù)制和轉(zhuǎn)發(fā),不限制業(yè)務(wù)協(xié)議。【專利附圖】
【附圖說明】
[0016]圖1是本發(fā)明實施例一提供的消息復(fù)制和轉(zhuǎn)發(fā)的方法的實現(xiàn)流程圖;
[0017]圖2是本發(fā)明實施例二提供的消息復(fù)制和轉(zhuǎn)發(fā)的方法的實現(xiàn)流程圖;
[0018]圖3是本發(fā)明實施例三提供的消息復(fù)制和轉(zhuǎn)發(fā)的中間件的結(jié)構(gòu)框圖。
【具體實施方式】
[0019]為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合附圖及實施例,對本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說明。應(yīng)當(dāng)理解,此處所描述的具體實施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
[0020]在本發(fā)明實施例中,中間件接收客戶端發(fā)送的消息;若配置了業(yè)務(wù)配置信息,所述中間件解析所述消息攜帶的業(yè)務(wù)標(biāo)識,所述業(yè)務(wù)配置信息包括業(yè)務(wù)字段、預(yù)設(shè)業(yè)務(wù)標(biāo)識和若干個目的地址;若所述業(yè)務(wù)標(biāo)識與所述業(yè)務(wù)配置信息的預(yù)設(shè)業(yè)務(wù)標(biāo)識匹配,則所述中間件復(fù)制所述消息;所述中間件按照所述若干個目的地址轉(zhuǎn)發(fā)所述消息。
[0021]以下結(jié)合具體實施例對本發(fā)明的實現(xiàn)進(jìn)行詳細(xì)描述:
[0022]實施例一
[0023]圖1示出了本發(fā)明實施例一提供的消息復(fù)制和轉(zhuǎn)發(fā)的方法的實現(xiàn)流程,詳述如下:
[0024]在步驟SlOl中,中間件接收客戶端發(fā)送的消息。
[0025]在本實施例中,所述客戶端是安裝了業(yè)務(wù)系統(tǒng)的計算機(jī),尤其是指安裝了證券、金融行業(yè)業(yè)務(wù)系統(tǒng)的計算機(jī)。所述消息為兩個客戶端的業(yè)務(wù)系統(tǒng)之間交互的各種業(yè)務(wù)協(xié)議的消息。中間件接收客戶端發(fā)送的消息。
[0026]優(yōu)選地,在本步驟SlOl之前,還包括從配置文件中讀取配置信息,所述中間件解析所述配置信息,獲得其中有效的業(yè)務(wù)配置信息。
[0027]其中,配置文件為記錄消息復(fù)制轉(zhuǎn)發(fā)配置信息的文本文件,其中,配置信息的數(shù)量可任意配置。所述業(yè)務(wù)配置信息是用戶設(shè)置的中間件可處理業(yè)務(wù)協(xié)議種類的信息,一條業(yè)務(wù)配置信息與一種業(yè)務(wù)協(xié)議對應(yīng),同一配置文件中,也可有多條業(yè)務(wù)配置信息與一種業(yè)務(wù)協(xié)議對應(yīng),業(yè)務(wù)配置信息包括業(yè)務(wù)字段、預(yù)設(shè)業(yè)務(wù)標(biāo)識和若干個目的地址,業(yè)務(wù)字段是標(biāo)識業(yè)務(wù)種類的字段,預(yù)設(shè)業(yè)務(wù)標(biāo)識是標(biāo)識業(yè)務(wù)種類的值或標(biāo)識業(yè)務(wù)復(fù)制轉(zhuǎn)發(fā)的條件表達(dá)式,目的地址是消息轉(zhuǎn)發(fā)的目的中間件的地址,每一條業(yè)務(wù)配置信息中的業(yè)務(wù)字段、預(yù)設(shè)業(yè)務(wù)標(biāo)識以及對應(yīng)的目的地址均可以動態(tài)修改。中間件從配置文件中讀取配置信息,解析其中格式準(zhǔn)確并不與已解析業(yè)務(wù)配置信息重復(fù)的有效業(yè)務(wù)配置信息,如果配置信息業(yè)務(wù)字段重復(fù),中間件對該業(yè)務(wù)字段只解析一次,并不會重復(fù)解析,從而提高解析的效率。優(yōu)選的,所述業(yè)務(wù)配置信息以表達(dá)式形式表述,用戶可根據(jù)實際業(yè)務(wù)來配置某個或某些業(yè)務(wù)字段滿足什么規(guī)則,其表達(dá)式包含加+、減-、乘*、除/、或11、與&&、相等==、非!=等常見的運(yùn)算符以及用戶自定義操作符,如某條業(yè)務(wù)配置信息以表達(dá)式Ofuncid==400400來表述,其中funcid為業(yè)務(wù)字段,400400為預(yù)設(shè)業(yè)務(wù)標(biāo)識。對于業(yè)務(wù)配置信息的配置,可由用戶靈活配置,新的業(yè)務(wù)協(xié)議的增加或減少,對于用戶來說是完全兼容的,沒有任何的升級成本。
[0028]在步驟S102中,若配置了業(yè)務(wù)配置信息,所述中間件解析所述消息攜帶的業(yè)務(wù)標(biāo)識,所述業(yè)務(wù)配置信息包括業(yè)務(wù)字段、預(yù)設(shè)業(yè)務(wù)標(biāo)識和若干個目的地址。[0029]在本實施例中,若中間件的配置文件中配置了業(yè)務(wù)配置信息,所述中間件解析所述消息攜帶的業(yè)務(wù)標(biāo)識,其中所述業(yè)務(wù)配置信息包括業(yè)務(wù)字段、預(yù)設(shè)業(yè)務(wù)標(biāo)識和若干個目的地址。具體的,解析采用逆波蘭式算法,如果配置文件中配置了如下業(yè)務(wù)配置信息funcid==400400,則消息中若攜帶了業(yè)務(wù)標(biāo)識400400,則認(rèn)為該中間件可以按照該條業(yè)務(wù)配置信息處理所述消息。
[0030]作為一個優(yōu)選方案,本步驟之前還包括:
[0031]所述中間件判斷配置文件中是否配置了所述業(yè)務(wù)配置信息,若否,則所述中間件不處理所述消息。
[0032]在步驟S103中,若所述業(yè)務(wù)標(biāo)識與所述業(yè)務(wù)配置信息的預(yù)設(shè)業(yè)務(wù)標(biāo)識匹配,則所述中間件復(fù)制所述消息。
[0033]在本實施例中,解析所述消息攜帶的業(yè)務(wù)標(biāo)識之后,中間件需要判斷消息中所述業(yè)務(wù)標(biāo)識與配置業(yè)務(wù)信息中所述預(yù)設(shè)業(yè)務(wù)標(biāo)識是否匹配,若兩者不匹配,則不復(fù)制或轉(zhuǎn)發(fā)所述消息,若兩者匹配,則中間件按照業(yè)務(wù)配置信息復(fù)制該消息。
[0034]在步驟S104中,所述中間件按照所述若干個目的地址轉(zhuǎn)發(fā)所述消息。
[0035]在本實施例中,中間件按照若干個目的地址轉(zhuǎn)發(fā)所述消息至目的地址對應(yīng)的業(yè)務(wù)系統(tǒng)中。實現(xiàn)了一對一、一對多的消息轉(zhuǎn)發(fā)。優(yōu)選的,本步驟之后還可以所述中間件記錄所述若干個目的地址,以使轉(zhuǎn)發(fā)消息記錄可查。
[0036]作為一個優(yōu)選方案,還包括若有新業(yè)務(wù)協(xié)議的消息需要轉(zhuǎn)發(fā)時,所述中間件在配置文件中配置所述新業(yè)務(wù)協(xié)議對應(yīng)的業(yè)務(wù)配置信息。
[0037]具體的,中間件對消息的業(yè)務(wù)協(xié)議是不加限制的,有新業(yè)務(wù)協(xié)議的消息需要轉(zhuǎn)發(fā)時,只需要修改配置文件,由于業(yè)務(wù)協(xié)議與平臺無關(guān),客戶端不需要修改,沒有升級成本。
[0038]本實施例,通過插件方式支持多種業(yè)務(wù)協(xié)議的消息的多個目標(biāo)復(fù)制和轉(zhuǎn)發(fā),同時用戶可自由配置業(yè)務(wù)協(xié)議類型以及目的地,不限制業(yè)務(wù)協(xié)議,也不需要客戶端的修改和配合,對于用戶來說是完全兼容的,沒有任何升級成本。
[0039]實施例二
[0040]圖2示出了本發(fā)明實施例二提供的消息復(fù)制和轉(zhuǎn)發(fā)的方法的實現(xiàn)流程,適用于配置文件中同一業(yè)務(wù)協(xié)議有多條業(yè)務(wù)配置信息的情況,詳述如下:
[0041]在步驟S201中,接收客戶端發(fā)送的消息。
[0042]在步驟S202中,若配置了業(yè)務(wù)配置信息,解析所述消息中所述業(yè)務(wù)配置信息的業(yè)務(wù)字段對應(yīng)業(yè)務(wù)的業(yè)務(wù)標(biāo)識,所述業(yè)務(wù)配置信息包括業(yè)務(wù)字段、預(yù)設(shè)業(yè)務(wù)標(biāo)識和若干個目的地址。
[0043]在步驟S203中,若所述業(yè)務(wù)標(biāo)識與所述業(yè)務(wù)配置信息的預(yù)設(shè)業(yè)務(wù)標(biāo)識匹配,則復(fù)制所述消息。
[0044]在本實施例中,步驟S201?S203的執(zhí)行和上述實施例一中的步驟SlOl?S103的執(zhí)行過程類似,詳情參見上述實施例一的描述。
[0045]在步驟S204中,判斷是否還配置了其他業(yè)務(wù)配置信息,若是,執(zhí)行步驟S203,若否,執(zhí)行步驟S205
[0046]在步驟S205中,按照若干個目的地址轉(zhuǎn)發(fā)所述消息。
[0047]在本實施例中,實現(xiàn)了對消息復(fù)制完之后,再轉(zhuǎn)發(fā)消息。[0048]本實施例,通過插件方式支持多種業(yè)務(wù)協(xié)議的消息的多個目標(biāo)復(fù)制和轉(zhuǎn)發(fā),同時用戶可自由配置業(yè)務(wù)協(xié)議類型以及目的地,不限制業(yè)務(wù)協(xié)議,也不需要客戶端的修改和配合,對于用戶來說是完全兼容的,沒有任何升級成本。
[0049]實施例三
[0050]圖3示出了本發(fā)明實施例三提供的消息復(fù)制和轉(zhuǎn)發(fā)的中間件的具體結(jié)構(gòu)框圖,為了便于說明,僅示出了與本發(fā)明實施例相關(guān)的部分。在本實施例中,該消息復(fù)制和轉(zhuǎn)發(fā)的中間件包括:消息接收單元31、消息解析單元32、消息復(fù)制單元33、消息轉(zhuǎn)發(fā)單元34、第一判斷單元35、第二判讀單元36、配置單元37和配置讀取單元38。
[0051]其中,消息接收單元31,用于接收客戶端發(fā)送的消息;
[0052]消息解析單元32,用于若配置了業(yè)務(wù)配置信息,解析所述消息攜帶的業(yè)務(wù)標(biāo)識,所述業(yè)務(wù)配置信息包括業(yè)務(wù)字段、預(yù)設(shè)業(yè)務(wù)標(biāo)識和若干個目的地址;
[0053]消息復(fù)制單元33,用于若所述業(yè)務(wù)標(biāo)識與所述業(yè)務(wù)配置信息的預(yù)設(shè)業(yè)務(wù)標(biāo)識匹配,則復(fù)制所述消息;
[0054]消息轉(zhuǎn)發(fā)單元34,用于按照所述若干個目的地址轉(zhuǎn)發(fā)所述消息。
[0055]進(jìn)一步的,所述中間件還包括:
[0056]第一判斷單元35,用于判斷配置文件中是否配置了所述業(yè)務(wù)配置信息,若否,則不處理所述消息。
[0057]進(jìn)一步的,所述中間件還包括:
[0058]第二判讀單元36,用于判斷是否還配置了其他業(yè)務(wù)配置信息,若是,若所述業(yè)務(wù)標(biāo)識與所述業(yè)務(wù)配置信息的預(yù)設(shè)業(yè)務(wù)標(biāo)識匹配,則復(fù)制所述消息。
[0059]進(jìn)一步的,所述中間件還包括:
[0060]配置單元37,用于若有新業(yè)務(wù)協(xié)議的消息需要轉(zhuǎn)發(fā)時,在配置文件中配置所述新業(yè)務(wù)協(xié)議對應(yīng)的業(yè)務(wù)配置信息。
[0061]進(jìn)一步的,所述中間件還包括:
[0062]配置讀取單元38,用于從配置文件中讀取配置信息,解析所述配置信息,獲得其中有效的業(yè)務(wù)配置信息。
[0063]本發(fā)明實施例提供的消息復(fù)制和轉(zhuǎn)發(fā)的中間件可以應(yīng)用在前述對應(yīng)的方法實施例一和二中,詳情參見上述實施例一和二的描述,在此不再贅述。
[0064]值得注意的是,上述系統(tǒng)實施例中,所包括的各個單元只是按照功能邏輯進(jìn)行劃分的,但并不局限于上述的劃分,只要能夠?qū)崿F(xiàn)相應(yīng)的功能即可;另外,各功能單元的具體名稱也只是為了便于相互區(qū)分,并不用于限制本發(fā)明的保護(hù)范圍。
[0065]另外,本領(lǐng)域普通技術(shù)人員可以理解實現(xiàn)上述各實施例方法中的全部或部分步驟是可以通過程序來指令相關(guān)的硬件來完成,相應(yīng)的程序可以存儲于一計算機(jī)可讀取存儲介質(zhì)中,所述的存儲介質(zhì),如R0M/RAM、磁盤或光盤等。
[0066]以上所述僅為本發(fā)明的較佳實施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換和改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
【權(quán)利要求】
1.一種消息復(fù)制和轉(zhuǎn)發(fā)的方法,其特征在于,所述方法包括: 中間件接收客戶端發(fā)送的消息; 若配置了業(yè)務(wù)配置信息,所述中間件解析所述消息攜帶的業(yè)務(wù)標(biāo)識,所述業(yè)務(wù)配置信息包括業(yè)務(wù)字段、預(yù)設(shè)業(yè)務(wù)標(biāo)識和若干個目的地址; 若所述業(yè)務(wù)標(biāo)識與所述業(yè)務(wù)配置信息的預(yù)設(shè)業(yè)務(wù)標(biāo)識匹配,則所述中間件復(fù)制所述消息; 所述中間件按照所述若干個目的地址轉(zhuǎn)發(fā)所述消息。
2.如權(quán)利要求1所述的方法,其特征在于,在所述若配置了業(yè)務(wù)配置信息,所述中間件解析所述消息攜帶的業(yè)務(wù)標(biāo)識之前還包括: 所述中間件判斷配置文件中是否配置了所述業(yè)務(wù)配置信息,若否,則不處理所述消息。
3.如權(quán)利要求1或2所述的方法,其特征在于,所述中間件按照所述若干個目的地址轉(zhuǎn)發(fā)所述消息之后還包括: 所述中間件判斷是否還配置了其他業(yè)務(wù)配置信息,若是,若所述業(yè)務(wù)標(biāo)識與所述業(yè)務(wù)配置信息的預(yù)設(shè)業(yè)務(wù)標(biāo)識匹配,則復(fù)制所述消息。
4.如權(quán)利要求1所述的方法,其特征在于,所述方法還包括: 若有新業(yè)務(wù)協(xié)議的消息需要轉(zhuǎn)發(fā)時,所述中間件在配置文件中配置所述新業(yè)務(wù)協(xié)議對應(yīng)的業(yè)務(wù)配置信息。
5.如權(quán)利要求4所述的方法,其特征在于,所述接收客戶端發(fā)送的消息之前還包括: 從配置文件中讀取配置信息,所述中間件解析所述配置信息,獲得其中有效的業(yè)務(wù)配置信息。
6.一種消息復(fù)制和轉(zhuǎn)發(fā)的中間件,其特征在于,所述中間件包括: 消息接收單元,用于接收客戶端發(fā)送的消息; 消息解析單元,用于若配置了業(yè)務(wù)配置信息,解析所述消息攜帶的業(yè)務(wù)標(biāo)識,所述業(yè)務(wù)配置信息包括業(yè)務(wù)字段、預(yù)設(shè)業(yè)務(wù)標(biāo)識和若干個目的地址; 消息復(fù)制單元,用于若所述業(yè)務(wù)標(biāo)識與所述業(yè)務(wù)配置信息的預(yù)設(shè)業(yè)務(wù)標(biāo)識匹配,則復(fù)制所述消息; 消息轉(zhuǎn)發(fā)單元,用于按照所述若干個目的地址轉(zhuǎn)發(fā)所述消息。
7.如權(quán)利要求6所述的中間件,其特征在于,所述中間件還包括: 第一判斷單元,用于判斷配置文件中是否配置了所述業(yè)務(wù)配置信息,若否,則不處理所述消息。
8.如權(quán)利要求6或7所述的中間件,其特征在于,所述中間件還包括: 第二判讀單元,用于判斷是否還配置了其他業(yè)務(wù)配置信息,若是,若所述業(yè)務(wù)標(biāo)識與所述業(yè)務(wù)配置信息的預(yù)設(shè)業(yè)務(wù)標(biāo)識匹配,則復(fù)制所述消息。
9.如權(quán)利要求6所述的中間件,其特征在于,所述中間件還包括: 配置單元,用于若有新業(yè)務(wù)協(xié)議的消息需要轉(zhuǎn)發(fā)時,在配置文件中配置所述新業(yè)務(wù)協(xié)議對應(yīng)的業(yè)務(wù)配置信息。
10.如權(quán)利要求9所述的中間件,其特征在于,所述中間件還包括: 配置讀取單元,用于從配置文件中讀取配置信息,解析所述配置信息,獲得其中有效的業(yè)務(wù)配置信息。
【文檔編號】H04L29/08GK103747035SQ201310713530
【公開日】2014年4月23日 申請日期:2013年12月20日 優(yōu)先權(quán)日:2013年12月20日
【發(fā)明者】田雪, 徐丹丹 申請人:深圳市金證科技股份有限公司