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