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