SOA到底是什么
SOA到底是什么
首先,SOA是一種開發(fā)思想。是一種松耦合的框架。可以讓軟件超越開發(fā)語言。SOA強(qiáng)調(diào)的是一種架構(gòu)思想,組件化的靈活的開發(fā)方式。
SOA是一場革命。一個應(yīng)用程序的業(yè)務(wù)邏輯(business logic)或某些單獨(dú)的功能被模塊化并作為服務(wù)呈現(xiàn)給消費(fèi)者或客戶端。這些服務(wù)的關(guān)鍵是他們的松耦合特性。例如,服務(wù)的接口和實(shí)現(xiàn)相獨(dú)立。應(yīng)用開發(fā)人員或者系統(tǒng)集成者可以通過組合一個或多個服務(wù)來構(gòu)建應(yīng)用,而無須理解服務(wù)的底層實(shí)現(xiàn)。舉例來說,一個服務(wù)可以用.NET或J2EE來實(shí)現(xiàn),而使用該服務(wù)的應(yīng)用程序可以在不同的平臺之上,使用的語言也可以不同。
一、SOA是什么
SOA的全稱是Service-Oriented Architecture,面向服務(wù)架構(gòu)。是一種架構(gòu),不是一種具體的開發(fā)技術(shù)。
要真正理解什么是SOA需要從軟件開發(fā)的技術(shù)發(fā)展史談起。
真正的軟件開發(fā)從開始到現(xiàn)在經(jīng)歷了四個階段,也可以說成是四代:
- 匯編語言開發(fā)
- 面向過程的軟件
- 面向?qū)ο蟮慕M件開發(fā)
- 面向服務(wù)的架構(gòu)開發(fā),也是今天要談?wù)摰腟OA架構(gòu)
SOA與前面三代的軟件開發(fā)技術(shù)對比,不同點(diǎn)是SOA超越了軟件開發(fā)語言本身。是一種面向服務(wù)的架構(gòu),與軟件開發(fā)語言無關(guān)。
但就軟件開發(fā)本身來說,SOA是一種技術(shù),又超越了所有具體的技術(shù)。
二、SOA的技術(shù)革命
SOA既然能成為第四代軟件開發(fā)技術(shù),究竟帶來什么革命。
首先,SOA是一種開發(fā)思想。是一種松耦合的框架??梢宰屲浖介_發(fā)語言。
其次,SOA的開發(fā)需要SOA體系的支撐,就像J2EE應(yīng)用一樣,離不開應(yīng)用服務(wù)器。SOA也一樣,也有一個類似J2EE服務(wù)器的東西支持著整個SOA體系架構(gòu)—-ESB(Enterprise Service Bus),企業(yè)服務(wù)總線。通過這個總線,將多個系統(tǒng)連接起來。
其次,SOA是基于消息請求響應(yīng)的一個系統(tǒng),對請求類型有高度的兼容性。與一個Web應(yīng)用容器相比,web應(yīng)用容器只能處理HTTP請求,而 SOA的ESB可以接受HTTP、FTP、WebService、JMS…等請求。這就使得SOA架構(gòu)具有高度的兼容性,可以將不同的平臺集成到一 起,從而相互協(xié)調(diào)工作。
三、SOA火起來的真正原因
- 軟件開發(fā)技術(shù)的不斷提高。
- 硬件性能的提升,價格下降,投出SOA所消耗的成本為企業(yè)所能忍受。
- SOA受到了IMB、Oracle、Sun、Microsoft等大公司的熱力追捧,被捧紅了,實(shí)際上,一直以來都是這些公司在引領(lǐng)軟件應(yīng)用的潮流。
- SOA技術(shù)革命每年有上千億美元的市場價值。軟件要升級,這些服務(wù)提供商才可以買出更多的中間件服務(wù)器,賣出更多的硬件,賺取更多利潤。
- 很多企業(yè)的軟件應(yīng)用系統(tǒng)已經(jīng)滿足不了信息高度集成化的要求,為了提高企業(yè)的核心競爭力,企業(yè)不惜重金,上SOA。
- SOA的招牌很響亮,超越了一切,兼容了一切。它不摒棄舊系統(tǒng),而是將很多舊系統(tǒng)繼承起來,就可以實(shí)現(xiàn)。—–實(shí)際上,我個人認(rèn)為這是一個騙局。
四、SOA最有前景的舞臺
- 基于SOA是的思想和技術(shù),SOA最適合最擅長的就是系統(tǒng)集成。而系統(tǒng)集成的關(guān)鍵就是提取公共的有價值的服務(wù)。各個系統(tǒng)通過暴露服務(wù),經(jīng)過ESB這條總線連接后,就將幾個系統(tǒng)集成起來了。這在新一代軟件開發(fā)中也許會得到應(yīng)用。
- SOA的架構(gòu)注定SOA在中小企業(yè)內(nèi)部沒有多大價值。中小企業(yè)的攤子還不夠大。
- SOA系統(tǒng)集成難點(diǎn)在于抽取公共的服務(wù)。對于老的系統(tǒng)來說,抽取服務(wù)就是抽筋。很難很難,意味著要修改軟件,要適合SOA的胃口。因此,對一些不同語言開發(fā)的系統(tǒng)來說,使用SOA進(jìn)行系統(tǒng)實(shí)際上是扯淡。
五、SOA發(fā)展現(xiàn)狀
對SOA口號叫的最響的是IBM,出書最多的也是IBM,成功的案例還沒看到。所有的大公司都在忽悠,希望拿到第一筆大單。
SOA以來ESB,ESB本身也是一種中間件,或者說是一個增強(qiáng)了的企業(yè)應(yīng)用服務(wù)器。目前開源的有幾個,也沒見過成功的案例。估計(jì)SOA技術(shù)從起步到成熟還有很長一段路要走。ESB的實(shí)現(xiàn)還需要一個發(fā)展過程。相反與SOA有緊密聯(lián)系WebService技術(shù)已經(jīng)深入人心?,F(xiàn)在用的比較多。
正因?yàn)镾OA架構(gòu)實(shí)現(xiàn)不依賴于技術(shù),因此能夠被各種不同的技術(shù)實(shí)現(xiàn)。
- SOAP, RPC
- REST
- DCOM
- CORBA
- OPC-UA
- Web services
- DDS
- Java RMI
- WCF (Microsoft’s implementation of web services now forms a part of WCF)
- Apache Thrift
- SORCER
因此 REST、SOAP、RPC、RMI、DCOM等都是SOA的一種實(shí)現(xiàn)而已。
作者:半獸人 轉(zhuǎn)載來源:http://orchome.com/145 網(wǎng)站來源:OrcHome
總結(jié)
- 上一篇: 南方杜鹃花怎么过冬
- 下一篇: 误入高速口可以掉头吗