SOA是什麼)
來源:互聯網
上載者:User
一、SOA是什麼
SOA的全稱是Service-Oriented Architecture,面向服務架構。是一種架構,不是一種具體的開發技術。
要真正理解什麼是SOA需要從軟體開發的技術發展史談起。
真正的軟體開發從開始到現在經曆了四個階段,也可以說成是四代:
1、組合語言開發
2、面向過程的軟體
3、物件導向的組件開發
4、面向服務的架構開發,也是今天要談論的SOA架構
SOA與前面三代的軟體開發技術對比,不同點是SOA超越了軟體開發語言本身。是一種面向服務的架構,與軟體開發語言無關。
但就軟體開發本身來說,SOA是一種技術,又超越了所有具體的技術。
二、SOA的技術革命
SOA既然能成為第四代軟體開發技術,究竟帶來什麼革命。
首先,SOA是一種開發思想。是一種松耦合的架構。可以讓軟體超越開發語言。
其次,SOA的開發需要SOA體系的支撐,就像J2EE應用一樣,離不開應用伺服器。SOA也一樣,也有一個類似J2EE伺服器的東西支援著整個SOA體系架構----ESB(
Enterprise Service Bus),企業服務匯流排。通過這個匯流排,將多個系統串連起來。
其次,SOA是基於訊息請求響應的一個系統,對請求類型有高度的相容性。與一個Web應用程式容器相比,web應用程式容器只能處理HTTP請求,而 SOA的ESB可以接受HTTP、FTP、WebService、JMS...等請求。這就使得SOA架構具有高度的相容性,可以將不同的平台整合到一起,從而相互協調工作。
三、SOA火起來的真正原因
1、軟體開發技術的不斷提高。
2、硬體效能的提升,價格下降,投出SOA所消耗的成本為企業所能忍受。
3、SOA受到了IMB、Oracle、Sun、Microsoft等大公司的熱力追捧,被捧紅了,實際上,一直以來都是這些公司在引領軟體應用的潮流。
4、SOA技術革命每年有上千億美元的市場價值。軟體要升級,這些服務提供者才可以買出更多的中介軟體伺服器,賣出更多的硬體,賺取更多利潤。
5、很多企業的軟體應用系統已經滿足不了資訊高度整合化的要求,為了提高企業的核心競爭力,企業不惜重金,上SOA。
6、SOA的招牌很響亮,超越了一切,相容了一切。它不摒棄舊系統,而是將很多舊系統繼承起來,就可以實現。-----實際上,我個人認為這是一個騙局。
四、SOA最有前景的舞台
1、基於SOA是的思想和技術,SOA最適合最擅長的就是系統整合。而系統整合的關鍵就是提取公用的有價值的服務。各個系統通過暴露服務,經過ESB這條匯流排串連後,就將幾個系統整合起來了。這在新一代軟體開發中也許會得到應用。
2、SOA的架構註定SOA在中小企業內部沒有多大價值。中小企業的攤子還不夠大。
3、SOA系統整合痛點在於抽取公用的服務。對於老的系統來說,抽取服務就是抽筋。很難很難,意味著要修改軟體,要適合SOA的胃口。因此,對一些不同語言開發的系統來說,使用SOA進行系統實際上是扯淡。
五、SOA發展現狀
對SOA口號叫的最響的是IBM,出書最多的也是IBM,成功的案例還沒看到。所有的大公司都在忽悠,希望拿到第一筆大單。
SOA以來ESB,ESB本身也是一種中介軟體,或者說是一個增強了的公司專屬應用程式伺服器。目前開源的有幾個,也沒見過成功的案例。估計SOA技術從起步到成熟還有很長一段路要走。ESB的實現還需要一個發展過程。
相反與SOA有緊密聯絡WebService技術已經深入人心。現在用的比較多。