软件体系架构模式之三微内核体系架构
當您的軟件系統(tǒng)或產(chǎn)品包含許多與外部實體的集成點時,微內(nèi)核體系結(jié)構(gòu)模式將非常有用。最重要的是,您將無法準確判斷出將來將哪些實體集成到您的系統(tǒng)中。可以將微內(nèi)核架構(gòu)模式識別為基于插件的模式。。也稱為插件架構(gòu)模式,它由兩個主要組件組成,即核心系統(tǒng)和插件組件。
微內(nèi)核架構(gòu)模式的兩個主要組成部分
核心系統(tǒng)包含運行系統(tǒng)所需的最少功能。在其他體系結(jié)構(gòu)模式中,如果我們替換,添加或更改系統(tǒng)中的規(guī)則,則整個系統(tǒng)都會受到影響。在微內(nèi)核架構(gòu)中,不會發(fā)生這種情況,因為我們將規(guī)則劃分為插件組件。插件模塊包括其他功能,并且相互隔離且彼此獨立。
核心系統(tǒng)與插件的關(guān)聯(lián)
核心系統(tǒng)需要跟蹤可用的插件,因此需要通過注冊表來跟蹤。將組件插入核心系統(tǒng)時,將使用插件的名稱,位置,數(shù)據(jù)協(xié)定和協(xié)定格式等信息來更新此注冊表。同樣,刪除注冊表時,注冊表也會通過刪除此信息進行相應更新。
合同本質(zhì)上是輸入和輸出數(shù)據(jù)。盡管核心系統(tǒng)和插件可能不是同一類型,但它允許交換數(shù)據(jù)。如果使用第三方模塊,而用戶無法控制所使用的合同,則可以使用適配器。我們可以說明這是適配器設計模式的直接用法。這樣可以確保核心系統(tǒng)不需要專門的代碼即可讀取模塊。因此,插件模塊僅對核心系統(tǒng)進行了最小的更改。這樣可以輕松地測試和部署應用程序。
微內(nèi)核架構(gòu)模板示例
Eclipse IDE是微內(nèi)核體系結(jié)構(gòu)的最佳示例之一。Eclipse作為基本產(chǎn)品只是一個編輯器。但是,一旦添加了插件,它就會成為可定制且更有用的產(chǎn)品。另一個簡單的示例是您使用的Web瀏覽器。可以添加多個插件,為基本的Web瀏覽器提供更多功能。
Eclipse的男女同校復習工具就是這種架構(gòu)模式的一個示例。在此示例中,將有一個源驗證工具(即核心系統(tǒng)),該工具讀取Java文件并將其傳遞到字符串列表中并輸出到報告中。在此應用程序中,所有檢查組件都作為插件組件連接到核心系統(tǒng)。插件模塊檢查標頭標準,攔截器,審計寫等。通過源驗證工具具有此類插件清單和正在運行的代碼,可以輕松進行代碼審查。您無需擔心其他標準檢查,因為它們是自動化的。
Map <String,String> pluginRegistry = new HashMap <String,String>();
靜態(tài)的{
pluginRegistry.put(HEADER,“ ValidationHeaderPlugin”);
pluginRegistry.put(SQL,“ ValidationsqlPlugin”);
pluginRegistry.put(INTERCEPT,“ ValidationinterceptPlugin”);
pluginRegistry.put(AUDIT,“ ValidationAuditPlugin”);
}
這可能是注冊表的樣子;這只是一張簡單的地圖。因此,您無需使用任何外部工具即可連接到插件。
結(jié)論
以下是微內(nèi)核架構(gòu)模式的優(yōu)缺點。
優(yōu)點
它可以對插件模塊中的更改做出反應,同時最大程度地減少對核心系統(tǒng)的更改。
與分層體系結(jié)構(gòu)不同,具有插件模塊意味著更易于部署,從而最大程度地減少了停機時間。
由于可以單獨測試各個模塊,因此測試也更加容易。
盡管通常不是用于高性能應用程序的理想模式,但由于將應用程序定制為僅包括所需的功能,因此它可以發(fā)揮良好的性能。
缺點
應用程序往往較小,因此無法高度擴展。
在實施之前需要對設計進行徹底的分析。需要分析的項目包括合同版本控制,內(nèi)部插件注冊表,插件粒度以及可用于插件連接的廣泛選擇
原文:https://medium.com/@priyalwalpita/?
總結(jié)
以上是生活随笔為你收集整理的软件体系架构模式之三微内核体系架构的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: 软件体系架构模式之二分层体系结构
- 下一篇: 人工智能真的能实现吗?有了人工智能到时候
