成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

五大主流軟件架構模式

譯文
開發 架構
本文將向您介紹五種架構模式的各自優勢和適用環境。您可以在程序設計與項目中,按照實際需求選擇不同的軟件架構模式,并實現復用。

[[330780]]

【51CTO.com快譯】

在去年底召開的全球軟件架構峰會(Global Software Architecture Summit)上,全球各界開發人員齊聚一堂,廣泛地討論了各種業界常見的軟件架構模式。在此,我為您梳理并總結這些軟件架構師給我們帶來的精彩見解。

首先,什么是軟件架構模式?

架構模式是那些由軟件架構師通過持續實踐,進而總結出的、過往已驗證的、優秀設計架構。它們往往能夠被重復地使用到其他項目或領域之中。更具體地說,架構模式是需要在實踐中反復發掘的一組設計決策。它具有明確定義的屬性,以及一套可以被重復使用與描述的架構。

其實,開發軟件架構可以被看作是針對模式進行選擇、定制和組合的一整套過程。而軟件架構師的任務就是要決定:如何實例化模式,如何使其與特定的上下文、以及問題的約束相適應。我們將在下文中進行詳細的討論。

Mark Richards在其著作--《軟件架構模式》一書中主要介紹了5種軟件架構模式,它們分別是:微內核、微服務、分層架構、基于事件(事件驅動)和基于空間。下面我們將根據這個順序逐一進行介紹。

1.微內核模式

微內核架構模式也稱為插件架構模式。它通常是在軟件團隊創建具有可互換性組件(interchangeable components)的系統時,被使用到。

該模式主要適用于那些必須能夠適應不斷變化需求的軟件系統。微內核模式能夠從擴展功能、以及特定于客戶的部件中,分離出最小的功能核心。作為一種套接字(socket),它能夠插入到各種擴展之中,并協調其相互之間的協作關系。

業界通常認為:微內核架構模式是一種可被用于實施基于產品的應用程序的自然模式。此處所謂基于產品的應用程序,是一種打包的應用程序,可以作為典型的第三方產品版本被下載。當然,許多公司也會據此來開發和發布其內部的業務應用,例如:各種軟件產品、版本、發布說明、以及可插入的功能等。

微內核架構模式允許您將其他應用程序的功能作為插件,添加到核心的應用程序上,進而提供可擴展性、以及功能上的分離(隔離)。

微內核架構模式通常由兩種類型的架構組件所組成:核心系統和各種插件模塊。我們需要將應用程序的邏輯,在各個獨立的插件模塊和基礎核心系統之間進行劃分,以提供基于應用功能,和自定義處理邏輯的可擴展性、靈活性和隔離性。在傳統概念上,微內核架構模式的核心系統,僅包含那些系統運行所需的最少功能。

微內核架構的最佳示例是Eclipse IDE。通過下載基本的Eclipse產品,您只會獲得一個編輯器。而只有在您添加了各種插件之后,它才能成為一個高度可定制的、實用的產品。

優勢:

  • 具有極大的靈活性和可擴展性。
  • 在某些實現場景中,允許應用程序在運行的時候被添加插件。
  • 具有良好的可移植性。
  • 易于部署。
  • 能夠快速地響應不斷變化的環境。
  • 插件模塊既可以單獨地被測試,又可以由核心系統來輕松地進行模擬,以演示或原型化某項特定的功能,進而達到對核心系統的盡少、甚至不做修改。
  • 由于您可以通過自定義和簡化應用程序,來僅包括那些必需的功能,因此它能夠提供優越的性能。

適合性:

  • 那些需要從不同來源獲取數據,并在轉換數據之后寫入不同目標的應用程序。
  • 工作流程類應用程序。
  • 任務與作業計劃類應用程序。

2.微服務模式

當您將應用程序作為一組微服務進行編寫時,實際上是在編寫可以協同工作的多個微型應用程序。每個微服務都有自己的“職責”,團隊可以獨立于其他微服務進行開發。他們之間唯一的依賴便是溝通。當微服務彼此進行通信時,您必須確保它們之間發送的消息能夠向后兼容。

優勢:

  • 您可以單獨地編寫,維護和部署每一個微服務。
  • 您可以靈活地僅擴展那些需要的微服務。
  • 由于應用程序的各個部分較小,并且與其他部分的耦合較寬松,因此您可以輕松地進行重寫。
  • 新的團隊成員很容易快速上手。
  • 能夠使得應用程序易于被理解和修改。
  • 通過提供良好的可維護性和可測試性,以實現快速且頻繁的開發和部署。
  • 團隊無需與其他團隊協調,便可獨立地部署其服務。

適合性:

  • 適合帶有小型組件的站點。
  • 有明確邊界的企業級數據中心。
  • 快速發展的新業務和Web應用。
  • 具有遍布全球的開發團隊。

3.分層架構模式

最常見的架構模式當屬分層架構模式。它是我們用來設計大多數軟件的傳統方法,同樣有具有一定的獨立性。分層架構模式是一種多層模式,每個層面上都有多個組件。這就意味著所有的組件雖然是互聯的,但是彼此之間并不依賴。在應用程序中,分層架構模式的每一層都有特定的角色和職責。例如:表示層將負責處理所有用戶界面和瀏覽器之間的通信邏輯,而業務層將負責執行與請求相關的特定業務規則。

分層架構模式的主要特點在于各個組件各司其職,相互分離。也就是說,某個特定層面上的組件,僅會處理與該層有關的邏輯。

優勢:

  • 由于在該架構中,組件只屬于某個特定層面,而其他層面可以被模擬出來,因此該模式具有良好的易測試性。
  • 由于該模式實現起來并不太復雜,而且大多數公司都能夠通過逐層分離的功能集,來開發應用程序,因此它非常易于被開發,當然也就成為了大多數業務應用的自然選擇。
  • 具有可維護性。
  • 易于分配單獨的“角色”。
  • 方便對不同層面進行單獨地更新與增強。

適合性:

  • 標準化的業務線應用程序,且在功能上不限于CRUD(增刪改查)操作。
  • 需要快速構建的新應用。
  • 團隊中有并不了解其他架構、或經驗不足的開發人員。
  • 那些需要具有嚴格的可維護性和可測試性的應用。

4.基于事件(事件驅動)的模式

這是用于開發具有高度可擴展性系統的最常見分布式異步架構。該架構由那些可用于監聽事件,并能夠異步處理事件的組件所組成。事件驅動類架構構建出一個能夠接收所有數據的中央單元。該單元可以被委托給那些具有處理特定類型能力的單獨模塊。

優勢

  • 容易適應復雜且混亂的環境。
  • 可被輕松地擴展。
  • 當出現新的事件類型時,能夠方便地進行擴展。

適合性:

  • 那些具有異步數據流的異步系統。
  • 各種用戶界面。

5.給予空間的模式

基于空間的架構模式被專門設計為解決那些可擴展性和并發性的問題。對于那些具有不定因素和不可測并發用戶數的應用來說,它同樣也是一種非常實用的架構模式。該模式通過消除對中央數據庫的約束,以及使用可復制的內存中數據格(data grids),來實現良好的可擴展性。

此外,基于空間的架構可以通過在多個服務器之間進行拆分處理與存儲,以避免高負載下的功能性崩潰。

優勢

  • 能夠快速地響應不斷變化的環境。
  • 盡管該架構通常無法實現解耦和分布式,但它是動態的。那些基于云端的復雜工具,能夠將應用程序輕松“推送”到服務器處,以簡化部署。
  • 可以通過內存中的數據訪問,以及該模式中內置的緩存機制,來達到高性能。
  • 由于較小地、甚至并不依賴于集中式數據庫,因此該模式具有非常好的可擴展性。

適合性

  • 具有大體量數據的場景,例如:點擊流(clickstreams)和用戶日志。
  • 低價值數據的偶爾丟失并不會造成嚴重后果的場景。
  • 社交網絡環境。

總的說來,上述介紹的五種架構模式各有自己的優勢和適用環境。您可以在程序設計與項目中,按照實際需求選擇不同的軟件架構模式,并實現復用。

原標題:5 Major Software Architecture Patterns,作者: Ekaterina Novoseltseva

【51CTO譯稿,合作站點轉載請注明原文譯者和出處為51CTO.com】

 

責任編輯:龐桂玉 來源: 51CTO
相關推薦

2024-10-21 16:34:15

2023-06-16 13:34:00

軟件架構模式

2022-07-27 20:37:45

主流企業架構

2019-04-23 09:30:51

PythonWeb框架

2009-10-14 11:19:11

桌面虛擬化模式

2012-12-25 15:08:28

vSphere 5.1Xenserver 6Hyper-V 3.0

2021-07-02 06:54:45

軟件架構模式

2016-03-17 09:59:40

Apache流計算框架分布式流處理

2011-09-07 09:21:01

設計模式

2025-06-03 01:43:00

2020-06-28 10:15:39

架構模式軟件

2017-09-14 09:30:38

軟件架構模式

2019-06-04 10:40:07

2011-07-15 13:20:18

瀏覽器

2023-09-11 11:18:44

軟件開發架構

2024-06-25 13:02:25

2025-04-27 01:11:11

GolangKafkaSaga

2018-04-26 10:57:44

PHP運行模式

2017-12-25 10:34:18

技術預測機遇

2012-08-23 09:25:16

IBM軟件峰會
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 九九热这里 | 97国产在线视频 | 欧美成人影院在线 | 91久久国产综合久久91精品网站 | 免费观看国产视频在线 | 91久久精品一区二区二区 | 亚洲婷婷六月天 | 日韩有码在线播放 | 国产精品3区 | 欧美www在线观看 | 欧美日高清 | 一区二区三区免费看 | 日韩精品亚洲专区在线观看 | 亚洲精品久久久久久久久久久久久 | 亚洲人人舔人人 | 一级片免费网站 | 97av视频在线| 久久一区二区精品 | 日韩国产黄色片 | 精品视频www | 久久久免费少妇高潮毛片 | 国产日韩精品一区二区三区 | www312aⅴ欧美在线看 | 国产日韩欧美一区二区在线播放 | 色www精品视频在线观看 | 国产精品久久久久av | 黄色毛片在线播放 | 国产一区二区 | 波多野吉衣在线播放 | 亚洲一区欧美一区 | 日韩精品一区二区三区中文在线 | 99精品视频免费观看 | 四虎影音| 国产成人一区二区三区电影 | 欧美国产激情二区三区 | 成人精品网 | 精品久久久久久久久久久 | 日本高清视频在线播放 | 人人爽人人爽人人片av | 91在线视频观看免费 | 嫩草91在线|