Bobby Woolf是《EntERPrise Application Integration Patterns》的合作者,也在IBM任職WebSphere SOA與J2EE顧問(wèn),他寫了一篇文章來(lái)質(zhì)疑把ESB當(dāng)作SOA的實(shí)現(xiàn)基礎(chǔ)是否正當(dāng)(參閱文后注釋*)。
客戶常常希望單純構(gòu)建ESB,因?yàn)檫@樣可以避開(kāi)難搞的業(yè)務(wù)需求,專心解決技術(shù)上的挑戰(zhàn)。單純構(gòu)建ESB是IT人員的夢(mèng)想,這樣他們可以先建立ESB,然后指望以后會(huì)有SOA跟上來(lái)利用它。這種以ESB為導(dǎo)向的架構(gòu)丟掉了SOA的優(yōu)勢(shì)。這種架構(gòu)沒(méi)有產(chǎn)生業(yè)務(wù)價(jià)值。實(shí)際上,花費(fèi)了成本卻沒(méi)有收獲直接的利益。
Bobby的文章寫得很風(fēng)趣。但引發(fā)的爭(zhēng)論是嚴(yán)肅的,而且自Dave Chappell發(fā)明出“連接優(yōu)先(Connectivity-First)”這個(gè)新詞組,爭(zhēng)論就愈演愈烈。跟契約優(yōu)先(Contract-First)這個(gè)詞組類似,部署ESB就像以“連接優(yōu)先”的方式開(kāi)始你的SOA。Bobby認(rèn)為以ESB為導(dǎo)向的架構(gòu)方式
……有其固有的缺陷,它建立的連接性可能根本就沒(méi)有人打算去用……只有當(dāng)你實(shí)際需要一樣?xùn)|西,才去實(shí)現(xiàn)它,決不要僅僅因?yàn)槟泐A(yù)見(jiàn)到未來(lái)的需要。
OASIS的《SOA Reference Model》并沒(méi)有確切提到“連接性(connectivity)”,但它提出了通訊基礎(chǔ)設(shè)施的概念:
通訊基礎(chǔ)設(shè)施的主要任務(wù)是促進(jìn)信息以及意圖的交換……特別是當(dāng)交換的發(fā)生跨越了所有權(quán)邊界的情況下,對(duì)數(shù)據(jù)的解釋是一個(gè)關(guān)鍵問(wèn)題。對(duì)數(shù)據(jù)的解釋必須在服務(wù)交互的參與者當(dāng)中保持一致。
習(xí)慣上SOA架構(gòu)參考,包括來(lái)自IBM的參考在內(nèi),總是把ESB放在一個(gè)顯著的地位上。Dave Chappell解釋了ESB在本質(zhì)上是一個(gè)服務(wù)容器,附帶有專門的通訊基礎(chǔ)設(shè)施,用來(lái)連接同處在一個(gè)容器內(nèi)的服務(wù)。
服務(wù)容器是抽象的服務(wù)端點(diǎn)(endpoint)的具體表現(xiàn),它實(shí)現(xiàn)了服務(wù)接口。服務(wù)容器是一個(gè)能讓服務(wù)組件寄宿其中的遠(yuǎn)程進(jìn)程。從這個(gè)角度來(lái)說(shuō),它跟應(yīng)用服務(wù)器容器有幾分相似,只不過(guò)它的專門目的是寄宿集成的服務(wù)。
別讓Bobby的幽默掩蓋了他的觀點(diǎn)。Bobby不同意Joe McKendrick和Dave Linthicum把他的觀點(diǎn)解讀成ESB完全無(wú)用。而我自己多年前也寫過(guò)一系列文章,題為《跳下公共汽車(總線),打輛的》,我在其中質(zhì)疑了對(duì)通用的通訊機(jī)制的需要。不過(guò),帶有專門的通訊基礎(chǔ)設(shè)施(如Dave Chappell所描述)的服務(wù)容器仍然是非常有用的,JBI規(guī)范的領(lǐng)導(dǎo)Ron Ten-Hove解釋說(shuō):
·服務(wù)容器常常把各種IT資產(chǎn)連接到ESB上,
而ESB:
·具有可靠的消息系統(tǒng),以供服務(wù)容器交互。
·提供消息轉(zhuǎn)換服務(wù)。
-
客戶常常希望單純構(gòu)建ESB,因?yàn)檫@樣可以避開(kāi)難搞的業(yè)務(wù)需求,專心解決技術(shù)上的挑戰(zhàn)。單純構(gòu)建ESB是IT人員的夢(mèng)想,這樣他們可以先建立ESB,然后指望以后會(huì)有SOA跟上來(lái)利用它。這種以ESB為導(dǎo)向的架構(gòu)丟掉了SOA的優(yōu)勢(shì)。這種架構(gòu)沒(méi)有產(chǎn)生業(yè)務(wù)價(jià)值。實(shí)際上,花費(fèi)了成本卻沒(méi)有收獲直接的利益。
Bobby的文章寫得很風(fēng)趣。但引發(fā)的爭(zhēng)論是嚴(yán)肅的,而且自Dave Chappell發(fā)明出“連接優(yōu)先(Connectivity-First)”這個(gè)新詞組,爭(zhēng)論就愈演愈烈。跟契約優(yōu)先(Contract-First)這個(gè)詞組類似,部署ESB就像以“連接優(yōu)先”的方式開(kāi)始你的SOA。Bobby認(rèn)為以ESB為導(dǎo)向的架構(gòu)方式
……有其固有的缺陷,它建立的連接性可能根本就沒(méi)有人打算去用……只有當(dāng)你實(shí)際需要一樣?xùn)|西,才去實(shí)現(xiàn)它,決不要僅僅因?yàn)槟泐A(yù)見(jiàn)到未來(lái)的需要。
OASIS的《SOA Reference Model》并沒(méi)有確切提到“連接性(connectivity)”,但它提出了通訊基礎(chǔ)設(shè)施的概念:
通訊基礎(chǔ)設(shè)施的主要任務(wù)是促進(jìn)信息以及意圖的交換……特別是當(dāng)交換的發(fā)生跨越了所有權(quán)邊界的情況下,對(duì)數(shù)據(jù)的解釋是一個(gè)關(guān)鍵問(wèn)題。對(duì)數(shù)據(jù)的解釋必須在服務(wù)交互的參與者當(dāng)中保持一致。
習(xí)慣上SOA架構(gòu)參考,包括來(lái)自IBM的參考在內(nèi),總是把ESB放在一個(gè)顯著的地位上。Dave Chappell解釋了ESB在本質(zhì)上是一個(gè)服務(wù)容器,附帶有專門的通訊基礎(chǔ)設(shè)施,用來(lái)連接同處在一個(gè)容器內(nèi)的服務(wù)。
服務(wù)容器是抽象的服務(wù)端點(diǎn)(endpoint)的具體表現(xiàn),它實(shí)現(xiàn)了服務(wù)接口。服務(wù)容器是一個(gè)能讓服務(wù)組件寄宿其中的遠(yuǎn)程進(jìn)程。從這個(gè)角度來(lái)說(shuō),它跟應(yīng)用服務(wù)器容器有幾分相似,只不過(guò)它的專門目的是寄宿集成的服務(wù)。
別讓Bobby的幽默掩蓋了他的觀點(diǎn)。Bobby不同意Joe McKendrick和Dave Linthicum把他的觀點(diǎn)解讀成ESB完全無(wú)用。而我自己多年前也寫過(guò)一系列文章,題為《跳下公共汽車(總線),打輛的》,我在其中質(zhì)疑了對(duì)通用的通訊機(jī)制的需要。不過(guò),帶有專門的通訊基礎(chǔ)設(shè)施(如Dave Chappell所描述)的服務(wù)容器仍然是非常有用的,JBI規(guī)范的領(lǐng)導(dǎo)Ron Ten-Hove解釋說(shuō):
·服務(wù)容器常常把各種IT資產(chǎn)連接到ESB上,
而ESB:
·具有可靠的消息系統(tǒng),以供服務(wù)容器交互。
·提供消息轉(zhuǎn)換服務(wù)。
-