『设计模式』难道你现在还不知道:C/S和B/S
隨著網(wǎng)絡(luò)技術(shù)的不斷發(fā)展,各種各樣的網(wǎng)絡(luò)應(yīng)用程序大爆發(fā)。運(yùn)用最多的架構(gòu)是基于瀏覽器+服務(wù)器的B/S結(jié)構(gòu),另一種是基于的 C/S結(jié)構(gòu)。
概述:
BS = Browser / Server =瀏覽器+服務(wù)器
例子:各大網(wǎng)站,比如CSDN
C/S = Client / Server = 客戶端+服務(wù)器
例子: QQ,迅雷,快播,LOL
B/S結(jié)構(gòu):
在這種架構(gòu)中,客戶端不需要開發(fā)任何界面,而統(tǒng)一的使用Chrome和Firefox等瀏覽器,通過Web瀏覽器先Web服務(wù)器發(fā)送請求,有Web服務(wù)器進(jìn)行處理,并將處理后的結(jié)果逐級傳遞回瀏覽器。這種結(jié)構(gòu)利用不斷成熟和普及的瀏覽器基數(shù)實(shí)現(xiàn)原來的復(fù)雜軟件才能是實(shí)現(xiàn)的強(qiáng)大的功能,從而節(jié)約開發(fā)成本。
優(yōu)點(diǎn)
B/S架構(gòu)的軟件只需要管理服務(wù)器就行了,所有的客戶端只是瀏覽器,根本不需要做任何的維護(hù)。無論用戶的規(guī)模有多大,有多少分支機(jī)構(gòu)都不會增加任何維護(hù)升級的工作量,所有的操作只需要針對服務(wù)器進(jìn)行;如果是異地,只需要把服務(wù)器連接專網(wǎng)即可,實(shí)現(xiàn)遠(yuǎn)程維護(hù)、升級和共享
B/S架構(gòu)的產(chǎn)品明顯體現(xiàn)著更為方便的特性。對一個稍微大一點(diǎn)單位來說,系統(tǒng)管理人員如果需要在幾百甚至上千部電腦之間來回奔跑,效率和工作量是可想而知的,但B/S架構(gòu)的軟件只需要管理服務(wù)器就行了,所有的客戶端只是瀏覽器,根本不需要做任何的維護(hù)。
缺點(diǎn)
由于B/S架構(gòu)管理軟件只安裝在服務(wù)器端(Server)上,網(wǎng)絡(luò)管理人員只需要管理服務(wù)器就行了,網(wǎng)絡(luò)管理人員只需要做硬件維護(hù)。但是,應(yīng)用服務(wù)器運(yùn)行數(shù)據(jù)負(fù)荷較重,一旦發(fā)生服務(wù)器“崩潰”等問題,后果不堪設(shè)想。
C/S結(jié)構(gòu):
Client/Server結(jié)構(gòu)(C/S結(jié)構(gòu))是大家熟知的客戶機(jī)和服務(wù)器結(jié)構(gòu)。它是軟件系統(tǒng)體系結(jié)構(gòu),通過它可以充分利用兩端硬件環(huán)境的優(yōu)勢,將任務(wù)合理分配到Client端和Server端來實(shí)現(xiàn),降低了系統(tǒng)的通訊開銷。目前大多數(shù)應(yīng)用軟件系統(tǒng)都是Client/Server形式的兩層結(jié)構(gòu),由于現(xiàn)在的軟件應(yīng)用系統(tǒng)正在向分布式的Web應(yīng)用發(fā)展,Web和Client/Server 應(yīng)用都可以進(jìn)行同樣的業(yè)務(wù)處理,應(yīng)用不同的模塊共享邏輯組件;因此,內(nèi)部的和外部的用戶都可以訪問新的和現(xiàn)有的應(yīng)用系統(tǒng),通過現(xiàn)有應(yīng)用系統(tǒng)中的邏輯可以擴(kuò)展出新的應(yīng)用系統(tǒng)。這也就是目前應(yīng)用系統(tǒng)的發(fā)展方向
在C/S結(jié)構(gòu)中,應(yīng)用程序分為兩部分:服務(wù)器部分和客戶機(jī)部分。服務(wù)器部分是多個用戶共享的信息與功能,執(zhí)行后臺服務(wù),如控制共享數(shù)據(jù)庫的操作等;客戶機(jī)部分為用戶所專有,負(fù)責(zé)執(zhí)行前臺功能,在出錯提示、在線幫助等方面都有強(qiáng)大的功能,并且可以在子程序間自由切換。
C/S模式的發(fā)展經(jīng)歷了從兩層結(jié)構(gòu)到三層結(jié)構(gòu)
兩層結(jié)構(gòu)由兩部分構(gòu)成:前端是客戶機(jī),主要完成用戶界面顯示,接受數(shù)據(jù)輸入,校驗數(shù)據(jù)有效性,向后臺數(shù)據(jù)庫發(fā)請求,接受返回結(jié)果,處理應(yīng)用邏輯;后端是服務(wù)器,運(yùn)行DBMS,提供數(shù)據(jù)庫的查詢和管理。
兩層結(jié)構(gòu)存在一些不足:主要表現(xiàn)在:系統(tǒng)的可伸縮性差;難以和其它系統(tǒng)進(jìn)行互操作;難以支持多個異構(gòu)數(shù)據(jù)庫;客戶端程序和服務(wù)器端DBMS交互頻繁,網(wǎng)絡(luò)通訊量大;所有客戶機(jī)都需要安裝、配置數(shù)據(jù)庫客戶端軟件,這是一件十分龐雜的工作,等。
基于二層結(jié)構(gòu)的以上不足,三層結(jié)構(gòu)伴隨著中間件技術(shù)的成熟而興起。其核心概念是利用中間件將應(yīng)用分為表示層、業(yè)務(wù)邏輯層和數(shù)據(jù)存儲層三個不同的處理層次。
三層結(jié)構(gòu)較二層結(jié)構(gòu)具有一定的優(yōu)越性:具有良好的開放性;減少整個系統(tǒng)的成本,維護(hù)升級十分方便;系統(tǒng)的可擴(kuò)充性良好;系統(tǒng)管理簡單,可支持異種數(shù)據(jù)庫,有很高的可用性;可以進(jìn)行嚴(yán)密的安全管理
優(yōu)點(diǎn)
最簡單的C/S體系結(jié)構(gòu)的數(shù)據(jù)庫應(yīng)用由兩部分組成,即客戶應(yīng)用程序和數(shù)據(jù)庫服務(wù)器程序。二者可分別稱為前臺程序與后臺程序。運(yùn)行數(shù)據(jù)庫服務(wù)器程序的機(jī)器,也稱為應(yīng)用服務(wù)器。一旦服務(wù)器程序被啟動,就隨時等待響應(yīng)客戶程序發(fā)來的請求;客戶應(yīng)用程序運(yùn)行在用戶自己的電腦上,對應(yīng)于數(shù)據(jù)庫服務(wù)器,可稱為客戶電腦,當(dāng)需要對數(shù)據(jù)庫中的數(shù)據(jù)進(jìn)行任何操作時,客戶程序就自動地尋找服務(wù)器程序,并向其發(fā)出請求,服務(wù)器程序根據(jù)預(yù)定的規(guī)則作出應(yīng)答,送回結(jié)果,應(yīng)用服務(wù)器運(yùn)行數(shù)據(jù)負(fù)荷較輕。
在數(shù)據(jù)庫應(yīng)用中,數(shù)據(jù)的儲存管理功能,是由服務(wù)器程序和客戶應(yīng)用程序分別獨(dú)立進(jìn)行的,并且通常把那些不同的(不管是已知還是未知的)前臺應(yīng)用所不能違反的規(guī)則,在服務(wù)器程序中集中實(shí)現(xiàn),例如訪問者的權(quán)限,編號可以重復(fù)、必須有客戶才能建立訂單這樣的規(guī)則。所有這些,對于工作在前臺程序上的最終用戶,是“透明”的,他們無須過問(通常也無法干涉)背后的過程,就可以完成自己的一切工作。在客戶服務(wù)器架構(gòu)的應(yīng)用中,前臺程序不是非常“瘦小”,麻煩的事情都交給了服務(wù)器和網(wǎng)絡(luò)。在C/S體系下,數(shù)據(jù)庫不能真正成為公共、專業(yè)化的倉庫,它受到獨(dú)立的專門管理。
缺點(diǎn)
客戶端需要安裝專用的客戶端軟件。首先涉及到安裝的工作量,其次任何一臺電腦出問題,如病毒、硬件損壞,都需要進(jìn)行安裝或維護(hù)。特別是有很多分部或?qū)Yu店的情況,不是工作量的問題,而是路程的問題。還有,系統(tǒng)軟件升級時,每一臺客戶機(jī)需要重新安裝,其維護(hù)和升級成本非常高。
比較
| 硬件環(huán)境 | 專用網(wǎng)絡(luò) | 廣域網(wǎng) |
| 安全要求 | 面向相對固定的用戶群信息安全的控制能力強(qiáng) | 面向不可知的用戶群對安全的控制能力相對較弱 |
| 程序架構(gòu) | 更加注重流程系統(tǒng)運(yùn)行速度可較少考慮 | 對安全以及訪問速度都要多重的考慮,是發(fā)展趨勢 |
| 軟件重用 | 差 | 好 |
| 系統(tǒng)維護(hù) | 升級難 | 開銷小,方便升級 |
| 處理問題 | 集中 | 分散 |
| 用戶接口 | 與操作系統(tǒng)關(guān)系密切 | 跨平臺,與瀏覽器相關(guān) |
| 信息流 | 交互性低 | 交互密集 |
文章部分內(nèi)容參考百度百科。
總結(jié)
以上是生活随笔為你收集整理的『设计模式』难道你现在还不知道:C/S和B/S的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 编程语言50年来的变化,我用50种编程语
- 下一篇: 『设计模式』一张图告诉你UML图怎么画❀