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