用這樣的題目有點(diǎn)嘩眾取寵的意味,不過相對于SOA(Service-Oriented Architecture)這個所謂“下一代軟件架構(gòu)”,任何的修飾都顯得暗淡無光。早在1996年,Gartner Group就已經(jīng)提出了SOA的預(yù)言,不過那個時候僅僅是一個“預(yù)言”,當(dāng)時的軟件發(fā)展水平和信息化程度還不足以支撐這樣的概念走進(jìn)實質(zhì)性應(yīng)用階段。
2002年12月,Gartner又提出了SOA是“現(xiàn)代應(yīng)用開發(fā)領(lǐng)域最重要的課題”,并且預(yù)言到2008年, 75%的新的企業(yè)應(yīng)用將使用SOA 的元素,從2003年的20%產(chǎn)生急劇的增長;到2006年,在全球銷售出的所有商業(yè)應(yīng)用產(chǎn)品中,面向服務(wù)的將超過 80%;到2005年,試圖建立實時企業(yè)能力的企業(yè)中,80%將會嚴(yán)重的低估網(wǎng)絡(luò)的需求,他們將不得不做出最后的增加、升級或者修改,從而能夠開展實時企業(yè)應(yīng)用和能力。2008年,SOA將成為占有絕對優(yōu)勢的軟件工程實踐方法,主流企業(yè)現(xiàn)在就應(yīng)該在理解和應(yīng)用SOA開發(fā)技能方面進(jìn)行投資,更好地支持商業(yè)流程。
于是此刻,這個“老調(diào)重彈”的概念一夜之間成為各大廠商的新寵。
縱觀軟件發(fā)展史,我們經(jīng)歷了面向過程->面向?qū)ο?>面向組件->面向集成的幾個時代:
面向過程:高度耦合、高效率,通常是針對一個具體的應(yīng)用實現(xiàn),因此無法適應(yīng)快速業(yè)務(wù)變化,不適合做大型面向客戶應(yīng)用的開發(fā)。
面向?qū)ο螅?/STRONG>OOP提供了封裝、繼承、多態(tài)和重載等等一系列的特性使應(yīng)用軟件的架構(gòu)可以被重用,開發(fā)人員可以不用關(guān)心其具體實現(xiàn),而是專注于對象能夠提供怎樣的功能,因此提高了軟件重用性,從而使得整個IT的基礎(chǔ)架構(gòu)能夠適應(yīng)需求的快速變化。語言的單一性和源代碼級的共享決定了在跨應(yīng)用系統(tǒng)重用的過程中必定會有各種各樣的困難。
面向組件:二進(jìn)制級別的組件共享進(jìn)一步加速了面向應(yīng)用實現(xiàn)的步伐,繼承了OO的顯著的優(yōu)點(diǎn),使得IT基礎(chǔ)架構(gòu)能夠更加快速適應(yīng)業(yè)務(wù)變化,但是平臺單一性依然阻礙了其復(fù)用程度。
面向集成:這是一個完全面向業(yè)務(wù)的時代,所有的應(yīng)用都是以業(yè)務(wù)應(yīng)用為主題去組織的,但是集成高昂的成本讓許多企業(yè)望而卻步。
SOA正是在這樣的大背景之下應(yīng)運(yùn)而生的,在OOP相對成熟之后,軟件學(xué)術(shù)界出現(xiàn)了諸多的方法學(xué)用來解釋開發(fā)過程遇到的種種問題,比如AOP(面向方面編程)、MDA模型驅(qū)動架構(gòu)),契約式設(shè)計及其極限編程(XP)等等,于是有人提出了“后OO時代已經(jīng)到來”的論調(diào),SOA正是這個新時代最重要的軟件方法論。簡單地說,SOA是“抽象、松散耦合和粗粒度”的軟件架構(gòu),它可以根據(jù)需求通過網(wǎng)絡(luò)對松散耦合的粗粒度應(yīng)用組件進(jìn)行分布式部署、組合和使用。服務(wù)層是SOA的基礎(chǔ),可以直接被應(yīng)用調(diào)用,從而有效控制系統(tǒng)中與軟件代理交互的人為依賴性。
那么我們再來看看各大廠商是怎樣宣傳和鼓吹他們對于SOA的支持?
IBM: 宣稱是第一個為構(gòu)建、部署基于SOA的IT系統(tǒng)提供一系列全面的工具、培訓(xùn)和服務(wù)線路的大型廠商,它涵蓋了SOA生命周期的所有方面,整個概念覆蓋了他們提供的五大產(chǎn)品線Websphere、Workplace、Tivoli、DB2及其Rational。
BEA:宣稱其旗艦產(chǎn)品WebLogic Platform 8.1是業(yè)界內(nèi)最佳的SOA實現(xiàn)平臺,從WebLogic Server到WebLogic Portal再到WebLogic Integration,BEA的全線產(chǎn)品都是采用SOA的理念去設(shè)計的,而Workshop 8.1則是第一個完整的ISE(Integrated Services Environment,面向服務(wù)集成環(huán)境),它覆蓋了從設(shè)計、開發(fā)、測試再到部署的各個環(huán)節(jié),并且宣稱通過其能夠快速為企業(yè)建立基于服務(wù)的應(yīng)用。
Oracle: 宣稱其JDeveloper 10g是一種基于Java與Web服務(wù)環(huán)境的開發(fā)工具,具有網(wǎng)絡(luò)激活功能,并能夠支持SOA(面向服務(wù)的體系結(jié)構(gòu)),并且提出在SOA工具方面,領(lǐng)先于IBM和Sun這樣的公司,通過其數(shù)據(jù)庫產(chǎn)品Oracle 10g和OAS(Oracle Application Server)的支持,同時加上APF(Application Platform Foundation)的支持,因此在SOA的支持方面,Oracle將領(lǐng)先于其他廠商。
Microsoft:雖然SOA的概念不是源自這家廠商,不過在后期推廣中卻占據(jù)了非常重要的位置,Biztalk Server 2004的推出,也終于讓這個軟件巨人理直氣壯的開始關(guān)于SOA的宣傳,相對于其他廠商而言,更加“明智”的選擇了從開發(fā)人員入手,引導(dǎo)開發(fā)人員進(jìn)入SOA,從MBF(Microsoft Business Framework)來看,就是提供給開發(fā)人員的參考架構(gòu)。
從目前的市場對峙來看,企業(yè)應(yīng)用開發(fā)可以分解為三大陣營:
以IBM、BEA、Oracle、Sun為首的Java應(yīng)用牢牢占據(jù)企業(yè)高端應(yīng)用,除了具備跨平臺的特點(diǎn)之外,更加重要的是他們在Java標(biāo)準(zhǔn)之上形成了非常成熟的產(chǎn)品線,從開發(fā)工具到應(yīng)用服務(wù)器再到企業(yè)應(yīng)用實現(xiàn),自始至終都有一套完善的解決方案,在這個世界里面他們成為領(lǐng)導(dǎo)者,他們著眼于中高端市場。
以微軟為首的基于Windows平臺的應(yīng)用解決方案提供商,他們完全依賴于Windows體系架構(gòu)所提供的功能,主要的開發(fā)工具早期為Visual Stuido 6.0和Borland的Delphi,現(xiàn)在逐漸遷移到.NET為主,在中低端市場,他們以開發(fā)效率和易用性見長,并且有逐步走向高端應(yīng)用的趨勢。
以Perl、PHP、Python等等開源為主的應(yīng)用則著眼于中低端市場,他們則以價格方面的優(yōu)勢見長,并且有比較扎實的社區(qū)支持,關(guān)鍵的問題在于沒有強(qiáng)勢廠商的支持,因此更加適合做一些相對獨(dú)立的應(yīng)用解決方案。
從某種意義上來說,SOA是“自頂向下”而產(chǎn)生的,正是因為企業(yè)應(yīng)用復(fù)雜度的增強(qiáng)造成了目前很多應(yīng)用無法完全是用不斷發(fā)展的業(yè)務(wù)需求,于是“整合(Integration)”就成為企業(yè)望而生畏卻不得不面對的問題,SOA在應(yīng)對這樣的問題時則顯得理直氣壯,“面向服務(wù)、無需整合、標(biāo)準(zhǔn)化、松散耦合”等等一系列與生俱來的優(yōu)勢讓睿智的廠商意識到這個新概念是刺激IT采購的最好入點(diǎn),于是群擁而上造就了今日SOA的榮光無限。
一切不是如此完美,如果完美了就沒有我今天的文字,也沒有了那么多的牢騷,相信很多人都在問SOA是否等同于Web Services,從最初的定義到廠商的宣傳都在傳達(dá)一個主題:SOA!=Web Services,Web Services只是SOA的一種技術(shù)實現(xiàn)方式,并不足以構(gòu)成SOA的全部,通過JMS、JDBC、.NET Remoting、IIOP乃至CORBA和TCP/IP都可以成為SOA的技術(shù)實現(xiàn)架構(gòu),而且也有廠商在私有協(xié)議上實現(xiàn)了SOA的模型,比如IBM WebSphere產(chǎn)品線,比如WebLogic Workshop,比如微軟的.NET 2.0類庫等等。
作為SOA的Java世界的SOA推動者他們認(rèn)為SOA不等同于Web Services,因為他們可以理直氣壯地宣稱SOA的實現(xiàn)過程中可以使用IIOP、JMS、CORBA等等協(xié)議,在Java平臺上,這些協(xié)議能夠工作的比Web Services來的有效率,在Java世界里面實現(xiàn)大統(tǒng)一的軟件架構(gòu)似乎已經(jīng)近在咫尺,那么我們也有理由選擇SOA。
雖然到目前為止微軟還不足以成為這個概念的絕對領(lǐng)導(dǎo)者,但是有一點(diǎn)可以肯定,忽略微軟的團(tuán)圓是不夠完美甚至是悲哀的,雖然可以不在乎,但是忽略如此之多的微軟開發(fā)人員去論述新一代的軟件架構(gòu)似乎還是底氣不足。微軟選擇了圓滑的方式去推進(jìn)SOA,雖然他的產(chǎn)品他的軟件架構(gòu)不是最出色的,但是有一點(diǎn)無可置疑,在易用性方面讓其他廠商望塵莫及。微軟也知道SOA不是Web Services,但是同樣的也知道只有Web Services才能夠真正幫助其去實現(xiàn)SOA的夢想,于是就有意的淡化其中的區(qū)別,最終的結(jié)局就是大部分的微軟開發(fā)人員以為SOA就是Web Services,而VS.NET目前是開發(fā)Web Services的最佳工具,雖然一切不是那么令人滿意,不是讓微軟滿意,更加讓Java世界不滿意,但是有一點(diǎn)我們不要忘記了:微軟開發(fā)人員占據(jù)著開發(fā)人員的半壁江山。
從個人的角度而言,我贊同SOA是新一代的軟件架構(gòu),是“后OO時代”最耀眼的軟件方法論,但是理論歸理論,是不是能夠解決當(dāng)前企業(yè)應(yīng)用存在的種種問題?一切需要我們拭目以待。無意去否定或者攻擊廠商的做法,畢竟通過概念來刺激IT采購是他們的最終目的,我們對于我們開發(fā)人員或者企業(yè)而言呢,SOA是不是靈丹妙藥呢?
還是需要回到SOA!=Web Services的話題上來,雖然彰顯無聊的本質(zhì),但是在沒有探討出SOA等于什么或者完整包含什么之前,我們無法不去繼續(xù)這個百無聊賴的主題,既然SOA強(qiáng)調(diào)能夠跨越異構(gòu)平臺整合業(yè)務(wù),那么必然需要特定的技術(shù)手段去實現(xiàn),就目前三大陣營的發(fā)展來看,Web Services似乎是唯一可以跨越異種開發(fā)平臺的標(biāo)準(zhǔn),而就如SOA提倡因為標(biāo)準(zhǔn)化所以卷土重來,那么標(biāo)準(zhǔn)的起點(diǎn)在于何處?我們誰都明白只有Web Services能夠讓這個論調(diào)自圓其說。
那么今天的Web Services又如何呢?在跨越企業(yè)應(yīng)用方面,的確逐漸成為主流的協(xié)議,但是在企業(yè)內(nèi)部,在對于響應(yīng)速度要求比較高的領(lǐng)域,我們都知道目前的Web Services依然難當(dāng)大任,畢竟SOAP的序列化和反序列化在很多實際應(yīng)用中會成為可怕的性能瓶頸。因此Web Services目前的應(yīng)用中還是以集成為主,在實時應(yīng)用中,還無法成為自己的舞臺。
SOA到底是一個怎樣的東西,它和Web Services是一個怎樣的關(guān)系,是軟件學(xué)的新衣裳還是廠商美麗的謊言,我們將拭目以待。
煤炭網(wǎng)版權(quán)與免責(zé)聲明:
凡本網(wǎng)注明"來源:煤炭網(wǎng)m.jingweixianlan.com "的所有文字、圖片和音視頻稿件,版權(quán)均為"煤炭網(wǎng)m.jingweixianlan.com "獨(dú)家所有,任何媒體、網(wǎng)站或個人在轉(zhuǎn)載使用時必須注明"來源:煤炭網(wǎng)m.jingweixianlan.com ",違反者本網(wǎng)將依法追究責(zé)任。
本網(wǎng)轉(zhuǎn)載并注明其他來源的稿件,是本著為讀者傳遞更多信息的目的,并不意味著本網(wǎng)贊同其觀點(diǎn)或證實其內(nèi)容的真實性。其他媒體、網(wǎng)站或個人從本網(wǎng)轉(zhuǎn)載使用時,必須保留本網(wǎng)注明的稿件來源,禁止擅自篡改稿件來源,并自負(fù)版權(quán)等法律責(zé)任。違反者本網(wǎng)也將依法追究責(zé)任。 如本網(wǎng)轉(zhuǎn)載稿件涉及版權(quán)等問題,請作者在兩周內(nèi)盡快來電或來函聯(lián)系。
網(wǎng)站技術(shù)運(yùn)營:北京真石數(shù)字科技股份有限公司、喀什中煤遠(yuǎn)大供應(yīng)鏈管理有限公司、喀什煤網(wǎng)數(shù)字科技有限公司
總部地址:北京市豐臺區(qū)總部基地航豐路中航榮豐1層
京ICP備18023690號-1 京公網(wǎng)安備 11010602010109號