張淼波
摘 要 本文提出了目前流行的兩種基于網(wǎng)絡(luò)的軟件體系結(jié)構(gòu),C/S結(jié)構(gòu)和B/S結(jié)構(gòu),詳細(xì)描述和分析了各自的優(yōu)劣勢,給出了根據(jù)不同應(yīng)用環(huán)境和要求,選擇恰當(dāng)?shù)幕诰W(wǎng)絡(luò)的軟件體系結(jié)構(gòu)的方法和思想。
關(guān)鍵詞 C/S B/S 軟件體系
中圖分類號:TP393 文獻(xiàn)標(biāo)識(shí)碼:A
隨著網(wǎng)絡(luò)技術(shù)的進(jìn)一步發(fā)展,單機(jī)版的軟件已無法完成用戶需求,各種基于局域網(wǎng)、互聯(lián)網(wǎng)的軟件應(yīng)運(yùn)而生。基于網(wǎng)絡(luò)的軟件體系結(jié)構(gòu)目前主要有由美國Borland公司研發(fā)的C/S結(jié)構(gòu)和美國Micro Soft公司研發(fā)B/S結(jié)構(gòu),軟件開發(fā)者應(yīng)根據(jù)用戶實(shí)際需求及硬件環(huán)境選擇合適的體系結(jié)構(gòu)。
1 C/S和B/S 簡介
(1)C/S 結(jié)構(gòu)也就是眾所周知的客戶機(jī)和服務(wù)器結(jié)構(gòu)。其運(yùn)行過程一般為:先由前臺(tái)程序向后臺(tái)程序發(fā)出請求,后臺(tái)程序接收到請求之后根據(jù)事件規(guī)則作出應(yīng)答,并在服務(wù)器中進(jìn)行相關(guān)運(yùn)算及操作后,將運(yùn)算結(jié)果送回。
(2)B/S結(jié)構(gòu)也被稱為Web應(yīng)用。它是在吸收Internet的新興技術(shù)的基礎(chǔ)上,對C/S結(jié)構(gòu)進(jìn)行改進(jìn)而產(chǎn)生的結(jié)構(gòu)。這種結(jié)構(gòu)對客戶端的軟、硬件要求極底。極端情況下,一臺(tái)能上網(wǎng)的電腦加WWW瀏覽器就可以完成數(shù)據(jù)庫的操作和訪問。
2 C/S和B/S 選擇
(1)投入成本。B/S結(jié)構(gòu)軟件一般屬于一次性投資,后期的系統(tǒng)維護(hù)和升級都是免費(fèi),這一點(diǎn)與C/S結(jié)構(gòu)的軟件不同,C/S結(jié)構(gòu)的軟件除了初期投入之外,還需要隨著應(yīng)用范圍及規(guī)模的擴(kuò)大不斷的增加投資,而這種投資是很難受控的,極易形成所謂IT黑洞。
(2)軟件的維護(hù)與升級成本。C/S或B/S的選擇,應(yīng)充分考慮升級維護(hù)成本的核算。對于軟件使用者數(shù)量較少且數(shù)量不會(huì)有大規(guī)模增加或相對物理位置較近的這類網(wǎng)絡(luò)應(yīng)用軟件,我們可以考慮用C/S結(jié)構(gòu),反之亦然。
(3)滿足企業(yè)發(fā)展需求的比較。C/S結(jié)構(gòu)軟件的任何一次升級,都需要在服務(wù)器端和客戶端重新進(jìn)行部署、安裝,這就降低了系統(tǒng)升級的效率,加大了系統(tǒng)升級的成本。而B/S結(jié)構(gòu)軟件的升級只需要更新服務(wù)器程序即可,所以軟件維護(hù)升級的成本及難度與用戶的規(guī)模無關(guān)。同時(shí),由于所有客戶端只是瀏覽器而免除了繁瑣的維護(hù)工作。
(4)數(shù)據(jù)管理安全性及可擴(kuò)充性的比較。由于C/S結(jié)構(gòu)的軟件多數(shù)是通過ODBC數(shù)據(jù)源直接連到數(shù)據(jù)庫的,因此其用戶數(shù)受系統(tǒng)限制,數(shù)據(jù)安全性也不高。C/S結(jié)構(gòu)為了實(shí)現(xiàn)與異地?cái)?shù)據(jù)庫的數(shù)據(jù)保持同步,需要選擇適當(dāng)?shù)臄?shù)據(jù)庫平臺(tái)。大多數(shù)C/S結(jié)構(gòu)軟件都是通過ODBC直接連接到數(shù)據(jù)庫的,為此需要在兩地之間建立“物理”上的數(shù)據(jù)鏈接以保持?jǐn)?shù)據(jù)通訊,在此過程中,會(huì)一直占用中央服務(wù)器的資源,對中央服務(wù)器的要求非常高。
相比之下,B/S結(jié)構(gòu)軟件則簡單得多,B/S結(jié)構(gòu)軟件并不需要保持與數(shù)據(jù)庫的連接。另外,在極其理想的情況下,用戶的數(shù)量基本上不受限制。
(5)不同網(wǎng)絡(luò)硬件環(huán)境的比較。C/S結(jié)構(gòu)軟件需要實(shí)時(shí)與服務(wù)器交互,所以僅適用于局域網(wǎng)內(nèi)部用戶或高速網(wǎng)絡(luò)用戶,而B/S結(jié)構(gòu)軟件以瀏覽、輸入數(shù)據(jù)為主,對于服務(wù)器的實(shí)時(shí)響應(yīng)要求相對較低,所以適用于任何網(wǎng)絡(luò)速率。
3從C/S模式到B/S模式的遷移
Internet在高速發(fā)展的同時(shí),一些企業(yè)也在高速擴(kuò)張,原有的C/S結(jié)構(gòu)的企業(yè)管理應(yīng)用軟件已經(jīng)無法滿足發(fā)展、擴(kuò)張的需要,如何實(shí)現(xiàn)從C/S結(jié)構(gòu)到B/S結(jié)構(gòu)的平穩(wěn)過渡是企業(yè)亟需考慮的問題。
上世紀(jì)九十年代開始,圖形用戶界面(GUI)迅速占領(lǐng)全世界個(gè)人電腦用戶,結(jié)構(gòu)化程序設(shè)計(jì)語言也被4GL(第四代語言)所代替。原來DOS字符界面的應(yīng)用程序移植到GUI環(huán)境,其主體思想是把原代碼中用于界面及相關(guān)操作的代碼剔除,而功能部分代碼與相對應(yīng)的對像建立關(guān)聯(lián),根據(jù)操縱對像的行為,來完成不同功能代碼的執(zhí)行,從而實(shí)現(xiàn)整個(gè)應(yīng)用程序的代碼移植。
而我們的C/S結(jié)構(gòu)的軟件,使用的也是第四代語言(GUI)編寫的,整個(gè)系統(tǒng)就是一個(gè)對像的集合,所有代碼都屬于不同的對像。如果要將C/S結(jié)構(gòu)轉(zhuǎn)換成B/S結(jié)構(gòu),需要換一種開發(fā)工具。而不同的開發(fā)工具,提供給開發(fā)者的接口,很可能是完全不相同的。這就造成如要轉(zhuǎn)換成B/S結(jié)構(gòu),幾乎需要對所有對像的參數(shù)、屬性、事件、方法等進(jìn)行調(diào)整、修改,其難度無異于代碼重寫,這種工作量及代價(jià),是無法想像的。但值得欣喜的是,國內(nèi)已經(jīng)出現(xiàn)了能將C/S結(jié)構(gòu)軟件過渡成B/S結(jié)構(gòu)軟件的產(chǎn)品,可以實(shí)現(xiàn)將Power Builder(PB)寫的應(yīng)用程序自動(dòng)遷移到Web上,成功的實(shí)現(xiàn)了從C/S結(jié)構(gòu)軟件到B/S軟件無縫、無損移植,也算是實(shí)現(xiàn)了軟件移植的一次質(zhì)的飛躍。
綜上所述,用戶在確定使用何種體系結(jié)構(gòu)來開發(fā)軟件時(shí),應(yīng)當(dāng)充分考慮軟件成本、軟件需求、硬件情況及未來軟、硬件升級等一系列情況,盡量避免在較短的時(shí)間內(nèi)對軟件結(jié)構(gòu)進(jìn)行調(diào)整的情況發(fā)生。
4結(jié)束語
通過對B/S結(jié)構(gòu)管理軟件與C/S結(jié)構(gòu)的管理軟件進(jìn)行比較分析,我們可以發(fā)現(xiàn),它們各有優(yōu)缺點(diǎn),隨著網(wǎng)絡(luò)的進(jìn)一步普及,在將來的幾年內(nèi),B/S結(jié)構(gòu)的大型管理軟件的市場有繼續(xù)擴(kuò)大的趨勢,其在管理軟件領(lǐng)域的主導(dǎo)地位不會(huì)改變。
參考文獻(xiàn)
[1] 陳衛(wèi).B/S結(jié)構(gòu)應(yīng)用程序開發(fā)秘籍.國防工業(yè)出版社,2004.7.
[2] 王劍南.java面向?qū)ο驜/S后臺(tái)開發(fā)精粹.清華大學(xué)出版社,2013.4.