論SOA的濫用:忽然間大家都SOA了

大家都想往SOA上靠,這讓我想起股市的一句話:當大家都瘋狂的時候,離崩潰就不遠了。
最近一年多滿耳朵都是SOA的宣傳,幾個QQ羣裏也都在一直忽悠概念,大家都想往SOA上靠。這讓我想起股市的一句話-當大家都瘋狂的時候,離崩潰就不遠了。就我所能接觸到的範圍內的情況,種種跡象顯示SOA已經開始氾濫了。
看見這篇文章的人士可以對比下自己周圍的項目情況,是不是有人言必及SOA;是不是就連內部系統也要往SOA上靠;沒有實際的需求,假想未來兩三年的應用場景,然後硬加上SOA;攀比,跟風,大家都SOA了,我們也快SOA吧;聽了廠商忽悠就也非要把系統帶個SOA,彷彿不這樣就不好意思出去見人一樣。
有天在網上看見這麼個消息:“現在有項目,找人合作,地點最好在深圳。要求:windows系統下,在驅動程序(C++編寫而成)中,調用web service更新驅動程序,時間2周。”。這個應用場景具體的特點我不清楚,但我實在是想破頭也不明白爲什麼驅動程序的更新都要用web service,難得就因爲這年頭流行這個概念嗎?
那麼問題來了,如何避免濫用?首先要肯定SOA確實有它的優勢,否則它也不會流行起來。肯定了這點,然後我們再來看,哪些是SOA適合的場景,只有在適合的地方纔能發揮出它最大的潛力。
在強調鬆散耦合、多應用交互、快速變更業務流程、分散數據集中顯示等等的場景中,SOA是一種很好的架構風格。鬆散耦合,這個不用說了,通過 XML定義服務接口,有了這個中間層,服務之間的耦合性可以降低很多。
多應用交互,不同的應用通過暴露服務來實現應用之間的交互,甚至這些服務可以組織成新的有價值的應用。把已有應用的服務重新組織排列成新應用有幾點好處,一是快速,因爲單個服務都是現成的;二是靈活,服務之間鬆散耦合,可以靈活改變組織方式;三是省錢,現成的拿來就用了,實在沒有再開發任務量也不會太大。
分散數據集中顯示,XML不作爲應用接口,而作爲數據呈現接口,可以統一處理對比分散但存在相關性的數據,而且取得數據的方式與提供數據的應用間的耦合性被降低了。
但是如果是一個應用的內部作爲分層,SOA就不適合了。首先這種內部分層幾乎不可能暴露給外部,因爲它們的粒度大部分都不足以提供一個有意義的功能。其次,SOA需要某種形式的 XML文檔來作爲service的表現形式,而一旦採用XML就註定了它的性能是個硬傷,而作爲內部系統來說,這種硬傷是不可能繞過去的。還有就是這種爲了SOA而分層必然會加大層與層之間的工作量,結果卻是沒有帶來任何收益,費力不討好。
貼近底層系統的應用,使用SOA也是不合適的。這種情況下不同應用分層之間存在耦合的情況比較少,即使存在耦合其耦合性也比較強,而且一般都有更高效的接口或通道來作爲耦合機制。
對於爲什麼SOA如此被濫用,我想最主要還是由國內的IT環境所致。國內的IT行業發展時間比較短,大部分應該都屬於新建應用。在這種情況下,其實SOA多數應該做爲前瞻性的準備工作來做,更多的是方便以後工作開展,各種應用能夠很快、很容易的就暴露有價值的服務出來,並且快速組合爲新的應用,實現新的業務目標。
然而爲了賺到銀子,大部分廠商都拼命往自己的東西上加賣點,往往忽視了實際情況到底需不需要;很多客戶也不知道自己到底需要的是什麼,只好很盲目地挑哪個名詞多,哪個叫的響,選哪個廠商。
相比來說,歐美的IT行業發展了幾十年,客戶相對理性,花多少錢就要得到多大的收益,這也是他們在談論SOA時很強調ROI的一個原因所在。
就甲方來說,與其跟風,不如靜心規劃好應用,讓IT投資真正體現出價值,同時給以後擴展留下餘地。就乙方來講,流行概念當然也要跟進,做好技術儲備,但絕不能拿客戶的錢做試驗,需要方案的時候能很快拿出。用戶最好是兩手抓,專心手頭工作,跟緊技術趨勢。對待新技術我們的口號是:不盲目,不掉隊,不排斥。

0

收藏

yuyunhai

14篇文章,2W+人氣,0粉絲

Ctrl+Enter 發佈

發佈

取消

掃一掃,領取大禮包

0

分享
yuyunhai
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章