壹、軟件的系統架構
(壹)、分層架構
分層架構(layered architecture)是最常見的軟件架構,也是事實上的標準架構。如果妳不知道要用什麽架構,那就用它。
這種架構將軟件分成若幹個水平層,每壹層都有清晰的角色和分工,不需要知道其他層的細節。層與層之間通過接口通信。
雖然沒有明確約定,軟件壹定要分成多少層,但是四層的結構最常見。
表現層(presentation):用戶界面,負責視覺和用戶互動
業務層(business):實現業務邏輯
持久層(persistence):提供數據,SQL 語句就放在這壹層
數據庫(database) :保存數據
有的軟件在邏輯層和持久層之間,加了壹個服務層(service),提供不同業務邏輯需要的壹些通用接口。
用戶的請求將依次通過這四層的處理,不能跳過其中任何壹層。
(二)事件驅動架構
事件(event)是狀態發生變化時,軟件發出的通知。
事件驅動架構(event-driven architecture)就是通過事件進行通信的軟件架構。它分成四個部分。
事件隊列(event queue):接收事件的入口
分發器(event mediator):將不同的事件分發到不同的業務邏輯單元
事件通道(event channel):分發器與處理器之間的聯系渠道
事件處理器(event processor):實現業務邏輯,處理完成後會發出事件,觸發下壹步操作
對於簡單的項目,事件隊列、分發器和事件通道,可以合為壹體,整個軟件就分成事件代理和事件處理器兩部分。
(三)微核架構
微核架構(microkernel architecture)又稱為"插件架構"(plug-in architecture),指的是軟件的內核相對較小,主要功能和業務邏輯都通過插件實現。
內核(core)通常只包含系統運行的最小功能。插件則是互相獨立的,插件之間的通信,應該減少到最低,避免出現互相依賴的問題。
(四)、微服務架構
微服務架構(microservices architecture)是服務導向架構(service-oriented architecture,縮寫 SOA)的升級。
每壹個服務就是壹個獨立的部署單元(separately deployed unit)。這些單元都是分布式的,互相解耦,通過遠程通信協議(比如REST、SOAP)聯系。
(五)、雲架構
雲結構(cloud architecture)主要解決擴展性和並發的問題,是最容易擴展的架構。
它的高擴展性,主要原因是沒使用中央數據庫,而是把數據都復制到內存中,變成可復制的內存數據單元。然後,業務處理能力封裝成壹個個處理單元(prcessing unit)。訪問量增加,就新建處理單元;訪問量減少,就關閉處理單元。由於沒有中央數據庫,所以擴展性的最大瓶頸消失了。由於每個處理單元的數據都在內存裏,最好要進行數據持久化。
這個模式主要分成兩部分:處理單元(processing unit)和虛擬中間件(virtualized middleware)。
處理單元:實現業務邏輯
虛擬中間件:負責通信、保持sessions、數據復制、分布式處理、處理單元的部署。
二、開發平臺
ERP平臺、金融電商平臺、小程序平臺、網站平臺、bpm平臺、低代碼開發平臺等等;
廠家有天翎、頂點、天縱、清流、K2等
開發語言有區分:dephp、java。net等;
三、如何選擇合適的開發平臺?
平臺的選型,無非是從客戶業務需求的角度,以及對應的品牌形象和案例沈澱幾個角度去選擇;
建議可以開箱即用,多試用幾次,就找到適合的產品,通俗的說,就是貨比三家。
管理顧問,每天成長壹點點,努力成就自己的優秀。