- Java Web開發(fā)學(xué)習(xí)手冊(cè)
- 朱曉 盧瀚 王國輝等編著
- 1146字
- 2018-12-27 18:51:57
1.4 網(wǎng)絡(luò)程序開發(fā)體系結(jié)構(gòu)
隨著網(wǎng)絡(luò)技術(shù)的不斷發(fā)展,單機(jī)的軟件程序難以滿足網(wǎng)絡(luò)計(jì)算的需要,各種網(wǎng)絡(luò)程序開發(fā)體系結(jié)構(gòu)應(yīng)運(yùn)而生。其中運(yùn)用最多的網(wǎng)絡(luò)應(yīng)用程序開發(fā)體系結(jié)構(gòu)可以分為基于客戶端/服務(wù)器的C/S結(jié)構(gòu)和基于瀏覽器/服務(wù)器的B/S結(jié)構(gòu)。
1.4.1 C/S結(jié)構(gòu)
在C/S結(jié)構(gòu)中服務(wù)器通常采用高性能的PC或工作站,并采用大型數(shù)據(jù)庫系統(tǒng)(如Oracle或SQL Server);客戶端則需要安裝專用的客戶端軟件,如圖1-14所示。這種結(jié)構(gòu)可以充分利用兩端硬件環(huán)境的優(yōu)勢(shì),將任務(wù)合理地分配到客戶端和服務(wù)器,從而降低了系統(tǒng)的通信開銷。在2000年以前,該結(jié)構(gòu)占據(jù)網(wǎng)絡(luò)程序開發(fā)領(lǐng)域的主流。
1.4.2 B/S結(jié)構(gòu)
在B/S結(jié)構(gòu)中客戶端不需要開發(fā)任何用戶界面,而統(tǒng)一采用IE或火狐等瀏覽器。通過Web瀏覽器向Web服務(wù)器發(fā)送請(qǐng)求,由Web服務(wù)器處理并將處理結(jié)果逐級(jí)傳回客戶端,如圖1-15所示。

圖1-14 C/S體系結(jié)構(gòu)

圖1-15 B/S體系結(jié)構(gòu)
這種結(jié)構(gòu)利用不斷成熟和普及的瀏覽器技術(shù)實(shí)現(xiàn)原來需要復(fù)雜專用軟件才能實(shí)現(xiàn)的強(qiáng)大功能,從而節(jié)約了開發(fā)成本。作為一種全新的軟件體系結(jié)構(gòu),已經(jīng)成為當(dāng)今應(yīng)用軟件的首選體系結(jié)構(gòu)。
學(xué)習(xí)手冊(cè)提示
B/S由微軟公司首次推出,C/S由Borland公司最早研發(fā)成功。
1.4.3 B/S與C/S的區(qū)別
C/S和B/S結(jié)構(gòu)是當(dāng)今世界網(wǎng)絡(luò)程序開發(fā)體系結(jié)構(gòu)的兩大主流,目前二者都有自己的市場(chǎng)份額和客戶群,其優(yōu)點(diǎn)和缺點(diǎn)如下。
(1)開發(fā)和維護(hù)成本
C/S結(jié)構(gòu)的開發(fā)和維護(hù)成本都比B/S高,采用這種結(jié)構(gòu)必須為不同客戶端開發(fā)不同的程序,而且軟件的安裝、調(diào)試和升級(jí)均要在所有的客戶端上完成。例如,如果一個(gè)企業(yè)共有10個(gè)客戶端使用一套C/S結(jié)構(gòu)的軟件,則都需要安裝客戶端程序。當(dāng)這套軟件進(jìn)行即使微小的改動(dòng)后,系統(tǒng)維護(hù)員都必須卸載客戶端原有的軟件,然后安裝新的版本并配置,維護(hù)工作必須進(jìn)行10次。而B/S結(jié)構(gòu)的軟件則不必在客戶端安裝及維護(hù)在軟件升級(jí)后系統(tǒng)維護(hù)員只需要將服務(wù)器的軟件升級(jí)到最新版本,所有客戶端只要重新登錄系統(tǒng)即可使用最新版本的軟件。
(2)客戶端負(fù)載
C/S的客戶端不僅負(fù)責(zé)與用戶的交互,收集用戶信息,而且還需要通過網(wǎng)絡(luò)向服務(wù)器發(fā)送請(qǐng)求處理數(shù)據(jù)庫、電子表格或文檔等。由此應(yīng)用程序的功能越復(fù)雜,客戶端程序也就越龐大,這也給軟件的維護(hù)工作帶來了很大的困難。而B/S結(jié)構(gòu)的客戶端把事務(wù)處理邏輯部分交給服務(wù)器處理,客戶端只需要顯示,這樣將使應(yīng)用程序服務(wù)器的運(yùn)行數(shù)據(jù)負(fù)荷較重。一旦發(fā)生服務(wù)器崩潰等問題,后果不堪設(shè)想。因此許多單位都備有數(shù)據(jù)庫存儲(chǔ)服務(wù)器,以防萬一。
(3)安全性
C/S結(jié)構(gòu)適用于專人使用的系統(tǒng),可以通過嚴(yán)格的管理派發(fā)軟件達(dá)到保證系統(tǒng)安全的目的;B/S結(jié)構(gòu)的軟件由于使用的人數(shù)較多,且不固定,相對(duì)來說安全性就會(huì)低些。
B/S相對(duì)于C/S具有更多的優(yōu)勢(shì),現(xiàn)今大量應(yīng)用程序開始轉(zhuǎn)移到應(yīng)用B/S結(jié)構(gòu)。許多軟件公司也爭(zhēng)相開發(fā)B/S版的軟件,即Web應(yīng)用程序。隨著Internet的發(fā)展,基于HTTP協(xié)議和HTML標(biāo)準(zhǔn)的Web應(yīng)用呈幾何數(shù)量級(jí)的增長(zhǎng),而這些Web應(yīng)用又是由各種Web技術(shù)開發(fā)。
- 摩登創(chuàng)客:與智能手機(jī)和平板電腦共舞
- MATLAB圖像處理超級(jí)學(xué)習(xí)手冊(cè)
- Java Web開發(fā)之道
- Java虛擬機(jī)字節(jié)碼:從入門到實(shí)戰(zhàn)
- MATLAB定量決策五大類問題
- Unity 5.x By Example
- 程序員修煉之道:通向務(wù)實(shí)的最高境界(第2版)
- Learning Python Design Patterns
- Python算法指南:程序員經(jīng)典算法分析與實(shí)現(xiàn)
- SQL Server數(shù)據(jù)庫管理與開發(fā)兵書
- Visual C#.NET Web應(yīng)用程序設(shè)計(jì)
- Hands-On Nuxt.js Web Development
- C語言程序設(shè)計(jì)
- PHP高性能開發(fā):基礎(chǔ)、框架與項(xiàng)目實(shí)戰(zhàn)
- 深入淺出Rust