軟體架構的風格與分類

來源:互聯網
上載者:User

阮一峰的學習筆記《軟體架構入門》,記載了5種最常用的軟體架構:
1、分層架構
眾所周知

2、事件驅動架構
通過事件進行通訊的軟體架構

事件隊列(event queue):接收事件的入口
分發器(event mediator):將不同的事件分發到不同的商務邏輯單元
事件通道(event channel):分發器與處理器之間的聯絡渠道
事件處理器(event processor):實現商務邏輯,處理完成後會發出事件,觸發下一步操作

優點
分布式的非同步架構,事件處理器之間高度解耦,軟體的擴充性好
適用性廣,各種類型的項目都可以用
效能較好,因為事件的非同步本質,軟體不易產生堵塞
事件處理器可以獨立地載入和卸載,容易部署

缺點
涉及非同步編程(要考慮遠程通訊、失去響應等情況),開發相對複雜
難以支援原子性操作,因為事件通過會涉及多個處理器,很難復原
分布式和非同步特性導致這個架構較難測試

3、微核架構
又稱為外掛程式架構。指的是軟體的核心相對較小,主要功能和商務邏輯都通過外掛程式實現。

核心(core)通常只包含系統啟動並執行最小功能。外掛程式則是互相獨立的,外掛程式之間的通訊,應該減少到最低,避免出現互相依賴的問題。

優點
良好的功能延伸性(extensibility),需要什麼功能,開發一個外掛程式即可
功能之間是隔離的,外掛程式可以獨立的載入和卸載,使得它比較容易部署,
可定製性高,適應不同的開發需要
可以漸進式地開發,逐步增加功能

缺點
擴充性(scalability)差,核心通常是一個獨立單元,不容易做成分布式
開發難度相對較高,因為涉及到外掛程式與核心的通訊,以及內部的外掛程式登記機制

4、微服務架構

5、雲架構
不甚了了

這個模式主要分成兩部分:處理單元(processing unit)和虛擬中介軟體(virtualized middleware)。

處理單元:
實現商務邏輯

虛擬中介軟體:
負責通訊、保持sessions、資料複製、分散式處理、處理單元的部署。

虛擬中介軟體又包含四個組件:

訊息中介軟體(Messaging Grid):系統管理使用者請求和session,當一個請求進來以後,決定分配給哪一個處理單元。

資料中介軟體(Data Grid):將資料複製到每一個處理單元,即資料同步。保證某個處理單元都得到同樣的資料。

處理中介軟體(Processing Grid):可選,如果一個請求涉及不同類型的處理單元,該中介軟體負責協調處理單元

部署中介軟體(Deployment Manager):負責處理單元的啟動和關閉,監控負載和回應時間,當負載增加,就新啟動處理單元,負載減少,就關閉處理單元。

但前不久我讀架構師考試教材,裡面談到軟體的架構風格,分為5大類:

1、資料流風格
順序執行。包括批處理序列和管道/過濾器。

2、調用/返迴風格
系統採用了調用與返回機制,實質是一種分而治之的策略,主要思想為將複雜的大系統分解為若干子系統,降低複雜度,增加可修改性。
包括
1)主程式/子程式
2)物件導向風格
對象通過函數和方法進行互動。
3)階層風格
上層調用下層。
CS、BS、MVC、MVP都屬於階層。

3、獨立構件風格
強調系統中的每個構件都是相對獨立的個體,它們之間不直接通訊,以降低耦合度,提升靈活性。包括:
1)進程通訊
通過訊息傳遞來串連構件
2)事件子系統
基於事件的隱式調用風格。系統不直接調用構件,構件的過程註冊到事件,當事件被觸發,則註冊於其中的所有構件都被執行。觀察者模式。

我認為主要事件系統的優點在於調用和被調用沒有直接關聯,解耦。

4、虛擬機器風格
人為構建一個運行環境,系統運行於其中,可以解析與運行自訂的語言,增加架構的靈活性。包括
1)解譯器
2)以規則為中心

5、倉庫風格
一個中央資料庫,獨立的構件圍繞其上執行。
1)資料庫
2)超文本系統
3)黑板。黑板相當於共用資料。知識源通過黑板互動。

那麼教材裡說的軟體架構風格和阮一峰提到的5種常用架構是個什麼關係呢。

按照我的理解,軟體架構風格是軟體的種類;而架構則是軟體的結構類型。5種常用架構,可以試著歸類到相應的風格裡去:

1、分層結構 – 調用/返迴風格

2、事件驅動架構 – 獨立構件風格

3、微核架構 – 獨立構件風格

4、微服務架構 – 獨立構件風格

5、雲架構 – 獨立構件風格

這種歸類估計有錯,先記下來。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.