日韩欧美自拍在线观看-欧美精品在线看片一区二区-高清性视频一区二区播放-欧美日韩女优制服另类-国产精品久久久久久av蜜臀-成人在线黄色av网站-肥臀熟妇一区二区三区-亚洲视频在线播放老色-在线成人激情自拍视频

基于接收表的ESB研究與設(shè)計(jì)

出處:awey 發(fā)布于:2009-12-16 11:49:46

  ESB(Enterprise Service Bus,企業(yè)服務(wù)總線),提供了消息交互的基礎(chǔ)結(jié)構(gòu),使得消息可以傳輸?shù)綄?duì)應(yīng)的服務(wù)中去。目前大多數(shù)的ESB系統(tǒng)都是采用基于內(nèi)容的路由算法,即根據(jù)消息的內(nèi)容把消息路由到正確的服務(wù)單元。當(dāng)有較多服務(wù)單元接收消息時(shí),此種算法的工作效率將大幅下降,ESB也會(huì)承擔(dān)較大的負(fù)載,使得整個(gè)系統(tǒng)集成的效率降低。常規(guī)的解決方案是把判斷服務(wù)單元是否應(yīng)該接收消息的邏輯分布到各個(gè)服務(wù)單元上,但此方法增加了維護(hù)的負(fù)擔(dān)。為了保持集中控制,可以在每條消息附帶的列表中指定這個(gè)消息所面向的接收者。這樣,當(dāng)消息被廣播給所有可能的接收者時(shí),不在接收者列表中的各個(gè)接收者可以丟掉該消息。

  但采用這種方法的缺點(diǎn)是效率低,每個(gè)潛在的接收者必須處理每一條消息。并且,如果要求消息不希望被某些接收者看到,采用這種解決方案是不適合的。例如在發(fā)送某些機(jī)密消息時(shí),是不希望無(wú)關(guān)接收者收到消息的。

  為了解決上述問題,文中提出了基于接收表的ESB路由算法,可以提高消息交互的效率和消息的保密性。

  1 接收表路由算法的分析與設(shè)計(jì)

  在基于接收表的路由算法中,應(yīng)為每個(gè)接收者定義一個(gè)通道,可以定義一個(gè)規(guī)則庫(kù)來(lái)檢驗(yàn)輸入的消息,確定需要該消息的接受者列表,并把消息轉(zhuǎn)發(fā)給與列表中接收者關(guān)聯(lián)的所有通道。

  1.1 路由設(shè)計(jì)

  在接收表的算法中,接收表路由器主要由接收者計(jì)算邏輯和消息分配器兩個(gè)部分組成,消息的傳遞過(guò)程,如圖1所示。

  接收者計(jì)算邏輯首先對(duì)消息進(jìn)行處理,確定此消息應(yīng)該發(fā)送到哪些服務(wù)中去,計(jì)算出接收者列表,進(jìn)而分配器將消息轉(zhuǎn)發(fā)到服務(wù)所對(duì)應(yīng)的通道中去,服務(wù)接收到此消息。在接收者計(jì)算邏輯中,要對(duì)消息的內(nèi)容進(jìn)行分析,并且要結(jié)合服務(wù)接收消息的規(guī)則來(lái)計(jì)算接收者的列表。

  接收者計(jì)算邏輯應(yīng)將服務(wù)者與其服務(wù)地址及服務(wù)規(guī)則進(jìn)行關(guān)聯(lián),可以進(jìn)行如下表示。

  Routing:=

  (1)ser_id表示服務(wù)單元的編號(hào);

  (2)ser_name表示服務(wù)的名稱;

  (3)uri表示服務(wù)的地址;

  (4){ser_rule}表示該服務(wù)單元的規(guī)則集。

  ser_rule應(yīng)將規(guī)則的名稱和該規(guī)則要求的值進(jìn)行關(guān)聯(lián),可以進(jìn)行如下表示:

  ser_rule:=

  (1)rule_name表示規(guī)則的名稱;

  (2)value表示規(guī)則的對(duì)應(yīng)值。

  接收者計(jì)算邏輯映射為xml文件的形式,并且將服務(wù)的地址和服務(wù)單元要求的規(guī)則進(jìn)行了描述。

  在上述xml形式的接收者計(jì)算邏輯中,以服務(wù)單元B為例對(duì)規(guī)則庫(kù)進(jìn)行說(shuō)明?!?RULE name="”region”value=”Beijing”"></rule>”定義了服務(wù)地域的規(guī)則,即只服務(wù)北京的客戶,“</rule>”定義了服務(wù)客戶類型的規(guī)則,即只服務(wù)于企業(yè),“</rule>”定義了服務(wù)項(xiàng)貸款的金額,其值為5 000萬(wàn)元。

  獲取接收者列表的算法,可以進(jìn)行如下描述:S為服務(wù)單元的集合,Si為的某個(gè)服務(wù)單元。ri為服務(wù)單元i的規(guī)則集,rij為服務(wù)單元i的某條規(guī)則,servicerList為接受者列表,在初始化時(shí)加載所有的服務(wù)單元(1≤i≤n,1≤j≤m,n為節(jié)點(diǎn)的個(gè)數(shù),m為某個(gè)服務(wù)節(jié)點(diǎn)的規(guī)則的個(gè)數(shù))。

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


  1.2 動(dòng)態(tài)化

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

  接口程序是由ESB路由器提供,服務(wù)單元只需調(diào)用ESB的(修改xml路由文件)服務(wù)接口,實(shí)現(xiàn)對(duì)接收表計(jì)算邏輯的修改。

  接口設(shè)計(jì):

  class ServiceOperation

  {

  CreateServicer(Servicel s);//創(chuàng)建服務(wù)

  UpdateServicer(Serricer s);//更新服務(wù)包括服務(wù)名,路徑的修改

  RemoveServicer(String ServicerID);//根據(jù)服務(wù)的ID刪除對(duì)應(yīng)服務(wù)在路由器中的信息

  CreateServicerRule(String ServicerID,StringruleName,String rule Value);

 ?。鶕?jù)服務(wù)的ID,創(chuàng)建該服務(wù)新的規(guī)則

  UpdateServicerRule(String ServicerID,StringruleName,String ruleValue);

 ?。鶕?jù)服務(wù)的ID和規(guī)則的名稱,更新規(guī)則的值

  RemoveServicerRule(String ServicerID,StringruleName);

 ?。鶕?jù)服務(wù)的ID和規(guī)則的名稱,刪除該規(guī)則

  }

  此接口應(yīng)以Web服務(wù)的方式暴露給與ESB集成的服務(wù)單元,使其可以調(diào)用接口中的方法來(lái)實(shí)時(shí)改變服務(wù)單元的服務(wù)。

  1.3 事務(wù)處理

  接收表在進(jìn)行消息傳遞時(shí),應(yīng)使用事務(wù)性通道,把消息放置到輸出通道中屬于同一個(gè)事務(wù)的一部分。

  為了保證事務(wù),接收表路由器在發(fā)送消息m到服務(wù)單元后,服務(wù)單元應(yīng)向接收表路由器發(fā)送ack消息。當(dāng)接收表接收到所有應(yīng)接收到消息m的服務(wù)單元返回的ack消息后,接收表路由器向服務(wù)單元發(fā)送commit消息,服務(wù)單元接收到commit消息后,才真正接收消息m。這樣就保證所有消息要么全部發(fā)送,要么都不發(fā)送,從而避免了有的服務(wù)單元得到消息而有的服務(wù)單元沒有得到消息的情況的發(fā)生,保證了整個(gè)系統(tǒng)的一致性。

  1. 4 服務(wù)單元失效處理策略

  以在應(yīng)用ESB集成的系統(tǒng)環(huán)境中,服務(wù)單元可能會(huì)發(fā)生故障。為提高系統(tǒng)的可用性,采用以下服務(wù)單元失效處理策略。

  每個(gè)服務(wù)單元定時(shí)向ESB的接受表路由器發(fā)送消息available告知服務(wù)處于活動(dòng)狀態(tài)。每個(gè)服務(wù)單元保存ESB所集成的所有服務(wù)單元的信息表。該列表同時(shí)記錄收到各個(gè)節(jié)點(diǎn)available消息的時(shí)間。

  當(dāng)ESB的接受表路由器長(zhǎng)時(shí)間收不到服務(wù)單元Ⅳ的available消息,則認(rèn)為服務(wù)單元Ⅳ失效,接受表路由器刪除本地全局路由表中有關(guān)該服務(wù)單元的路由信息及其規(guī)則庫(kù)。

  2 接收表的工作效率

  與ESB集成的服務(wù)單元中,如果只有較少數(shù)量的服務(wù)單元接收消息,則基于內(nèi)容的路由算法,有一定的速度優(yōu)勢(shì),但當(dāng)有大多數(shù)服務(wù)單元接收消息的情況下,由于接收表同時(shí)向多個(gè)服務(wù)單元發(fā)送消息,則接收表路由算法的效率會(huì)更高。

  在基于內(nèi)容的路由算法中,消息傳遞到服務(wù)單元的期望時(shí)間與接收此消息的服務(wù)單元的數(shù)理呈現(xiàn)線性增長(zhǎng)(t=kn,t為從發(fā)送消息到所有消息都被服務(wù)單元接收所用的時(shí)間,n為服務(wù)單元的個(gè)數(shù),k為系數(shù))的關(guān)系。而應(yīng)用接收表的算法中,消息傳遞到服務(wù)單元的期望時(shí)間與接收此消息的服務(wù)單元的數(shù)理呈現(xiàn)近似二次曲線(t2=kn)的關(guān)系。兩種路由算法的效率比較情況,如圖3所示。

  3 結(jié)束語(yǔ)

  文中研究并設(shè)計(jì)了基于接收表的ESB路由算法,并對(duì)路由算法的效率、動(dòng)態(tài)化、事務(wù)處理和失效處理等關(guān)鍵問題進(jìn)行了分析?;诮邮毡淼穆酚伤惴ㄌ岣吡讼⒔换サ男剩⑶冶WC了消息的安全性和實(shí)時(shí)性,是利用ESB進(jìn)行系統(tǒng)集成的解決方案之一。


  
關(guān)鍵詞:基于接收表的ESB研究與設(shè)計(jì)接收表

版權(quán)與免責(zé)聲明

凡本網(wǎng)注明“出處:維庫(kù)電子市場(chǎng)網(wǎng)”的所有作品,版權(quán)均屬于維庫(kù)電子市場(chǎng)網(wǎng),轉(zhuǎn)載請(qǐng)必須注明維庫(kù)電子市場(chǎng)網(wǎng),http://www.hbjingang.com,違反者本網(wǎng)將追究相關(guān)法律責(zé)任。

本網(wǎng)轉(zhuǎn)載并注明自其它出處的作品,目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點(diǎn)或證實(shí)其內(nèi)容的真實(shí)性,不承擔(dān)此類作品侵權(quán)行為的直接責(zé)任及連帶責(zé)任。其他媒體、網(wǎng)站或個(gè)人從本網(wǎng)轉(zhuǎn)載時(shí),必須保留本網(wǎng)注明的作品出處,并自負(fù)版權(quán)等法律責(zé)任。

如涉及作品內(nèi)容、版權(quán)等問題,請(qǐng)?jiān)谧髌钒l(fā)表之日起一周內(nèi)與本網(wǎng)聯(lián)系,否則視為放棄相關(guān)權(quán)利。

廣告
OEM清單文件: OEM清單文件
*公司名:
*聯(lián)系人:
*手機(jī)號(hào)碼:
QQ:
有效期:

掃碼下載APP,
一鍵連接廣大的電子世界。

在線人工客服

買家服務(wù):
賣家服務(wù):
技術(shù)客服:

0571-85317607

網(wǎng)站技術(shù)支持

13606545031

客服在線時(shí)間周一至周五
9:00-17:30

關(guān)注官方微信號(hào),
第一時(shí)間獲取資訊。

建議反饋

聯(lián)系人:

聯(lián)系方式:

按住滑塊,拖拽到最右邊
>>
感謝您向阿庫(kù)提出的寶貴意見,您的參與是維庫(kù)提升服務(wù)的動(dòng)力!意見一經(jīng)采納,將有感恩紅包奉上哦!