[摘 要] 本文介紹了Client/Server與Browser/Server的結(jié)構(gòu)特點(diǎn),分析和比較了兩種體系結(jié)構(gòu)下開(kāi)發(fā)應(yīng)用軟件的優(yōu)勢(shì)與不足。結(jié)合實(shí)例,提出采用C/S和B/S混合結(jié)構(gòu)的體系來(lái)開(kāi)發(fā)安全、高效的系統(tǒng)。
[關(guān)鍵詞] C/S B/S 混合結(jié)構(gòu)
隨著計(jì)算機(jī)軟硬件和網(wǎng)絡(luò)技術(shù)的不斷發(fā)展,給傳統(tǒng)應(yīng)用軟件的開(kāi)發(fā)帶來(lái)了深刻的影響,計(jì)算機(jī)軟件體系結(jié)構(gòu)從單機(jī)結(jié)構(gòu)發(fā)展到基于網(wǎng)絡(luò)的體系結(jié)構(gòu)?;诰W(wǎng)絡(luò)和Web的軟件和應(yīng)用系統(tǒng)無(wú)疑成為更開(kāi)放和靈活的體系結(jié)構(gòu),其中C/S和B/S成為當(dāng)今世界開(kāi)發(fā)模式技術(shù)架構(gòu)的兩大主流技術(shù)。
一、C/S結(jié)構(gòu)介紹
C/S(Client/Server)結(jié)構(gòu),即客戶機(jī)和服務(wù)器結(jié)構(gòu)。通過(guò)該軟件體系結(jié)構(gòu)可以充分利用兩端硬件環(huán)境的優(yōu)勢(shì),將任務(wù)合理分配到Client端和Server端來(lái)實(shí)現(xiàn),降低了系統(tǒng)的實(shí)際開(kāi)銷。C/S結(jié)構(gòu)按照其體系結(jié)構(gòu)分為兩層和三層結(jié)構(gòu)。
C/S兩層結(jié)構(gòu):前端是客戶機(jī),即結(jié)合了顯示邏輯與事務(wù)處理邏輯,接受用戶的輸入請(qǐng)求,并向數(shù)據(jù)庫(kù)服務(wù)提出請(qǐng)求。后端是服務(wù)器,即數(shù)據(jù)處理邏輯和數(shù)據(jù)庫(kù),將數(shù)據(jù)提交給客戶端,客戶端將數(shù)據(jù)進(jìn)行計(jì)算并將結(jié)果呈現(xiàn)給用戶。
C/S三層結(jié)構(gòu):表示層是應(yīng)用的用戶接口部分,它擔(dān)負(fù)著用戶與應(yīng)用間的對(duì)話功能。
功能層是應(yīng)用的主體,它用程序的方式將將具體的事務(wù)處理邏輯表現(xiàn)出來(lái)。
數(shù)據(jù)層是應(yīng)用的數(shù)據(jù)部分,即DBMS(數(shù)據(jù)庫(kù)管理系統(tǒng)),負(fù)責(zé)管理對(duì)數(shù)據(jù)庫(kù)數(shù)據(jù)的讀寫(xiě)。三層結(jié)構(gòu)是個(gè)更靈活的體系結(jié)構(gòu),它把顯示邏輯與事務(wù)處理邏輯分開(kāi),讓事務(wù)處理邏輯成為獨(dú)立處于中間的功能層。程序與用戶接口和數(shù)據(jù)庫(kù)保持相對(duì)獨(dú)立性,具有更好的移植性,有利于系統(tǒng)擴(kuò)展。
C/S體系結(jié)構(gòu)雖然采用的是開(kāi)放模式,但只是系統(tǒng)開(kāi)發(fā)過(guò)程中的開(kāi)放性,在特定應(yīng)用中無(wú)論是Client端還是Server端都還需要特定的軟件支持,需要針對(duì)不同的操作系統(tǒng)系統(tǒng)開(kāi)發(fā)不同版本的軟件,導(dǎo)致它的維護(hù)和升級(jí)比較困難。
二、B/S結(jié)構(gòu)介紹
B/S(Browser/Server)結(jié)構(gòu),即瀏覽器和服務(wù)器結(jié)構(gòu)。它是隨著Internet技術(shù)的興起,對(duì)C/S結(jié)構(gòu)的一種變化或者改進(jìn)的結(jié)構(gòu)。在B/S結(jié)構(gòu)中,用戶工作界面和少部分事務(wù)邏輯是通過(guò)瀏覽器(Browser)來(lái)實(shí)現(xiàn),其主要事務(wù)邏輯在服務(wù)器端(Server)實(shí)現(xiàn)。這樣就大大簡(jiǎn)化了客戶端電腦負(fù)荷,減輕了系統(tǒng)維護(hù)與升級(jí)的成本和工作量,降低了用戶的總體成本。
在B/S結(jié)構(gòu)中,處于第一層的是瀏覽器,可以采用Windows的IE瀏覽器或者其他常用瀏覽器。處于第二層的是Web服務(wù)器,由一臺(tái)或多臺(tái)服務(wù)器組成,可以采用IIS或者Apache等軟件進(jìn)行搭建,該層具有良好的可擴(kuò)充性,可以隨著應(yīng)用的需要增加服務(wù)器的數(shù)目。處于第三層的是數(shù)據(jù)庫(kù)服務(wù)器,由數(shù)據(jù)庫(kù)系統(tǒng)和管理系統(tǒng)組成,可以根據(jù)實(shí)際需要采用SQL Server或者Oracle等常用DBMS。
B/S的基本工作模式是:
1.瀏覽器根據(jù)用戶操作對(duì)Web服務(wù)器提出訪問(wèn)請(qǐng)求。
2.Web服務(wù)器將請(qǐng)求分析處理,通過(guò)數(shù)據(jù)接口訪問(wèn)DBMS以進(jìn)行數(shù)據(jù)的查詢統(tǒng)計(jì)或事務(wù)的提交。
3.處理邏輯根據(jù)DBMS返回的結(jié)果生成HTML網(wǎng)頁(yè)經(jīng)過(guò)服務(wù)器向客戶的瀏覽器返回結(jié)果。
4.顯示邏輯-瀏覽器(Browser)將HTML結(jié)果顯示給用戶。
以目前的技術(shù)看,建立基于B/S結(jié)構(gòu)的網(wǎng)絡(luò)應(yīng)用,并通過(guò)Internet/Intranet結(jié)構(gòu)下數(shù)據(jù)庫(kù)應(yīng)用,相對(duì)容易把握、成本也是較低的。能實(shí)現(xiàn)不同的人員,從不同的地點(diǎn),以不同的接入方式訪問(wèn)和操作共同的數(shù)據(jù)庫(kù)。能有效地保護(hù)數(shù)據(jù)平臺(tái)和管理訪問(wèn)權(quán)限,服務(wù)器數(shù)據(jù)庫(kù)也相對(duì)安全。
三、C/S和B/S結(jié)構(gòu)比較與分析
1.系統(tǒng)的維護(hù)與升級(jí)
C/S系統(tǒng)的維護(hù)與升級(jí),必須從整體進(jìn)行考察。部分模塊的改變,可能影響到其它模塊,使系統(tǒng)維護(hù)和升級(jí)成本比較大。對(duì)于B/S而言,開(kāi)發(fā)、維護(hù)等幾乎所有工作集中在服務(wù)器端,當(dāng)需要對(duì)系統(tǒng)進(jìn)行升級(jí)時(shí),只需更新服務(wù)器端的程序即可,減輕了系統(tǒng)維護(hù)與升級(jí)的成本。
2.用戶的操作與使用
對(duì)于C/S模式,由于客戶端程序有自己特定的使用方法和要求,用戶需要接受專門(mén)使用培訓(xùn),但在用戶交互性、錯(cuò)誤提示、在線幫助等方面有強(qiáng)大的功能。對(duì)于B/S模式,客戶端程序只是一個(gè)簡(jiǎn)單易用的瀏覽器軟件。管理員和用戶無(wú)需培訓(xùn),就可以直接使用,但用戶交互性、錯(cuò)誤提示等功能相對(duì)較弱。
3.系統(tǒng)結(jié)構(gòu)的安全性
由于C/S是配對(duì)的點(diǎn)對(duì)點(diǎn)的結(jié)構(gòu)模式,可以采用適用于局域網(wǎng)、安全性比較好的網(wǎng)絡(luò)協(xié)議,安全性可以得到較好的保證。必須安裝客戶端程序且具有相應(yīng)權(quán)限,才能與服務(wù)器端進(jìn)行交互,從而保證系統(tǒng)的安全性。而B(niǎo)/S采用一點(diǎn)對(duì)多點(diǎn)、多點(diǎn)對(duì)多點(diǎn)這種開(kāi)放的結(jié)構(gòu)模式,并采用TCP/IP等運(yùn)用于網(wǎng)絡(luò)的開(kāi)放性協(xié)議,用戶可以直接利用WWW瀏覽器進(jìn)行服務(wù)器的探測(cè)和訪問(wèn),系統(tǒng)安全性相對(duì)較弱。
四、C/S和B/S混合結(jié)構(gòu)的實(shí)際應(yīng)用
通過(guò)上面的分析我們可以看到,C/S結(jié)構(gòu)和B/S結(jié)構(gòu)分別具有自己的優(yōu)勢(shì)和不足。因此我們可以在實(shí)際的設(shè)計(jì)與開(kāi)發(fā)過(guò)程中,可以考慮采用C/S與B/S相混合的結(jié)構(gòu)。相對(duì)于單獨(dú)采用C/S或B/S,這種方案的優(yōu)點(diǎn)在于:
1.保證數(shù)據(jù)的安全性和統(tǒng)一性,可以加強(qiáng)對(duì)數(shù)據(jù)庫(kù)的管理控制。
2.有效地利用內(nèi)部計(jì)算機(jī)的資源,簡(jiǎn)化了部分客戶端的開(kāi)發(fā)與使用。
3.保證復(fù)雜功能的交互性和普通功能的易用與統(tǒng)一。
4.系統(tǒng)維護(hù)和升級(jí)簡(jiǎn)便,布局合理,網(wǎng)絡(luò)使用效率較高。
在對(duì)學(xué)院身份識(shí)別系統(tǒng)的系統(tǒng)設(shè)計(jì)過(guò)程中,系統(tǒng)結(jié)構(gòu)設(shè)計(jì)采用了C/S和B/S的混合結(jié)構(gòu)。將系統(tǒng)的所有子功能分類,分析哪些功能適合采用C/S,哪些適合采用B/S。
適合采用C/S的子功能具備以下特點(diǎn):
(1)要求具有較強(qiáng)的交互性,客戶端由于需要與考勤機(jī)進(jìn)行通訊,單純的瀏覽器(Browser)無(wú)法完成該功能。
(2)使用范圍小,地點(diǎn)固定??蛻舳税惭b在樓宇的值班室,地點(diǎn)相對(duì)固定。
(3)要求處理大量數(shù)據(jù)。由于要與考勤機(jī)進(jìn)行頻繁的交互,數(shù)據(jù)的吞吐量相對(duì)較大。
適合采用B/S的子功能具備以下特點(diǎn):
①使用范圍廣,地點(diǎn)靈活。對(duì)于需要進(jìn)行數(shù)據(jù)管理和維護(hù)的人員,地點(diǎn)相對(duì)分散,所以可以采用瀏覽器+相應(yīng)權(quán)限進(jìn)行管理和維護(hù)。
②維護(hù)和升級(jí)相對(duì)頻繁。由于系統(tǒng)在使用過(guò)程中,可能會(huì)發(fā)生適應(yīng)性維護(hù),可以將系統(tǒng)的管理部分采用B/S結(jié)構(gòu)。
數(shù)據(jù)的統(tǒng)一性。將系統(tǒng)所需要的數(shù)據(jù)集中放在數(shù)據(jù)服務(wù)器端,保證數(shù)據(jù)的統(tǒng)一性和惟一性。
客戶端采用VC進(jìn)行開(kāi)發(fā),采用了基于單文檔的結(jié)構(gòu),其視圖類的基類采用CHtmlView類,目的是用來(lái)顯示從服務(wù)器端返回的網(wǎng)頁(yè)內(nèi)容。
服務(wù)器端采用JSP進(jìn)行開(kāi)發(fā),使用Apache Tomcat進(jìn)行發(fā)布,后臺(tái)數(shù)據(jù)庫(kù)采用SQL Server,目的是接受客戶端發(fā)送的數(shù)據(jù),查詢完畢后返回給客戶端顯示。
五、結(jié)束語(yǔ)
綜上所述,采用B/S應(yīng)用結(jié)構(gòu)并不一定要全部取代傳統(tǒng)的C/S結(jié)構(gòu),從某種意義上二者應(yīng)用界限并不清晰,而且往往是互相補(bǔ)充、相輔相成的。在實(shí)際應(yīng)用中可以根據(jù)實(shí)際需要將B/S結(jié)構(gòu)和C/S結(jié)構(gòu)結(jié)合起來(lái),開(kāi)發(fā)出具有安全、高效和較強(qiáng)交互性的系統(tǒng)。
參考文獻(xiàn):
[1]呂延崗 張紅瑞等:基于C/S和B/S混合模式的身份識(shí)別系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)與數(shù)字工程,2008,(8)
[2]鐘 睿 洪 蕾:MIS開(kāi)發(fā)模式的策略研究[J].現(xiàn)代商貿(mào)工業(yè),2008,(4)
[3]肖敏 熊前興等:基于C/S與B/S混合模式的應(yīng)用研究[J]. 武漢理工大學(xué)學(xué)報(bào),2006,(3)