第三次浪潮:面向應用的計算模型的變革
作者:左輕侯 4771字節 點(diǎn)擊:287 回復:0 所屬分類(lèi):技術(shù)隨筆
創(chuàng )建時(shí)間:2006-07-28 00:39:33 最后修改時(shí)間:2006-07-28 00:39:33
第三次浪潮:面向應用的計算模型的變革
左輕侯
2005.9.12
在過(guò)去的5年中,我使用得最多的語(yǔ)言是Delphi和Java,也就是說(shuō),我的大部分時(shí)間都在和面向應用的系統打交道。在對這些年來(lái)的技術(shù)革新進(jìn)行回顧后,我認為,在這些技術(shù)革新中,最主要的一條線(xiàn)索就是計算模型的變革,它主導著(zhù)編程語(yǔ)言、數據庫、組件技術(shù)以及其它方面的技術(shù)革新。
這條線(xiàn)索可以被總結為如下幾個(gè)階段:
第一次浪潮:從單機向Client/Server的轉變
最早的應用系統模型是單機的,也就是說(shuō),數據庫和應用軟件位于同一臺機器上。事實(shí)上,這一模型的一個(gè)明顯特征就是數據庫和編程語(yǔ)言是混然一體的。這個(gè)時(shí)代最流行的數據庫系統是dBase/FoxBase/FoxPro系列,在“真編譯”的FoxPro出現之前,應用程序的代碼必須在dBase/FoxBase的環(huán)境中被解釋執行。
隨著(zhù)企業(yè)內部網(wǎng)絡(luò )的逐漸流行,多機共享數據庫的要求也日益強烈。在這種情況下,原有的單機數據庫出現了一些新的變化:將數據庫文件放在網(wǎng)絡(luò )的某個(gè)共享目錄下,并通過(guò)某種加鎖機制(最常見(jiàn)的是增加一個(gè)記錄加鎖狀態(tài)的索引文件)來(lái)解決并發(fā)訪(fǎng)問(wèn)引起的沖突。FoxBase/FoxPro的后期版本,以及當時(shí)另外一個(gè)流行的數據庫Paradox,都是通過(guò)這種方式實(shí)現了簡(jiǎn)單的網(wǎng)絡(luò )數據庫功能。
當然這只是一種過(guò)渡方式,隨后的大型關(guān)系型數據庫的普及,最終成功地完成了單機模型向Client/Server模型的轉變。關(guān)系型數據庫通過(guò)復雜的加鎖和緩沖機制,解決了密集并發(fā)訪(fǎng)問(wèn)的問(wèn)題,通過(guò)對事務(wù)處理的支持,保證了企業(yè)必需的關(guān)鍵業(yè)務(wù)的可靠性。同時(shí),關(guān)系型數據庫通過(guò)Socket方式向外提供訪(fǎng)問(wèn)接口,從而徹底地將應用軟件從數據庫中獨立出來(lái)。
這個(gè)時(shí)代最著(zhù)名的數據庫,是我們今天耳熟能詳的Oracle、DB2、Sybase、MS SQLServer、InterBase等等。Delphi是這一時(shí)代最成功的構建應用系統的編程語(yǔ)言。而Intranet的普及,是Client/Server模型必不可少的條件。
第二次浪潮:從Client/Server向Brower/Server的轉變
隨著(zhù)應用系統的復雜性的增長(cháng),尤其是另一個(gè)重要的條件——Internet的普及——的成熟,應用系統的模型出現了新的變化。應用軟件又開(kāi)始分離為兩個(gè)層次,即表現層和邏輯層。加上數據庫,我們就看到了著(zhù)名的三層架構的劃分:負責UI的表現層,負責業(yè)務(wù)邏輯的邏輯層,以及負責數據持久性的數據層。Borland的MIDAS(Middle-tier Distributed ApplicationServices,從Delphi6開(kāi)始改名為DataSnap)技術(shù)是這種模型的典型代表。
但是,真正成為主流的是另一種意義上的三層架構,即Brower/Server模型。在B/S模型中,表現層不是由專(zhuān)門(mén)的瘦客戶(hù)端(ThinClient)來(lái)實(shí)現,而是由Web Brower+WebServer來(lái)實(shí)現。B/S模型實(shí)現了更加徹底的零客戶(hù)端,易于發(fā)布,易于維護,而且理論上可以跨越任何網(wǎng)絡(luò ),因此迅速地占領(lǐng)了應用系統的大部分市場(chǎng)。
在這里,我們可以回顧一下一樁著(zhù)名的公案。當Netscape在瀏覽器市場(chǎng)上占據絕對優(yōu)勢時(shí),Microsoft不惜動(dòng)用業(yè)務(wù)低潮儲備金,投入無(wú)數資源打造IE,并最后驅逐了Netscape。是什么使得Microsoft如此緊張?因為在B/S主宰的市場(chǎng)中,應用軟件跟操作系統已經(jīng)無(wú)關(guān)。如果Microsoft不能占領(lǐng)瀏覽器市場(chǎng),它在操作系統上的優(yōu)勢就會(huì )被架空。從這里,我們可以看到計算模型的變化對上一個(gè)時(shí)代的霸主造成的致命影響。
在這一時(shí)代,傳統的關(guān)系型數據庫仍然占據數據層,Microsoft的IE則在瀏覽器市場(chǎng)占據了決定性的優(yōu)勢。在邏輯層這一市場(chǎng)中,基于J2EE的解決方案以驚人的速度成長(cháng),成為這一時(shí)代的明顯特征。而Microsoft雖然也推出了基于DCOM/COM+的解決方案,但始終未能占有主導權。這一時(shí)代最成功的編程語(yǔ)言當然是Java。
第三次浪潮:從Brower/Server向RIA的轉變
B/S架構的缺陷從一開(kāi)始就體現出來(lái)了:基于Html的表現層能力有限,而且Http是一種非連接的協(xié)議。因此,B/S并沒(méi)有能夠完全取代C/S架構,在很多場(chǎng)合,我們仍然需要一個(gè)在本地運行的客戶(hù)端。徹底解決這一問(wèn)題的答案是RIA。
RIA(Rich InternetApplication)似乎并不是一個(gè)正式的名稱(chēng),但在本文中,我將它作為這種模型的通稱(chēng)。RIA本質(zhì)上是B/S的改進(jìn),不同之處在于,RIA不但可以通過(guò)解釋Html(或其他腳本)來(lái)創(chuàng )建用戶(hù)界面,而且可以提供已編譯的客戶(hù)端應用程序的運行環(huán)境。換言之,客戶(hù)端可以擁有本地應用程序的能力,同時(shí)又象Web一樣易于發(fā)布和維護。目前,Macromedia的Flash/Flex和Mozilla的XUL都是RIA解決方案,但更令人期待的似乎是來(lái)自Microsoft和IBM的解決方案。
Microsoft的Longhorn(已經(jīng)正式命名為WindowsVista)是一個(gè)雄心勃勃的計劃。Microsoft定義了一種新的標記語(yǔ)言XAML,XAML可以?xún)惹冻绦虼a,或引用外部的程序代碼。XAML和相應的程序代碼被下載以后,由圖形引擎Avalon重建一個(gè)本地的用戶(hù)界面。Microsoft宣稱(chēng),Longhorn應用程序將完全建立在XAML的基礎之上,不論它們來(lái)自本地還是遠程機器。這樣就徹底模糊了本地應用和遠程應用之間的界限。
RCP(Rich ClientPlatform)是IBM基于Eclipse的解決方案。事實(shí)證明,Eclipse決不僅僅是一個(gè)供開(kāi)發(fā)人員使用的IDE,它還是一個(gè)強大的客戶(hù)端平臺。在RCP架構中,Eclipse可以從遠程機器上下載XML格式的界面文件和Java代碼,由SWT引擎重建本地界面,其機制與Longhorn類(lèi)似。IBM正在著(zhù)手將著(zhù)名的Lotus全部轉移到RCP架構上,這個(gè)名為Workplace的新產(chǎn)品也許是有史以來(lái)最大的RIA產(chǎn)品。
RIA之戰最吸引人的地方在于,它正在進(jìn)行中,有許多問(wèn)題懸而未決。例如,RIA和B/S模型的一個(gè)明顯區別是,B/S基于一些平臺中立的標準,例如http和html標準都不是私有的。但Longhorn和RCP似乎是不可調和的,因為無(wú)法在Eclipse中執行.NET代碼,就象無(wú)法在A(yíng)valon中執行Java代碼一樣。這會(huì )導致軟件界的徹底分裂嗎?Microsoft的計劃是最宏偉的,但是步伐緩慢,而低調的IBM已經(jīng)通過(guò)Eclipse的繁榮悄悄占領(lǐng)了先機。不過(guò),Microsoft的長(cháng)處是后來(lái)居上。這一次還會(huì )重演Windows 和OS/2戰爭的結果嗎?
本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請
點(diǎn)擊舉報。