SOA的輕量化趨勢,從ESB漂移到Mashups
幾年前,談到 SOA 架構必然伴隨著 ESB 。然而這兩年來,我們雖然依然在談 SOA ,但 SOA 身邊伴著的角色卻已悄悄換成了 Web 2.0 、Mashups 。儘管 ESB 還沒走下舞台,但已經不在舞台中心了。
在 SOA 的舞台上,ESB走向邊緣,而 Mashups 走向中心,顯示了 SOA 正在輕量化的趨勢。
例如 IBM 在 2006 年 developerWorks Live 時,企業軟體架構的訊息匯流排方面主推 ESB 。到了 2008 年時,則轉移到 Web2.0 的 Mashups 了。2008 年(或是2007年,記不準了)的 developerWorks Live 時,我在會場上拿到 IBM 贈送的書《新商業語言 SOA 與 Web 2.0》,書名開宗明義就告訴你,我 IBM 已經把 Web2.0 放到 SOA 的身邊了。
就我觀察所及, ESB 和 Mashups 在 SOA 中扮演的角色極其相近,替代性非常高。如果我們把 SOA 架構畫成一張圖,那麼不管是 ESB 還是 Mashups ,在這張 SOA 架構圖中的位置都一樣。
請容我用一句話來說明 ESB 和 Mashups 的差異。 ESB 主要應用於異質協定、異質資料封包的資訊系統環境。而近年興起的 Web2.0/Mashups ,則是運作在同質協定、同質資料封包的環境之下。
ESB 面對的是大企業的資訊系統環境,在那些大企業中,有不少年資老的資訊系統,老歸老卻依然擔負著企業運作的工作。然而這些老資訊系統之間使用的通訊協定和資料格式都不相同,要把它們的訊息混在一起就是一件非常龐大的工程。 ESB 正是面向這樣的環境所提出的解決方案。它透過 Adapter 將舊資訊系統搭上 ESB ,舊資訊系統藉由 adapter 將訊息轉為 ESB 可再處理的格式, ESB 同樣透過 adapter 將訊息轉成需求者可讀取的格式。
ESB 的建置很龐大,可以說它實現了100%的功能串接起了100%的企業資訊系統。然而不幸的是,我們發現大多數的企業資訊系統環境,有高達 80%以上的服務內容使用同樣的通訊協定,而只需要用到 ESB 20%不到的功能就可以串接起來。以上的數字只是借用 80/20 法則來形容這種功能與效用不均衡的情形,不是準確的數據。
漸漸地,隨著老舊資訊系統被汰換,愈來愈多接替上來的資訊系統是用相同的通訊協定以及相同的資料格式。使得我們用得上的 ESB 功能比例愈來愈少。以前用 20%的功能串接80%的服務,現在變成10%功能串接90%、100%的服務。對於資歷短淺的新興企業來說, ESB 的龐大架構顯得沒有意義。對他們來說,最好只需要投入低廉的價格實現那10%功能就夠了。
隨著資訊系統的訊息逐漸趨向同質化,相對應的的訊息匯流架構也必然要趨向輕量化、簡便化。
Web2.0就是資訊系統的訊息同質化的結果,清一色採用 HTTP 協定,資料封包也是採用 XML 或 JSON 的高度結構化格式。在 Web2.0 中, Mashups 就是我們最主要的訊息串接、混搭手段。我用下面這張圖來表示上述的輕量化趨勢。
在右圖中, ESB 很大一塊站在中心位置,顯示 ESB 在 SOA 架構的中心地位與重要性。經過輕量化趨勢後, ESB 退到舞台邊緣,而它的角色由 Mashups 替代了,同時訊息匯流排的角色重要性也降低了。儘管 Mashups 還在舞台中心,但它變得小塊了。整個 SOA 架構漸漸像是 P2P ,許多資訊系統之間直接就可以交換訊息,而不必事事透過訊息匯流排。
在 SOA 的舞台上,ESB走向邊緣,而 Mashups 走向中心,顯示了 SOA 正在輕量化(lightly)的趨勢。編程人員們,歡欣鼓舞地迎向真理吧。
He who does the truth comes to the light.
You shall know the truth, and the truth shall make you free.行真理的必來就輕量。
你們必曉得真理,真理必叫你們得以自由。
人生苦短,沒有輕量化會更短。與編程人員同勉之。