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