C/S架构
? ? ? 在網(wǎng)絡(luò)連接模式中,除對(duì)等網(wǎng)外,還有另一種形式的網(wǎng)絡(luò),即客戶(hù)機(jī)/服務(wù)器網(wǎng),Client/Server。在客戶(hù)機(jī)/服務(wù)器網(wǎng)絡(luò)中,服務(wù)器是網(wǎng)絡(luò)的核心,而客戶(hù)機(jī)是網(wǎng)絡(luò)的基礎(chǔ),客戶(hù)機(jī)依靠服務(wù)器獲得所需要的網(wǎng)絡(luò)資源,而服務(wù)器為客戶(hù)機(jī)提供網(wǎng)絡(luò)必須的資源。
這里客戶(hù)和服務(wù)器都是指通信中所涉及的兩個(gè)應(yīng)用進(jìn)程(軟件)。使用計(jì)算機(jī)的人是計(jì)算機(jī)的“用戶(hù)”(user)而不是“客戶(hù)”(client)。但在許多國(guó)外文獻(xiàn)中,也經(jīng)常把運(yùn)行客戶(hù)程序的機(jī)器稱(chēng)為client(這種情況下也可把client譯為“客戶(hù)機(jī)”),把運(yùn)行服務(wù)器程序的機(jī)器稱(chēng)為server。所以有時(shí)要根據(jù)上下文判斷client與server是指軟件還是硬件。
它是軟件系統(tǒng)體系結(jié)構(gòu),通過(guò)它可以充分利用兩端硬件環(huán)境的優(yōu)勢(shì),將任務(wù)合理分配到 Client端和Server端來(lái)實(shí)現(xiàn),降低了系統(tǒng)的通訊開(kāi)銷(xiāo)。目前大多數(shù)應(yīng)用軟件系統(tǒng)都是Client/Server形式的兩層結(jié)構(gòu),由于現(xiàn)在的軟件應(yīng)用系統(tǒng)正在向分布式的Web應(yīng)用發(fā)展,Web和Client/Server 應(yīng)用都可以進(jìn)行同樣的業(yè)務(wù)處理,應(yīng)用不同的模塊共享邏輯組件;因此,內(nèi)部的和外部的用戶(hù)都可以訪問(wèn)新的和現(xiàn)有的應(yīng)用系統(tǒng),通過(guò)現(xiàn)有應(yīng)用系統(tǒng)中的邏輯可以擴(kuò)展出新的應(yīng)用系統(tǒng)。這也就是目前應(yīng)用系統(tǒng)的發(fā)展方向。
一、C/S結(jié)構(gòu)的優(yōu)點(diǎn)
C/S結(jié)構(gòu)的優(yōu)點(diǎn)是能充分發(fā)揮客戶(hù)端PC的處理能力,很多工作可以在客戶(hù)端處理后再提交給服務(wù)器。對(duì)應(yīng)的優(yōu)點(diǎn)就是客戶(hù)端響應(yīng)速度快。缺點(diǎn)主要有以下幾個(gè):
而隨著互聯(lián)網(wǎng)的飛速發(fā)展,移動(dòng)辦公和分布式辦公越來(lái)越普及,這需要我們的系統(tǒng)具有擴(kuò)展性。這種方式遠(yuǎn)程訪問(wèn)需要專(zhuān)門(mén)的技術(shù),同時(shí)要對(duì)系統(tǒng)進(jìn)行專(zhuān)門(mén)的設(shè)計(jì)來(lái)處理分布式的數(shù)據(jù)。
客戶(hù)端需要安裝專(zhuān)用的客戶(hù)端軟件。首先涉及到安裝的工作量,其次任何一臺(tái)電腦出問(wèn)題,如病毒、硬件損壞,都需要進(jìn)行安裝或維護(hù)。還有,系統(tǒng)軟件升級(jí)時(shí),每一臺(tái)客戶(hù)機(jī)需要重新安裝,其維護(hù)和升級(jí)成本非常高。(知不知道可以自動(dòng)升級(jí)?)
對(duì)客戶(hù)端的操作系統(tǒng)一般也會(huì)有限制。可能適應(yīng)于Windows 98,但不能用于Windows 2000或Windows XP。或者不適用于微軟新的操作系統(tǒng)等等,更不用說(shuō)Linux、Unix等。(中國(guó)絕大多數(shù)用戶(hù)都使用Windows操作系統(tǒng))
二、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)地尋×××器程序,并向其發(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),例如訪問(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)去管理,但邏輯上兩地的操作者要直接訪問(wèn)同一個(gè)數(shù)據(jù)庫(kù)才能有效實(shí)現(xiàn),有這樣一些問(wèn)題,如果需要建立“實(shí)時(shí)”的數(shù)據(jù)同步,就必須在兩地間建立實(shí)時(shí)的通訊連接,保持兩地的數(shù)據(jù)庫(kù)服務(wù)器在線運(yùn)行,網(wǎng)絡(luò)管理工作人員既要對(duì)服務(wù)器維護(hù)管理,又要對(duì)客戶(hù)端維護(hù)和管理,這需要高昂的投資和復(fù)雜的技術(shù)支持,維護(hù)成本很高,維護(hù)任務(wù)量大。(B/S就不用數(shù)據(jù)庫(kù)了?)
其次,傳統(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)工作需要。在JAVA這樣的跨平臺(tái)語(yǔ)言出現(xiàn)之后,B/S架構(gòu)更是猛烈沖擊C/S,并對(duì)其形成威脅和挑戰(zhàn)。
轉(zhuǎn)載于:https://blog.51cto.com/wukang/1214874
總結(jié)
- 上一篇: XMLHTTP中setRequestHe
- 下一篇: 记录历史命令