淺談C/S和B/S架構的工做原理及優缺點

淺談C/S和B/S架構的工做原理及優缺點

C/S架構

1、C/S架構及其背景

C/S架構是一種比較早的軟件架構,主要應用於局域網內。在這以前經歷了集中計算模式,隨着計算機網絡的進步與發展,尤爲是可視化工具的應用,出現過兩層C/S和三層C/S架構,不過一直很流行也比較經典的是咱們所要研究的兩層C/S架構程序員

淺談C/S和B/S架構的工做原理及優缺點

C/S架構軟件(即客戶機/服務器模式)分爲客戶機和服務器兩層:第一層是在客戶機系統上結合了表示與業務邏輯,第二層是經過網絡結合了數據庫服務器。簡單的說就是第一層是用戶表示層,第二層是數據庫層。golang

客戶端和服務器直接相連,這兩個組成部分都承擔着重要的角色,第一層的客戶機並非只有輸入輸出,運算等能力,它能夠處理一些計算,數據存儲等方面的業務邏輯事務;第二層的服務器主要承擔事務邏輯的處理,原本事務很重,可是因爲客戶機能夠分擔一些邏輯事務,因此減輕了服務器的負擔,使得網絡流量增多。數據庫

想要使用C/S架構的軟件須要下載一個客戶端,安裝後就可使用編程

須要C/C++ Linux服務器架構師學習資料加羣812855908(資料包括C/C++,Linux,golang技術,Nginx,ZeroMQ,MySQL,Redis,fastdfs,MongoDB,ZK,流媒體,CDN,P2P,K8S,Docker,TCP/IP,協程,DPDK,ffmpeg等),免費分享瀏覽器

淺談C/S和B/S架構的工做原理及優缺點

2、C/S架構的優勢

C/S架構既然能在計算機歷史的長河中長盛不衰就必然有其閃光之處。下面將從各個角度分析C/S架構的優勢。安全

1)客戶端和服務器直接相連服務器

a)點對點的模式使得更安全。

b)能夠直接操做本地文本,減小獲取文本的時間和精力。微信

c)因爲直接相連,減小了通訊流量,這對於客戶來講能夠節約一大筆費用。網絡

d)直接相連,中間沒有什麼阻隔或岔路,因此響應速度快。當通訊量少的時候沒什麼感受,可是若是通訊量龐大,就不會出現擁堵的現象。架構

2)客戶端能夠處理一些邏輯事務

a)充分利用二者的硬件設施,避免資源的浪費。

b)爲服務器分擔一些邏輯事務,能夠進行數據處理和數據存儲。能夠處理複雜的事務流程。

c)客戶端有一套完整應用程序,在出錯提示、在線幫助等方面都有強大的功能,而且能夠在子程序間自由切換。

3) 客戶端操做界面

a)能夠提升客戶的視覺體驗,知足客戶需求。

b)客戶端操做界面能夠隨意排列,充分知足客戶的須要,展示特色與個性。

3、C/S架構的缺點

通過長期的時間檢驗,人們也發現了C/S存在的不足,下面將前人的觀點整理總結一下。
1)客戶端

a)只能處理一些功能單一的多系統。

b)C/S架構適用於局域網,對網速的要求比較高。

c)因爲須要安裝客戶端,安裝部署困難,因此不易擴展。

d)若客戶端使用的系統不一樣,就要針對這些系統分別編寫程序。

e)客戶端界面缺少通用性,且當業務更改時就須要更改界面,從新編寫。

f)客戶端須要專門的客戶端程序,比較麻煩,針對點多面廣且不具有網絡條件的用戶羣體,不可以實現快速部署安裝和配置。

2)服務器

a)用戶數增多會出現通訊擁堵,服務器響應速度慢等狀況。

b)當服務器難當大任時,只能將其廢棄,使用更強大的服務器。

c)當客戶端用戶增多時,服務器難以承擔重負,是名副其實的「胖」客戶端。

d)用戶是經過ODBC鏈接到數據庫的,且每一個鏈接到數據庫的用戶都會保持一個ODBC鏈接,會一直佔用中央服務器的資源,對服務器的要求很高。

3)用戶

a)沒有安裝客戶端的外部用戶不能訪問。

b)只有安裝了客戶端才能訪問服務器,因此用戶不能隨時隨地的訪問。

c)用戶是經過ODBC鏈接到數據庫的,因此用戶數受限,不易擴張。

d)因爲針對小範圍的客戶,因此不能實現真正大範圍的信息共享,信息傳達和發佈。

a)須要聘用高素質的人員,對其培訓,費用高。

b)初次開發就須要配備好客戶端,服務器,須要有專業水準的技術人員,因此成本高。

a)系統升級維護麻煩,須要更改大量程序,投入大量精力和金錢。

b)業務擴展或變動時,須要更改程序,客戶端的界面也須要從新更改。

c)初次投入成本後不能一勞永逸,後期須要不少成本,好比服務器的更換,客戶端的更變等。

4、C/S架構應用

C/S架構的軟件是在是數不勝數,從辦公的OFFICE,WPS,WINRAR到殺毒軟件如金山,瑞金再到咱們的娛樂軟件,如播放器,QQ,微信等,無處不見C/S架構。

B/S架構

1、B/S架構及其背景

隨着Internet和WWW的流行,以往的主機/終端和C/S都沒法知足當前的全球網絡開放、互連、信息隨處可見和信息共享的新要求,因而就出現了B/S型模式,即瀏覽器/服務器結構。它是C/S架構的一種改進,能夠說屬於三層C/S架構。主要是利用了不斷成熟的WWW瀏覽器技術,用通用瀏覽器就實現了原來須要複雜專用軟件才能實現的強大功能,並節約了開發成本,是一種全新的軟件系統構造技術。

淺談C/S和B/S架構的工做原理及優缺點

第一層是瀏覽器,即客戶端,只有簡單的輸入輸出功能,處理極少部分的事務邏輯。因爲客戶不須要安裝客戶端,只要有瀏覽器就能上網瀏覽,因此它面向的是大範圍的用戶,因此界面設計得比較簡單,通用。

第二層是WEB服務器,扮演着信息傳送的角色。當用戶想要訪問數據庫時,就會首先向WEB服務器發送請求,WEB服務器統一請求後會向數據庫服務器發送訪問數據庫的請求,這個請求是以SQL語句實現的。

第三層是數據庫服務器,他扮演着重要的角色,由於它存放着大量的數據。當數據庫服務器收到了WEB服務器的請求後,會對SQL語句進行處理,並將返回的結果發送給WEB服務器,接下來,WEB服務器將收到的數據結果轉換爲HTML文本形式發送給瀏覽器,也就是咱們打開瀏覽器看到的界面。

B/S架構和C/S架構不一樣,瀏覽器不是直接和數據庫服務器相連,因此是多對多的結構。所以在此結構下,很適合在廣域網裏實現巨大的互聯網,甚至是全球網。有着很強大的信息共享性。

在B/S出現的早期,瀏覽器只能顯示靜態頁面,得不到良好的交互,不能進行大量的邏輯處理,當時瀏覽器主要用來實現信息的發佈,是一種單向的應用。後來出現了動態網頁,這裏的動態有三個方面,一是交互,二是動畫,三是數據。這樣,瀏覽器的交互性能獲得極大提升。頁面也愈來愈豐富多彩。瀏覽器也能處理部分邏輯事務,因此瀏覽器成爲了客戶端,但因爲處理的內容較少,因此叫「瘦」客戶端

2、B/S架構的優勢

B/S架構是應WEB技術的飛速發展而從傳統的C/S架構發展而來,而且一舉成爲當今主要的網絡架構。目前主要的網站,尤爲是商務網站都是基於B/S架構創建的。那麼咱們就來細數一下B/S架構的優勢,它到底爲何受到你們的青睞。
1)瀏覽器

a)能面對廣大的用戶實現信息傳播共享。

b)瀏覽器只處理一些簡單的邏輯事務,負擔小。

c)頁面的更新能實現同步,全部用戶都能看到。

d)界面設計開發簡單,對程序員的要求較低,不須要大量的培訓。

e)業務擴展方便,只須要增長几個業務擴展的頁面便可,不須要大量的編程。

f)界面不須要太多的編寫,比較通用,更改界面也比較簡單,因此幾乎不須要維護。

g)因爲Web的平臺無關性,能夠從一臺服務器、幾個用戶的工做組級擴展成爲擁有成上萬用戶的大型系統。

a)數據都集中存放在數據庫服務器,因此不存在數據不一致現象。

b)能有效地保護數據平臺和管理訪問權限,服務器數據庫也很安全。

c)在數據庫服務器上不必定使用WINDOWS系統,選擇更多,成本更少。

d)若是是異地,只須要把服務器鏈接專網便可,實現遠程維護、升級和共享。

e)在JAVA這樣的跨平臺語言出現以後,B/S架構管理軟件更是方便、快捷、高效。

f)數據存放在數據庫服務器,客戶端並不存聽任何業務數據或者數據庫鏈接信息,因此數據比較安全。

g)隨着服務器負載的增長,能夠平滑地增長服務器的個數並創建集羣服務器系統,而後在各個服務器之間作負載均衡。

a)B/S創建在廣域網上,所需的網速不高。

b)外部的用戶也能夠對瀏覽器進行訪問。

c)界面人性化,通用化,不須要多少培訓就能掌握。

d)不須要安裝客戶端,只要能連上網,就能隨時隨地的瀏覽頁面。

e)藉助Internet強大的信息發佈與信息傳送能力能夠有效地解決企業內部的大量不規則的信息交流。

f)全部的用戶都是經過一個JDBC鏈接緩衝池鏈接到數據庫的,用戶並不保持對數據庫的鏈接,用戶數基本上是無限的。

4)成本

a)軟件重用性強,節省了大量的成本。

b)不須要安裝特殊的軟件,客戶端幾乎零維護。

c)開發簡單,升級便捷,人員不須要太多培訓,節省了大量的資金。

d)客戶端幾乎不須要維護,只要盯緊服務器就能夠了,因此成本較小。

e)通常只有初期一次性投入成本,有利於軟件項目控制和避免IT黑洞。

f)創建在廣域網之上的, 沒必要是專門的網絡硬件環境,例如電話上網, 租用設備等,成本較小。

3、B/S架構的缺點

雖然說B/S架構有不少優越性,可是也不可避免有些缺陷,否則也不會暴發究竟使用哪一種架構的口水戰。不過,在理論上,既然B/S是C/S的改進版,應該克服了C/S的不少缺陷,因此缺點應該不是不少。下面咱們來看看其實是什麼狀況。
1)客戶端

a)面通用化,不突出個性。

b)頁面須要不斷地動態刷新,尤爲是用戶增多,網速慢得狀況,很費時。

c)因爲不須要安裝客戶端,客戶端易擴展,還有就是外部用戶也能夠訪問,因此B/S面對大量的不可知用戶。

2)服務器

a)用戶增多時,服務器響應速度慢。

b)功能雖然多樣化,可是不能專門化,不能實現複雜的功能。

c)服務器承擔着重要的責任,數據負荷較重。一旦發生服務器「崩潰」等問題,後果不堪設想。

4、B/S架構應用

當時在講解典型的C/S架構時,提到了了經常使用的QQ軟件。如今新出來了一個WEBQQ,從WEBQQ名稱中的WEB就不難看出它屬於B/S架構,是一種瀏覽器服務器結構。事實上也是如此,由於WEBQQ根本不須要安裝客戶端,只須要有瀏覽器就能夠進行聊天交互了。

C/S和B/S

1、C/S和B/S關係概述

B/S架構是從C/S架構改進而來,能夠說是三層C/S架構,因而可知二者關係不通常。B/S從C/S中脫離而出,後來隨着WEB技術的飛速發展以及人們對網絡的依賴程度加深,B/S一舉成爲當今最流行的網絡架構。兩種架構都在各自崗位上虎虎生威,它們各有千秋,都是很是重要的網絡架構。在響應速度,用戶界面,數據安全等方面,C/S強於B/S,可是在業務擴展和適用www條件下,B/S明顯賽過C/S。能夠這麼說,B/S的強項就是C/S的弱項,反之亦然。它們各有優缺點,相互沒法取代。

2、C/S和B/S的不一樣點

淺談C/S和B/S架構的工做原理及優缺點

1)比較大的差異
一、結構

C/S是兩層架構,由客戶端和服務器組成,而B/S是三層架構,由瀏覽器,WEB服務器和數據庫服務器組成。

二、邏輯事務處理
C/S架構合理地讓客戶端和服務器承擔一部分邏輯事務處理,使得服務器的負擔減輕了,並且客戶端也能進行一些數據處理和存儲的功能。B/S架構的瀏覽器就是它的客戶端,但是這個客戶端只能進行一些簡單的輸入輸出和信息發佈共享的功能,主要的邏輯事務處理仍是要靠服務器,因此服務器的負擔很重。

三、工做原理
C/S架構是客戶端和服務器直接相連,實現點對點的通訊,B/S是瀏覽器經過WEB服務器向數據庫服務器發送數據請求,實現多對多的通訊。

四、響應速度
C/S架構的客戶端和服務器直接相連,中間沒有任何阻隔,因此相應速度快,尤爲是在用戶增多時更加明顯。B/S架構相應速度慢,主要的重任在數據庫服務器身上,因爲B/S架構的無限擴展性,當用戶激增,訪問量龐大時,服務器相應速度慢,服務器存在癱瘓的危險。

五、成本
C/S架構開發時,硬件須要一次性購買,費用較高,且須要訓練有素的技術人員,培訓費用高,並且軟件後期也須要不斷投入大量資金。B/S架構只須要一次性投入幾乎能夠一勞永逸,有利於軟件項目控制和IT黑洞。

六、維護、升級以及擴展
C/S架構一旦有業務的變動或要升級,客戶端界面就要從新設計,須要投入大量的人力物力。軟件維護也比較麻煩,須要專業人士進行維護。用戶擴展也比較麻煩,須要安裝客戶端,對軟硬件要求高。B/S架構的維護和升級都很是容易,只要更改頁面內容或者增減頁面便可,客戶端幾乎是零維護,只須要維護好服務器。因此相對來講更簡易,方便。因爲B/S能夠隨時隨地的訪問,因此極易擴展。

七、信息共享
C/S架構是創建在局域網之上的,面向的是可知的有限用戶,信息共享只在小範圍內。B/S架構創建在廣域網之上,用戶隨時隨地均可以訪問,外部用戶也能夠訪問,尤爲是WEB技術的不斷髮展,B/S面對的是幾乎無限的用戶羣體,因此信息共享性很強。

八、客戶端界面
C/S架構能夠針對不一樣的功能設計出不一樣的頗有特點的用戶界面,實現個性化。可是一旦業務改變就須要從新設計,很麻煩。B/S架構的用戶界面很通用,不能針對用戶突出個性,可是業務改變時只須要改變界面內容或者增減頁面,很輕鬆就能實現。

2)小的差異
一、適用的網絡
C/S架構是創建在局域網的基礎之上的,局域網之間經過專用服務器提供鏈接提供服務。B/S架構是創建在廣域網的基礎之上,有更大的使用範圍。

二、訪問
C/S架構下,用戶須要安裝客戶端纔可以訪問服務器,而B/S架構下,用戶能夠隨時隨地訪問,只要有網有瀏覽器,方便快捷。

三、數據庫鏈接類型

C/S採用的是ODBC鏈接,因此只要用戶鏈接了數據庫就一直保持鏈接不會斷開,因此限制了用戶數,而B/S採用的是JDBC鏈接,用戶並不保持對數據庫的鏈接,因此用戶數幾乎是無限的。

四、功能
C/S架構可以實現單一的複雜功能,如財政管理等,因此如今大多數比較大型的ERP系統還是C/S架構,B/S架構的界面比較通用,所能處理的邏輯事務較少,因此功能較弱。

五、安全性
C/S架構創建在局域網之上,面向比較固定的用戶,對安全的要求較高。B/S架構創建在廣域網上,面對不可知人羣,安全性差。

六、信息流向不一樣
C/S 程序通常是典型的中央集權的機械式處理, 交互性相對低B/S 信息 流向可變化, B-B B-C B-G等信息、流向的變化, 更像個交易中心。

七、對技術人員的要求C/S的功能比較專業化,對設計和開發人員的要求較高,須要專業的培訓。B/S的界面比較人性化,通用化,因此不須要多高的技能。

相關文章
相關標籤/搜索