C/S(Client/Server):客戶端/服務器結構。界面表示、事務處理邏輯放在客戶端,服務端主要負責數據的存儲管理,這就是胖客戶端模式。而在三層架構模式下,表示層和少許的事務處理放在客戶端,主要的事務處理邏輯放在業務應用服務端,同時數據存儲管理仍然爲獨立的一層。
B/S(Browser/Server):瀏覽器/服務器結構,界面顯示邏輯放在瀏覽器,事務處理邏輯則在Web Server。極少數的邏輯在前端實現,但主要的事務邏輯在服務器端實現。一般由Browser、Web Server、數據存儲Server造成三層架構。
不少工做能夠在客戶端處理後在提交給服務器,所以CS客戶端的響應速度快。例如,能夠在客戶端完成20萬條數據的排序、內容篩選,函數計算等;顯示包含上萬節點的關係圖。
客戶端應用能夠利用工做終端的多核CPU、內存、GPU等硬件資源。像AutoCAD、Photoshop、遊戲軟件客戶端等,還會針對顯卡進行特殊優化。
l 操做界面漂亮、形式多樣,能夠充分知足客戶自身的個性化要求
客戶端應用的自主性更強,客觀的講,瀏覽器自身就是一個客戶端應用。
因此,操做界面漂亮與否應該與所使用的開發語言和框架、設計與開發人員能力、應用開發資源投入等因素密切相關。
客戶端應用能夠集成第三方軟硬件,例如指紋儀、智能卡、加密狗等;可使用擴展屏幕,例如PowerPoint的演講者模式、大屏顯示等。
l CS結構的管理信息系統具備較強的事務處理能力,能實現複雜的業務流程
C/S通常面向相對固定的用戶羣,能夠對權限進行多層次檢驗,提供了更安全的存取模式。通常高度機密的信息系統採用C/S結構爲宜。
l 須要專門的客戶端安裝程序,分佈功能弱,快速部署安裝和配置困難
針對不一樣的平臺,須要使用不一樣的開發工具開發。操做系統版本(win 7/win 10/Linux)、系統類型(x86/x64)。
儘管一些中間語言,如java、.net經過虛擬機能夠解決運行平臺的差別性,但涉及到Native相關的組件,仍然須要考慮平臺差別性,典型的如各類解碼器,第三方組件須要區分x86和x64版本。
l 開發、維護成本較高,須要具備必定專業水準的技術人員才能完成
與客戶端的形式多樣、能夠知足客戶個性化要求相對應的就是對開發人員的要求也比較高。
一般不適合面向一些不可知的用戶,所以適用面窄,一般用於局域網。
只要有網絡、瀏覽器,就能夠隨時隨地進行查詢、瀏覽等業務處理。
l 業務擴展簡單方便,經過增長網頁便可增長服務器功能
l 維護簡單方便,只須要改變網頁,便可實現全部用戶的同步更新
有大量的第三方BS組件和技術,可用於後端開發、前端顯示,所以從快速開發角度來看BS模式佔有很大的優點。
l 個性化特色明顯下降,沒法實現具備個性化的功能要求
雖然IE瀏覽器支持ActiveX擴展,可是在兼容性等方面又不盡如人意。
尤爲是在對HTML5的支持上,各主流瀏覽器都存在或多或少的差別,但隨着時間的推移,這種狀況將會有很大的改觀。
爲了提升使用體驗,一般會採用動態刷新網頁的方式,給服務器帶來必定的壓力(經過Ajax和WebSocket在必定程度上能夠緩解這方面的問題)。
瀏覽器通常只負責界面表示,所以一些業務邏輯必須在服務器上完成,像異常狀況處理、數據轉換、操做日誌等。
服務器端在保存數據的同時還要保存用戶的狀態,開發人員要精心設計提交的次序即信息的完整性,而對C/S而言只須要所有完成後提交便可。
由於全部的操做是經過請求/響應模式工做,弱安全設計不到位,經過簡單修改URL參數、篡改POST字段值就會產生安全性方面的問題。
瀏覽器做爲界面展現的平臺和腳本語言的執行環境,它沒法超越瀏覽器所能支持的功能特性。ActiveX、Flash、Java Servlet都是爲了擴展功能曾經使用的技術,可是由於兼容性、安全性等方面的問題,已經基本被淘汰。
綜合對比發現,B/S架構勝在開發相對簡單,維護簡單方便;而C/S架構勝在性能高自主性強。在這些方面,短時間內各自佔據着獨有的優點。
採用何種架構,須要對軟件需求進行細緻的瞭解,最終來肯定使用的架構,不能單純的追求技術的先進性。而將來發展趨勢,是將B/S與C/S的優點完美的結合起來,既能以B/S的方式發佈運行,又能同時具備C/S極強的可操做性。
更多技術資訊可關注:gzitcast