在了解什么是C/S軟件開(kāi)發(fā)之前,我們有必要了解一下什么是C/S架構(gòu):
C/S架構(gòu)是第一種比較早的軟件架構(gòu),主要用于局域網(wǎng)內(nèi)。也叫 客戶(hù)機(jī)/服務(wù)器模式。
它可以分為客戶(hù)機(jī)和服務(wù)器兩層:
第一層: 在客戶(hù)機(jī)系統(tǒng)上結(jié)合了界面顯示與業(yè)務(wù)邏輯;
第二層: 通過(guò)網(wǎng)絡(luò)結(jié)合了數(shù)據(jù)庫(kù)服務(wù)器。
簡(jiǎn)單的說(shuō)就是第一層是用戶(hù)表示層,第二層是數(shù)據(jù)庫(kù)層。
這里需要補(bǔ)充的是,客戶(hù)端不僅僅是一些簡(jiǎn)單的操作,它也是會(huì)處理一些運(yùn)算,業(yè)務(wù)邏輯的處理等。也就是說(shuō),客戶(hù)端也做著一些本該由服務(wù)器來(lái)做的一些事情,如圖所示:
C/S架構(gòu)軟件有一個(gè)特點(diǎn),就是如果用戶(hù)要使用的話(huà),需要下載一個(gè)客戶(hù)端,安裝后就可以使用。比如QQ,OFFICE軟件等。
C/S架構(gòu)的優(yōu)點(diǎn):
1 C/S架構(gòu)的界面和操作可以很豐富。(客戶(hù)端操作界面可以隨意排列,滿(mǎn)足客戶(hù)的需要)
2 安全性能可以很容易保證。(因?yàn)橹挥袃蓪拥膫鬏?,而不是中間有很多層。
3 由于只有一層交互,因此響應(yīng)速度較快。(直接相連,中間沒(méi)有什么阻隔或岔路,比如QQ,每天那么多人在線(xiàn),也不覺(jué)得慢)
C/S架構(gòu)的缺點(diǎn):
可以將QQ作為類(lèi)比:
1 適用面窄,通常用于局域網(wǎng)中。
2 用戶(hù)群固定。由于程序需要安裝才可使用,因此不適合面向一些不可知的用戶(hù)。
3 維護(hù)成本高,發(fā)生一次升級(jí),則所有客戶(hù)端的程序都需要改變。
C/S架構(gòu)軟件的優(yōu)勢(shì)與劣勢(shì)
(1)應(yīng)用服務(wù)器運(yùn)行數(shù)據(jù)負(fù)荷較輕。
最簡(jiǎn)單的C/S體系結(jié)構(gòu)的數(shù)據(jù)庫(kù)應(yīng)用由兩部分組成,即客戶(hù)應(yīng)用程序和數(shù)據(jù)庫(kù)服務(wù)器程序。二者可分別稱(chēng)為前臺(tái)程序與后臺(tái)程序。運(yùn)行數(shù)據(jù)庫(kù)服務(wù)器程序的機(jī)器,也稱(chēng)為應(yīng)用服務(wù)器。
一旦服務(wù)器程序被啟動(dòng),就隨時(shí)等待響應(yīng)客戶(hù)程序發(fā)來(lái)的請(qǐng)求;客戶(hù)應(yīng)用程序運(yùn)行在用戶(hù)自己的電腦上,對(duì)應(yīng)于數(shù)據(jù)庫(kù)服務(wù)器,可稱(chēng)為客戶(hù)電腦,當(dāng)需要對(duì)數(shù)據(jù)庫(kù)中的數(shù)據(jù)進(jìn)行任何操作時(shí),客戶(hù)程序就自動(dòng)地尋找服務(wù)器程序,并向其發(fā)出請(qǐng)求,服務(wù)器程序根據(jù)預(yù)定的規(guī)則作出應(yīng)答,送回結(jié)果,應(yīng)用服務(wù)器運(yùn)行數(shù)據(jù)負(fù)荷較輕。
(2)數(shù)據(jù)的儲(chǔ)存管理功能較為透明。
在數(shù)據(jù)庫(kù)應(yīng)用中,數(shù)據(jù)的儲(chǔ)存管理功能,是由服務(wù)器程序和客戶(hù)應(yīng)用程序分別獨(dú)立進(jìn)行的,前臺(tái)應(yīng)用可以違反的規(guī)則,并且通常把那些不同的(不管是已知還是未知的)運(yùn)行數(shù)據(jù),在服務(wù)器程序中不集中實(shí)現(xiàn),例如訪(fǎng)問(wèn)者的權(quán)限,編號(hào)可以重復(fù)、必須有客戶(hù)才能建立定單這樣的規(guī)則。所有這些,對(duì)于工作在前臺(tái)程序上的最終用戶(hù),是“透明”的,他們無(wú)須過(guò)問(wèn)(通常也無(wú)法干涉)背后的過(guò)程,就可以完成自己的一切工作。在客戶(hù)服務(wù)器架構(gòu)的應(yīng)用中,前臺(tái)程序不是非常“瘦小”,麻煩的事情都交給了服務(wù)器和網(wǎng)絡(luò)。
在C/S體系的下,數(shù)據(jù)庫(kù)不能真正成為公共、專(zhuān)業(yè)化的倉(cāng)庫(kù),它受到獨(dú)立的專(zhuān)門(mén)管理。
(3)C/S架構(gòu)的劣勢(shì)是高昂的維護(hù)成本且投資大。
首先,采用C/S架構(gòu),要選擇適當(dāng)?shù)臄?shù)據(jù)庫(kù)平臺(tái)來(lái)實(shí)現(xiàn)數(shù)據(jù)庫(kù)數(shù)據(jù)的真正“統(tǒng)一”,使分布于兩地的數(shù)據(jù)同步完全交由數(shù)據(jù)庫(kù)系統(tǒng)去管理,但邏輯上兩地的操作者要直接訪(fǎng)問(wèn)同一個(gè)數(shù)據(jù)庫(kù)才能有效實(shí)現(xiàn),有這樣一些問(wèn)題,如果需要建立“實(shí)時(shí)”的數(shù)據(jù)同步,就必須在兩地間建立實(shí)時(shí)的通訊連接,保持兩地的數(shù)據(jù)庫(kù)服務(wù)器在線(xiàn)運(yùn)行,網(wǎng)絡(luò)管理工作人員既要對(duì)服務(wù)器維護(hù)管理,又要對(duì)客戶(hù)端維護(hù)和管理,這需要高昂的投資和復(fù)雜的技術(shù)支持,維護(hù)成本很高,維護(hù)任務(wù)量大。
其次,傳統(tǒng)的C/S結(jié)構(gòu)的軟件需要針對(duì)不同的操作系統(tǒng)系統(tǒng)開(kāi)發(fā)不同版本的軟件,由于產(chǎn)品的更新?lián)Q代十分快,代價(jià)高和低效率已經(jīng)不適應(yīng)