bs與cs未來發(fā)展的趨勢(shì)
文章出處:http://hlpi.cn 作者:興邦開發(fā)部
從C/S到B/S,,軟件開發(fā)模式的變遷 上個(gè)世紀(jì)后期,,C/S結(jié)構(gòu)是最為流行的軟件系統(tǒng)體系結(jié)構(gòu)。但是,,自從Internet誕生之后,,更多的軟件應(yīng)用系統(tǒng)體系結(jié)構(gòu)開始向B/S結(jié)構(gòu)轉(zhuǎn)變。 在C/S結(jié)構(gòu)下,,大多數(shù)的企業(yè)管理軟件,,采用的均是傳統(tǒng)開發(fā)工具Visual Basic(VB)和Delphi代碼,或者是Power Builder(PB)代碼,,即第四代語言代碼,。 隨著Internet時(shí)代的到來,大多數(shù)的管理軟件開始轉(zhuǎn)向B/S結(jié)構(gòu),。如何從C/S平穩(wěn)過渡到B/S,,之前并沒有更好的解決方案,大多數(shù)的企業(yè)開始徹底放棄VB,、PB開發(fā)的代碼,,轉(zhuǎn)而采用C/S結(jié)構(gòu)下的Java語言重新來寫。雖然不會(huì)出現(xiàn)問題,,但是需要重新投入資本,、人力,甚至需要增加更多的培訓(xùn)機(jī)會(huì),。
代碼移植的演變
在20世紀(jì)70和80年代,,代碼移植最主要的目的是將程序移植到不同的系統(tǒng)環(huán)境下運(yùn)行?D主要是處理器和操作系統(tǒng)。由于市場(chǎng)上的硬件和操作系統(tǒng)呈現(xiàn)多樣化和均衡化的狀態(tài),,因此,,一個(gè)重要的程序往往需要考慮兩個(gè)甚至更多的系統(tǒng)環(huán)境。 1990年,,Windows 3.0發(fā)布,。基于窗口,、按鈕,、圖標(biāo)和鼠標(biāo)的圖形界面(GUI),迅速征服了全世界個(gè)人計(jì)算機(jī)用戶,。將原有DOS字符模式下的應(yīng)用程序移植到GUI環(huán)境,,成為眾多用戶和軟件開發(fā)商的迫切需求??梢暬幊讨饾u成為GUI下,,軟件開發(fā)的主流。 在4GL(第四代語言)開始大行其道之后,新一輪代碼移植的潮流再度興起,。此時(shí)的重點(diǎn)是將結(jié)構(gòu)化邏輯在GUI下實(shí)現(xiàn),,把過去結(jié)構(gòu)化代碼中的制作界面部分剝離,并把邏輯部分附著在各個(gè)對(duì)象事件之中,,通過操縱對(duì)象行為,,完成整個(gè)應(yīng)用的代碼移植。
可視化編程在Web時(shí)代的瓶頸
Internet的飛速發(fā)展給4GL編寫的GUI程序提出了新的挑戰(zhàn),。這些程序大都基于C/S結(jié)構(gòu)下,這種模式在局域網(wǎng)里將應(yīng)用一分為二,,服務(wù)器負(fù)責(zé)數(shù)據(jù)管理,,客戶機(jī)完成與用戶的交互任務(wù)。C/S結(jié)構(gòu)下軟件具有強(qiáng)壯的數(shù)據(jù)操縱和事務(wù)處理能力,,以及數(shù)據(jù)的安全性和完整性約束,。但隨著企業(yè)規(guī)模的日益擴(kuò)大,應(yīng)用程序的復(fù)雜程度不斷提高,,C/S結(jié)構(gòu)逐漸暴露出了缺點(diǎn),。比如開發(fā)成本較高,用戶界面風(fēng)格不一,、使用繁雜,、不利于推廣使用,維護(hù)復(fù)雜,、升級(jí)麻煩等,。 為了解決C/S結(jié)構(gòu)的不足,基于Internet的B/S技術(shù)應(yīng)運(yùn)而生,,它是有計(jì)算技術(shù)以來最穩(wěn)定的技術(shù)平臺(tái),。本質(zhì)上B/S也是一種客戶機(jī)技術(shù),用戶只需通過瀏覽器這個(gè)統(tǒng)一界面,,就可享受到無限豐富的,、永遠(yuǎn)在不斷變化和發(fā)展著的信息服務(wù)。而通過這種結(jié)構(gòu),,原則上取消了管理員所有在客戶機(jī)端的維護(hù)工作,。 在C/S向B/S轉(zhuǎn)移的過程中,開發(fā)者遇到了極大的困難,。因?yàn)榇a的移植已經(jīng)不再是過去的簡(jiǎn)單語法轉(zhuǎn)換,,而牽涉到各種對(duì)象的映射。
在結(jié)構(gòu)化編碼時(shí)代里,,無論是對(duì)一種語言不同方言之間的移植,,如從Turbo C到GNU C,還是對(duì)不同的高級(jí)語言之間的移植,如Turbo Pascal到Turbo C,,源語言和目標(biāo)語言均遵循著相同的結(jié)構(gòu),。源代碼的轉(zhuǎn)換,更多的是基于一個(gè)標(biāo)識(shí)符對(duì)照表來完成,。 使用4GL開發(fā)的C/S程序是對(duì)象的集合,,代碼從屬于對(duì)象。在相同或者類似的界面下,,不同開發(fā)工具使用的對(duì)象,,提供給開發(fā)者的接口可能完全不同。如果使用Java或者.NET重寫原有C/S程序,,意味著開發(fā)者必須將界面上所有元素逐個(gè)將其屬性,、參數(shù)表、事件用新的開發(fā)工具重新編寫,。 難越的自動(dòng)化遷移之路 不管網(wǎng)絡(luò)泡沫如何演變,,Internet始終是難掩的潮流。在國(guó)外軟件市場(chǎng),,大多數(shù)大型企業(yè)管理軟件已經(jīng)是B/S結(jié)構(gòu),,或者正處于C/S結(jié)構(gòu)向B/S結(jié)構(gòu)的過渡時(shí)期。國(guó)內(nèi)的大多數(shù)軟件企業(yè)也已經(jīng)開始向B/S結(jié)構(gòu)轉(zhuǎn)變,。B/S結(jié)構(gòu)下的大型管理軟件,,勢(shì)必是未來幾年內(nèi),管理軟件市場(chǎng)的主流軟件,。 要解決現(xiàn)有C/S應(yīng)用低成本,、快速移植到B/S結(jié)構(gòu)下的應(yīng)用的困境,則必須要解決自動(dòng)且精確的GUI移植,、自動(dòng)的語法邏輯移植,、方便的服務(wù)器端調(diào)試和發(fā)布。
C/S和B/S各有優(yōu)勢(shì),,C/S在圖形的表現(xiàn)能力上以及運(yùn)行的速度上肯定是強(qiáng)于B/S模式的,,不過缺點(diǎn)就是他需要運(yùn)行專門的客戶端,而且更重要的是它不能跨平臺(tái),,用c++在windows下寫的程序肯定是不能在linux下跑的,。而B/S模式就不同了,它不需要專門的客戶端,,只要瀏覽器,,而瀏覽器是隨操作系統(tǒng)就有的,方便就是他的優(yōu)勢(shì)了,。而且,,B/S是基于網(wǎng)頁(yè)語言的,、與操作系統(tǒng)無關(guān),所以跨平臺(tái)也是它的優(yōu)勢(shì),,而且以后隨著網(wǎng)頁(yè)語言以及瀏覽器的進(jìn)步,,B/S在表現(xiàn)能力上的處理以及運(yùn)行的速度上會(huì)越來越快,它的缺點(diǎn)將會(huì)越來越少,。比如,,未來的HTML5,在圖形的渲染方面以及音頻,、文件的處理上已經(jīng)非常強(qiáng)大了,。