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

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

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

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

    【ESB專題】之四 - Message Transformation及其相關(guān)模式

     

     

     

    通常,通過消息系統(tǒng)集成的應(yīng)用很少有同樣的消息格式。比如說,一個帳務(wù)系統(tǒng)同一個CRM系統(tǒng)對客戶對象是有著不同的概念的。基于這個,一個系統(tǒng)可能將消息存儲在關(guān)系表中,另一個可能存儲在文件中。集成已存在的系統(tǒng)通常意味著我們沒有修改系統(tǒng)以便使他們更好的一起工作的自由。然而,集成方案不得不協(xié)調(diào)和解決各種系統(tǒng)之間的不同。Message Translator模式提供了一個通用的解決方案。這里解釋幾種特定的Message Translator

     

    Message Transformation包含以下幾種模式:

    l         Envelope Wrapper

    l         Content Enricher

    l         Content Filter

    l         Claim Check

    l         Normalizer

    l         Canonical Data Model

     

    大多數(shù)消息系統(tǒng)放置特定的需求在消息頭的格式和內(nèi)容中。我們包裝有效數(shù)據(jù)到一個Envelope Wrapper中以適應(yīng)消息基礎(chǔ)設(shè)施的需求。如果消息需要穿過不同的消息基礎(chǔ)設(shè)施,可以結(jié)合多個Envelope Wrapper

    如果原始系統(tǒng)不能提供目標(biāo)系統(tǒng)需要的數(shù)據(jù)域,可以使用一個Content Enricher。它可以查找缺少的信息并從已有數(shù)據(jù)中計算出它。Content Filter正好相反,它從消息中刪除不需要的數(shù)據(jù)。Claim Check也從消息中刪除數(shù)據(jù),但是它將存儲他們以便以后取回。Normalizer將多個不同格式的消息翻譯成統(tǒng)一格式。

     

    消除依賴

     

    消息轉(zhuǎn)換在集成中是一個很深的話題。Message ChannelsMessage Routers可以通過消除應(yīng)用必須知道另外一個應(yīng)用的位置的需求從而解除應(yīng)用間的基本依賴。

    一個應(yīng)用可以發(fā)送一個消息到Message Channel而不必?fù)?dān)心誰來取出消息。然而消息格式增加了另外一種依賴。如果一個應(yīng)用不得不將消息格式化成另外一個應(yīng)用的數(shù)據(jù)格式,通過Message Channel解耦的說法就像一個幻想。接收系統(tǒng)的任何改變或切換到另外一個接收系統(tǒng)都需要對發(fā)送應(yīng)用進(jìn)行改變。Message Translators可以幫助除去這種依賴。

     

    元數(shù)據(jù)管理

     

    將消息從一個消息格式轉(zhuǎn)換到另一個格式需要操作元數(shù)據(jù) 描述數(shù)據(jù)格式的數(shù)據(jù)。

    元數(shù)據(jù)在兩個并行系統(tǒng)之間的集成中扮演著非常重要的角色。一個處理實(shí)際的消息數(shù)據(jù),另外一個處理元數(shù)據(jù)。許多用于處理消息數(shù)據(jù)的模式也同樣可以管理元數(shù)據(jù)。比如說,Channel Adapter不僅可以從一個系統(tǒng)中移進(jìn)和移出消息,還可以從一個外部應(yīng)用中獲取元數(shù)據(jù),并將其加載到一個元數(shù)據(jù)倉庫中。使用這個倉庫,集成開發(fā)者可以定義應(yīng)用元數(shù)據(jù)與Canonical Data Model.之間的轉(zhuǎn)換。

     

     

    元數(shù)據(jù)集成

     

    o_MT1.JPG

    舉例來說,上面的圖描述了兩個需要交換客戶信息的應(yīng)用的集成。每個系統(tǒng)的客戶數(shù)據(jù)的定義稍有不同。從
    AB的消息需要轉(zhuǎn)換一下才能被B接收。如果Channel Adapters可以抽取元數(shù)據(jù)的話,創(chuàng)建一個轉(zhuǎn)換將非常簡單。然后這個元數(shù)據(jù)可以被放入一個倉庫,大大的簡化了Message Translator的配置和驗(yàn)證。元數(shù)據(jù)可以被存儲成不同的格式。通常XML消息使用XSD格式。其他EAI工具實(shí)現(xiàn)所有元數(shù)據(jù)格式,但是允許管理員導(dǎo)入或?qū)С龅狡渌袷健?/SPAN>

     

    消息系統(tǒng)外的數(shù)據(jù)轉(zhuǎn)換

     

    這些轉(zhuǎn)換模式組成的很多原則可以被應(yīng)用于非消息集成。比如說,File Transfer可以執(zhí)行系統(tǒng)間的轉(zhuǎn)換工作。類似的,Remote Procedure Invocation必須使請求使用要調(diào)用的service的格式,即使應(yīng)用本身的格式可能不同。典型的,需要調(diào)用程序來執(zhí)行轉(zhuǎn)換。一些最成熟的轉(zhuǎn)換引擎組成了ETL工具,比如Informatica或者DataMirror。這些工具一般都一次轉(zhuǎn)換大量的數(shù)據(jù),而不是轉(zhuǎn)換單個消息。

    Message System應(yīng)專注于幾種基本的Message Translator模式。而不應(yīng)該關(guān)心實(shí)體間結(jié)構(gòu)轉(zhuǎn)換的細(xì)節(jié)(不同的數(shù)據(jù)模型之間的轉(zhuǎn)換,比如ER模型不支持多對多關(guān)系而其他的支持這種)。關(guān)于這個主題最老也使最相關(guān)的書是Kent的《Data and Reality》。

     

    posted on 2005-11-21 21:40 fisher 閱讀(1619) 評論(1)  編輯  收藏 所屬分類: Programing

    評論

    # 【ESB專題】之四 - Message Transformation及其相關(guān)模式 [TrackBack]  回復(fù)  更多評論   

    通常,通過消息系統(tǒng)集成的應(yīng)用很少有同樣的消息格式。比如說,一個帳務(wù)系統(tǒng)同一個CRM系統(tǒng)對客戶對象是有著不同的概念的。基于這個,一個系統(tǒng)可能將消息存儲在關(guān)系表中,另一個可能存儲在文件中。集成已存在的系統(tǒng)通常意味著我們沒有修改系統(tǒng)以便使他們更好的一起工作的自由。然而,集成方案不得不協(xié)調(diào)和解決各種系統(tǒng)之間的不同。
    [引用提示]fisher on csdn 引用了該文章, 地址: http://blog.csdn.net/flyingbug/archive/2005/11/21/534215.aspx
    2005-11-21 22:10 | fisher on csdn
    主站蜘蛛池模板: 99国产精品视频免费观看| 亚洲色偷偷偷综合网| 日韩免费无码一区二区三区| 亚洲av中文无码乱人伦在线播放 | 91亚洲国产成人久久精品| 一区二区无码免费视频网站| 91精品导航在线网址免费| 国产成人无码精品久久久免费| 中文毛片无遮挡高清免费| 麻豆成人久久精品二区三区免费| 免费黄色福利视频| 成人午夜性A级毛片免费| 免费a在线观看播放| 亚洲无码黄色网址| 久久久久亚洲av无码专区导航 | 日韩亚洲国产二区| 亚洲精品~无码抽插| 亚洲欧洲久久精品| 亚洲a∨无码一区二区| 国产成人1024精品免费| 最近中文字幕2019高清免费| 午夜免费福利影院| 国产亚洲精久久久久久无码77777| 久久亚洲私人国产精品vA| 亚洲中文字幕无码中文字| 免费人人潮人人爽一区二区| 小日子的在线观看免费| 四虎www成人影院免费观看| 中文字幕亚洲综合久久菠萝蜜 | 亚洲国产成人99精品激情在线| 色哟哟国产精品免费观看| 一级毛片免费毛片一级毛片免费| 免费看香港一级毛片| 亚洲熟妇av一区二区三区| 激情内射亚洲一区二区三区爱妻| 一级视频在线免费观看| 成人免费黄色网址| 精品亚洲视频在线观看| 亚洲制服丝袜第一页| 中文字幕免费视频精品一| 四虎成人免费网站在线|