現代的系統架構有太多的軟體技術、方法和工具,以至於達到幾乎不可能跟上最新的更新的程度,更不用說使用所有這些技術。例如,我們現在有soa、rest、soap、jason、rails、seam、ejb3、.net和j2ee等等。
其中一項受到許多關注的技術是soa。在大多數言過其實的宣傳似乎平息下來之後,人們認識到了soa並不是萬靈藥。但是,在設計企業系統的時候,soa仍是乙個可用的有價值的架構。把系統元件模組化並且新增到具體的服務實體中將使管理更加容易。分別提供技術支援將更有意義。
但是,大多數大型企業環境都有許多不是採用最新的技術開發的老式的系統。這些系統通常非常接近業務的核心,這是這些系統目前仍在積極地使用的原因。因為這些系統的性質,這些應用程式變成了很難訪問的資訊的豎井和業務規則。因為成本太高,要更換這些系統是不可行的。但是,不向比較新的技術轉換也許會限制企業的靈活性。
例如,乙個假設的企業系統也許包含乙個web應用程式,如使用seam開發的乙個人力資源員工門戶,這是為持久應用使用ejb3和hibernate的、在j2ee應用伺服器上執行的門戶。我們有乙個用c#語言開發的管理員工休假的應用程式,在乙個.net平台上執行。這個應用程式使用soap暴露一項web服務。乙個工資單系統在一台大型計算機上執行並且是採用cobol開發的。我們還有乙個用c++和corba開發的考勤系統。
我們喜歡使用soa原則把這些系統整合起來以便提供乙個統一的基於web的介面,以便讓管理層和員工都能夠訪問人力資源資料。
企業伺服器匯流排解決方案
企業服務匯流排(esb)是這個問題的解決方案之一。企業服務匯流排是通過乙個訊息和路由系統(匯流排)和解析設施(介面卡)提供不同的系統之間的溝通方式的一種架構。
在上述情況下,可以使用企業服務匯流排並且每乙個老式的系統配置乙個介面卡以便把資訊和請求解析為相容特定系統的格式。例如,這個企業服務匯流排將通過乙個corba介面卡與考勤系統溝通,同時,乙個soap介面卡將提供通訊設施訪問休假應用程式的soap介面。一旦連線到企業服務匯流排,每乙個應用程式都能夠與在這個匯流排上的任何乙個應用程式交換資訊。
企業服務匯流排還能夠把資料解析為不同的格式,如城市名稱的郵編號碼。大多數企業服務匯流排應用都有許多可以使用的標準的介面卡和乙個應用程式程式設計介面。這個應用程式程式設計介面允許開發人員使用自己的介面卡與其它系統進行溝通。
企業服務匯流排也許還能提供服務編排(把多項服務組合為一項服務)、流程編排(流程流)以及安全和管理(身份識別、監視、審計和登入)。
企業服務匯流排肯定不是新的,有許多成熟和穩定的實施,開源軟體和商業軟體都有。一些商業軟體包括微軟的biztalk、甲骨文esb、progress sonic、 pervasive data integrator和websphere esb。開源軟體的例子有apache servicemix、chainbuilder esb、jboss esb、mule esb和openesb。
使用這種解決方案也有一些確定,因為它為系統增加了額外的一層複雜性,需要付出更多的努力進行維護。訊息路由和解析的過程增加了延遲,因此,企業服務匯流排不適合高吞吐量的應用,如電信和實時訊息系統等。
如果使用正確,這種技術能夠利用soa的原則,同時擴大老式應用程式的投資回報,增加靈活性的好處,允許採用新技術的應用程式在未來應用。
深入解讀ESB與SOA的關係
時至今日,soa的概念漸漸清晰了。有關esb的概念,已經吵了好多年了,還是沒有定論。我個人認為,esb本來就是抽象的概念,而且內涵豐富,在不同的場合含義不同。因此應該從不同的角度來認識。一 soa和esb一直是沒有明確概念的兩個縮略詞 原因是這兩個詞包含的內涵太豐富了,無法用一兩句話說清楚,並且,這...
深入解讀ESB與SOA的關係
時至今日,soa的概念漸漸清晰了。有關esb的概念,已經吵了好多年了,還是沒有定論。我個人認為,esb本來就是抽象的概念,而且內涵豐富,在不同的場合含義不同。因此應該從不同的角度來認識。一 soa和esb一直是沒有明確概念的兩個縮略詞 原因是這兩個詞包含的內涵太豐富了,無法用一兩句話說清楚,並且,這...
深入解讀ESB與SOA的關係
深入解讀esb與soa的關係 有關esb的概念,已經吵了好多年了,還是沒有定論。我個人認為,esb本來就是抽象的概念,而且內涵豐富,在不同的場合含義不同。因此應該從不同的角度來認識。一 soa和esb一直是沒有明確概念的兩個縮略詞 原因是這兩個詞包含的內涵太豐富了,無法用一兩句話說清楚,並且,這個詞...