SOA到底是什么
SOA到底是什么
首先,SOA是一種開發(fā)思想。是一種松耦合的框架。可以讓軟件超越開發(fā)語言。SOA強(qiáng)調(diào)的是一種架構(gòu)思想,組件化的靈活的開發(fā)方式。
SOA是一場(chǎng)革命。一個(gè)應(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)集成者可以通過組合一個(gè)或多個(gè)服務(wù)來構(gòu)建應(yīng)用,而無須理解服務(wù)的底層實(shí)現(xiàn)。舉例來說,一個(gè)服務(wù)可以用.NET或J2EE來實(shí)現(xiàn),而使用該服務(wù)的應(yīng)用程序可以在不同的平臺(tái)之上,使用的語言也可以不同。
一、SOA是什么
SOA的全稱是Service-Oriented Architecture,面向服務(wù)架構(gòu)。是一種架構(gòu),不是一種具體的開發(fā)技術(shù)。
要真正理解什么是SOA需要從軟件開發(fā)的技術(shù)發(fā)展史談起。
真正的軟件開發(fā)從開始到現(xiàn)在經(jīng)歷了四個(gè)階段,也可以說成是四代:
- 匯編語言開發(fā)
- 面向過程的軟件
- 面向?qū)ο蟮慕M件開發(fā)
- 面向服務(wù)的架構(gòu)開發(fā),也是今天要談?wù)摰腟OA架構(gòu)
SOA與前面三代的軟件開發(fā)技術(shù)對(duì)比,不同點(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也一樣,也有一個(gè)類似J2EE服務(wù)器的東西支持著整個(gè)SOA體系架構(gòu)—-ESB(Enterprise Service Bus),企業(yè)服務(wù)總線。通過這個(gè)總線,將多個(gè)系統(tǒng)連接起來。
其次,SOA是基于消息請(qǐng)求響應(yīng)的一個(gè)系統(tǒng),對(duì)請(qǐng)求類型有高度的兼容性。與一個(gè)Web應(yīng)用容器相比,web應(yīng)用容器只能處理HTTP請(qǐng)求,而 SOA的ESB可以接受HTTP、FTP、WebService、JMS…等請(qǐng)求。這就使得SOA架構(gòu)具有高度的兼容性,可以將不同的平臺(tái)集成到一 起,從而相互協(xié)調(diào)工作。
三、SOA火起來的真正原因
- 軟件開發(fā)技術(shù)的不斷提高。
- 硬件性能的提升,價(jià)格下降,投出SOA所消耗的成本為企業(yè)所能忍受。
- SOA受到了IMB、Oracle、Sun、Microsoft等大公司的熱力追捧,被捧紅了,實(shí)際上,一直以來都是這些公司在引領(lǐng)軟件應(yīng)用的潮流。
- SOA技術(shù)革命每年有上千億美元的市場(chǎng)價(jià)值。軟件要升級(jí),這些服務(wù)提供商才可以買出更多的中間件服務(wù)器,賣出更多的硬件,賺取更多利潤(rùn)。
- 很多企業(yè)的軟件應(yīng)用系統(tǒng)已經(jīng)滿足不了信息高度集成化的要求,為了提高企業(yè)的核心競(jìng)爭(zhēng)力,企業(yè)不惜重金,上SOA。
- SOA的招牌很響亮,超越了一切,兼容了一切。它不摒棄舊系統(tǒng),而是將很多舊系統(tǒng)繼承起來,就可以實(shí)現(xiàn)。—–實(shí)際上,我個(gè)人認(rèn)為這是一個(gè)騙局。
四、SOA最有前景的舞臺(tái)
- 基于SOA是的思想和技術(shù),SOA最適合最擅長(zhǎng)的就是系統(tǒng)集成。而系統(tǒng)集成的關(guān)鍵就是提取公共的有價(jià)值的服務(wù)。各個(gè)系統(tǒng)通過暴露服務(wù),經(jīng)過ESB這條總線連接后,就將幾個(gè)系統(tǒng)集成起來了。這在新一代軟件開發(fā)中也許會(huì)得到應(yīng)用。
- SOA的架構(gòu)注定SOA在中小企業(yè)內(nèi)部沒有多大價(jià)值。中小企業(yè)的攤子還不夠大。
- SOA系統(tǒng)集成難點(diǎn)在于抽取公共的服務(wù)。對(duì)于老的系統(tǒng)來說,抽取服務(wù)就是抽筋。很難很難,意味著要修改軟件,要適合SOA的胃口。因此,對(duì)一些不同語言開發(fā)的系統(tǒng)來說,使用SOA進(jìn)行系統(tǒng)實(shí)際上是扯淡。
五、SOA發(fā)展現(xiàn)狀
對(duì)SOA口號(hào)叫的最響的是IBM,出書最多的也是IBM,成功的案例還沒看到。所有的大公司都在忽悠,希望拿到第一筆大單。
SOA以來ESB,ESB本身也是一種中間件,或者說是一個(gè)增強(qiáng)了的企業(yè)應(yīng)用服務(wù)器。目前開源的有幾個(gè),也沒見過成功的案例。估計(jì)SOA技術(shù)從起步到成熟還有很長(zhǎng)一段路要走。ESB的實(shí)現(xiàn)還需要一個(gè)發(fā)展過程。相反與SOA有緊密聯(lián)系WebService技術(shù)已經(jīng)深入人心。現(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é)
- 上一篇: 南方杜鹃花怎么过冬
- 下一篇: SAP Spartacus 404 No