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