隨筆 - 59, 文章 - 4, 評(píng)論 - 184, 引用 - 7
          數(shù)據(jù)加載中……

          【ESB專題】-面向消息的EAI的關(guān)鍵組件

           

          企業(yè)集成有很多種模式,隨著技術(shù)的發(fā)展,實(shí)時(shí)的、面向消息的企業(yè)集成越來越成為主流,面向消息的企業(yè)集成的穩(wěn)定性和兼容性要求其基礎(chǔ)件,也就是message系統(tǒng)必須提供足夠強(qiáng)壯和可擴(kuò)展的設(shè)計(jì),下面幾種是作為面向消息的企業(yè)集成的基礎(chǔ)件所必須提供的幾個(gè)關(guān)鍵性組件。

           

          消息集成使得message系統(tǒng)負(fù)責(zé)轉(zhuǎn)換兩個(gè)應(yīng)用之間的數(shù)據(jù)格式,從而使得應(yīng)用可以專注于他們需要共享什么數(shù)據(jù)而不是如何共享它們。

           

          以下這些組件,在著名的ESB系統(tǒng)Mule中都可以見到,有興趣的同學(xué)可以去看看Mule的源代碼,雖然Mule對(duì)ESB的實(shí)現(xiàn)有很多不成熟的地方,以至于讓我不敢在生產(chǎn)系統(tǒng)中使用(唉...可恨的Mule),但是畢竟是一個(gè)大而全的系統(tǒng),值得借鑒一下。
           

          Channels — Messaging應(yīng)用通過一個(gè)Message Channel傳送數(shù)據(jù),一個(gè)senderreceiver的虛擬管道。一個(gè)新安裝的消息系統(tǒng)默認(rèn)不包含任何channel;你必須知道你的應(yīng)用需要怎樣通訊,然后才能建立channel來完成它。

           

          Messages — Message是在channel上傳輸?shù)牟豢煞指畹陌R虼耍瑸榱藗鬏敂?shù)據(jù),應(yīng)用必須將數(shù)據(jù)打包成一個(gè)或多個(gè)packets,將每個(gè)packet包裝成一個(gè)message,然后將其傳輸?shù)揭粋€(gè)channel。同樣的,一個(gè)receiver應(yīng)用在接受到message后必須從message中提取出數(shù)據(jù)才能使用。Message系統(tǒng)應(yīng)該能重復(fù)的傳輸message,直到它成功為止。

           

          Pipes and Filters 最簡(jiǎn)單的情況下,message系統(tǒng)將一個(gè)消息直接從sender計(jì)算機(jī)傳送到receiver計(jì)算機(jī)。然而,通常在消息從sender中發(fā)出后,receiver接受到之前,有一些動(dòng)作需要對(duì)message執(zhí)行。舉例來說,message也許需要驗(yàn)證或者轉(zhuǎn)換。Pipes and Filters架構(gòu)使用channel將多個(gè)處理步驟連接起來。

           

          Routing 在一個(gè)大型的、擁有許多不同的應(yīng)用和channel連接的企業(yè)應(yīng)用中,一個(gè)message可能需要穿過多個(gè)channel才能到達(dá)最終目的地。Message的路由如此復(fù)雜以至于最初的發(fā)送者無法知道那些channel能將message傳送給最終的receiver。因此,最初的發(fā)送者將message發(fā)送給一個(gè)Message Router,一個(gè)以Pipes and Filters架構(gòu)中的filter形式存在的應(yīng)用組件。Router將決定如何將message發(fā)送到最終receiver或者至少是下一個(gè)Router

           

          Transformation 不同的應(yīng)用的數(shù)據(jù)格式可能不同。為了調(diào)節(jié)senderreceiver之間的數(shù)據(jù)格式不同的問題,message必須經(jīng)過一個(gè)中介的filter,一個(gè)Message Translator,它將message從一個(gè)格式轉(zhuǎn)換成另外一個(gè)格式,或轉(zhuǎn)換成一個(gè)公共的格式。

           

          Endpoints 大多數(shù)的應(yīng)用程序沒有內(nèi)建的能力來同一個(gè)message系統(tǒng)交互。因此他們必須包含一個(gè)中間層,它知道應(yīng)用系統(tǒng)如何工作,也知道message系統(tǒng)如何工作,并橋接兩個(gè)系統(tǒng)。這個(gè)系統(tǒng)是一組并列的Message Endpoints,它能夠使得應(yīng)用發(fā)送和接受message

           

          System manager 作為一個(gè)大型的消息集成系統(tǒng),其面向消息的、異步、低耦合的本質(zhì)使得系統(tǒng)更加難以調(diào)試,運(yùn)行期的狀態(tài)也難以跟蹤,所以,我們必須有強(qiáng)有力的手段進(jìn)行系統(tǒng)的運(yùn)行期管理和監(jiān)控,同時(shí)最好能夠在運(yùn)行進(jìn)行動(dòng)態(tài)更新,以保障系統(tǒng)的強(qiáng)壯性。


          企業(yè)應(yīng)用集成是一個(gè)巨大而復(fù)雜的系統(tǒng),作為其基礎(chǔ)件ESB系統(tǒng),必須能夠提供對(duì)其完全的支撐以及足夠強(qiáng)壯的系統(tǒng),這正是ESB系統(tǒng)建設(shè)的難度所在。

          posted on 2005-11-16 20:56 fisher 閱讀(2333) 評(píng)論(6)  編輯  收藏 所屬分類: Programing

          評(píng)論

          # re: 【ESB專題】-面向消息的EAI的關(guān)鍵組件  回復(fù)  更多評(píng)論   

          能不能談MULE有哪些方面的不足之處,以致于:
          讓我不敢在生產(chǎn)系統(tǒng)中使用(唉...可恨的Mule)
          2005-11-17 12:28 | seedme

          # re: 【ESB專題】-面向消息的EAI的關(guān)鍵組件  回復(fù)  更多評(píng)論   

          Mule在集成方面提供了實(shí)現(xiàn)了很好的模式
          但是在底層通訊設(shè)施上過于簡(jiǎn)單,很多問題沒有考慮
          或者說依賴與底層通訊庫
          比如message division、protocol support、Traffic throttle、unsequence
          2005-11-17 14:25 | fisher

          # 【ESB專題】-面向消息的EAI的關(guān)鍵組件[TrackBack]  回復(fù)  更多評(píng)論   

          介紹ESB的幾個(gè)關(guān)鍵性組件
          [引用提示]上進(jìn)的程序員引用了該文章, 地址: http://blog.csdn.net/flyingbug/archive/2005/11/18/532676.aspx
          2005-11-18 23:29 | 上進(jìn)的程序員

          # re: 【ESB專題】-面向消息的EAI的關(guān)鍵組件  回復(fù)  更多評(píng)論   

          樓主能不能針對(duì)MULE及ServiceMix兩個(gè)架構(gòu)作一下比較
          2006-03-02 18:44 | esber

          # re: 【ESB專題】-面向消息的EAI的關(guān)鍵組件  回復(fù)  更多評(píng)論   

          Mule是EAIP一書的實(shí)現(xiàn)
          而ServiceMix是基于JSR208的實(shí)現(xiàn)
          從架構(gòu)上來并沒有太大的區(qū)別,只是實(shí)現(xiàn)細(xì)節(jié)上有些不同而已
          JBI也是人訂的,不會(huì)超越現(xiàn)有技術(shù)太大
          2006-03-03 10:26 | fisher

          # re: 【ESB專題】-面向消息的EAI的關(guān)鍵組件  回復(fù)  更多評(píng)論   

          在MULE里面,存在UMO(universal message object),它是Mule的一個(gè)關(guān)鍵的組件。
          但是在ServiceMix里面,是沒有UMO的。
          2007-10-10 15:31 | maleung
          主站蜘蛛池模板: 福安市| 鄂尔多斯市| 滁州市| 根河市| 资阳市| 定远县| 贺州市| 雅江县| 观塘区| 民勤县| 晋中市| 琼中| 广西| 麟游县| 西畴县| 丰顺县| 茶陵县| 灌南县| 鄂伦春自治旗| 鄢陵县| 通化县| 拉萨市| 临沭县| 清河县| 得荣县| 海兴县| 鹤壁市| 罗江县| 连城县| 揭东县| 渭南市| 宝应县| 泰和县| 天峨县| 洛隆县| 册亨县| 泸溪县| 遂昌县| 曲麻莱县| 尼勒克县| 砚山县|