一文讀懂軟件系統開發架構C/S、B/S、微服務與分佈式

摘要

  • C/S(client/server) 指的是一個系統功能實現分為客戶端與服務器,客戶端就是我們手機上的APP、電腦下載的各種客戶端軟件比如各種大型網絡遊戲軟件,服務器指的是實現數據操作功能的計算機。
  • B/S(browser/server) 指的是一個系統功能的實現分為瀏覽器與服務器,瀏覽器就類似於一個客戶端,不過系統的直接用戶是通過瀏覽器的方式與系統進行交互的。
  • 微服務指的是將一個完整的系統功能在程序上拆分為一個個能夠獨立運行的服務程序,比如MES系統中可以將不同的功能進行拆分,排產、設備數據采集與監控、設備維修可以拆分為三個微服務,微服務與微服務之間可以通過接口調用實現聯動
  • 分佈式指的是將軟件系統部署在多臺服務器上,多臺服務器可以並行運算、也可以獨立運算,能夠解決高並發問題使得負載均衡,保證很多人同時使用系統時的穩定性和系統運行速度。

開發技術發展歷史

以上敘述是四種開發架構的將要描述,要系統性的瞭解還是需要回顧計算機開發技術的發展歷史

1.C/S

最開始在計算機上寫好瞭功能應用程序之後軟件與數據庫被部署在同一臺主機上,這樣會使得主機的計算資源負擔過大,一臺主機既要實現應用與業務邏輯程序的運行,同時又要實現數據的存取服務,使用戶不能流暢的使用系統。

後來為瞭將“專業的事交給專業的計算機”來做產生瞭客戶端與服務器分離的理念,最開始是客戶端是一臺安裝瞭應用程序的計算機,服務器是安裝瞭數據庫管理軟件的計算機,客戶端負責用戶交互程序與業務邏輯程序的實現,服務器負責處理數據,客戶端與服務器通過協議進行通信。

在客戶端與服務器的分離實踐中發現,如果業務邏輯程序全部放在客戶端會使得客戶端過於笨重(不好進行系統功能更新與系統使用維護)而服務器又太輕隻是用來處理數據沒有將服務器的計算資源充分利用起來,於是自然想到將主要的業務邏輯也放到服務器上,客戶端隻負責用戶交互界面以及實現一小部分的業務邏輯這就是C/S架構。

而C/S架構有以下的幾個主要缺點:

1.系統使用方式不靈活,要想使用系統必須要在裝有客戶端的電腦上才能使用,如工廠裡C/S架構的系統必須走到相關的工位上才能使用系統。不能滿足隨時隨地靈活辦公的需求。

2.系統功能更新不方便,一旦開發人員在服務器上上傳瞭新的功能性程序就需要更新每一臺計算機上的客戶端程序有時候甚至需要重新安裝客戶端。

3.系統維護與功能擴展很麻煩,由於C/S架構開發的程序是整體打包的,程序組件、函數、模塊之間是緊耦合的,要擴展或調整新功能時局部的修改可能導致系統整體功能無法運行需要修改很多個地方,有時候甚至重新開發一次系統,開發人員的時間成本很高。

4.對於使用系統的企業來說成本較高,不僅需要購買服務器、路由器等基礎硬件基礎設施,還需要購買配套使用的軟件設施比如數據庫、操作系統等等,一旦公司規模擴大或者業務上有調整可能又需要源源不斷的投入到購買硬件設施以及軟件開發中。

2.B/S

為瞭緩解甚至消弭C/S架構的缺點B/S架構誕生瞭,B/S架構有以下幾個有點:

1.系統使用方式靈活方便,B/S架構以瀏覽器代替傳統安裝在計算機上的客戶端,隻要有電腦隨時隨地都可以登錄操作系統,如果沒有電腦也可以在開發一個APP配合手機實現移動辦公

2.系統功能更新方便,B/S開發架構中業務邏輯基本上和數據操作基本上全部都在服務器上實現,開發人員隻需要在服務器上上傳修改程序後,用戶重新登陸瀏覽器網頁就可以使用擴展瞭新功能的系統。

3.B/S架構的程序是模塊化的開發形式,更新功能時隻需要更新對應的模塊並上傳,能夠節省開發人員的時間成本。

4.對於使用系統的的企業來說系統的部署方式有多種選擇,既可以選擇租用雲服務器也可以選擇本地化的部署形式。

3.微服務

c/s與b/s的迭代主要面向對象是使用人員,而微服務與分佈式主要面向系統運維與系統開發人員

微服務是將整體的系統功能解耦合的拆分成獨立的服務,獨立的服務可以獨立的開發與獨立運行,微服務有以下幾個特點

1.程序功能是解耦合的,添加或修改功能隻需要對應調整對應的微服務。特別是對於制造業工業系統而言尤其重要,不同的行業、不同規模的企業都會有不同的需求,系統供應商要想在滿足客戶需求的同時保證系統的可擴展微服務的軟件設計模式是一個很好的選擇

2.可以提供完備的接口,由於每一個微服務都是獨立的那麼都可以獨立的對外提供接口,與其他微服務直接通過接口通信,與不同的系統間也可以實現很方便的高度集成

3.可以靈活組合搭配滿足客戶需求,當微服務庫很多的時候隻需要選擇不同的微服務組合或者微調就可以滿足客戶需求快速部署上線系統。

4.分佈式

分佈式系統的服務器是由很多的計算機組成集群,可以將系統的組件、功能模塊分別部署在不同的計算機上,不同的計算機之間通過接口進行通信和交互,分佈式系統有如下幾個好處:

1.負載均衡解決高並發的問題,可以同時支持大量的人員使用系統

2.增加系統使用的可靠性。數據備份,數據被同時存儲在不同的服務器上,即便一臺服務器出現問題也可以使用其他的服務器進行代替運行系統。

2023/9/29 回傢躺平

祝中秋快樂!

发表回复

相关推荐

半導體物理——波矢與能帶

一、波矢在學習半導體物理和固體物理的過程中,我始終在疑惑一個問題,在這兩個科目中頻繁出現的波矢空間到底是什麼,當時老...

· 18分钟前

【筆記】托馬斯·阿奎那

*歡迎指出錯誤!(1)法律和正義托馬斯在信仰與理性的關系方面以及法律方面有一些獨特的觀點。1.共相問題共相問題的本質是信...

· 19分钟前

慧為智能:智能終端ODM制造商,佈局5G、AI等領域順應行業趨勢

(報告出品方/作者:開源證券,諸海濱,趙昊)1、公司情況:深耕智能終端產品,2021年營收上漲39%1.1、發展歷程:成立於2011...

· 48分钟前

刚刚拿到人力资源管理师证书,个人真实备考经历分享(踩雷避坑指南,3000字经验分享建议收藏!)

大家在考取各类证书之前是否都会先了解相关信息呢?报考条件、报名时间等等

· 49分钟前

最近相位分析:冥王刑火星——隐秘角落里的暗流

溪云初起日沉阁 山雨欲来风满楼 本月初火星已经和冥王星逐渐运行到90°,一个相刑的位置。并且这个相位要持续到10月底。火 ...

· 52分钟前