C/S和B/S支救,是再普通不過(guò)的兩種軟件架構(gòu)方式抢野,都可以進(jìn)行同樣的業(yè)務(wù)處理,甚至也可以用相同的方式實(shí)現(xiàn)共同的邏輯各墨。既然如此指孤,為何還要區(qū)分彼此呢?那我們就來(lái)看看二者的區(qū)別和聯(lián)系贬堵。
一恃轩、C/S 架構(gòu)
1、 概念
C/S 架構(gòu)是一種典型的兩層架構(gòu)黎做,其全程是Client/Server叉跛,即客戶端服務(wù)器端架構(gòu),其客戶端包含一個(gè)或多個(gè)在用戶的電腦上運(yùn)行的程序蒸殿,而服務(wù)器端有兩種筷厘,一種是數(shù)據(jù)庫(kù)服務(wù)器端鸣峭,客戶端通過(guò)數(shù)據(jù)庫(kù)連接訪問(wèn)服務(wù)器端的數(shù)據(jù);另一種是Socket服務(wù)器端酥艳,服務(wù)器端的程序通過(guò)Socket與客戶端的程序通信摊溶。
C/S 架構(gòu)也可以看做是胖客戶端架構(gòu)。因?yàn)榭蛻舳诵枰獙?shí)現(xiàn)絕大多數(shù)的業(yè)務(wù)邏輯和界面展示玖雁。這種架構(gòu)中更扁,作為客戶端的部分需要承受很大的壓力,因?yàn)轱@示邏輯和事務(wù)處理都包含在其中赫冬,通過(guò)與數(shù)據(jù)庫(kù)的交互(通常是SQL或存儲(chǔ)過(guò)程的實(shí)現(xiàn))來(lái)達(dá)到持久化數(shù)據(jù)浓镜,以此滿足實(shí)際項(xiàng)目的需要。
2 劲厌、優(yōu)點(diǎn)和缺點(diǎn)
優(yōu)點(diǎn):
2.1 C/S架構(gòu)的界面和操作可以很豐富膛薛。
2.2 安全性能可以很容易保證,實(shí)現(xiàn)多層認(rèn)證也不難补鼻。
2.3 由于只有一層交互哄啄,因此響應(yīng)速度較快。
缺點(diǎn):
2.4 適用面窄风范,通常用于局域網(wǎng)中咨跌。
2.5 用戶群固定。由于程序需要安裝才可使用硼婿,因此不適合面向一些不可知的用戶锌半。
2.6 維護(hù)成本高,發(fā)生一次升級(jí)寇漫,則所有客戶端的程序都需要改變刊殉。
二、B/S架構(gòu)
1州胳、概念
B/S架構(gòu)的全稱為Browser/Server记焊,即瀏覽器/服務(wù)器結(jié)構(gòu)。Browser指的是Web瀏覽器栓撞,極少數(shù)事務(wù)邏輯在前端實(shí)現(xiàn)遍膜,但主要事務(wù)邏輯在服務(wù)器端實(shí)現(xiàn),Browser客戶端瓤湘,WebApp服務(wù)器端和DB端構(gòu)成所謂的三層架構(gòu)瓢颅。B/S架構(gòu)的系統(tǒng)無(wú)須特別安裝,只有Web瀏覽器即可岭粤。
B/S架構(gòu)中惜索,顯示邏輯交給了Web瀏覽器,事務(wù)處理邏輯在放在了WebApp上剃浇,這樣就避免了龐大的胖客戶端巾兆,減少了客戶端的壓力猎物。因?yàn)榭蛻舳税倪壿嫼苌伲虼艘脖怀蔀槭菘蛻舳藡雰浩鹈鹔ttp://www.bbqmw.net/qm_yeqm角塑。
2 蔫磨、優(yōu)點(diǎn)和缺點(diǎn)
優(yōu)點(diǎn):
1)客戶端無(wú)需安裝,有Web瀏覽器即可圃伶。
2)BS架構(gòu)可以直接放在廣域網(wǎng)上堤如,通過(guò)一定的權(quán)限控制實(shí)現(xiàn)多客戶訪問(wèn)的目的,交互性較強(qiáng)窒朋。
3)BS架構(gòu)無(wú)需升級(jí)多個(gè)客戶端搀罢,升級(jí)服務(wù)器即可。
缺點(diǎn):
1)在跨瀏覽器上侥猩,BS架構(gòu)不盡如人意榔至。
2)表現(xiàn)要達(dá)到CS程序的程度需要花費(fèi)不少精力。
3)在速度和安全性上需要花費(fèi)巨大的設(shè)計(jì)成本欺劳,這是BS架構(gòu)的最大問(wèn)題唧取。
4)客戶端服務(wù)器端的交互是請(qǐng)求-響應(yīng)模式,通常需要刷新頁(yè)面划提,這并不是客戶樂(lè)意看到的枫弟。(在Ajax風(fēng)行后此問(wèn)題得到了一定程度的緩解)
三、B/S對(duì)C/S的改進(jìn)和擴(kuò)展
正如前文所說(shuō)鹏往,C/S和B/S都可以進(jìn)行同樣的業(yè)務(wù)處理淡诗,但是B/S隨著Internet技術(shù)的興起,是對(duì)C/S結(jié)構(gòu)的一種改進(jìn)或者擴(kuò)展的結(jié)構(gòu)掸犬。相對(duì)于C/S袜漩,B/S具有如下優(yōu)勢(shì):
1绪爸、分布性:可以隨時(shí)進(jìn)行查詢湾碎、瀏覽等業(yè)務(wù)
2、業(yè)務(wù)擴(kuò)展方便:增加網(wǎng)頁(yè)即可增加服務(wù)器功能
3奠货、維護(hù)簡(jiǎn)單方便:改變網(wǎng)頁(yè)介褥,即可實(shí)現(xiàn)所有用戶同步更新
4、開發(fā)簡(jiǎn)單递惋,共享性強(qiáng)柔滔,成本低,數(shù)據(jù)可以持久存儲(chǔ)在云端而不必?fù)?dān)心數(shù)據(jù)的丟失萍虽。
四睛廊、主流的Web程序應(yīng)用平臺(tái)
一個(gè)動(dòng)態(tài)網(wǎng)站服務(wù)器平臺(tái)至少要包括:操作系統(tǒng)+Web服務(wù)器+應(yīng)用程序服務(wù)+數(shù)據(jù)庫(kù)。一個(gè)優(yōu)秀的網(wǎng)站服務(wù)器是由多方面因素決定的杉编,如個(gè)人喜好超全、部署費(fèi)用咆霜、安全機(jī)制等。而現(xiàn)在主流的三種Web平臺(tái):ASP.NET嘶朱、JavaEE和LAMP各有優(yōu)缺點(diǎn)蛾坯,以滿足不同的需要和用戶。三者比較如下:
三種平臺(tái)的各部分組合:
ASP.NET:Windows Server+IIS+SQL Server+ASP
JavaEE:UNIX+Tomcat+Oracle+JSP
LAMP:Linux+Apache+MySQL+PHP