簡析分佈式SOA基礎架構

 

  目前,關於面向服務的架構,即SOA,和有關如何“正確”構建SOA的爭論無處不在。我個人認爲這一點都不奇怪,因爲現在每一種新興的計算趨勢都會帶來不同的爭論,並且每一家廠商都會藉此機會大張旗鼓地宣傳他們的技術和產品是最適合用戶的,能夠幫助用戶充分利用每一種新興技術和產品的優勢。爲了充分挖掘狂熱IT趨勢中的用戶興趣,廠商們都會積極地重新定位自身已有的產品組合。然而,糟糕的是,這種做法往往會造成認識上的混亂,甚至讓用戶對SOA喪失信心。因爲廠商往往無法完全兌現他們所做的承諾,銷售的所謂適合SOA架構的技術解決方案也許最終證明並不合適。

  想要對SOA建立正確的認識,首先必須認識到從概念上來講SOA是一種分佈式的架構。作爲SOA的核心要素之一,服務的目的是要實現與另一項服務的遠程通信,尤其是要實現數據互享。而SOA架構的目的則是要徹底變革IT系統的構建方式,由原來的建立專有的單一應用變爲建立更爲高級和整合的應用,這種應用的顯著特點就是充分利用已有的、可以共享和重複使用的功能,也就是服務。

  在部署和使用可共享和重複使用的服務方面,分佈式SOA架構是最爲簡單易行的途徑。並且不論是從成本角度還是從技術角度,分佈式SOA架構都對目前業界普遍認同的漸進式的部署提供了最好的支持,同時,使系統具備更強的部署靈活性、適應性和可維護性(例如,一個服務與整個應用來比,對服務的驗證和升級要容易得多)。

  然而不幸的是,集中式的SOA架構方式還在被不斷開發和鼓吹。這些廠商們會不遺餘力地說服潛在用戶,他們所提供的技術和產品自始至終都支持SOA架構,且從設計伊始便是爲了方便用戶建立SOA架構,而不管這些技術和產品原本是爲JEE應用服務器而設計,還是爲EAI系統而設計。

  換句話說,對分佈式SOA架構持反對意見的廠商這樣做,是由他們所擁有的軟件架構的性質所決定的。一個EAI Hub,或是基於JEE的應用堆棧式架構,亦或其他解決方案,它們的消息請求都必須經過中央控制點,因此都不能被稱爲真正的分佈式解決方案。因爲在它們的架構中,如果要執行某項服務請求,都必須通過Hub或中央服務器來實現。集中式SOA架構會增加成本,限制資源的再利用,降低系統的靈活性,並且有可能導致成本高昂的系統瓶頸。最糟糕的結果是,它還有可能成爲用戶取消SOA計劃的第一原因。如果SOA架構的靈活性不足以滿足用戶的各項需求,無疑會導致用戶對SOA架構的徹底失望。

  如果我們來認真研究一下互聯網,大家就可以明白什麼是能夠成功滿足用戶需求的分佈式架構。互聯網是迄今爲止規模最大的分佈式應用,SOA架構正應該具備互聯網的這種分佈式特性。當用戶使用瀏覽器點擊URL鏈接時,其請求並不是通過安裝在服務器或Hub的中央控制程序來路由,而是由瀏覽器直接傳遞到請求頁面所在的網絡服務器。這種方法非常適合互聯網,同樣也非常適合企業的SOA架構。由於請求不需要通過Hub或中央服務器,因此互聯網的每個端點可以自由更新而不致影響客戶端,也不會影響其他站點,更不需要更新Hub或中央服務器。一個好的SOA架構就應該具備這種功能。

  還好,具備SOA分佈式特性的基礎架構解決方案確實存在。分佈式SOA架構通過智能端點讓具備某種服務功能的應用自動找尋其他服務,並與其實現相互通信。這些智能端點同時還具備極強的可獲得性和高安全性能等企業級服務特性,從而能夠確保其具備現有的企業關鍵應用所需要的各種性能。分佈式SOA架構就是建立一個平臺中立、高度靈活且基於標準的IT環境,從而能夠更好地應對不斷變化的技術和業務環境。因此,分佈式SOA環境能夠更好地滿足基於SOA架構的應用程序對各項技術和成本的要求。而且,分佈式SOA允許客戶按照自己的計劃漸進地部署服務,比如一次部署一兩個服務,在未來根據具體的業務需要,爲系統增加服務編排、註冊/貯存、管理等各項高級功能。

  需要強調的是,我並不是說通過EAI系統、hub或JEE服務器建立的集中式SOA架構的方式都不好,都是錯誤的。在許多情況下,現有企業應用很多都是採用上述形式實現的。我所要說明的是一個好的SOA架構不應該侷限於完成EAI系統或JEE應用服務器架構所能做的;實際上,一個好的SOA架構應該包容集中式的系統,並將它們融入到可重用的服務體系中,這纔是分佈式SOA架構的真諦。

  在當今的航空業,低成本航空運營商正在挑戰資深航空運營商的業務。以航空運輸業的發展爲例,我們可以從中發現分佈式的優點同樣在航空業中得到了充分的體現。資深運營商都是依靠昂貴的Hub和星型模式,通過特定的專用運輸Hub輸送旅客。費用昂貴的大型飛機將旅客從小型機場運送到中央的Hub機場,在這裏,旅客才能繼續他們的旅程到達最終的目的地。在這種模式下,飛機運營成本更高,機場設施收費也會更高。隨着低成本的航空運營商的興起,他們的運輸模式是分佈式、點到點的模式(小型飛機往返於小型機場之間),爲旅客節約了時間和成本而大受歡迎,這使得傳統Hub模式的航線正在面臨巨大的財務問題。

  SOA用戶不需要更多相同的冗繁、昂貴的堆棧軟件架構。他們所需要的是專門針對滿足SOA發展趨勢而設計的好軟件,也就是如何使得已有(或新的)IT資產可以得到更好重用,如何令IT系統更加靈活,並能快速構建新應用。SOA的設計也需要更好的方法來實施和部署可重用的服務,並且做到能夠隨時隨地且簡易直接地使用這些服務。其實,用戶更需要低成本的SOA解決方案,令他們可以從小規模SOA做起,並隨着業務的增長逐步擴大規模,同時根據自身的需求增加服務質量和其他功能等;與此同時,使用點到點的通信方式,避免新增加昂貴的服務器和Hub。簡而言之,SOA用戶需要的SOA架構必須真正具備SOA架構的固有特性,也就是分佈式的特性。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章