日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

ESB 特性

發布時間:2024/4/17 编程问答 44 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ESB 特性 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

http://www.cnblogs.com/shanyou/archive/2008/04/19/1161452.html

面向服務架構(SOA)和企業服務總線(ESB)

學習和研究在企業中實施面向服務架構(SOA),簡單回顧SOA和ESB,重點關注微軟在SOA領域的相關指導和.NET社區的相關開源的解決方案,和大家一起來探討如何在企業里實現SOA,期望有實施SOA經驗的同學發表意見。
一、SOA的歷史

???? 1996年,Gartner最早提出SOA。2002年12月,Gartner提出SOA是"現代應用開發領域最重要的課題",SOA并不是一個新事物,IT組織已經成功建立并實施SOA應用軟件很多年了,BEA、IBM、等廠商看到了它的價值,紛紛跟進。SOA的目標在于讓IT變得更有彈性,以更快地響應業務單位的需求,實現實時企業(Real-Time Enterprise,這是Gartner為SOA描述的愿景目標)。而BEA的CIO Rhonda早在2001年6月就提出要將BEA的IT基礎架構轉變為SOA,并且從對整個企業架構的控制能力、提升開發效率、加快開發速度、降低在客戶化和人員技能的投入等方面取得了不錯的成績。

  SOA是在計算環境下設計、開發、應用、管理分散的邏輯(服務)單元的一種規范。這個定義決定了SOA的廣泛性。SOA要求開發者從服務集成的角度來設計應用軟件,即使這么做的利益不會馬上顯現。SOA要求開發者超越應用軟件來思考,并考慮復用現有的服務,或者檢查如何讓服務被重復利用。SOA鼓勵使用可替代的技術和方法(例如消息機制),通過把服務聯系在一起而非編寫新代碼來構架應用。經過適當構架后,這種消息機制的應用允許公司僅通過調整原有服務模式而非被迫進行大規模新的應用代碼的開發,使得在商業環境許可的時間內對變化的市場條件做出快速的響應。

  SOA也不僅僅是一種開發的方法論--它還包含管理。例如,應用SOA后,管理者可以方便的管理這些搭建在服務平臺上的企業應用,而不是管理單一的應用模塊。其原理是,通過分析服務之間的相互調用,SOA使得公司管理人員方便的拿到什么時候、什么原因、哪些商業邏輯被執行的數據信息,這樣就幫助了企業管理人員或應用架構師迭代地優化他們的企業業務流程、應用系統。

  SOA的一個中心思想就是使得企業應用擺脫面向技術的解決方案的束縛,輕松應對企業商業服務變化、發展的需要。企業環境中單個應用程序是無法包容業務用戶的(各種)需求的,即使是一個大型的ERP解決方案,仍然不能滿足這個需求在不斷膨脹、變化的缺口,對市場快速做出反應,商業用戶只能通過不斷開發新應用、擴展現有應用程序來艱難的支撐其現有的業務需求。通過將注意力放在服務上,應用程序能夠集中起來提供更加豐富、目的性更強的商業流程。其結果就是,基于SOA的企業應用系統通常會更加真實地反映出與業務模型的結合。服務是從業務流程的角度來看待技術的--這是從上向下看的。這種角度同一般的從可用技術所驅動的商業視角是相反的。服務的優勢很清楚:它們會同業務流程結合在一起,因此能夠更加精確地表示業務模型、更好地支持業務流程。相反我們可以看到以應用程序為中心的企業應用模型迫使業務用戶將其能力局限為應用程序的能力。

  企業流程(enterprise process)是流經企業框架的空氣,它賦予業務模型里的組件以生命,并更加清晰地定義了它們之間的關系。流程定義了同業務模型進行交互操作的專門方法。例如,會計可能是企業服務系統的一個組件--但是將發票寄給客戶卻是一個業務流程。服務被定義用來支持業務流程,因而貫穿整個流程始終的是:各種服務組件在流程和邏輯實現過程中的裝配操作。理解業務流程是定制服務的關鍵所在。

二、SOA 的描述所適用的原則

  • 利用顯式的與實現無關的接口來定義服務。
  • 利用強調位置透明性和可互操作性的通信協議。
  • 封裝可重用業務功能的服務的定義。

圖 1說明了這些原則。注意,雖然 Web 服務技術非常符合這些原則,但它并不是唯一符合這些原則的技術。

圖 1: SOA 的原則

為了實現 SOA,應用程序和基礎架構都必須支持 SOA 原則。啟用 SOA 應用程序涉及到創建服務接口,服務接口可以直接也可以間接地通過使用適配器用于現有的或新的功能。從最基本的級別來看,啟用該基礎架構涉及到規劃功能來將服務請求路由和傳遞給正確的服務提供者。然而,基礎架構支持在不影響服務的客戶端的情況下由另一個服務實現替代原有的服務實現也是至關重要的。這不僅需要根據 SOA 原則指定服務接口,而且需要基礎架構允許客戶端代碼以獨立于所涉及的服務位置和通信協議的方式來調用服務。

三、ESB是什么?

根據維基百科的ESB定義,ESB有如下特性:

  • 它是面向服務架構的實現。
  • 它通常是操作系統和編程語言無關的;它應能在Java和.Net應用程序之間工作。
  • 它使用XML(可擴展標識語言)作為標準通信語言。
  • 它支持Web服務標準。
  • 它支持消息傳遞(同步、異步、點對點、發布-訂閱)。
  • 它包含基于標準的適配器(如J2C/JCA),用于集成傳統系統。
  • 它包含對服務編制(orchestration)和編排(choreography)的支持。
  • 它包含智能、基于內容的路由服務(itenerary路由)。
  • 它包含標準安全模型,用于ESB的認證、授權和審計。
  • 它包含轉換服務(通常是使用XSLT),在發送應用和接收應用之間轉換格式,簡化數據格式和值的轉換。
  • 它包含基于模式(schema)的驗證,用于發送和接收消息。
  • 它可以統一應用業務規則,充實其它來源的消息,分拆和組合多個消息,以及處理異常。
  • 它可以條件路由,或基于非集中策略的消息轉換,即不需要集中規則引擎。
  • 它可監視不同SLA(服務級別合約)的消息響應門限,以及在SLA中定義的其它特性。
  • 它(常常)簡化“服務類別”,向更高或更低優先級用戶做出適當的響應。
  • 它支持隊列,在應用臨時不可用時用來保存消息。
  • 它由(地理)分布式環境中的選擇性部署應用適配器組成
  • 對于其中一些廠商(IBM、微軟)來說,ESB是將一系列能力聯結在一起的一種模式,而其他廠商認為ESB是一種產品。在2005年,微軟Identity Platform的產品經理Rich Turner寫道:

    ESB[產品]是一根聰明的管子,用來連接各個愚笨的節點。[……]Web Service的途徑讓節點本身也變得聰明,減少了對底下聰明管道的需要,并確保了跨越任何平臺與設備的開放的通訊。

    四、如何用.NET技術建立完整的SOA環境

    微軟發布了一個名為“真實世界里的面向服務架構(SOA)”的電子書。這本書表達了微軟對面向服務架構的觀點,并包括了數個展示如何用微軟產品和技術實現SOA的真實案例。書中解釋到,SOA的功能型架構本身是松散的,即每個服務本身可以作為企業的IT資產存在、也可以作為生產流程中的處理環節存在,但總體上他們提供了一個完整的視圖,而且與獨立應用不同,這個視圖的內容不是分層的、而是平的,借助這個視圖可以提供如下可重用能力:

    • 消息機制服務
    • 工作處理流程服務
    • 數據服務
    • 用戶體驗服務
    • 主體身份的識別、認證、授權服務
    • 還有通盤的管理能力

    所有這些能力用微軟的產品描述就是下圖:

    與強調SCA、SDO等公共標準的Java平臺不同,微軟平臺相應的封裝也不是通過商用服務器平臺完成,而是更多地借助WCF實現;其中最為重要的ESB角色重則由BizTalk擔當,輕則由用戶通過擴展WCF + WF完成;至于服務的治理,相對更為統一,與Windows平臺其他產品無異,向下借助統一的WMI體系,配合MOM和System Center對SOA的基礎平臺部分進行治理,向上借助WS_Management協議對服務進行集中管理。

    實施SOA集成在所難免,各企業集成的方式大概主要有3種:

    • 購買某廠商的SOA套件,這樣無論是組成上的兼容性還是技術支持都有保證,代價就是花費不菲;
    • 集成多種開源的服務器產品和開發框架,顯性成本上很劃算,但技術實施的成敗的風險比較大;
    • 更多依賴操作系統自帶的產品,根據IT范圍的大小,選擇少量的商業產品或開源服務器產品,兼容性風險比全部開源產品要小,成本上也比全盤采購商業套件廉價。《SOA in the Real World》里更多倡導的就是這第三條道路。

    微軟還贊助了一個針對北美500家擁有1000名員工,或超過這個數字的企業的綜合應用平臺的研究。其目的旨在確定哪種軟件平臺被用于構建關鍵任務的應用,以及什么是首選供應商的關鍵組件平臺等。

    五、開源的.NET ESB項目介紹

    ESB.NET企業級服務總線:ESB.NET是開源的企業級服務總線,采用的協議是MS-PL。ESB.NET主要包含了MSMQ消息隊列機智,SOAP消息收發,ROUTER服務路由,WCF,WSE消息擴展(消息加解密,壓縮),還有WF工作流。

    開源的通信框架NServiceBus :NServiceBus 是一個用于構建企業級 .NET系統的開源通訊框架。它在消息發布/訂閱支持、工作流集成和高度可擴展性等方面表現優異,因此是很多分布式系統基礎平臺的理想選擇。,它能夠幫助開發人員在搭建企業.NET系統時避免很多典型的常見問題。同時,該框架也提供了一些可伸縮的關鍵特征,比如對發布/訂閱的支持、集成的長時間工作流及深入的擴展能力等。據作者說,其本意是為構建分布式應用軟件創建一個理想的基礎設施。

    Mass Transit -- .Net Service Bus:Mass Transit是一個.NET平臺上的用于構建松耦合應用程序的服務總線框架,這個服務總線支持YAGNI原則(YAGNI原則,就是通過重構提取公因式當出現一次時,不分層,以后業務復雜了,馬上抽象出一個層次來,分層是依賴倒置原則和模版方法模式的應用。)。通過一套嚴密的關注點,Mass Transit和應用程序之間的接觸最小化和清晰的接口.

    ?

    相關資料:

    [1] ESB這個詞到底是什么意思?

    [2]在SOA中整合企業數據

    [3]Dino Chiesa談微軟的SOA策略

    ?

    總結

    以上是生活随笔為你收集整理的ESB 特性的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。