它使用了特定的服務(wù)協(xié)議。于是,業(yè)界提出了Web Service的概念。這使遠程方法調(diào)用被提到一個新的高度。與RMI這類的實現(xiàn)截然相反,Web Service獨立于任何平臺。它可以附加在HTTP這類最普遍使用的協(xié)議上,完成異構(gòu)平臺間程序代碼級別的整合。在Web Service出現(xiàn)的頭幾年,業(yè)界并沒有找到使用它的最佳場景。直到某一天,它悄然成為SOA的一塊重要基石。
我們正處在SOA概念泛濫的年代,有些人擁抱它,有些人排斥它。其實SOA一點也不神秘,它只是遠程方法調(diào)用的變體。不過,這種變體是革命性的,它改變的不僅僅是一種技術(shù)實現(xiàn),它改變的是構(gòu)架企業(yè)應(yīng)用軟件的思想。
為什么呢?企業(yè)應(yīng)用軟件開發(fā)傳統(tǒng)的構(gòu)建方法是,首先進行數(shù)據(jù)或?qū)ο蠼?,然后基于這些模型來完成業(yè)務(wù)功能。這個過程不是一次就能成功的。因此,在分析和實現(xiàn)業(yè)務(wù)功能的時候,要時時對數(shù)據(jù)或?qū)ο竽P瓦M行修改。修改的工作比較煩人,涉及大量遺留的應(yīng)用。MDA希望完成模型到業(yè)務(wù)功能的自動化,從而盡量減少煩人的修訂工作。
當(dāng)然,企業(yè)應(yīng)用軟件開發(fā)傳統(tǒng)的構(gòu)建方法也不是刻板的,在數(shù)據(jù)或?qū)ο蠼G埃ǔM早地使用用例來描述業(yè)務(wù)功能。即便如此,傳統(tǒng)方法的首要目標(biāo)仍然是數(shù)據(jù)或?qū)ο竽P?。而與傳統(tǒng)方法不同,SOA面向服務(wù)來建模。它更偏重于用例中的行為,而不是實體。致遠服軟整理出:http://www.soft8.com.cn/。之所以關(guān)注行為,是因為SOA有一項特殊的使命,那就是整合企業(yè)中的所有應(yīng)用,包括新規(guī)劃的系統(tǒng)和已有的系統(tǒng)。
對于已有的系統(tǒng)(軟件資產(chǎn)),考慮數(shù)據(jù)和對象模型意義不大,考慮如何利用已有系統(tǒng)的功能才是關(guān)鍵。所以,如何快速有效地抽取已有系統(tǒng)的功能,是首先要考慮的事情。由于Web Service的發(fā)展和普及,抽取功能已經(jīng)是一件很容易的事情了。這為SOA的推廣鋪平了道路。
對于新的即時通信軟件開發(fā)來說,使用傳統(tǒng)構(gòu)建方法更好。很多企業(yè)應(yīng)用軟件開發(fā)組織,總在追尋解決問題的銀彈。其實,沒有打中目標(biāo),通常不是弓箭不好,而是你還沒有掌握使用弓箭的技能。
因為SOA的普及,ESB也變得引人注目。注意到了SOA的特殊使命了嗎?企業(yè)服務(wù)總線就是用來整合企業(yè)的所有應(yīng)用的,它支持異構(gòu)的系統(tǒng)在一個共同的契約下發(fā)生關(guān)系。就這么簡單。