應用程序的兩種架構(c/s兩層 b/s三層)2

C/S架構是客戶端(Client)/服務器(  database Server)架構 B/S是瀏覽器(Broswer)/服務器(web Server&&database Server)架構。
實際上B/S架構也算是C/S架構。
但是爲了區分一下 一般來說把客戶端在瀏覽器上運行的系統架構稱作B/S(一般的網站系統) 而把客戶端是PC應用的系統架構稱作C/S(各種PC上的與服務器有交互的軟件)。
一般c/s架構桌面應用開發都是用C++的MFC寫,程序放在客戶端,
一般b/s架構web應用開發都是用java寫,程序放在服務器端,

 

B/S 開發和 C/S開發的區別

導讀:每天都從應用中心下載很多軟件安裝嘗試,在自己的電腦上也裝了很多軟件,但是,就出現了一個問題,好比QQ,爲什麼有了APP,還要有網站應用呢?由此,結合到自己的學習,就衍生出一個問題:C/S 開發就可以做出很好很好的東西,爲什麼還要有B/S開發呢?它們之間的區別是什麼?

一、基本概況

1.1,概念

C/S (Client/Server)開發:又稱Client/Server或客戶/服務器模式。服務器通常採用高性能的PC、工作站或小型機,並採用大型數據庫系統,如ORACLE、SYBASE、InfORMix或 SQL Server。客戶端需要安裝專用的客戶端軟件。

附:C/S結構圖

B/S 開發(Browser/Server,瀏覽器/服務器模式):是WEB興起後的一種網絡結構模式,WEB瀏覽器是客戶端最主要的應用軟件。這種模式統一了客戶端,將系統功能實現的核心部分集中到服務器上,簡化了系統的開發、維護和使用。客戶機上只要安裝一個瀏覽器(Browser英 ['braʊzə]美 ['braʊzɚ]),如Netscape Navigator或Internet Explorer,服務器安裝SQL Server、Oracle、MYSQL等數據庫。瀏覽器通過Web Server 同數據庫進行數據交互。

附:B/S結構圖

1.2,應用語言

如果說到應用什麼語言去開發C/S 或者說是B/S 結構的的程序,那麼作爲目前的一個現狀來說,很可能就認爲:C++,C#,VB等更偏向C/S開發(我同學就用c++寫的微信),而所用到的像JS,java,JQuery等(我就用java寫的網站後臺),則會被認爲更偏向於B/S開發。(某一時期,我是這麼認爲的)但是,這是不準確的!爲什麼,看後續的C/S和B/S的關係就明白了。

 

二、C/S 和 B/S 的對比

2.1,優點

2.1.1 C/S

安全性:C/S需要其特定的客戶端,所以面向的對象比較確定,由此所進行的信息安全處於一種可控的範圍。

效率:客戶端和服務端直接相連,省卻了中間環節,數據的傳輸相對較快。

個性化:C/S尤其特定的客戶端,因此可以較大程度上滿足客戶的個性化要求,如界面、操作等。

穩定性:結構較穩定,較強的事務處理能力,可實現比較複雜的的業務邏輯。

2.1.2 B/S

範圍:零安裝:擁有一個瀏覽器,即可訪問。因此,它所面向的範圍更爲的廣闊。

擴展性:通常來說,通過增添網頁即可擴展系統的功用。零維護:更新頁面,即可以實現面向所有用戶的更新。

共享:B/S 通過瀏覽器訪問,共享性強。

2.2,缺點

2.2.1 C/S

由於需要在PC端安裝特定的軟件,所以,它對PC機有一定的要求:如,操作系統。而且,安裝和部署複雜。

擴展性和維護成本高,當面對第二客戶有不同需求時,得修改其界面等設計。當客戶端達到一定的量時,同時訪問服務器,造成服務端的響應變慢,效率變低。(但在數據量小的時候不存在)

2.2.2 B/S

由於B/S針對的對象範圍廣,所以,它的設計一般而言是一種公共審美,無法滿足個性化的需求。

2.3,C/S和B/S的聯繫

2.3.1 聯繫:

1,C/S可以使用任何通信協議,而B/S這個特殊的C/S架構規定必須實現HTTP協議
2,瀏覽器是一個通用客戶端,本質上開發瀏覽器,還是實現一個C/S系統

 

C/S開發和B/S開發從本質上來講,並沒有什麼區別。所以在其應用語言的選擇上,沒有太明確太嚴格的要求,就比如說:VB、VC等即可用於C/S 開發,也可用於B/S開發。如果非要說不同的話,那麼作爲我個人來說,也許是在一些類庫上有區別。由於B/S的範圍廣,對象多,開發過程中需要應用的東西就多很多,所以可能會需要像是Ajax,JQuery等使用,或者說引用更多的API類庫等。

 

2.3.2 區別:

投入成本:B/S在一般情況下只需求一次投入,即開發時的費用。而C/S隨着其使用範圍、人數的增多,其維護成本、開發成本相應的增多。

資源利用:當數據量達到一定的程度之後,C/S開發中的服務器無法滿足其需求,通常需要更換性能更爲優越的服務器,而原有的舊服務器被廢棄。而作爲B/S開發,在需求量增大時,可以通過增添服務器的數量去圓滑的解決這個問題,其資源的利用程度相對較高。

 

三、總結

有些資料還是要去查一下的,然後才能明確。很多時候,不是自己不知道,只是不敢確定。但這種不確定性,卻會在後續的學習中帶來很大的困擾。

從C/S開發到B/S開發,隨着受衆的增多,或者說是龐大的系統結構,通常一個服務器端根本解決不了問題,那麼,服務器端的增加會帶來什麼影響?當一個系統太過於龐大的時候,如果我們仍然使用一個解決方案,在後續維護的時候,會出現什麼問題?

----============================

舉兩個例子表明c/s架構的服務器的存在性

看,qq的斷開與服務器相連,注意任何一種c/s結構的客戶端軟件都是需要和數據庫服務器相連的,只不過在客戶那裏表現的不是很明顯,比如說qq,沒有網絡的時候我們爲什麼是用不了,因爲qq客戶端已經斷開了和服務器的連接,自然信息是無法a-服務器-b的,

再看這個wps軟件,爲什麼他能實現備份,因爲他本質是個客戶端,和遠程服務器相連,備份的實際就是文件上傳到遠程服務器了。所以說c/s架構

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章