天天看點

C/S和B/S兩種架構差別

c/s和b/s,是再普通不過的兩種軟體架構方式,都可以進行同樣的業務處理,甚至也可以用相同的方式實作共同的邏輯。既然如此,為何還要區分彼此呢?那我們就來看看二者的差別和聯系。

一、c/s 架構

1、 概念

c/s 架構是一種典型的兩層架構,其全程是client/server,即用戶端伺服器端架構,其用戶端包含一個或多個在使用者的電腦上運作的程式,而伺服器端有兩種,一種是資料庫伺服器端,用戶端通過資料庫連接配接通路伺服器端的資料;另一種是socket伺服器端,伺服器端的程式通過socket與用戶端的程式通信。

c/s 架構也可以看做是胖用戶端架構。因為用戶端需要實作絕大多數的業務邏輯和界面展示。這種架構中,作為用戶端的部分需要承受很大的壓力,因為顯示邏輯和事務處理都包含在其中,通過與資料庫的互動(通常是sql或存儲過程的實作)來達到持久化資料,以此滿足實際項目的需要。

2 、優點和缺點

優點:

2.1 c/s架構的界面和操作可以很豐富。

2.2 安全性能可以很容易保證,實作多層認證也不難。

2.3 由于隻有一層互動,是以響應速度較快。

缺點:

2.4 适用面窄,通常用于區域網路中。

2.5 使用者群固定。由于程式需要安裝才可使用,是以不适合面向一些不可知的使用者。

2.6 維護成本高,發生一次更新,則所有用戶端的程式都需要改變。

二、b/s架構

1、概念

b/s架構的全稱為browser/server,即浏覽器/伺服器結構。browser指的是web浏覽器,極少數事務邏輯在前端實作,但主要事務邏輯在伺服器端實作,browser用戶端,webapp伺服器端和db端構成所謂的三層架構。b/s架構的系統無須特别安裝,隻有web浏覽器即可。

b/s架構中,顯示邏輯交給了web浏覽器,事務處理邏輯在放在了webapp上,這樣就避免了龐大的胖用戶端,減少了用戶端的壓力。因為用戶端包含的邏輯很少,是以也被成為瘦用戶端。

1)用戶端無需安裝,有web浏覽器即可。

2)bs架構可以直接放在廣域網上,通過一定的權限控制實作多客戶通路的目的,互動性較強。

3)bs架構無需更新多個用戶端,更新伺服器即可。

1)在跨浏覽器上,bs架構不盡如人意。

2)表現要達到cs程式的程度需要花費不少精力。

3)在速度和安全性上需要花費巨大的設計成本,這是bs架構的最大問題。

4)用戶端伺服器端的互動是請求-響應模式,通常需要重新整理頁面,這并不是客戶樂意看到的。(在ajax風行後此問題得到了一定程度的緩解)

三、b/s對c/s的改進和擴充

正如前文所說,c/s和b/s都可以進行同樣的業務處理,但是b/s随着internet技術的興起,是對c/s結構的一種改進或者擴充的結構。相對于c/s,b/s具有如下優勢:

1、分布性:可以随時進行查詢、浏覽等業務

2、業務擴充友善:增加網頁即可增加伺服器功能

3、維護簡單友善:改變網頁,即可實作所有使用者同步更新

4、開發簡單,共享性強,成本低,資料可以持久存儲在雲端而不必擔心資料的丢失。

四、主流的web程式應用平台

一個動态網站伺服器平台至少要包括:作業系統+web伺服器+應用程式服務+資料庫。一個優秀的網站伺服器是由多方面因素決定的,如個人喜好、部署費用、安全機制等。而現在主流的三種web平台:asp.net、javaee和lamp各有優缺點,以滿足不同的需要和使用者。三者比較如下:

C/S和B/S兩種架構差別

三種平台的各部分組合:

asp.net:windows server+iis+sql server+asp

javaee:unix+tomcat+oracle+jsp

lamp:linux+apache+mysql+php(推薦)

五、三張圖告訴你web工作原理

1、伺服器不帶應用程式和資料庫,直接請求html檔案

C/S和B/S兩種架構差別

2、伺服器帶應用程式(如php)

C/S和B/S兩種架構差別

3、伺服器帶應用程式和資料庫(流行)

C/S和B/S兩種架構差別

參考:

<a target="_blank" href="http://www.jb51.net/article/56605.htm">http://www.jb51.net/article/56605.htm</a>

<a target="_blank" href="http://jingyan.baidu.com/article/b0b63dbfc9a2874a483070c0.html">http://jingyan.baidu.com/article/b0b63dbfc9a2874a483070c0.html</a>