面向服務的體系結構(SOA)——(2)ESB介紹及職責

企業服務總線(Enterprise Service Bus)SOA的基礎設施,之因此這麼說是由於要達到SOA的目標(加強靈活性)就必須有調用服務的方法,ESB的存在有效的保證了消費者可以調用供應者提供的服務。網上有不少對ESB不一樣的理解,其實這取決於實現ESB方式。對於ESB來講具體的實現方式不是固定的,可是核心思想(主要的做用)是一致的。下面將從以下幾個方面闡述筆者對ESB的理解安全

數據格式轉換負載均衡

ESB的存在就是爲了解決SOA當中互操做的問題,因爲SOA是支持異質的因此對於ESB來講主要的做用就是處理不一樣平臺不一樣語言之間的相互調用。那麼首先要作的就是數據格式的轉換。在異質的環境中若是隻解決一對一的轉換是飲鴆止渴,必需要爲之後新加入的異質系統着想,因此人們儘量的使得目標數據格式脫離已有的平臺及語言,引入一箇中間格式而後將不一樣平臺中的API都映射到這種格式上來。對於大多數狀況人們選擇的是和平臺無關的WebServices技術,因而SOAP也就成爲了這種中間格式。對於各大廠商來講誰都不肯意被衆人忽略,因此纔有了目前大多數技術對WebServices的普遍支持。spa

(智能)路由3d

這裏主要研究的對象是存在ESB當中的消息內容。就像現實生活中的路由同樣,你們都經過可是你們各自的數據不會被髮送到他人手中。在ESB中也是一樣的道理,不一樣優先級的消息,不一樣類型的消息是須要給予不一樣處理的。從這個角度說ESB就不僅僅是一個傳遞消息的通道了,還須要有一套本身的能識別其餘服務提供數據方法。至少應該能夠區分不一樣消息的消息頭,只有這樣才能保證消息準確無誤的被傳遞、處理。關於智能路由的另外一個做用就是負載均衡,根據消費者的要求調用資源空閒的服務,這不僅僅須要上面所說的ESB提供可識別消息的功能,還須要ESB能夠判斷提供者的資源佔用狀況。orm

其餘任務(篇幅所限後面的文章會詳細敘述下面涉及到ESB的各個職責)對象

下面要敘述的ESB的各個職責都是「提供互操做性」這個核心任務的擴展。很明顯異質系統經過ESB「鏈接」到了一塊兒,而且支持「互操做」那麼原有系統的安全是一個很大的問題。還須要注意的是不一樣協議提供不一樣形式的可靠性,例如WebServices中的HTTP協議沒法保證消息傳遞的成功(周所周知HTTP協議是無鏈接、無狀態的)。隨着SOA的範圍增大,鏈接到ESB上的系統增多時高效的管理服務將成爲ESB最棘手的問題。做爲整個環境的心臟ESB有責任檢測及記錄哪一個消費者調用了哪一個服務,以及一個具體的服務調用進行了多長時間。這些對於保證整個環境的良好運轉是很是重要的。blog

相關文章
相關標籤/搜索