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