最近一年多滿耳朵都是SOA的宣傳,幾個QQ群里也都在一直忽悠概念,大家都想往SOA上靠。這讓我想起股市的一句話-當(dāng)大家都瘋狂的時候,離崩潰就不遠(yuǎn)了。就我所能接觸到的范圍內(nèi)的情況,種種跡象顯示SOA已經(jīng)開始泛濫了。

  看見這篇文章的人士可以對比下自己周圍的項目情況,是不是有人言必及SOA;是不是就連內(nèi)部系統(tǒng)也要往SOA上靠;沒有實際的需求,假想未來兩三年的應(yīng)用場景,然后硬加上SOA;攀比,跟風(fēng),大家都SOA了,我們也快SOA吧;聽了廠商忽悠就也非要把系統(tǒng)帶個SOA,仿佛不這樣就不好意思出去見人一樣。

  有天在網(wǎng)上看見這么個消息:“現(xiàn)在有項目,找人合作,地點最好在深圳。要求:windows系統(tǒng)下,在驅(qū)動程序(C++編寫而成)中,調(diào)用web service更新驅(qū)動程序,時間2周?!边@個應(yīng)用場景具體的特點我不清楚,但我實在是想破頭也不明白為什么驅(qū)動程序的更新都要用web service,難得就因為這年頭流行這個概念嗎?

  那么問題來了,如何避免濫用?首先要肯定SOA確實有它的優(yōu)勢,否則它也不會流行起來??隙诉@點,然后我們再來看,哪些是SOA適合的場景,只有在適合的地方才能發(fā)揮出它最大的潛力。

  在強調(diào)松散耦合、多應(yīng)用交互、快速變更業(yè)務(wù)流程、分散數(shù)據(jù)集中顯示等等的場景中,SOA是一種很好的架構(gòu)風(fēng)格。松散耦合,這個不用說了,通過 XML定義服務(wù)接口,有了這個中間層,服務(wù)之間的耦合性可以降低很多。

  多應(yīng)用交互,不同的應(yīng)用通過暴露服務(wù)來實現(xiàn)應(yīng)用之間的交互,甚至這些服務(wù)可以組織成新的有價值的應(yīng)用。把已有應(yīng)用的服務(wù)重新組織排列成新應(yīng)用有幾點好處,一是快速,因為單個服務(wù)都是現(xiàn)成的;二是靈活,服務(wù)之間松散耦合,可以靈活改變組織方式;三是省錢,現(xiàn)成的拿來就用了,實在沒有再開發(fā)任務(wù)量也不會太大。

  分散數(shù)據(jù)集中顯示,XML不作為應(yīng)用接口,而作為數(shù)據(jù)呈現(xiàn)接口,可以統(tǒng)一處理對比分散但存在相關(guān)性的數(shù)據(jù),而且取得數(shù)據(jù)的方式與提供數(shù)據(jù)的應(yīng)用間的耦合性被降低了。

  但是如果是一個應(yīng)用的內(nèi)部作為分層,SOA就不適合了。首先這種內(nèi)部分層幾乎不可能暴露給外部,因為它們的粒度大部分都不足以提供一個有意義的功能。其次,SOA需要某種形式的 XML文檔來作為service的表現(xiàn)形式,而一旦采用XML就注定了它的性能是個硬傷,而作為內(nèi)部系統(tǒng)來說,這種硬傷是不可能繞過去的。還有就是這種為了SOA而分層必然會加大層與層之間的工作量,結(jié)果卻是沒有帶來任何收益,費力不討好。

  貼近底層系統(tǒng)的應(yīng)用,使用SOA也是不合適的。這種情況下不同應(yīng)用分層之間存在耦合的情況比較少,即使存在耦合其耦合性也比較強,而且一般都有更高效的接口或通道來作為耦合機制。

  對于為什么SOA如此被濫用,我想最主要還是由國內(nèi)的IT環(huán)境所致。國內(nèi)的IT行業(yè)發(fā)展時間比較短,大部分應(yīng)該都屬于新建應(yīng)用。在這種情況下,其實SOA 多數(shù)應(yīng)該做為前瞻性的準(zhǔn)備工作來做,更多的是方便以后工作開展,各種應(yīng)用能夠很快、很容易的就暴露有價值的服務(wù)出來,并且快速組合為新的應(yīng)用,實現(xiàn)新的業(yè)務(wù)目標(biāo)。

  然而為了賺到銀子,大部分廠商都拼命往自己的東西上加賣點,往往忽視了實際情況到底需不需要;很多客戶也不知道自己到底需要的是什么,只好很盲目地挑哪個名詞多,哪個叫的響,選哪個廠商。

  相比來說,歐美的IT行業(yè)發(fā)展了幾十年,客戶相對理性,花多少錢就要得到多大的收益,這也是他們在談?wù)揝OA時很強調(diào)ROI的一個原因所在。

  就甲方來說,與其跟風(fēng),不如靜心規(guī)劃好應(yīng)用,讓IT投資真正體現(xiàn)出價值,同時給以后擴展留下余地。就乙方來講,流行概念當(dāng)然也要跟進(jìn),做好技術(shù)儲備,但絕不能拿客戶的錢做試驗,需要方案的時候能很快拿出。用戶最好是兩手抓,專心手頭工作,跟緊技術(shù)趨勢。對待新技術(shù)我們的口號是:不盲目,不掉隊,不排斥。

責(zé)任編輯:admin