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