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

          【ESB專題】之六 - System Management及其相關(guān)模式

           

          開發(fā)一個(gè)基于消息的解決方案是不容易的事情,在生產(chǎn)中操作這樣一個(gè)產(chǎn)品同樣也是一個(gè)挑戰(zhàn):一個(gè)基于消息的集成解決方案一天可以產(chǎn)生、路由和轉(zhuǎn)換成千上萬(wàn)的消息。我們不得不處理異常、效率瓶頸或改變合作系統(tǒng)。而為了使事情變得更加有挑戰(zhàn)性,組件經(jīng)常被分布在不同的平臺(tái)和機(jī)器上,甚至位于不同的地理位置。

           

          System Management包含以下幾種模式

          l         Control Bus

          l         Detour

          l         Wire Tap

          l         Message History

          l         Message Store      

          l         Smart Proxy

          l         Test Message

          l         Channel Purger

           

           

          除了與生據(jù)來(lái)的復(fù)雜性、分布式集成的規(guī)模以及個(gè)性化的應(yīng)用之外,低耦合的架構(gòu)使得測(cè)試和debug變得更加困難。Martin Fowler將這個(gè)癥狀稱為“架構(gòu)師的夢(mèng)想,開發(fā)者的夢(mèng)魘”。低耦合的架構(gòu)原則以及間接的依賴于外部系統(tǒng)提供了靈活性。然而,測(cè)試一個(gè)消息生產(chǎn)者不了解消息消費(fèi)者的系統(tǒng)可能會(huì)是一個(gè)挑戰(zhàn)。另外異步的和時(shí)間相關(guān)的消息使得事情變的更加復(fù)雜。舉例來(lái)說(shuō),消息方案可能被設(shè)計(jì)沒(méi)有被成消息生產(chǎn)者者必須從接受者那里得到一個(gè)回應(yīng)。同樣的消息基礎(chǔ)設(shè)施通常保證傳輸消息,但不能保證傳輸時(shí)間。這是的開發(fā)基于消息傳送結(jié)果的測(cè)試用例變得困難。

           

          當(dāng)監(jiān)控一個(gè)消息解決方案,我們可以在兩個(gè)抽象層面上跟蹤消息流。一個(gè)典型的系統(tǒng)管理方案監(jiān)控多少消息被發(fā)送或者它多長(zhǎng)時(shí)間得到一個(gè)被處理的消息。這些監(jiān)控方案不檢查消息數(shù)據(jù),除了可能會(huì)檢查消息頭中的幾個(gè)字段(比如消息標(biāo)識(shí)或者消息歷史)。與之相對(duì)的,BAMbusiness activity monitoring)方案聚焦于包含在消息中的有效數(shù)據(jù),舉例來(lái)說(shuō),發(fā)生在過(guò)去一小時(shí)的所有訂單的金額。System Management中的很多模式都足夠通用并可以用在以上兩個(gè)目的中(監(jiān)控消息頭或者消息內(nèi)容)。然而,由于BAM本身就是一個(gè)新領(lǐng)域,并且需要從數(shù)據(jù)倉(cāng)庫(kù)中獲得很多數(shù)據(jù)(有些我們根本就沒(méi)有涉及到),我們決定在系統(tǒng)管理的內(nèi)容中討論這些模式。

           

          系統(tǒng)管理模式被設(shè)計(jì)用于為保持一個(gè)基于消息的復(fù)雜系統(tǒng)的運(yùn)轉(zhuǎn)所提出的需求并提供工具。System Management的模式涉及三個(gè)種類:監(jiān)控和控制,觀察和分析消息流量,測(cè)試和調(diào)試

           

          監(jiān)控和控制

           

          一個(gè)Control Bus提供一個(gè)單獨(dú)的控制點(diǎn)來(lái)對(duì)一個(gè)分布式方案進(jìn)行監(jiān)控和管理。它將多個(gè)組件連接到一個(gè)中心管理控制臺(tái),這里可以顯示每個(gè)組件的狀態(tài)并且監(jiān)控通過(guò)每個(gè)組件的消息流量。控制臺(tái)同時(shí)也可以用于發(fā)送控制命令給組件,比如,轉(zhuǎn)變消息流。

          我們可能想要在路由消息時(shí)添加附加的步驟,比如驗(yàn)證或者日志。由于這些步驟可能使效率降低,所以我們可以通過(guò)Control Bus來(lái)控制他們開關(guān)。一個(gè)Detour為我們提供這種能力。

           

          觀察和分析消息流量

           

          有時(shí)我們想要在不影響主要消息流的情況下觀察消息的內(nèi)容。一個(gè)Wire Tap允許我們接入到消息流中。

          當(dāng)我們調(diào)試一個(gè)基于消息的系統(tǒng),知道一個(gè)特定的消息在哪使很有幫助的。Message History保留一個(gè)消息訪問(wèn)過(guò)的所有組件的日志,而不需要增加組件間的依賴。

          然而Message History依賴于單獨(dú)的消息,一個(gè)中心的Message Store可以提供一個(gè)穿越系統(tǒng)的每個(gè)消息的完整記錄。結(jié)合Message HistoryMessage Store可以分析所有消息穿過(guò)系統(tǒng)的可能路徑。

          Wire Tap, Message History, Message Store幫助我們分析異步的消息流。為了跟蹤發(fā)送到請(qǐng)求-應(yīng)答service的消息,我們需要在消息流中插入一個(gè)Smart Proxy

           

          測(cè)試和調(diào)試

           

          在部署前測(cè)試一個(gè)消息系統(tǒng)是一個(gè)非常好的注意。但是測(cè)試不應(yīng)該停止在部署前。你應(yīng)該有能力驗(yàn)證正在運(yùn)行的消息系統(tǒng)運(yùn)行持續(xù)的運(yùn)行正常。你可以周期性的發(fā)送一個(gè)Test Message到系統(tǒng)中并驗(yàn)證結(jié)果。

          當(dāng)一個(gè)組件失敗或者運(yùn)行不正常,它可以簡(jiǎn)單的終止,并放棄一個(gè)channel中的剩余消息。在測(cè)試期間這是很有用的。一個(gè)Channel Purger可以為我們做這些。

           

          posted on 2005-11-23 20:20 fisher 閱讀(1650) 評(píng)論(7)  編輯  收藏 所屬分類: Programing

          評(píng)論

          # re: 【ESB專題】之六 - System Management及其相關(guān)模式  回復(fù)  更多評(píng)論   

          好,一直關(guān)注中...,正在仔細(xì)拜讀,會(huì)有許多問(wèn)題向你請(qǐng)教.
          關(guān)注..
          2005-11-24 10:05 | langds

          # re: 【ESB專題】之六 - System Management及其相關(guān)模式  回復(fù)  更多評(píng)論   

          歡迎一起討論 :)
          2005-11-24 10:48 | fisher

          # re: 【ESB專題】之六 - System Management及其相關(guān)模式  回復(fù)  更多評(píng)論   

          我正在看Enterprise Integration Patterns: Designing, Building, and Deploying Messaging Solutions,以前沒(méi)怎么接觸這方面的知識(shí),就只了解過(guò)進(jìn)程間通信,總感覺好多技術(shù)都是一樣的,最多搞得安全點(diǎn),有效點(diǎn)。或許這就是我認(rèn)識(shí)上的局限吧?從個(gè)體把握和從整體把握的區(qū)別。
          2006-03-08 16:35 | lurga

          # re: 【ESB專題】之六 - System Management及其相關(guān)模式  回復(fù)  更多評(píng)論   

          你好,目前我正在使用和研究Fiorano公司的ESB/SOA產(chǎn)品,讀到你的文章,對(duì)你的水平深為欽佩,希望可以向你請(qǐng)教.
          2006-04-07 00:34 | Azureflame(東楚客)

          # re: 【ESB專題】之六 - System Management及其相關(guān)模式  回復(fù)  更多評(píng)論   

          歡迎討論^_^
          2006-04-10 15:52 | fisher

          # re: 【ESB專題】之六 - System Management及其相關(guān)模式  回復(fù)  更多評(píng)論   

          恩 文章不錯(cuò)
          2006-04-26 14:32 | pc

          # re: 【ESB專題】之六 - System Management及其相關(guān)模式  回復(fù)  更多評(píng)論   

          學(xué)習(xí)一下。
          2007-03-09 16:08 | linan
          主站蜘蛛池模板: 攀枝花市| 吕梁市| 静安区| 枣阳市| 明星| 曲阜市| 腾冲县| 马龙县| 荔浦县| 株洲市| 耒阳市| 万全县| 石嘴山市| 内乡县| 长宁区| 泸水县| 宁阳县| 盐池县| 治县。| 静宁县| 莒南县| 宝坻区| 尉氏县| 龙州县| 织金县| 怀来县| 都昌县| 合川市| 贡山| 双江| 伽师县| 祥云县| 牟定县| 大关县| 桃江县| 巨野县| 漳浦县| 泗水县| 蒲城县| 中方县| 镇江市|