• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
    • 軟件測試技術
    • 軟件測試博客
    • 軟件測試視頻
    • 開源軟件測試技術
    • 軟件測試論壇
    • 軟件測試沙龍
    • 軟件測試資料下載
    • 軟件測試雜志
    • 軟件測試人才招聘
      暫時沒有公告

    字號: | 推薦給好友 上一篇 | 下一篇

    以ESB為導向建立SOA是有害的

    發布: 2008-2-03 10:48 | 作者: 不詳  | 來源: dev.21tx.com | 查看: 17次 | 進入軟件測試論壇討論

    領測軟件測試網 客戶常常希望單純構建ESB,因為這樣可以避開難搞的業務需求,專心解決技術上的挑戰。單純構建ESB是IT人員的夢想,這樣他們可以先建立ESB,然后指望以后會有SOA跟上來利用它。這種以ESB為導向的架構丟掉了SOA的優勢。這種架構沒有產生業務價值。實際上,花費了成本卻沒有收獲直接的利益。

      Bobby的文章寫得很風趣。但引發的爭論是嚴肅的,而且自Dave Chappell發明出“連接優先(Connectivity-First)”這個新詞組,爭論就愈演愈烈。跟契約優先(Contract-First)這個詞組類似,部署ESB就像以“連接優先”的方式開始你的SOA。Bobby認為以ESB為導向的架構方式

      ……有其固有的缺陷,它建立的連接性可能根本就沒有人打算去用……只有當你實際需要一樣東西,才去實現它,決不要僅僅因為你預見到未來的需要。

      OASIS的《SOA Reference Model》并沒有確切提到“連接性(connectivity)”,但它提出了通訊基礎設施的概念:

      通訊基礎設施的主要任務是促進信息以及意圖的交換……特別是當交換的發生跨越了所有權邊界的情況下,對數據的解釋是一個關鍵問題。對數據的解釋必須在服務交互的參與者當中保持一致。

      習慣上SOA架構參考,包括來自IBM的參考在內,總是把ESB放在一個顯著的地位上。Dave Chappell解釋了ESB在本質上是一個服務容器,附帶有專門的通訊基礎設施,用來連接同處在一個容器內的服務。

      服務容器是抽象的服務端點(endpoint)的具體表現,它實現了服務接口。服務容器是一個能讓服務組件寄宿其中的遠程進程。從這個角度來說,它跟應用服務器容器有幾分相似,只不過它的專門目的是寄宿集成的服務。

      別讓Bobby的幽默掩蓋了他的觀點。Bobby不同意Joe McKendrick和Dave Linthicum把他的觀點解讀成ESB完全無用。而我自己多年前也寫過一系列文章,題為《跳下公共汽車(總線),打輛的》,我在其中質疑了對通用的通訊機制的需要。不過,帶有專門的通訊基礎設施(如Dave Chappell所描述)的服務容器仍然是非常有用的,JBI規范的領導Ron Ten-Hove解釋說:

      ·服務容器常常把各種IT資產連接到ESB上,

      而ESB:

      ·具有可靠的消息系統,以供服務容器交互。

      ·提供消息轉換服務。

    延伸閱讀

    文章來源于領測軟件測試網 http://www.kjueaiud.com/

    TAG: soa SOA

    21/212>

    關于領測軟件測試網 | 領測軟件測試網合作伙伴 | 廣告服務 | 投稿指南 | 聯系我們 | 網站地圖 | 友情鏈接
    版權所有(C) 2003-2010 TestAge(領測軟件測試網)|領測國際科技(北京)有限公司|軟件測試工程師培訓網 All Rights Reserved
    北京市海淀區中關村南大街9號北京理工科技大廈1402室 京ICP備10010545號-5
    技術支持和業務聯系:info@testage.com.cn 電話:010-51297073

    軟件測試 | 領測國際ISTQBISTQB官網TMMiTMMi認證國際軟件測試工程師認證領測軟件測試網

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>