软件架构---微核架构
微核架構(microkernel architecture)又稱為"插件架構"(plug-in architecture),指的是軟件的內核相對較小,主要功能和業務邏輯都通過插件實現。
內核(core)通常只包含系統運行的最小功能。插件則是互相獨立的,插件之間的通信,應該減少到最低,避免出現互相依賴的問題。
微核模式也就是我們常見的“插件系統”——模塊高度獨立,可移植
★ 適應:運行時多模塊協作系統 ——如果我們需要系統可以運行起來之后,動態的加載和運行不同的模塊,微核將是最合適的架構。在許多需要運行時擴展的系統中,比如一些IM軟件想要帶上各種和好友關系有關的功能;或者是希望同樣的代碼能在不同的“平臺”、“環境”、“操作系統”下運行,都會使用這種架構。
★ 不適應:無需運行時多模塊協作系統——如果軟件本身不會分為多個需要不定時啟動、運行的模塊,就不必要實現這個稍嫌復雜的架構。
★ 方法論:實現運行時耦合——這個架構的核心,是把代碼的直接耦合,變成運行時的動態調用,因此我們會使用事件機制、消息隊列等手段,把代碼的調用和具體的“數據”關聯起來,從而避免了代碼直接寫死。
微核模式的核心是:
?基本服務封裝到微核 ——主要是一些每個模塊都會用到的功能
?內、外服務器負責功能實現(插件系統)——外服務器負責整合某個特定領域的抽象。內部服務器負責通用的功能抽象,如網絡功能、日志等。
?應用程序、服務器通過微核通信 ——這是最核心的部分,一個基于“事件”的運行時交互系統,用來溝通各個不同的模塊。
?外部服務和應用程序的差別,在于是否通過一個適配器來和微核耦合。這個適配器實際上能讓應用程序模塊更換不同的微核,這在于可移植系統上很重要。
微核模式實際上是一種特化的分層模式,他把最底層的功能封裝層“微核”,同時把各個模塊的交互規定為“運行時的事件”。這樣簡化了的3層架構,提供能非常好的模塊獨立性。
優點
良好的功能延伸性(extensibility),需要什么功能,開發一個插件即可
功能之間是隔離的,插件可以獨立的加載和卸載,使得它比較容易部署,
可定制性高,適應不同的開發需要
可以漸進式地開發,逐步增加功能
缺點
擴展性(scalability)差,內核通常是一個獨立單元,不容易做成分布式
開發難度相對較高,因為涉及到插件與內核的通信,以及內部的插件登記機制
參考:https://blog.csdn.net/heiyueya/article/details/60570676
參考:http://www.ruanyifeng.com/blog/2016/09/software-architecture.html
總結
以上是生活随笔為你收集整理的软件架构---微核架构的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: file encode - /UI2/C
- 下一篇: 暗黑破坏神不朽精华传承有什么用 精华传承