請設計一個核心功能穩定適合二開擴展的軟件系統

請設計一個核心功能穩定適合二開擴展的軟件系統

如何設計出核心功能穩定,業務功能不斷擴展的軟件系統,我想到了微內核架構。

定義

微內核架構又叫做插件架構,是面向功能進行拆分的可擴展架構。

比如:Eclipse插件,Linux ;

架構圖

請設計一個核心功能穩定適合二開擴展的軟件系統

請設計一個核心功能穩定適合二開擴展的軟件系統

插件管理

插件註冊表機制:名字,位置,加載時機;

插件連接

指的是插件如何連接到核心系統。

請設計一個核心功能穩定適合二開擴展的軟件系統

插件間通信

插件之間是解耦的,插件之間通信必須通過核心系統,核心系統提供插件的通信機制;

OSGI

Open Services Gateway initiative 主動開放服務網關; OSGi 具備動態化、熱插拔、高可複用性、高效性、擴展方便等優點;

最具代表性的是Eclipse的插件,採用的是OSGI規範設計規範。

OSGI框架

請設計一個核心功能穩定適合二開擴展的軟件系統

OSGI架構圖

請設計一個核心功能穩定適合二開擴展的軟件系統

請設計一個核心功能穩定適合二開擴展的軟件系統

規則引擎

屬於微內核架構的一種實現,執行引擎對應core system核心系統(微內核),執行引擎執行配置好的業務流程,規則,通過這種方式來支持業務的靈活多變。

工作場景:

請設計一個核心功能穩定適合二開擴展的軟件系統

工作流程:

請設計一個核心功能穩定適合二開擴展的軟件系統

對應微內核架構的插件核心:

請設計一個核心功能穩定適合二開擴展的軟件系統

代表產品 jboss drools, 基於 rete算法實現規則引擎,他的規則語言接近編程語言,一般包裝成可視化界面來間接生成。

小結

本篇首先定義了微內核架構,即 面向功能拆分的可擴展架構。

以及他的組成部分,即內核和插件。

以及它需要解決的核心問題,插件管理,插件連接,插件間通信;

最後介紹了兩種微內核架構,OSGI 和規則引擎 ;

我會持續分享Java軟件編程知識和程序員發展職業之路! 原創不易,關注誠可貴,轉發價更高!轉載請註明出處,讓我們互通有無,共同進步,歡迎溝通交流。


分享到:


相關文章: