隨筆 - 59, 文章 - 4, 評論 - 184, 引用 - 7
          數據加載中……

          【ESB專題】-面向消息的EAI的關鍵組件

           

          企業集成有很多種模式,隨著技術的發展,實時的、面向消息的企業集成越來越成為主流,面向消息的企業集成的穩定性和兼容性要求其基礎件,也就是message系統必須提供足夠強壯和可擴展的設計,下面幾種是作為面向消息的企業集成的基礎件所必須提供的幾個關鍵性組件。

           

          消息集成使得message系統負責轉換兩個應用之間的數據格式,從而使得應用可以專注于他們需要共享什么數據而不是如何共享它們。

           

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

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

           

          Messages — Message是在channel上傳輸的不可分割的包。因此,為了傳輸數據,應用必須將數據打包成一個或多個packets,將每個packet包裝成一個message,然后將其傳輸到一個channel。同樣的,一個receiver應用在接受到message后必須從message中提取出數據才能使用。Message系統應該能重復的傳輸message,直到它成功為止。

           

          Pipes and Filters 最簡單的情況下,message系統將一個消息直接從sender計算機傳送到receiver計算機。然而,通常在消息從sender中發出后,receiver接受到之前,有一些動作需要對message執行。舉例來說,message也許需要驗證或者轉換。Pipes and Filters架構使用channel將多個處理步驟連接起來。

           

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

           

          Transformation 不同的應用的數據格式可能不同。為了調節senderreceiver之間的數據格式不同的問題,message必須經過一個中介的filter,一個Message Translator,它將message從一個格式轉換成另外一個格式,或轉換成一個公共的格式。

           

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

           

          System manager 作為一個大型的消息集成系統,其面向消息的、異步、低耦合的本質使得系統更加難以調試,運行期的狀態也難以跟蹤,所以,我們必須有強有力的手段進行系統的運行期管理和監控,同時最好能夠在運行進行動態更新,以保障系統的強壯性。


          企業應用集成是一個巨大而復雜的系統,作為其基礎件ESB系統,必須能夠提供對其完全的支撐以及足夠強壯的系統,這正是ESB系統建設的難度所在。

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

          評論

          # re: 【ESB專題】-面向消息的EAI的關鍵組件  回復  更多評論   

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

          # re: 【ESB專題】-面向消息的EAI的關鍵組件  回復  更多評論   

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

          # 【ESB專題】-面向消息的EAI的關鍵組件[TrackBack]  回復  更多評論   

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

          # re: 【ESB專題】-面向消息的EAI的關鍵組件  回復  更多評論   

          樓主能不能針對MULE及ServiceMix兩個架構作一下比較
          2006-03-02 18:44 | esber

          # re: 【ESB專題】-面向消息的EAI的關鍵組件  回復  更多評論   

          Mule是EAIP一書的實現
          而ServiceMix是基于JSR208的實現
          從架構上來并沒有太大的區別,只是實現細節上有些不同而已
          JBI也是人訂的,不會超越現有技術太大
          2006-03-03 10:26 | fisher

          # re: 【ESB專題】-面向消息的EAI的關鍵組件  回復  更多評論   

          在MULE里面,存在UMO(universal message object),它是Mule的一個關鍵的組件。
          但是在ServiceMix里面,是沒有UMO的。
          2007-10-10 15:31 | maleung
          主站蜘蛛池模板: 涡阳县| 威宁| 清苑县| 迭部县| 南川市| 讷河市| 林西县| 湖州市| 尚义县| 密云县| 鲁山县| 扬中市| 疏附县| 安岳县| 抚顺市| 米脂县| 安徽省| 敦煌市| 灯塔市| 大渡口区| 广州市| 塘沽区| 临颍县| 遵义县| 灯塔市| 盱眙县| 修文县| 呼图壁县| 三江| 香港 | 义马市| 海口市| 乌恰县| 嘉峪关市| 富平县| 资阳市| 孟津县| 徐州市| 栾城县| 大理市| 惠安县|