目前,關於面向服務的架構,即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架構的固有特性,也就是分布式的特性。
傳統架構與分布式架構SOA的比較
傳統架構與soa架構的區別和特點 傳統架構 存在問題 1.模組之間耦合度太高,其中乙個公升級其他都得公升級 2.開發困難,各個團隊開發最後都要整合一起 3.系統的擴充套件性差 4.不能靈活的進行分布式部署 soa 分布式系統架構 soa服務體系架構 分布式架構 soa 面向服務的體系結構,是乙個元件...
ElasticSearch基礎分布式架構講解
elasticsearch是一台分布式系統,之所以分布式,是為了應對大資料量,他把整個分布式系統的一些複雜的東西隱藏起來,我們不用去關係他們,直接可以使用es。隱藏的特性或機制 之前我們隨便可以將document資料插入到es集群中,我們有沒有care過資料是如何進行分片的,就是說document存...
分布式架構基礎 HTTPS協議
https簡介 由於http協議通訊的不安全性,所以人們為了防止資訊在傳輸過程中遭到洩漏或者篡改,就想出來對傳輸通道進行加密的方式 https。https是一種加密的超文字傳輸協議,它與http協議的差異在於對資料傳輸的過程中,https對資料做了完全加密。由於http協議或者https協議都是處於...