<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

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

    【ESB專題】之三 - Message Construction及其相關模式


    在前面的關鍵組件中我們提到了Messages。當兩個應用想要交換數據,他們將數據包裝在一個message中。但是一個Message Channel不能傳輸原始數據,它只能傳輸包含在一個message中的數據(即傳輸特定格式的數據)。

     

    Message在消息系統中處于信息載體的位置,而在ESB中,還消息識別、序列以及生存周期等職責。

     

    Message的結構涉及以下幾個模式:

    l         Command Message      

    l         Document Message      

    l         Event Message

    l         Request-Reply

    l         Return Address

    l         Correlation Identifier

    l         Message Sequence

    l         Message Expiration

    l         Format Indicator

     

    創建和發送一個Message產生以下幾個問題:

     

    消息意圖 Message最終是為了運送一些數據,但是發送者可能有其他目的,比如它希望接受者使用消息做些事情。它可以發送一個Command Message,指定它希望調用的接受者上的函數或方法。發送者告訴接受者運行那些代碼。發送者可以發送一個Document Message來傳送它的數據結構到接受者。發送者發送數據到接受者,但是不指定接受者應該做什么。

    或者它可以發送一個Event Message,通知接受者發送者那里有一個改變。發送者不應告訴接受者應該怎樣適應這個改變,而只應提供通知。

     

    返回一個應答 當一個應用發送一個消息,它通常期望得到一個回應來確定消息被處理并提供一個結果。這是一個Request-Reply場景。Request通常是一個Command Message,而應答是一個包含返回值或異常的Document Message。請求者應該在請求中指定一個Return Address來告訴應答者使用哪個通道來傳回應答。請求者可能在一個處理過程中發送多個請求,所以應答應該包含一個Correlation Identifier來指出這個應答對應哪個請求。

    有兩個Request-Reply場景需要注意;它們都包含了一個Command Message請求和一個對應的Document Message應答。在第一個場景中,Message RPC,請求不但要調用應答者的函數,而且期望一個返回值。這是RPC。另一個場景中,Message Query,請求者執行一個查詢;應答者執行查詢并在應答中返回結果。這是遠程查詢。

     

    大量的數據 有時應用想要傳送大量的數據結構,放入一個單獨的message里面不是很合適。在這種情況下,將他們分解成可管理的消息塊并將他們作為Message Sequence發送。這些消息必須按順序發送,以便接受者能夠充足原始數據結構。

     

    慢速消息 消息系統的一個問題是發送者通常不知道接受者要多久才能接受到消息。然而,消息的內容可能是時間敏感的,所以如果消息在某一時間內沒有被接受,它將被忽略并取消。在這種情況下,sender應該使用Message Expiration來指定一個到期時間。如果消息系統在規定時間內無法傳輸一個消息,應該將它取消并刪除到Dead Letter Channel中。同樣的一個receiver接受到一個超出該時間點的消息,也要取消該消息。

     

    總之,只選擇使用消息是不夠的。使一個消息工作的其他決定性因素來自于消息所要完成的任務。

     

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

    評論

    # 【ESB專題】之三 - Message Construction及其相關模式 [TrackBack]  回復  更多評論   

    當兩個應用想要交換數據,他們將數據包裝在一個message中。但是一個Message Channel不能傳輸原始數據,它只能傳輸包含在一個message中的數據(即傳輸特定格式的數據)。

    [引用提示]fisher on csdn 引用了該文章, 地址: http://blog.csdn.net/flyingbug/archive/2005/11/19/533102.aspx
    2005-11-19 20:39 | fisher on csdn

    # re: 【ESB專題】之三 - Message Construction及其相關模式  回復  更多評論   

    好文,我也正想研究EAI平臺,其中ESB則是EAI平臺的核心,期待你的后文,
    另:能否多講一些有關IBM MQ的消息中間件,在大型企業應用中,往往都采用的是MQ渠道,畢境簡單的基于SOAP連接的WEB SERVICE擁有先天缺陷---無法共享連接.
    2005-11-21 11:23 | langds

    # re: 【ESB專題】之三 - Message Construction及其相關模式  回復  更多評論   

    呵呵,沒用過MQ,所以沒辦法寫關于MQ的內容了
    我想SOAP的好處是基于XML的標準提供了互通的平臺,并且它在消息轉換、元數據交換以及安全方面都提供了標準的做法,我認為SOAP是一個很有前途的集成手段
    SOAP的缺陷是由Http協議的基于請求的、無狀態的特性決定的,這也沒辦法
    但是可以通過一些設計模式來適當的改變這種狀態,比如使用Cache
    或硬性的保持一個通知連接等機制
    2005-11-21 21:55 | fisher

    # re: 【ESB專題】之三 - Message Construction及其相關模式  回復  更多評論   

    是的,不論怎么樣,在SOA應用架構下,基于SOAP協議的交互的確是相當重要的,因此才出現了面向消息的SOA實現,這就會在ESB里的消息通迅模式里解決.而IBM的MQ則是比較好的方案了
    2005-11-22 10:04 | langds

    # re: 【ESB專題】之三 - Message Construction及其相關模式  回復  更多評論   

    呵呵,我個人感覺Message Queue并非什么神奇的技術,而且也不是普遍適用的技術
    其實真正通用的整合標準就只有兩個:Http和Socket
    SOAP是Http上的技術,Socket則是十年前的整合標準
    無論使用哪一種都一樣

    基于Socket的整合的中間件我都是自己寫的,所以我沒有用過MQ
    只要通訊基礎框架寫的好,支持什么樣協議我想都不是大問題^_^
    2005-11-22 10:12 | fisher

    # re: 【ESB專題】之三 - Message Construction及其相關模式  回復  更多評論   

    MQ還是很好用的,值得研究一下。高率,穩定,事務保證,簡單的開發接口,優點不少,
    2007-03-09 16:03 | linan
    主站蜘蛛池模板: 一个人免费播放在线视频看片| 97se亚洲综合在线| 337P日本欧洲亚洲大胆精品| 日韩欧毛片免费视频| 久久亚洲美女精品国产精品| 久久国产精品成人免费| 亚洲欧洲∨国产一区二区三区 | 免费亚洲视频在线观看| 亚洲粉嫩美白在线| 一二三四视频在线观看中文版免费 | 亚洲女女女同性video| 丁香花在线观看免费观看| 亚洲伊人精品综合在合线| 五月婷婷综合免费| 亚洲精品二三区伊人久久| 成人午夜性A级毛片免费| 亚洲国产成人手机在线观看| 国产成人高清精品免费软件| 另类专区另类专区亚洲| 国产亚洲美女精品久久久2020| 免费无码又爽又刺激网站| 亚洲视频在线观看视频| 美女视频黄a视频全免费| 亚洲精品永久在线观看| 亚洲av日韩av欧v在线天堂| 久久免费观看视频| 78成人精品电影在线播放日韩精品电影一区亚洲| 麻豆成人久久精品二区三区免费| 久久久婷婷五月亚洲97号色| 国产精品美女午夜爽爽爽免费| 美女视频黄视大全视频免费的| 亚洲第一AAAAA片| 老司机在线免费视频| 处破女第一次亚洲18分钟| 国产亚洲精品福利在线无卡一| 日韩免费人妻AV无码专区蜜桃| 亚洲日本人成中文字幕| 亚洲国产精品综合久久网络| 国产免费AV片在线观看| 亚洲综合色丁香婷婷六月图片 | 亚洲sss综合天堂久久久|