軟件架構---微核架構

微核架構(microkernel architecture)又稱爲"插件架構"(plug-in architecture),指的是軟件的內核相對較小,主要功能和業務邏輯都經過插件實現。html

內核(core)一般只包含系統運行的最小功能。插件則是互相獨立的,插件之間的通訊,應該減小到最低,避免出現互相依賴的問題。服務器

微核模式也就是咱們常見的「插件系統」——模塊高度獨立,可移植網絡

★ 適應:運行時多模塊協做系統 ——若是咱們須要系統能夠運行起來以後,動態的加載和運行不一樣的模塊,微核將是最合適的架構。在許多須要運行時擴展的系統中,好比一些IM軟件想要帶上各類和好友關係有關的功能;或者是但願一樣的代碼能在不一樣的「平臺」、「環境」、「操做系統」下運行,都會使用這種架構。架構

★ 不適應:無需運行時多模塊協做系統——若是軟件自己不會分爲多個須要不定時啓動、運行的模塊,就沒必要要實現這個稍嫌複雜的架構。分佈式

★ 方法論:實現運行時耦合——這個架構的核心,是把代碼的直接耦合,變成運行時的動態調用,所以咱們會使用事件機制、消息隊列等手段,把代碼的調用和具體的「數據」關聯起來,從而避免了代碼直接寫死。url

微核模式的核心是:操作系統

• 基本服務封裝到微核 ——主要是一些每一個模塊都會用到的功能.net

• 內、外服務器負責功能實現(插件系統)——外服務器負責整合某個特定領域的抽象。內部服務器負責通用的功能抽象,如網絡功能、日誌等。插件

• 應用程序、服務器經過微核通訊 ——這是最核心的部分,一個基於「事件」的運行時交互系統,用來溝通各個不一樣的模塊。scala

• 外部服務和應用程序的差異,在因而否經過一個適配器來和微核耦合。這個適配器實際上能讓應用程序模塊更換不一樣的微核,這在於可移植系統上很重要。

微核模式其實是一種特化的分層模式,他把最底層的功能封裝層「微核」,同時把各個模塊的交互規定爲「運行時的事件」。這樣簡化了的3層架構,提供能很是好的模塊獨立性。

優勢

  • 良好的功能延伸性(extensibility),須要什麼功能,開發一個插件便可
  • 功能之間是隔離的,插件能夠獨立的加載和卸載,使得它比較容易部署,
  • 可定製性高,適應不一樣的開發須要
  • 能夠漸進式地開發,逐步增長功能

缺點

  • 擴展性(scalability)差,內核一般是一個獨立單元,不容易作成分佈式
  • 開發難度相對較高,由於涉及到插件與內核的通訊,以及內部的插件登記機制

參考:https://blog.csdn.net/heiyueya/article/details/60570676

參考:http://www.ruanyifeng.com/blog/2016/09/software-architecture.html

相關文章
相關標籤/搜索