B/S架構和C/S架構


首先,什么是B/S、C/S。它們之間的優缺點各是什么,這是一個學習軟件的人都應該掌握的知識。關於這個問題,google一下能夠得到很多具體而有效的答案。

(一)、什么是C/S和B/S:

C/S又稱Client/Server或客戶/服務器模式。

在C/S模式中服務器通常采用高性能的PC、工作站或小型機,並采用大型數據庫系統,如Oracle、Sybase、Informix或 SQL Server。客戶端需要安裝專用的客戶端軟件。

B/S又稱Brower/Server模式。客戶機上只要安裝一個瀏覽器(Browser),如Netscape Navigator或Internet Explorer,服務器安裝Oracle、Sybase、Informix或 SQL Server等數據庫。瀏覽器通過Web Server 同數據庫進行數據交互。

(二)、C/S,B/S各有什么優缺點:

1、 C/S結構

C/S(Client/Server)結構,即大家熟知的客戶機和服務器結構。通過C/S可以充分利用兩端硬件環境的優勢,將任務合理分配到Client端和Server端來實現,降低了系統的通訊開銷。目前大多數應用軟件系統都是C/S形式的兩層結構。由於現在的軟件應用系統正在向分布式的Web應用發展,Web和Client/Server 應用都可以進行同樣的業務處理,應用不同的模塊共享邏輯組件,因此,內部的和外部的用戶都可以訪問新的和現有的應用系統。通過現有應用系統中的邏輯可以擴展出新的應用系統,這也就是目前應用系統的發展方向。

傳統的C/S體系結構雖然采用的是開放模式,但這只是系統開發一級的開放性,在特定的應用中無論是Client端還是Server端都還需要特定的軟件支持。由於沒能提供用戶真正期望的開放環境,C/S結構的軟件需要針對不同的操作系統開發不同版本的軟件,加之產品的更新換代快,已經很難適應百台電腦以上局域網用戶同時使用,而且代價高,效率低。

2、B/S結構

B/S(Browser/Server)結構即瀏覽器和服務器結構。它是隨着Internet技術的興起而對C/S結構的一種變化或者改進的結構。在這種結構下,用戶工作界面通過WWW瀏覽器來實現,極少部分事務邏輯在前端(Browser)實現,主要事務邏輯在服務器端(Server)實現,形成所謂三層3-tier結構。這樣就大大簡化了客戶端電腦載荷,減輕了系統維護與升級的成本和工作量,降低了用戶的總體成本(TCO)。以目前的技術看,局域網建立B/S結構的網絡應用,並通過Internet/Intranet模式下數據庫應用,相對易於把握,成本也是較低的。B/S結構是一次到位開發,能實現不同人員,從不同地點,以不同的接入方式(比如LAN、 WAN、 Internet/Intranet等)訪問和操作共同的數據庫;它能有效地保護數據平台和管理訪問權限,服務器數據庫也很安全。

B/S結構主要是利用了不斷成熟的WWW瀏覽器技術,結合瀏覽器的多種Script語言(VBScript、JavaScript…)和ActiveX技術,用通用瀏覽器就實現了原來需要復雜專用軟件才能實現的強大功能,並節約了開發成本,是一種全新的軟件系統構造技術,成為當今應用軟件的首選體系結構。

以上是比較精煉的一個B/S、C/S介紹。

用幾個關鍵點可以總結如下:

C/S模式:

①、充分利用現在PC機的硬件優勢和網絡的穩定性,將邏輯處理合理分擔到客戶機和服務器,減輕服務器負擔,也使軟件產品能實現更加好的功能(尤其在視覺效果、3D處理等)

②、更新維護過程需要同時對服務器、客戶端進行升級處理,成本高、效率低。(這也是這種設計模式的最大硬傷)

B/S模式:

①、將大量的事務邏輯工作放在服務器端,而在Browser端只有很少的事務邏輯。這樣對前端計算機的硬件要求降低了。

②、由於相關標准的完善,B/S模式更符合工業化大規模生產的要求。用戶只要在自己的電腦上安裝一個瀏覽器,便可以瀏覽任何一個網站。這是C/S模式無法做到的。

③、過於標准化的B/S前端,同樣可以理解成為過於呆板,這直接導致了B/S模式下的功能實現沒有C/S靈活、方便、美觀。如今的一些script技術和AJAX技術等已經很大程度上緩解了這個問題。但和一些3D網絡游戲等等在美觀角度還是無法比擬的。

那么是否能在兩者之間尋找一個平衡點呢,仁者見仁吧;

那么在上述兩種模式中再引入一個現在比較流行的術語——“雲計算”,那么又會是怎么樣的一番博弈呢。

看看我們現在的互聯網:

1、越來越快、越來越穩定的網絡傳輸速度

2、智能手機越來越像個人電腦

在這樣的網絡大環境下,軟件產品的架構模式未來十年又會往哪個方向發展呢。其實每個人悠閑的時候都可以去思考一下。

以上內容希望幫助到大家,很多PHPer在進階的時候總會遇到一些問題和瓶頸,業務代碼寫多了沒有方向感,不知道該從那里入手去提升,對此我整理了一些資料,包括但不限於:分布式架構、高可擴展、高性能、高並發、服務器性能調優、TP6,laravel,YII2,Redis,Swoole、Swoft、Kafka、Mysql優化、shell腳本、Docker、微服務、Nginx等多個知識點高級進階干貨需要的可以免費分享給大家,點擊此處加入我的官方群獲取資料

部分資料截圖如下

 

 

PHP進階學習思維導圖、面試;文檔、視頻資源免費獲取


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM