C/S架構(gòu)
一、C/S架構(gòu)及其背景
C/S架構(gòu)是一種比較早的軟件架構(gòu),主要應用于局域網(wǎng)內(nèi)。在這之前經(jīng)歷了集中計算模式,隨著計算機網(wǎng)絡的進步與發(fā)展,尤其是可視化工具的應用,出現(xiàn)過兩層C/S和三層C/S架構(gòu),不過一直很流行也比較經(jīng)典的是我們所要研究的兩層C/S架構(gòu)。
C/S架構(gòu)軟件(即客戶機/服務器模式)分為客戶機和服務器兩層:第一層是在客戶機系統(tǒng)上結(jié)合了表示與業(yè)務邏輯,第二層是通過網(wǎng)絡結(jié)合了數(shù)據(jù)庫服務器。簡單的說就是第一層是用戶表示層,第二層是數(shù)據(jù)庫層。
客戶端和服務器直接相連,這兩個組成部分都承擔著重要的角色,第一層的客戶機并不是只有輸入輸出,運算等能力,它可以處理一些計算,數(shù)據(jù)存儲等方面的業(yè)務邏輯事務;第二層的服務器主要承擔事務邏輯的處理,本來事務很重,但是由于客戶機可以分擔一些邏輯事務,所以減輕了服務器的負擔,使得網(wǎng)絡流量增多。
想要使用C/S架構(gòu)的軟件需要下載一個客戶端,安裝后就可以使用。
二、C/S架構(gòu)的優(yōu)點
C/S架構(gòu)既然能在計算機歷史的長河中長盛不衰就必然有其閃光之處。下面將從各個角度分析C/S架構(gòu)的優(yōu)點。
1)客戶端和服務器直接相連
a)點對點的模式使得更安全。
b)可以直接操作本地文本,減少獲取文本的時間和精力。
c)由于直接相連,減少了通信流量,這對于客戶來說可以節(jié)約一大筆費用。
d)直接相連,中間沒有什么阻隔或岔路,所以響應速度快。當通信量少的時候沒什么感覺,但是如果通信量龐大,就不會出現(xiàn)擁堵的現(xiàn)象。
2)客戶端可以處理一些邏輯事務
a)充分利用兩者的硬件設施,避免資源的浪費。
b)為服務器分擔一些邏輯事務,可以進行數(shù)據(jù)處理和數(shù)據(jù)存儲。可以處理復雜的事務流程。
c)客戶端有一套完整應用程序,在出錯提示、在線幫助等方面都有強大的功能,并且可以在子程序間自由切換。
3) 客戶端操作界面
a)可以提高客戶的視覺體驗,滿足客戶需求。
b)客戶端操作界面可以隨意排列,充分滿足客戶的需要,展現(xiàn)特點與個性。
三、C/S架構(gòu)的缺點
經(jīng)過長期的時間檢驗,人們也發(fā)現(xiàn)了C/S存在的不足,下面將前人的觀點整理總結(jié)一下。
1)客戶端
a)只能處理一些功能單一的多系統(tǒng)。
b)C/S架構(gòu)適用于局域網(wǎng),對網(wǎng)速的要求比較高。
c)由于需要安裝客戶端,安裝部署困難,所以不易擴展。
d)若客戶端使用的系統(tǒng)不同,就要針對這些系統(tǒng)分別編寫程序。
e)客戶端界面缺乏通用性,且當業(yè)務更改時就需要更改界面,重新編寫。
f)客戶端需要專門的客戶端程序,比較麻煩,針對點多面廣且不具備網(wǎng)絡條件的用戶群體,不能夠?qū)崿F(xiàn)快速部署安裝和配置。
2)服務器
a)用戶數(shù)增多會出現(xiàn)通信擁堵,服務器響應速度慢等情況。
b)當服務器難當大任時,只能將其廢棄,使用更強大的服務器。
c)當客戶端用戶增多時,服務器難以承擔重負,是名副其實的“胖”客戶端。
d)用戶是通過ODBC連接到數(shù)據(jù)庫的,且每個連接到數(shù)據(jù)庫的用戶都會保持一個ODBC連接,會一直占用中央服務器的資源,對服務器的要求很高。
3)用戶
a)沒有安裝客戶端的外部用戶不能訪問。
b)只有安裝了客戶端才能訪問服務器,所以用戶不能隨時隨地的訪問。
c)用戶是通過ODBC連接到數(shù)據(jù)庫的,所以用戶數(shù)受限,不易擴張。
d)由于針對小范圍的客戶,所以不能實現(xiàn)真正大范圍的信息共享,信息傳達和發(fā)布。
a)需要聘用高素質(zhì)的人員,對其培訓,費用高。
b)初次開發(fā)就需要配備好客戶端,服務器,需要有專業(yè)水準的技術(shù)人員,所以成本高。
a)系統(tǒng)升級維護麻煩,需要更改大量程序,投入大量精力和金錢。
b)業(yè)務擴展或變更時,需要更改程序,客戶端的界面也需要重新更改。
c)初次投入成本后不能一勞永逸,后期需要很多成本,比如服務器的更換,客戶端的更變等。
四、C/S架構(gòu)應用
C/S架構(gòu)的軟件是在是數(shù)不勝數(shù),從辦公的OFFICE,WPS,WINRAR到殺毒軟件如金山,瑞金再到我們的娛樂軟件,如播放器,QQ,微信等,無處不見C/S架構(gòu)。
B/S架構(gòu)
一、B/S架構(gòu)及其背景
隨著Internet和WWW的流行,以往的主機/終端和C/S都無法滿足當前的全球網(wǎng)絡開放、互連、信息隨處可見和信息共享的新要求,于是就出現(xiàn)了B/S型模式,即瀏覽器/服務器結(jié)構(gòu)。它是C/S架構(gòu)的一種改進,可以說屬于三層C/S架構(gòu)。主要是利用了不斷成熟的WWW瀏覽器技術(shù),用通用瀏覽器就實現(xiàn)了原來需要復雜專用軟件才能實現(xiàn)的強大功能,并節(jié)約了開發(fā)成本,是一種全新的軟件系統(tǒng)構(gòu)造技術(shù)。
第一層是瀏覽器,即客戶端,只有簡單的輸入輸出功能,處理極少部分的事務邏輯。由于客戶不需要安裝客戶端,只要有瀏覽器就能上網(wǎng)瀏覽,所以它面向的是大范圍的用戶,所以界面設計得比較簡單,通用。
第二層是WEB服務器,扮演著信息傳送的角色。當用戶想要訪問數(shù)據(jù)庫時,就會首先向WEB服務器發(fā)送請求,WEB服務器統(tǒng)一請求后會向數(shù)據(jù)庫服務器發(fā)送訪問數(shù)據(jù)庫的請求,這個請求是以SQL語句實現(xiàn)的。
第三層是數(shù)據(jù)庫服務器,他扮演著重要的角色,因為它存放著大量的數(shù)據(jù)。當數(shù)據(jù)庫服務器收到了WEB服務器的請求后,會對SQL語句進行處理,并將返回的結(jié)果發(fā)送給WEB服務器,接下來,WEB服務器將收到的數(shù)據(jù)結(jié)果轉(zhuǎn)換為HTML文本形式發(fā)送給瀏覽器,也就是我們打開瀏覽器看到的界面。
B/S架構(gòu)和C/S架構(gòu)不同,瀏覽器不是直接和數(shù)據(jù)庫服務器相連,所以是多對多的結(jié)構(gòu)。因此在此結(jié)構(gòu)下,很適合在廣域網(wǎng)里實現(xiàn)巨大的互聯(lián)網(wǎng),甚至是全球網(wǎng)。有著很強大的信息共享性。
在B/S出現(xiàn)的早期,瀏覽器只能顯示靜態(tài)頁面,得不到良好的交互,不能進行大量的邏輯處理,當時瀏覽器主要用來實現(xiàn)信息的發(fā)布,是一種單向的應用。后來出現(xiàn)了動態(tài)網(wǎng)頁,這里的動態(tài)有三個方面,一是交互,二是動畫,三是數(shù)據(jù)。這樣,瀏覽器的交互性能得到極大提高。頁面也越來越豐富多彩。瀏覽器也能處理部分邏輯事務,所以瀏覽器成為了客戶端,但由于處理的內(nèi)容較少,所以叫“瘦”客戶端。
二、B/S架構(gòu)的優(yōu)點
B/S架構(gòu)是應WEB技術(shù)的飛速發(fā)展而從傳統(tǒng)的C/S架構(gòu)發(fā)展而來,并且一舉成為當今主要的網(wǎng)絡架構(gòu)。目前主要的網(wǎng)站,尤其是商務網(wǎng)站都是基于B/S架構(gòu)建立的。那么我們就來細數(shù)一下B/S架構(gòu)的優(yōu)點,它到底為什么受到大家的青睞。
1)瀏覽器
a)能面對廣大的用戶實現(xiàn)信息傳播共享。
b)瀏覽器只處理一些簡單的邏輯事務,負擔小。
c)頁面的更新能實現(xiàn)同步,所有用戶都能看到。
d)界面設計開發(fā)簡單,對程序員的要求較低,不需要大量的培訓。
e)業(yè)務擴展方便,只需要增加幾個業(yè)務擴展的頁面即可,不需要大量的編程。
f)界面不需要太多的編寫,比較通用,更改界面也比較簡單,所以幾乎不需要維護。
g)由于Web的平臺無關(guān)性,可以從一臺服務器、幾個用戶的工作組級擴展成為擁有成上萬用戶的大型系統(tǒng)。
a)數(shù)據(jù)都集中存放在數(shù)據(jù)庫服務器,所以不存在數(shù)據(jù)不一致現(xiàn)象。
b)能有效地保護數(shù)據(jù)平臺和管理訪問權(quán)限,服務器數(shù)據(jù)庫也很安全。
c)在數(shù)據(jù)庫服務器上不一定使用WINDOWS系統(tǒng),選擇更多,成本更少。
d)如果是異地,只需要把服務器連接專網(wǎng)即可,實現(xiàn)遠程維護、升級和共享。
e)在JAVA這樣的跨平臺語言出現(xiàn)之后,B/S架構(gòu)管理軟件更是方便、快捷、高效。
f)數(shù)據(jù)存放在數(shù)據(jù)庫服務器,客戶端并不存放任何業(yè)務數(shù)據(jù)或者數(shù)據(jù)庫連接信息,所以數(shù)據(jù)比較安全。
g)隨著服務器負載的增加,可以平滑地增加服務器的個數(shù)并建立集群服務器系統(tǒng),然后在各個服務器之間做負載均衡。
a)B/S建立在廣域網(wǎng)上,所需的網(wǎng)速不高。
b)外部的用戶也可以對瀏覽器進行訪問。
c)界面人性化,通用化,不需要多少培訓就能掌握。
d)不需要安裝客戶端,只要能連上網(wǎng),就能隨時隨地的瀏覽頁面。
e)借助Internet強大的信息發(fā)布與信息傳送能力可以有效地解決企業(yè)內(nèi)部的大量不規(guī)則的信息交流。
f)所有的用戶都是通過一個JDBC連接緩沖池連接到數(shù)據(jù)庫的,用戶并不保持對數(shù)據(jù)庫的連接,用戶數(shù)基本上是無限的。
4)成本
a)軟件重用性強,節(jié)省了大量的成本。
b)不需要安裝特殊的軟件,客戶端幾乎零維護。
c)開發(fā)簡單,升級便捷,人員不需要太多培訓,節(jié)省了大量的資金。
d)客戶端幾乎不需要維護,只要盯緊服務器就可以了,所以成本較小。
e)一般只有初期一次性投入成本,有利于軟件項目控制和避免IT黑洞。
f)建立在廣域網(wǎng)之上的, 不必是專門的網(wǎng)絡硬件環(huán)境,例如電話上網(wǎng), 租用設備等,成本較小。
三、B/S架構(gòu)的缺點
雖說B/S架構(gòu)有很多優(yōu)越性,但是也不可避免有些缺陷,不然也不會暴發(fā)究竟使用哪種架構(gòu)的口水戰(zhàn)。不過,在理論上,既然B/S是C/S的改進版,應該克服了C/S的很多缺陷,所以缺點應該不是很多。下面我們來看看實際上是什么情況。
1)客戶端
a)面通用化,不突出個性。
b)頁面需要不斷地動態(tài)刷新,尤其是用戶增多,網(wǎng)速慢得情況,很費時。
c)由于不需要安裝客戶端,客戶端易擴展,還有就是外部用戶也可以訪問,所以B/S面對大量的不可知用戶。
2)服務器
a)用戶增多時,服務器響應速度慢。
b)功能雖然多樣化,但是不能專門化,不能實現(xiàn)復雜的功能。
c)服務器承擔著重要的責任,數(shù)據(jù)負荷較重。一旦發(fā)生服務器“崩潰”等問題,后果不堪設想。
四、B/S架構(gòu)應用
當時在講解典型的C/S架構(gòu)時,提到了了常用的QQ軟件。現(xiàn)在新出來了一個WEBQQ,從WEBQQ名稱中的WEB就不難看出它屬于B/S架構(gòu),是一種瀏覽器服務器結(jié)構(gòu)。事實上也是如此,因為WEBQQ根本不需要安裝客戶端,只需要有瀏覽器就可以進行聊天交互了。
C/S和B/S
一、C/S和B/S關(guān)系概述
B/S架構(gòu)是從C/S架構(gòu)改進而來,可以說是三層C/S架構(gòu),由此可見兩者關(guān)系不一般。B/S從C/S中脫離而出,后來隨著WEB技術(shù)的飛速發(fā)展以及人們對網(wǎng)絡的依賴程度加深,B/S一舉成為當今最流行的網(wǎng)絡架構(gòu)。兩種架構(gòu)都在各自崗位上虎虎生威,它們各有千秋,都是非常重要的網(wǎng)絡架構(gòu)。在響應速度,用戶界面,數(shù)據(jù)安全等方面,C/S強于B/S,但是在業(yè)務擴展和適用www條件下,B/S明顯勝過C/S??梢赃@么說,B/S的強項就是C/S的弱項,反之亦然。它們各有優(yōu)缺點,相互無法取代。
二、C/S和B/S的不同點
1)比較大的差別
1、結(jié)構(gòu)
C/S是兩層架構(gòu),由客戶端和服務器組成,而B/S是三層架構(gòu),由瀏覽器,WEB服務器和數(shù)據(jù)庫服務器組成。
2、邏輯事務處理
C/S架構(gòu)合理地讓客戶端和服務器承擔一部分邏輯事務處理,使得服務器的負擔減輕了,而且客戶端也能進行一些數(shù)據(jù)處理和存儲的功能。B/S架構(gòu)的瀏覽器就是它的客戶端,可是這個客戶端只能進行一些簡單的輸入輸出和信息發(fā)布共享的功能,主要的邏輯事務處理還是要靠服務器,所以服務器的負擔很重。
3、工作原理
C/S架構(gòu)是客戶端和服務器直接相連,實現(xiàn)點對點的通信,B/S是瀏覽器通過WEB服務器向數(shù)據(jù)庫服務器發(fā)送數(shù)據(jù)請求,實現(xiàn)多對多的通信。
4、響應速度
C/S架構(gòu)的客戶端和服務器直接相連,中間沒有任何阻隔,所以相應速度快,尤其是在用戶增多時更加明顯。B/S架構(gòu)相應速度慢,主要的重任在數(shù)據(jù)庫服務器身上,由于B/S架構(gòu)的無限擴展性,當用戶激增,訪問量龐大時,服務器相應速度慢,服務器存在癱瘓的危險。
5、成本
C/S架構(gòu)開發(fā)時,硬件需要一次性購買,費用較高,且需要訓練有素的技術(shù)人員,培訓費用高,而且軟件后期也需要不斷投入大量資金。B/S架構(gòu)只需要一次性投入幾乎可以一勞永逸,有利于軟件項目控制和IT黑洞。
6、維護、升級以及擴展
C/S架構(gòu)一旦有業(yè)務的變更或要升級,客戶端界面就要重新設計,需要投入大量的人力物力。軟件維護也比較麻煩,需要專業(yè)人士進行維護。用戶擴展也比較麻煩,需要安裝客戶端,對軟硬件要求高。B/S架構(gòu)的維護和升級都非常容易,只要更改頁面內(nèi)容或者增減頁面即可,客戶端幾乎是零維護,只需要維護好服務器。所以相對來說更簡易,方便。由于B/S可以隨時隨地的訪問,所以極易擴展。
7、信息共享
C/S架構(gòu)是建立在局域網(wǎng)之上的,面向的是可知的有限用戶,信息共享只在小范圍內(nèi)。B/S架構(gòu)建立在廣域網(wǎng)之上,用戶隨時隨地都可以訪問,外部用戶也可以訪問,尤其是WEB技術(shù)的不斷發(fā)展,B/S面對的是幾乎無限的用戶群體,所以信息共享性很強。
8、客戶端界面
C/S架構(gòu)可以針對不同的功能設計出不同的很有特色的用戶界面,實現(xiàn)個性化。但是一旦業(yè)務改變就需要重新設計,很麻煩。B/S架構(gòu)的用戶界面很通用,不能針對用戶突出個性,但是業(yè)務改變時只需要改變界面內(nèi)容或者增減頁面,很輕松就能實現(xiàn)。
2)小的差別
1、適用的網(wǎng)絡
C/S架構(gòu)是建立在局域網(wǎng)的基礎(chǔ)之上的,局域網(wǎng)之間通過專用服務器提供連接提供服務。B/S架構(gòu)是建立在廣域網(wǎng)的基礎(chǔ)之上,有更大的使用范圍。
2、訪問
C/S架構(gòu)下,用戶需要安裝客戶端才能夠訪問服務器,而B/S架構(gòu)下,用戶可以隨時隨地訪問,只要有網(wǎng)有瀏覽器,方便快捷。
3、數(shù)據(jù)庫連接類型
C/S采用的是ODBC連接,所以只要用戶連接了數(shù)據(jù)庫就一直保持連接不會斷開,所以限制了用戶數(shù),而B/S采用的是JDBC連接,用戶并不保持對數(shù)據(jù)庫的連接,所以用戶數(shù)幾乎是無限的。
4、功能
C/S架構(gòu)能夠?qū)崿F(xiàn)單一的復雜功能,如財政管理等,所以現(xiàn)在大多數(shù)比較大型的ERP系統(tǒng)仍是C/S架構(gòu),B/S架構(gòu)的界面比較通用,所能處理的邏輯事務較少,所以功能較弱。
5、安全性
C/S架構(gòu)建立在局域網(wǎng)之上,面向比較固定的用戶,對安全的要求較高。B/S架構(gòu)建立在廣域網(wǎng)上,面對不可知人群,安全性差。
6、信息流向不同
C/S 程序一般是典型的中央集權(quán)的機械式處理, 交互性相對低B/S 信息 流向可變化, B-B B-C B-G等信息、流向的變化, 更像個交易中心。
7、對技術(shù)人員的要求
C/S的功能比較專業(yè)化,對設計和開發(fā)人員的要求較高,需要專業(yè)的培訓。B/S的界面比較人性化,通用化,所以不需要多高的技能。
-
服務器
+關(guān)注
關(guān)注
12文章
8963瀏覽量
85087 -
軟件
+關(guān)注
關(guān)注
69文章
4707瀏覽量
87091 -
計算機網(wǎng)絡
+關(guān)注
關(guān)注
3文章
335瀏覽量
22101 -
C/S結(jié)構(gòu)
+關(guān)注
關(guān)注
0文章
3瀏覽量
414
發(fā)布評論請先 登錄
相關(guān)推薦
評論