軟件程序設(shè)計(jì)使用中的 C/S 和 B/S 結(jié)構(gòu)概念及對(duì)比
當(dāng)前位置:點(diǎn)晴教程→知識(shí)管理交流
→『 技術(shù)文檔交流 』
1. 什么是 C/S 結(jié)構(gòu) C/S(Client/Server)結(jié)構(gòu),即客戶機(jī)和服務(wù)器結(jié)構(gòu)。它是軟件系統(tǒng)體系結(jié)構(gòu)的一種形式,通過(guò)它可以充分利用兩端硬件環(huán)境的優(yōu)勢(shì),將任務(wù)合理分配到 Client 端和 Server 端來(lái)實(shí)現(xiàn),從而降低系統(tǒng)的通訊開銷。 C/S 結(jié)構(gòu)可以看作是胖客戶端架構(gòu)??蛻舳素?fù)責(zé)絕大多數(shù)的業(yè)務(wù)邏輯處理和界面展示,因此需要承受較大的壓力,同時(shí)也充分利用了客戶端的資源。這種架構(gòu)對(duì)客戶機(jī)的性能要求較高。 其實(shí)現(xiàn)方式可以是客戶端包含一個(gè)或多個(gè)在用戶電腦上運(yùn)行的程序,而服務(wù)器端有兩種類型:一種是數(shù)據(jù)庫(kù)服務(wù)器端,客戶端通過(guò)數(shù)據(jù)庫(kù)連接訪問(wèn)服務(wù)器端的數(shù)據(jù);另一種是 Socket 服務(wù)器端,服務(wù)器端的程序通過(guò) Socket 與客戶端的程序通信。 目前大多數(shù)應(yīng)用軟件系統(tǒng)都是基于 Client/Server 的兩層結(jié)構(gòu)。然而,隨著軟件應(yīng)用系統(tǒng)逐漸向分布式的 Web 應(yīng)用發(fā)展,Web 和Client/Server 應(yīng)用都可以進(jìn)行同樣的業(yè)務(wù)處理,并且不同的模塊可以共享邏輯組件。因此,內(nèi)部和外部的用戶都可以訪問(wèn)新的和現(xiàn)有的應(yīng)用系統(tǒng),通過(guò)現(xiàn)有應(yīng)用系統(tǒng)中的邏輯可以擴(kuò)展出新的應(yīng)用系統(tǒng)。這是當(dāng)前應(yīng)用系統(tǒng)的發(fā)展方向。 傳統(tǒng)的 C/S 體系結(jié)構(gòu)雖然采用的是開放模式,但這只是系統(tǒng)開發(fā)一級(jí)的開放性。在特定的應(yīng)用中,無(wú)論是 Client 端還是 Server 端,都需要特定的軟件支持。由于未能提供用戶真正期望的開放環(huán)境,C/S 結(jié)構(gòu)的軟件需要針對(duì)不同的操作系統(tǒng)開發(fā)不同版本的軟件。加之產(chǎn)品的更新?lián)Q代非常快,已經(jīng)很難適應(yīng)百臺(tái)電腦以上的局域網(wǎng)用戶同時(shí)使用。此外,這種方式成本高、效率低。 2. 什么是 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)。在這種結(jié)構(gòu)下,用戶工作界面通過(guò) Web 瀏覽器實(shí)現(xiàn),極少部分事務(wù)邏輯在前端(Browser)實(shí)現(xiàn),而主要事務(wù)邏輯在服務(wù)器端(Server)實(shí)現(xiàn),形成所謂的三層結(jié)構(gòu)。這樣就大大簡(jiǎn)化了客戶端電腦的負(fù)載,減輕了系統(tǒng)維護(hù)與升級(jí)的成本和工作量,降低了用戶的總體成本(TCO)。 B/S 結(jié)構(gòu)可以看作是瘦客戶端,它將較少的顯示邏輯交給 Web 瀏覽器處理,而將事務(wù)邏輯和數(shù)據(jù)處理放在 Server 端,避免了龐大的胖客戶端,減少了客戶端的壓力。B/S 結(jié)構(gòu)的系統(tǒng)無(wú)需特別安裝,只需有 Web 瀏覽器即可。 以目前的技術(shù)來(lái)看,在局域網(wǎng)中建立 B/S 結(jié)構(gòu)的網(wǎng)絡(luò)應(yīng)用并通過(guò) Internet/Intranet 模式下的數(shù)據(jù)庫(kù)應(yīng)用,相對(duì)易于把握且成本較低。它是一次性到位的開發(fā)方式,能夠?qū)崿F(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ù)的安全。 3. C/S 和 B/S 結(jié)構(gòu)的優(yōu)缺點(diǎn) (1) B/S 結(jié)構(gòu)的優(yōu)缺點(diǎn) 優(yōu)點(diǎn): <1>. 無(wú)需安裝,客戶端只需有瀏覽器即可。 <2>. 分布性強(qiáng),可以隨時(shí)隨地進(jìn)行查詢、瀏覽等業(yè)務(wù)處理。 <3>. 業(yè)務(wù)擴(kuò)展便捷,通過(guò)增加頁(yè)面即可增加服務(wù)器功能。 <4>. 升級(jí)維護(hù)便捷,只需升級(jí)服務(wù)器即可實(shí)現(xiàn)所有用戶的同步更新。 <5>. 共享性強(qiáng),可以直接放在廣域網(wǎng)上,通過(guò)一定的權(quán)限控制實(shí)現(xiàn)多客戶訪問(wèn)的目的,交互性較強(qiáng)。 缺點(diǎn): <1>. 在跨瀏覽器兼容性方面不盡如人意。 <2>. 在速度和安全性上需要花費(fèi)較多設(shè)計(jì)成本,響應(yīng)速度不及 C/S。隨著 AJAX 技術(shù)的發(fā)展,相比傳統(tǒng) B/S 結(jié)構(gòu)軟件的速度有了很大提升。 <3>. 用戶體驗(yàn)不夠理想,B/S 需要單獨(dú)進(jìn)行界面設(shè)計(jì),各瀏覽器廠商對(duì)瀏覽器解析的標(biāo)準(zhǔn)不同。 <4>. 客戶端與服務(wù)器端的交互采用請(qǐng)求-響應(yīng)模式,通常需要刷新頁(yè)面,這并不是客戶樂(lè)意看到的(Ajax 技術(shù)流行后此問(wèn)題得到了一定程度的緩解)。 (2) C/S 結(jié)構(gòu)的優(yōu)缺點(diǎn) 優(yōu)點(diǎn): <1>. C/S 結(jié)構(gòu)的界面和操作簡(jiǎn)單豐富。 <2>. C/S 結(jié)構(gòu)的管理信息系統(tǒng)具有較強(qiáng)的事務(wù)處理能力。 <3>. C/S 結(jié)構(gòu)的安全性能容易保證,實(shí)現(xiàn)多層認(rèn)證也不難。 <4>. C/S 結(jié)構(gòu)的響應(yīng)速度快,由于客戶端直接與服務(wù)器相連,沒(méi)有中間環(huán)節(jié),只有一層交互,因此響應(yīng)速度較快。 缺點(diǎn): <1>. 適用面窄,通常用于局域網(wǎng)中。 隨著互聯(lián)網(wǎng)的飛速發(fā)展,移動(dòng)辦公和分布式辦公越來(lái)越普及,這需要系統(tǒng)具有擴(kuò)展性。這種方式遠(yuǎn)程訪問(wèn)需要專門的技術(shù),同時(shí)需要對(duì)系統(tǒng)進(jìn)行專門的設(shè)計(jì)來(lái)處理分布式的數(shù)據(jù)。 <2>. 客戶端需要安裝專用的客戶端軟件。 由于程序需要安裝才能使用,因此不適合面向一些不可知的用戶。涉及到安裝的工作量較大,任何一臺(tái)電腦出現(xiàn)問(wèn)題(如病毒、硬件損壞),都需要進(jìn)行安裝或維護(hù)。特別是有很多分部或?qū)Yu店的情況下,不是工作量的問(wèn)題,而是路程的問(wèn)題。 <3>.維護(hù)升級(jí)成本高,進(jìn)行一次維護(hù)升級(jí),需要重新安裝所有客戶端的程序。 <4>. 對(duì)客戶端的操作系統(tǒng)一般會(huì)有限制,可能適應(yīng)于 Win XP,但不能用于 Win 7 或 Win10,或者不適用于微軟的新操作系統(tǒng),還有 Linux、Unix 等操作系統(tǒng)。 該文章在 2025/6/19 18:35:47 編輯過(guò) |
關(guān)鍵字查詢
相關(guān)文章
正在查詢... |