掃二維碼與項(xiàng)目經(jīng)理溝通
我們?cè)谖⑿派?4小時(shí)期待你的聲音
解答本文疑問/技術(shù)咨詢/運(yùn)營咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流
在去年底召開的全球軟件架構(gòu)峰會(huì)(Global Software Architecture Summit)上,全球各界開發(fā)人員齊聚一堂,廣泛地討論了各種業(yè)界常見的軟件架構(gòu)模式。在此,我為您梳理并總結(jié)這些軟件架構(gòu)師給我們帶來的精彩見解。

成都創(chuàng)新互聯(lián)公司主營禹王臺(tái)網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營網(wǎng)站建設(shè)方案,重慶App定制開發(fā),禹王臺(tái)h5小程序定制開發(fā)搭建,禹王臺(tái)網(wǎng)站營銷推廣歡迎禹王臺(tái)等地區(qū)企業(yè)咨詢
首先,什么是軟件架構(gòu)模式?
架構(gòu)模式是那些由軟件架構(gòu)師通過持續(xù)實(shí)踐,進(jìn)而總結(jié)出的、過往已驗(yàn)證的、優(yōu)秀設(shè)計(jì)架構(gòu)。它們往往能夠被重復(fù)地使用到其他項(xiàng)目或領(lǐng)域之中。更具體地說,架構(gòu)模式是需要在實(shí)踐中反復(fù)發(fā)掘的一組設(shè)計(jì)決策。它具有明確定義的屬性,以及一套可以被重復(fù)使用與描述的架構(gòu)。
其實(shí),開發(fā)軟件架構(gòu)可以被看作是針對(duì)模式進(jìn)行選擇、定制和組合的一整套過程。而軟件架構(gòu)師的任務(wù)就是要決定:如何實(shí)例化模式,如何使其與特定的上下文、以及問題的約束相適應(yīng)。我們將在下文中進(jìn)行詳細(xì)的討論。
Mark Richards在其著作--《軟件架構(gòu)模式》一書中主要介紹了5種軟件架構(gòu)模式,它們分別是:微內(nèi)核、微服務(wù)、分層架構(gòu)、基于事件(事件驅(qū)動(dòng))和基于空間。下面我們將根據(jù)這個(gè)順序逐一進(jìn)行介紹。
1.微內(nèi)核模式
微內(nèi)核架構(gòu)模式也稱為插件架構(gòu)模式。它通常是在軟件團(tuán)隊(duì)創(chuàng)建具有可互換性組件(interchangeable components)的系統(tǒng)時(shí),被使用到。
該模式主要適用于那些必須能夠適應(yīng)不斷變化需求的軟件系統(tǒng)。微內(nèi)核模式能夠從擴(kuò)展功能、以及特定于客戶的部件中,分離出最小的功能核心。作為一種套接字(socket),它能夠插入到各種擴(kuò)展之中,并協(xié)調(diào)其相互之間的協(xié)作關(guān)系。
業(yè)界通常認(rèn)為:微內(nèi)核架構(gòu)模式是一種可被用于實(shí)施基于產(chǎn)品的應(yīng)用程序的自然模式。此處所謂基于產(chǎn)品的應(yīng)用程序,是一種打包的應(yīng)用程序,可以作為典型的第三方產(chǎn)品版本被下載。當(dāng)然,許多公司也會(huì)據(jù)此來開發(fā)和發(fā)布其內(nèi)部的業(yè)務(wù)應(yīng)用,例如:各種軟件產(chǎn)品、版本、發(fā)布說明、以及可插入的功能等。
微內(nèi)核架構(gòu)模式允許您將其他應(yīng)用程序的功能作為插件,添加到核心的應(yīng)用程序上,進(jìn)而提供可擴(kuò)展性、以及功能上的分離(隔離)。
微內(nèi)核架構(gòu)模式通常由兩種類型的架構(gòu)組件所組成:核心系統(tǒng)和各種插件模塊。我們需要將應(yīng)用程序的邏輯,在各個(gè)獨(dú)立的插件模塊和基礎(chǔ)核心系統(tǒng)之間進(jìn)行劃分,以提供基于應(yīng)用功能,和自定義處理邏輯的可擴(kuò)展性、靈活性和隔離性。在傳統(tǒng)概念上,微內(nèi)核架構(gòu)模式的核心系統(tǒng),僅包含那些系統(tǒng)運(yùn)行所需的最少功能。
微內(nèi)核架構(gòu)的最佳示例是Eclipse IDE。通過下載基本的Eclipse產(chǎn)品,您只會(huì)獲得一個(gè)編輯器。而只有在您添加了各種插件之后,它才能成為一個(gè)高度可定制的、實(shí)用的產(chǎn)品。
優(yōu)勢(shì):
適合性:
2.微服務(wù)模式
當(dāng)您將應(yīng)用程序作為一組微服務(wù)進(jìn)行編寫時(shí),實(shí)際上是在編寫可以協(xié)同工作的多個(gè)微型應(yīng)用程序。每個(gè)微服務(wù)都有自己的“職責(zé)”,團(tuán)隊(duì)可以獨(dú)立于其他微服務(wù)進(jìn)行開發(fā)。他們之間唯一的依賴便是溝通。當(dāng)微服務(wù)彼此進(jìn)行通信時(shí),您必須確保它們之間發(fā)送的消息能夠向后兼容。
優(yōu)勢(shì):
適合性:
3.分層架構(gòu)模式
最常見的架構(gòu)模式當(dāng)屬分層架構(gòu)模式。它是我們用來設(shè)計(jì)大多數(shù)軟件的傳統(tǒng)方法,同樣有具有一定的獨(dú)立性。分層架構(gòu)模式是一種多層模式,每個(gè)層面上都有多個(gè)組件。這就意味著所有的組件雖然是互聯(lián)的,但是彼此之間并不依賴。在應(yīng)用程序中,分層架構(gòu)模式的每一層都有特定的角色和職責(zé)。例如:表示層將負(fù)責(zé)處理所有用戶界面和瀏覽器之間的通信邏輯,而業(yè)務(wù)層將負(fù)責(zé)執(zhí)行與請(qǐng)求相關(guān)的特定業(yè)務(wù)規(guī)則。
分層架構(gòu)模式的主要特點(diǎn)在于各個(gè)組件各司其職,相互分離。也就是說,某個(gè)特定層面上的組件,僅會(huì)處理與該層有關(guān)的邏輯。
優(yōu)勢(shì):
適合性:
4.基于事件(事件驅(qū)動(dòng))的模式
這是用于開發(fā)具有高度可擴(kuò)展性系統(tǒng)的最常見分布式異步架構(gòu)。該架構(gòu)由那些可用于監(jiān)聽事件,并能夠異步處理事件的組件所組成。事件驅(qū)動(dòng)類架構(gòu)構(gòu)建出一個(gè)能夠接收所有數(shù)據(jù)的中央單元。該單元可以被委托給那些具有處理特定類型能力的單獨(dú)模塊。
優(yōu)勢(shì):
適合性:
5.給予空間的模式
基于空間的架構(gòu)模式被專門設(shè)計(jì)為解決那些可擴(kuò)展性和并發(fā)性的問題。對(duì)于那些具有不定因素和不可測(cè)并發(fā)用戶數(shù)的應(yīng)用來說,它同樣也是一種非常實(shí)用的架構(gòu)模式。該模式通過消除對(duì)中央數(shù)據(jù)庫的約束,以及使用可復(fù)制的內(nèi)存中數(shù)據(jù)格(data grids),來實(shí)現(xiàn)良好的可擴(kuò)展性。
此外,基于空間的架構(gòu)可以通過在多個(gè)服務(wù)器之間進(jìn)行拆分處理與存儲(chǔ),以避免高負(fù)載下的功能性崩潰。
優(yōu)勢(shì):
適合性:
總的說來,上述介紹的五種架構(gòu)模式各有自己的優(yōu)勢(shì)和適用環(huán)境。您可以在程序設(shè)計(jì)與項(xiàng)目中,按照實(shí)際需求選擇不同的軟件架構(gòu)模式,并實(shí)現(xiàn)復(fù)用。
原標(biāo)題:5 Major Software Architecture Patterns,作者: Ekaterina Novoseltseva
【譯稿,合作站點(diǎn)轉(zhuǎn)載請(qǐng)注明原文譯者和出處為.com】

我們?cè)谖⑿派?4小時(shí)期待你的聲音
解答本文疑問/技術(shù)咨詢/運(yùn)營咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流