- Java Web從入門到精通(第2版)
- 明日科技
- 1420字
- 2020-11-28 17:38:12
1.1 程序開發(fā)體系結(jié)構(gòu)
視頻講解:光盤\TM\lx\1\01程序開發(fā)體系結(jié)構(gòu).mp4
隨著網(wǎng)絡(luò)技術(shù)的不斷發(fā)展,單機的軟件程序已難以滿足網(wǎng)絡(luò)計算的需要。為此,各種各樣的網(wǎng)絡(luò)程序開發(fā)體系結(jié)構(gòu)應(yīng)運而生。其中,運用最多的網(wǎng)絡(luò)應(yīng)用程序開發(fā)體系結(jié)構(gòu)可以分為兩種,一種是基于客戶端/服務(wù)器的C/S結(jié)構(gòu),另一種是基于瀏覽器/服務(wù)器的B/S結(jié)構(gòu)。下面進行詳細介紹。
1.1.1 C/S體系結(jié)構(gòu)介紹
C/S是Client/Server的縮寫,即客戶端/服務(wù)器結(jié)構(gòu)。在這種結(jié)構(gòu)中,服務(wù)器通常采用高性能的PC機或工作站,并采用大型數(shù)據(jù)庫系統(tǒng)(如Oracle或SQL Server),客戶端則需要安裝專用的客戶端軟件,如圖1.1所示。這種結(jié)構(gòu)可以充分利用兩端硬件環(huán)境的優(yōu)勢,將任務(wù)合理地分配到客戶端和服務(wù)器,從而降低了系統(tǒng)的通信開銷。在2000年以前,C/S結(jié)構(gòu)占據(jù)網(wǎng)絡(luò)程序開發(fā)領(lǐng)域的主流。

圖1.1 C/S體系結(jié)構(gòu)
1.1.2 B/S體系結(jié)構(gòu)介紹
B/S是Brower/Server的縮寫,即瀏覽器/服務(wù)器結(jié)構(gòu)。在這種結(jié)構(gòu)中,客戶端不需要開發(fā)任何用戶界面,而是通過Web瀏覽器(如IE和Firefox等)向Web服務(wù)器發(fā)送請求,由Web服務(wù)器進行處理,并將處理結(jié)果逐級傳回客戶端,如圖1.2所示。這種結(jié)構(gòu)利用不斷成熟和普及的瀏覽器技術(shù)來實現(xiàn)原來需要復(fù)雜專用軟件才能實現(xiàn)的強大功能,從而節(jié)約了開發(fā)成本,是一種全新的軟件體系結(jié)構(gòu)。B/S體系結(jié)構(gòu)已經(jīng)成為當(dāng)今應(yīng)用軟件的首選體系結(jié)構(gòu)。

圖1.2 B/S體系結(jié)構(gòu)
說明
B/S由美國微軟公司研發(fā),C/S由美國Borland公司最早研發(fā)。
1.1.3 兩種體系結(jié)構(gòu)的比較
C/S結(jié)構(gòu)和B/S結(jié)構(gòu)是當(dāng)今世界網(wǎng)絡(luò)程序開發(fā)體系結(jié)構(gòu)的兩大主流。目前,這兩種結(jié)構(gòu)都有自己的市場份額和客戶群。但是,這兩種體系結(jié)構(gòu)又各有各的優(yōu)點和缺點,下面將從3個方面進行比較說明。
1.開發(fā)和維護成本方面
C/S結(jié)構(gòu)的開發(fā)和維護成本都比B/S高。采用C/S結(jié)構(gòu)時,對于不同客戶端要開發(fā)不同的程序,而且軟件的安裝、調(diào)試和升級均需要在所有的客戶機上進行。例如,如果一個企業(yè)共有10個客戶站點使用一套C/S結(jié)構(gòu)的軟件,則這10個客戶站點都需要安裝客戶端程序。當(dāng)這套軟件進行了哪怕很微小的改動后,系統(tǒng)維護員都必須將客戶端原有的軟件卸載,再安裝新的版本并進行配置,最可怕的是客戶端的維護工作必須不折不扣地進行10次。若某個客戶端忘記進行這樣的更新,則該客戶端將會因軟件版本不一致而無法工作。而B/S結(jié)構(gòu)的軟件,則不必在客戶端進行安裝及維護。如果將前面企業(yè)C/S結(jié)構(gòu)的軟件換成B/S結(jié)構(gòu),則在軟件升級后,系統(tǒng)維護員只需要將服務(wù)器的軟件升級到最新版本,對于其他客戶端,只要重新登錄系統(tǒng),即可使用最新版本的軟件。
2.客戶端負載
C/S結(jié)構(gòu)的客戶端不僅負責(zé)與用戶的交互,收集用戶信息,而且還需要完成通過網(wǎng)絡(luò)向服務(wù)器請求對數(shù)據(jù)庫、電子表格或文檔等信息的處理工作。由此可見,應(yīng)用程序的功能越復(fù)雜,客戶端程序也就越龐大,這也給軟件的維護工作帶來了很大的困難。而B/S結(jié)構(gòu)的客戶端把事務(wù)處理邏輯部分交給了服務(wù)器,由服務(wù)器進行處理,客戶端只需要進行顯示,這樣將使應(yīng)用程序服務(wù)器的運行數(shù)據(jù)負荷較重,一旦發(fā)生服務(wù)器“崩潰”等問題,后果將不堪設(shè)想。因此,許多單位都備有數(shù)據(jù)庫存儲服務(wù)器,以防萬一。
3.安全性
C/S結(jié)構(gòu)適用于專人使用的系統(tǒng),可以通過嚴(yán)格的管理派發(fā)軟件,達到保證系統(tǒng)安全的目的,這樣的軟件相對來說安全性比較高。而對于B/S結(jié)構(gòu)的軟件,由于使用的人數(shù)較多且不固定,相對來說安全性就會低些。
由此可見,B/S相對于C/S來說具有更多的優(yōu)勢,現(xiàn)今大量的應(yīng)用程序開始應(yīng)用B/S結(jié)構(gòu),許多軟件公司也爭相開發(fā)B/S版的軟件,也就是Web應(yīng)用程序。隨著Internet的發(fā)展,基于HTTP協(xié)議和HTML標(biāo)準(zhǔn)的Web應(yīng)用呈幾何數(shù)量級的增長,而這些Web應(yīng)用正是由各種Web技術(shù)所開發(fā)的。
- 深入理解Bootstrap
- INSTANT FreeMarker Starter
- Python Geospatial Development(Second Edition)
- Eclipse Plug-in Development:Beginner's Guide(Second Edition)
- 深入淺出RxJS
- Java:High-Performance Apps with Java 9
- C語言程序設(shè)計
- HTML5與CSS3基礎(chǔ)教程(第8版)
- Java Web開發(fā)詳解
- Python爬蟲、數(shù)據(jù)分析與可視化:工具詳解與案例實戰(zhàn)
- Visual Basic 6.0程序設(shè)計實驗教程
- Hands-On Kubernetes on Windows
- Learning Splunk Web Framework
- JavaScript悟道
- iOS開發(fā)項目化入門教程