常見的五種軟體架構

2022-09-11 21:00:36 字數 2215 閱讀 4191

軟體架構(software architecture)就是軟體的基本結構。

合適的架構是軟體成功的最重要因素之一。大型軟體公司通常有專門的架構師職位(architect),只有資深程式設計師才可以擔任。

o'reilly 出版過一本免費的小冊子《software architecture patterns》(pdf), 介紹了五種最常見的軟體架構,是非常好的入門讀物。我讀後受益匪淺,下面就是我的筆記。

分層架構(layered architecture)是最常見的軟體架構,也是事實上的標準架構。如果你不知道要用什麼架構,那就用它。

這種架構將軟體分成若干個水平層,每一層都有清晰的角色和分工,不需要知道其他層的細節。層與層之間通過介面通訊。

雖然沒有明確約定,軟體一定要分成多少層,但是四層的結構最常見。

有的軟體在邏輯層和持久層之間,加了乙個服務層(service),提供不同業務邏輯需要的一些通用介面。

使用者的請求將依次通過這四層的處理,不能跳過其中任何一層。

優點

缺點

事件(event)是狀態發生變化時,軟體發出的通知。

事件驅動架構(event-driven architecture)就是通過事件進行通訊的軟體架構。它分成四個部分。

對於簡單的專案,事件佇列、分發器和事件通道,可以合為一體,整個軟體就分成事件**和事件處理器兩部分。

優點

缺點

微核架構(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)。

虛擬中介軟體又包含四個元件。

優點

缺點

10種常見的軟體架構模式

有沒有想過要設計多大的企業規模系統?在主要的軟體開發開始之前,我們必須選擇乙個合適的體系結構,它將為我們提供所需的功能和質量屬性。因此,在將它們應用到我們的設計之前,我們應該了解不同的體系結構。根據維基百科中的定義 架構模式是乙個通用的 可重用的解決方案,用於在給定上下文中的軟體體系結構中經常出現的...

10種常見的軟體架構模式

有沒有想過要設計多大的企業規模系統?在主要的軟體開發開始之前,我們必須選擇乙個合適的體系結構,它將為我們提供所需的功能和質量屬性。因此,在將它們應用到我們的設計之前,我們應該了解不同的體系結構。根據維基百科中的定義 架構模式是乙個通用的 可重用的解決方案,用於在給定上下文中的軟體體系結構中經常出現的...

10種常見的軟體架構模式的比較

這位大佬部落格 名稱優點 缺點分層模式 乙個較低的層可以被不同的層所使用。層使標準化更容易,因為我們可以清楚地定義級別。可以在層內進行更改,而不會影響其他層。不是普遍適用的。在某些情況下,某些層可能會被跳過。客戶端 伺服器模式 很好地建立一組服務,使用者可以請求他們的服務。請求通常在伺服器上的單獨執...