B/S架構與C/S架構(略講)
- 2019 年 10 月 10 日
- 筆記
B/S架構基本概念
B/S是Browser/Server,即瀏覽器/伺服器架構。Browser指的是Web瀏覽器,極少數事務邏輯在前端實現,但主要事務邏輯在伺服器端實現。
B/S三層體系結構可以定義為:
l 客戶機上的表示層
l 中間的web伺服器層
l 後端的資料庫伺服器層
在B/S三層體系結構模式下,客戶端不再需要安裝特定的客戶端應用程式,取而代之的是通用瀏覽器軟體,所有的用戶業務邏輯都被部署在新的中間層上。
由於三層體系結構通常是基於web的,所以中間層應用程式通常工作在web伺服器上,被視為web伺服器的一種功能擴展,因此中間層又稱為web服務層。在web伺服器上,通過大量的包含CGI/Servlet是服務端腳本程式頁面,接受來自客戶端瀏覽器的請求,以及完成對資料庫的操作。
B/S架構中,顯示邏輯交給了Web瀏覽器,事務處理邏輯在放在了WebApp上,這樣就避免了龐大的胖客戶端,減少了客戶端的壓力。因為客戶端包含的邏輯很少,因此也被成為瘦客戶端。
服務端編程是指在web伺服器上編寫程式並使之正常運行。在B/S模式下,當用戶下載一個網頁時,如果網頁中包含服務端腳本程式,web伺服器將首次執行網頁中的腳本程式,然後把執行的結果網頁發送到客戶端瀏覽器顯示。
B/S架構優缺點
優點:
(1) 客戶端無需安裝,有Web瀏覽器即可;
(2) BS架構可以直接放在廣域網上,通過一定的許可權控制實現多客戶訪問的目的,交互性較強;
(3) BS架構無需升級多個客戶端,升級伺服器即可。
缺點:
(1) 在跨瀏覽器上,BS架構不盡如人意;
(2) 表現要達到CS程式的程度需要花費不少精力;
(3) 在速度和安全性上需要花費巨大的設計成本,這是BS架構的最大問題;
(4) Browser和Server交互是請求-響應模式,通常需要刷新頁面,這並不是客戶樂意看到的,在AJAX流行後此問題得到了一定程度的緩解。
C/S架構基本概念
C/S是Client/Server,即客戶端/伺服器端架構,一種典型的兩層架構。客戶端包含一個或多個在用戶的電腦上運行的程式。伺服器端有兩種,一種是資料庫伺服器端,客戶端通過資料庫連接訪問伺服器端的數據;另一種是Socket伺服器端,伺服器端的程式通過Socket與客戶端的程式通訊。
因為客戶端需要實現絕大多數的業務邏輯和介面展示。作為客戶端的部分需要承受很大的壓力,因為顯示邏輯和事務處理都包含在其中,通過與資料庫的交互(通常是SQL或存儲過程的實現)來達到持久化數據,以此滿足實際項目的需要。
C/S架構優缺點
優點:
(1) 介面和操作可以很豐富;
(2) 安全性能可以很容易保證,實現多層認證也不難;
(3) 由於只有一層交互,因此響應速度較快。
缺點:
(1) 適用面窄,通常用於區域網中;
(2) 用戶群固定,由於程式需要安裝才可使用,因此不適合面向一些不可知的用戶;
(3) 維護成本高,發生一次升級,則所有客戶端的程式都需要改變。