當前位置:首頁 > 智能硬件 > 智能硬件
[導讀] ESB(Enterprise Service Bus,企業(yè)服務總線),提供了消息交互的基礎結(jié)構,使得消息可以傳輸?shù)綄姆罩腥?。目前大多?shù)的ESB系統(tǒng)都是采用基于內(nèi)容的路由算法,即根據(jù)消息的內(nèi)容把消息路由到正確的服務單元。當

    ESB(Enterprise Service Bus,企業(yè)服務總線),提供了消息交互的基礎結(jié)構,使得消息可以傳輸?shù)綄姆罩腥ァD壳按蠖鄶?shù)的ESB系統(tǒng)都是采用基于內(nèi)容的路由算法,即根據(jù)消息的內(nèi)容把消息路由到正確的服務單元。當有較多服務單元接收消息時,此種算法的工作效率將大幅下降,ESB也會承擔較大的負載,使得整個系統(tǒng)集成的效率降低。常規(guī)的解決方案是把判斷服務單元是否應該接收消息的邏輯分布到各個服務單元上,但此方法增加了維護的負擔。為了保持集中控制,可以在每條消息附帶的列表中指定這個消息所面向的接收者。這樣,當消息被廣播給所有可能的接收者時,不在接收者列表中的各個接收者可以丟掉該消息。
    但采用這種方法的缺點是效率低,每個潛在的接收者必須處理每一條消息。并且,如果要求消息不希望被某些接收者看到,采用這種解決方案是不適合的。例如在發(fā)送某些機密消息時,是不希望無關接收者收到消息的。
    為了解決上述問題,文中提出了基于接收表的ESB路由算法,可以提高消息交互的效率和消息的保密性。


1 接收表路由算法的分析與設計
    在基于接收表的路由算法中,應為每個接收者定義一個通道,可以定義一個規(guī)則庫來檢驗輸入的消息,確定需要該消息的接受者列表,并把消息轉(zhuǎn)發(fā)給與列表中接收者關聯(lián)的所有通道。
1.1 路由設計
    在接收表的算法中,接收表路由器主要由接收者計算邏輯和消息分配器兩個部分組成,消息的傳遞過程,如圖1所示。

    接收者計算邏輯首先對消息進行處理,確定此消息應該發(fā)送到哪些服務中去,計算出接收者列表,進而分配器將消息轉(zhuǎn)發(fā)到服務所對應的通道中去,最后服務接收到此消息。在接收者計算邏輯中,要對消息的內(nèi)容進行分析,并且要結(jié)合服務接收消息的規(guī)則來計算接收者的列表。
    接收者計算邏輯應將服務者與其服務地址及服務規(guī)則進行關聯(lián),可以進行如下表示。
    Routing:=<ser_id,ser_name,uri,{ser_rule}>
    (1)ser_id表示服務單元的編號;
    (2)ser_name表示服務的名稱;
    (3)uri表示服務的地址;
    (4){ser_rule}表示該服務單元的規(guī)則集。
    ser_rule應將規(guī)則的名稱和該規(guī)則要求的值進行關聯(lián),可以進行如下表示:
    ser_rule:=<rule_name,value>
    (1)rule_name表示規(guī)則的名稱;
    (2)value表示規(guī)則的對應值。
    接收者計算邏輯映射為xml文件的形式,并且將服務的地址和服務單元要求的規(guī)則進行了描述。


    在上述xml形式的接收者計算邏輯中,以服務單元B為例對規(guī)則庫進行說明?!?lt;rule name=”region”value=”Beijing”></rule>”定義了服務地域的規(guī)則,即只服務北京的客戶,“<rule name=”client”value=”enterprise”></rule>”定義了服務客戶類型的規(guī)則,即只服務于企業(yè),“<rulename=”maxloanamout”value=”5 000”></rule>”定義了服務項貸款的最大金額,其值為5 000萬元。
    獲取接收者列表的算法,可以進行如下描述:S為服務單元的集合,Si為的某個服務單元。ri為服務單元i的規(guī)則集,rij為服務單元i的某條規(guī)則,servicerList為接受者列表,在初始化時加載所有的服務單元(1≤i≤n,1≤j≤m,n為節(jié)點的個數(shù),m為某個服務節(jié)點的規(guī)則的個數(shù))。


    //如果不能滿足此服務單元的路由規(guī)則,則接收者列表中刪除此服務單元。

1.2 動態(tài)化
    為了使服務能夠動態(tài)的調(diào)整自己的服務對象,提高整個系統(tǒng)集成的靈活性。將路由規(guī)則分布到各個服務來控制,是一種理想的解決方案。通過接收表的動態(tài)化,整個系統(tǒng)的實時性也有進一步的提高。例如,服務單元N以前只能處理貸款金額<1 000萬元的服務請求,而服務單元N進行系統(tǒng)升級后,可以處理貸款金額<1億元的服務請求,此時應該對接收表中規(guī)則庫做相應的調(diào)整。為了實現(xiàn)這種功能,應在服務節(jié)點和接收表之間建立控制信息傳輸通道,使得服務節(jié)點能把自己處理消息的要求發(fā)送給接收表,并存儲到其規(guī)則庫中,其流程如圖2所示。

 

    接口程序是由ESB路由器提供,服務單元只需調(diào)用ESB的(修改xml路由文件)服務接口,實現(xiàn)對接收表計算邏輯的修改。
    接口設計:
    class ServiceOperation
    {
    CreateServicer(Servicel s);//創(chuàng)建服務
    UpdateServicer(Serricer s);//更新服務包括服務名,路徑的修改
    RemoveServicer(String ServicerID);//根據(jù)服務的ID刪除對應服務在路由器中的信息
    CreateServicerRule(String ServicerID,StringruleName,String rule Value);
    //根據(jù)服務的ID,創(chuàng)建該服務新的規(guī)則
    UpdateServicerRule(String ServicerID,StringruleName,String ruleValue);
    //根據(jù)服務的ID和規(guī)則的名稱,更新規(guī)則的值
    RemoveServicerRule(String ServicerID,StringruleName);
    //根據(jù)服務的ID和規(guī)則的名稱,刪除該規(guī)則
    }
    此接口應以Web服務的方式暴露給與ESB集成的服務單元,使其可以調(diào)用接口中的方法來實時改變服務單元的服務。
1.3 事務處理
    接收表在進行消息傳遞時,應使用事務性通道,把消息放置到輸出通道中屬于同一個事務的一部分。
    為了保證事務,接收表路由器在發(fā)送消息m到服務單元后,服務單元應向接收表路由器發(fā)送ack消息。當接收表接收到所有應接收到消息m的服務單元返回的ack消息后,接收表路由器向服務單元發(fā)送commit消息,服務單元接收到commit消息后,才真正接收消息m。這樣就保證所有消息要么全部發(fā)送,要么都不發(fā)送,從而避免了有的服務單元得到消息而有的服務單元沒有得到消息的情況的發(fā)生,保證了整個系統(tǒng)的一致性。
1. 4 服務單元失效處理策略
    以在應用ESB集成的系統(tǒng)環(huán)境中,服務單元可能會發(fā)生故障。為提高系統(tǒng)的可用性,采用以下服務單元失效處理策略。
    每個服務單元定時向ESB的接受表路由器發(fā)送消息available告知服務處于活動狀態(tài)。每個服務單元保存ESB所集成的所有服務單元的信息表。該列表同時記錄最后一次收到各個節(jié)點available消息的時間。
    當ESB的接受表路由器長時間收不到服務單元Ⅳ的available消息,則認為服務單元Ⅳ失效,接受表路由器刪除本地全局路由表中有關該服務單元的路由信息及其規(guī)則庫。


2 接收表的工作效率
    與ESB集成的服務單元中,如果只有較少數(shù)量的服務單元接收消息,則基于內(nèi)容的路由算法,有一定的速度優(yōu)勢,但當有大多數(shù)服務單元接收消息的情況下,由于接收表同時向多個服務單元發(fā)送消息,則接收表路由算法的效率會更高。
    在基于內(nèi)容的路由算法中,消息傳遞到服務單元的期望時間與接收此消息的服務單元的數(shù)理呈現(xiàn)線性增長(t=kn,t為從發(fā)送消息到所有消息都被服務單元接收所用的時間,n為服務單元的個數(shù),k為系數(shù))的關系。而應用接收表的算法中,消息傳遞到服務單元的期望時間與接收此消息的服務單元的數(shù)理呈現(xiàn)近似二次曲線(t2=kn)的關系。兩種路由算法的效率比較情況,如圖3所示。

 

3 結(jié)束語
    文中研究并設計了基于接收表的ESB路由算法,并對路由算法的效率、動態(tài)化、事務處理和失效處理等關鍵問題進行了分析?;诮邮毡淼?strong>路由算法提高了消息交互的效率,并且保證了消息的安全性和實時性,是利用ESB進行系統(tǒng)集成的解決方案之一。

本站聲明: 本文章由作者或相關機構授權發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫毥谦F公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務中斷的風險,如企業(yè)系統(tǒng)復雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務連續(xù)性,提升韌性,成...

關鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關鍵字: 華為 12nm EDA 半導體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權最終是由生態(tài)的繁榮決定的。

關鍵字: 華為 12nm 手機 衛(wèi)星通信

要點: 有效應對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務引領增長 以科技創(chuàng)新為引領,提升企業(yè)核心競爭力 堅持高質(zhì)量發(fā)展策略,塑強核心競爭優(yōu)勢...

關鍵字: 通信 BSP 電信運營商 數(shù)字經(jīng)濟

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術學會聯(lián)合牽頭組建的NVI技術創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術創(chuàng)新聯(lián)...

關鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(集團)股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關鍵字: BSP 信息技術
關閉
關閉