C/S與B/S 所謂C/S結(jié)構(gòu)是一個(gè)程序的運(yùn)行方式,它是Client/Server的簡(jiǎn)稱,即客戶機(jī)和服務(wù)器結(jié)構(gòu),而B/S結(jié)構(gòu)指的是Browser/Server的簡(jiǎn)稱,即瀏覽器和服務(wù)器結(jié)構(gòu)。隨著互聯(lián)網(wǎng)在政治、經(jīng)濟(jì)、生活等各個(gè)領(lǐng)域的不斷發(fā)展,使基于瀏覽器的B/S的應(yīng)用程序逐步的發(fā)展起來(lái),也有人把這種應(yīng)用形式稱作"瘦客戶機(jī)"程序。所謂瘦客戶機(jī)指的就是,在客戶端無(wú)需安裝過(guò)多的軟件即可以實(shí)現(xiàn)與服務(wù)器的交互。 當(dāng)B/S程序發(fā)展到了今天,C/S的程序越來(lái)越少了,現(xiàn)在C/S似乎已經(jīng)成為過(guò)時(shí)的一種開(kāi)發(fā)方法,B/S的程序如日中天,一發(fā)不可收拾。甚至有時(shí)候,我們的好多程序員對(duì)C/S程序嗤之以鼻,一提到C/S程序簡(jiǎn)直就是不屑一顧。 然而,C/S的程序真的一無(wú)是處嗎? B/S是一個(gè)很好的創(chuàng)意 B/S模式是指在TCP/IP的支持下,以HTTP為傳輸協(xié)議,客戶端通過(guò)Browser訪問(wèn)Web服務(wù)器以及與之相連的后臺(tái)數(shù)據(jù)庫(kù)的技術(shù)及體系結(jié)構(gòu)。它由瀏覽器、Web服務(wù)器、應(yīng)用服務(wù)器和數(shù)據(jù)庫(kù)服務(wù)器組成??蛻舳说臑g覽器通過(guò)URL訪問(wèn)Web服務(wù)器,Web服務(wù)器請(qǐng)求數(shù)據(jù)庫(kù)服務(wù)器,并將獲得的結(jié)果以HTML形式返回客戶端瀏覽器。 在互聯(lián)網(wǎng)應(yīng)用程序應(yīng)用初期,大多數(shù)應(yīng)用都是建立在C/S結(jié)構(gòu)基礎(chǔ)上的,瀏覽器的應(yīng)用促使動(dòng)態(tài)頁(yè)面的實(shí)現(xiàn),于是就有人提出來(lái),能不能用瀏覽器作為應(yīng)用程序的客戶端呢?于是,B/S程序結(jié)構(gòu)便應(yīng)運(yùn)而生,瀏覽器和服務(wù)器結(jié)構(gòu)是對(duì)C/S結(jié)構(gòu)的一種變化或者改進(jìn)的結(jié)構(gòu)。在這種結(jié)構(gòu)下,用戶工作界面是通過(guò)WWW瀏覽器來(lái)實(shí)現(xiàn),極少部分事務(wù)邏輯在前端(Browser)實(shí)現(xiàn),但是主要事務(wù)邏輯在服務(wù)器端(Server)實(shí)現(xiàn),形成所謂三層結(jié)構(gòu)。這樣就大大簡(jiǎn)化了客戶端電腦載荷,減輕了系統(tǒng)維護(hù)與升級(jí)的成本和工作量,降低了用戶的總體成本。 以目前的技術(shù)看,局域網(wǎng)建立B/S結(jié)構(gòu)的網(wǎng)絡(luò)應(yīng)用,并通過(guò)Internet/Intranet模式下數(shù)據(jù)庫(kù)應(yīng)用,相對(duì)易于把握、成本也是較低的。它是一次性到位的開(kāi)發(fā),能實(shí)現(xiàn)不同的人員,從不同的地點(diǎn),以不同的接入方式(比如LAN, WAN, Internet/Intranet等)訪問(wèn)和操作共同的數(shù)據(jù)庫(kù);它能有效地保護(hù)數(shù)據(jù)平臺(tái)和管理訪問(wèn)權(quán)限,服務(wù)器數(shù)據(jù)庫(kù)也很安全 。特別是在Java這樣的跨平臺(tái)語(yǔ)言出現(xiàn)之后,B/S架構(gòu)管理軟件更是方便、快捷、高效。傳統(tǒng)的C/S體系結(jié)構(gòu)雖然采用的是開(kāi)放模式,但這只是系統(tǒng)開(kāi)發(fā)一級(jí)的開(kāi)放性,在特定的應(yīng)用中無(wú)論是Client端還是Server端都還需要特定的軟件支持。 B/S構(gòu)架對(duì)于用戶的好處: 1)安裝維護(hù)簡(jiǎn)單,由于客戶端使用IE,因此不需要安裝專門的客戶端程序。 B/S構(gòu)架對(duì)于用戶的缺點(diǎn): 1)功能不強(qiáng)、操作不便,易用性差,這是由于B/S的客戶端軟件采用了IE瀏覽器,而IE B/S構(gòu)架對(duì)于開(kāi)發(fā)商的好處: 相對(duì)于C/S架構(gòu),B/S對(duì)于開(kāi)發(fā)商來(lái)說(shuō)其優(yōu)點(diǎn)和好處是非常明顯的,而缺點(diǎn)卻幾乎沒(méi) B/S適用場(chǎng)合: 1)公開(kāi)信息發(fā)布,對(duì)信息的保密性要求較低,并且用戶是未知的,比如企業(yè)網(wǎng)站; 2)適用于安全性要求比較低的售后服務(wù)系統(tǒng),如物流信息的查詢系統(tǒng)等。 關(guān)于C/S C/S構(gòu)架的對(duì)于用戶的好處: 1)技術(shù)成熟可靠,這是許多知名ERP系統(tǒng)幾乎都采用C/S結(jié)構(gòu)根本原因。 2)功能強(qiáng)大、操作方便,易用性好,用戶會(huì)比較喜歡使用,如具有支持鍵盤快捷鍵操 作等很多用戶喜歡的功能,這是B/S遠(yuǎn)遠(yuǎn)比不上的。 3)遠(yuǎn)程辦公時(shí)響應(yīng)速度快,安全性和穩(wěn)定性都比B/S要可靠,這是因?yàn)橐话?/span>C/S比B/S減 少了一個(gè)中間層,因此數(shù)據(jù)傳輸環(huán)節(jié)比B/S要簡(jiǎn)單,并且由于使用了專門開(kāi)發(fā)的客戶 端程序,因此比B/S結(jié)構(gòu)具有更高的安全性和穩(wěn)定性,比如微軟的MCSE、印度NIIT的 遠(yuǎn)程考試系統(tǒng)都是基于CS結(jié)構(gòu),MSN、QQ等優(yōu)秀軟件均采用C/S結(jié)構(gòu),這也是很多ERP 廠商最終選擇C/S的原因,因?yàn)榘踩?dāng)然是首先要考慮的。 C/S構(gòu)架的對(duì)于用戶的缺點(diǎn): 系統(tǒng)升級(jí)維護(hù)相對(duì)復(fù)雜,因?yàn)槊總€(gè)客戶端電腦都需要安裝專門程序。 C/S架構(gòu)對(duì)于開(kāi)發(fā)商的缺點(diǎn): C/S架構(gòu)對(duì)于開(kāi)發(fā)商來(lái)說(shuō)其實(shí)真的沒(méi)有什么突出的優(yōu)點(diǎn)和好處可言,而只有突出的缺點(diǎn),總體來(lái)說(shuō),由于C/S需要開(kāi)發(fā)專用的客戶端程序,因此技術(shù)難度大,開(kāi)發(fā)周期長(zhǎng),對(duì)程序員的技術(shù)要求也比較高,因此開(kāi)發(fā)成本也比較高。 C/S程序的優(yōu)勢(shì)--速度 他的速度優(yōu)勢(shì)就是來(lái)自于網(wǎng)絡(luò)傳輸?shù)膬?nèi)容,在C/S程序中所傳遞的是純數(shù)據(jù)流,而在B/S中所傳遞的不僅僅是數(shù)據(jù)還要包含格式數(shù)據(jù),而往往格式信息的數(shù)據(jù)量會(huì)超過(guò)純數(shù)據(jù)的信息量。另一個(gè)影響速度的地方是,邏輯運(yùn)算部分,B/S的邏輯運(yùn)算是在服務(wù)器端進(jìn)行,而C/S結(jié)構(gòu)的邏輯運(yùn)算都分別在不同的客戶端進(jìn)行,因此,分擔(dān)了服務(wù)器端程序的CPU資源。如圖 2 10所示。 C/S程序的應(yīng)用服務(wù)器運(yùn)行數(shù)據(jù)負(fù)荷較輕。最簡(jiǎn)單的C/S體系結(jié)構(gòu)的數(shù)據(jù)庫(kù)應(yīng)用由兩部分組成,即客戶應(yīng)用程序和數(shù)據(jù)庫(kù)服務(wù)器程序。二者可分別稱為前臺(tái)程序與后臺(tái)程序。運(yùn)行數(shù)據(jù)庫(kù)服務(wù)器程序的機(jī)器,也稱為應(yīng)用服務(wù)器。一旦服務(wù)器程序被啟動(dòng),就隨時(shí)等待響應(yīng)客戶程序發(fā)來(lái)的請(qǐng)求;客戶應(yīng)用程序運(yùn)行在用戶自己的電腦上,對(duì)應(yīng)于數(shù)據(jù)庫(kù)服務(wù)器,可稱為客戶電腦,當(dāng)需要對(duì)數(shù)據(jù)庫(kù)中的數(shù)據(jù)進(jìn)行任何操作時(shí),客戶程序就自動(dòng)地尋找服務(wù)器程序,并向其發(fā)出請(qǐng)求,服務(wù)器程序根據(jù)預(yù)定的規(guī)則作出應(yīng)答,送回結(jié)果,應(yīng)用服務(wù)器運(yùn)行數(shù)據(jù)負(fù)荷較輕。數(shù)據(jù)的儲(chǔ)存管理功能較為透明。在數(shù)據(jù)庫(kù)應(yīng)用中,數(shù)據(jù)的儲(chǔ)存管理功能,是由服務(wù)器程序和客戶應(yīng)用程序分別獨(dú)立進(jìn)行的,在服務(wù)器程序中不集中實(shí)現(xiàn)。所有這些,對(duì)于工作在前臺(tái)程序上的最終用戶,是"透明"的,他們無(wú)須過(guò)問(wèn)背后的過(guò)程,就可以完成自己的一切工作。 C/S程序的應(yīng)用領(lǐng)域 我們了解到C/S結(jié)構(gòu)的程序的優(yōu)勢(shì),那么一般C/S程序應(yīng)用到什么領(lǐng)域呢? 速度要求高,實(shí)時(shí)性要求比較高,用戶一旦用上改動(dòng)不大,以及信息保密性和安全性較高的場(chǎng)合,并且往往是使用者是已知和可確認(rèn)的,比較適合于企業(yè)內(nèi)部的信息管理系統(tǒng)、金融證券管理系統(tǒng)。比如,超市的銷售收款程序,當(dāng)顧客拿著物品準(zhǔn)備交款的時(shí)候,卻在等著那個(gè)緩慢呈現(xiàn)的Web頁(yè)出現(xiàn)的時(shí)候,他會(huì)怎么想?因此,C/S結(jié)構(gòu)并不是一無(wú)是處,沒(méi)必要一提到C/S結(jié)構(gòu)就嗤之以鼻。對(duì)于上述領(lǐng)域B/S程序是根本沒(méi)有辦法和C/S程序相提并論的。 B/S程序本身也是一個(gè)C/S程序 先看一下C/S的結(jié)構(gòu)示意圖,如圖 2 8所示。 客戶端軟件是為了完成更多的管理功能而開(kāi)發(fā)的,通過(guò)它將與數(shù)據(jù)庫(kù)系統(tǒng)進(jìn)行數(shù)據(jù)交換,達(dá)到管理數(shù)據(jù)的目的。將各種計(jì)算與數(shù)據(jù)邏輯加入到客戶端軟件中,服務(wù)器端只負(fù)責(zé)存取數(shù)據(jù),因此,客戶端與服務(wù)器端交互的數(shù)據(jù)完全是純數(shù)據(jù)流。 然后我們?cè)倏匆幌?/span>B/S的架構(gòu),如圖 2 9所示。 B/S結(jié)構(gòu)的客戶端是瀏覽器,數(shù)據(jù)邏輯與計(jì)算基本上都是在服務(wù)器端進(jìn)行,客戶端僅僅是將計(jì)算與數(shù)據(jù)取得的結(jié)果予以呈現(xiàn),而這時(shí)候所呈現(xiàn)的內(nèi)容也依賴服務(wù)器端所返回的Http數(shù)據(jù)流中包含的標(biāo)記。 大家看看這兩個(gè)結(jié)構(gòu)圖的差異,不難發(fā)現(xiàn)他們的基本結(jié)構(gòu)極其相似,都是有"客戶端"的,只不過(guò)B/S的客戶端是瀏覽器而已。這說(shuō)明,從本質(zhì)上來(lái)說(shuō),B/S結(jié)構(gòu)的系統(tǒng)也是一種C/S的軟件。
|
|