今天最耀眼的莫過于華為鴻蒙OS!
貿易戰至今,更深層次是一次高新科技自主創新的較量,是美國少有的幾次技術壟斷保衛戰。表面看是中美兩國的較量,實則給幾乎所有國家敲響一次警鐘 – 任何一個國家,科技強國戰略處于不可動搖地位!資訊化時代,科技制裁幾乎可以決定一個民族的命運!
美帝洋洋自得的正在于此,仰仗着自己科技實力、軍事實力老大哥的地位,動辄招惹其他國家,随心所欲的薅羊毛,但這次或許難以夢想成真。華為鴻蒙OS的誕生,着實給美帝當頭一棒,或許這個世界真的需要兩套系統,我想世界人民的願望大都如此吧?
如圖中所示,鴻蒙OS是一款基于微核心的全場景分布式作業系統,那麼你的疑問來了?
- 什麼是微核心?
- 目前已經存在的系統都不是微核心架構嗎?
【微核心】
在軟體開發領域,微核心是一種架構原則,其同時也被稱為插件化架構。此種架構最大的優勢是允許第三方開發者添加額外的插件化應用,前提是該插件應用需要遵從下文所述的開發規範。采用微核心架構的軟體随處可見,如IDE軟體Eclipse、企業ERP軟體,這類軟體自身具備豐富功能,同時支援第三方應用的即插即用。而且,第三方插件化程式的安裝、運作、解除安裝以及故障不會對原有系統造成任何影響。
- 架構圖
微核心架構包含兩類元件:核心系統和插件系統。核心系統的功能穩定,很少變更,其隻擁有能使應用運作的最小功能邏輯,這些通用邏輯(例如插件子產品的注冊、加載、解除安裝,以及插件子產品之間的互相通信等)不涉及任何特定業務;插件系統則具備良好的擴充性,其負責實作特定的業務邏輯,可根據特定業務需求而變更。
顯而易見,微核心架構本質上其實是将一個軟體系統中的變化部分封裝在插件中,進而實作不同業務之間的隔離性,達到系統快速靈活擴充的目的,同時所有特定業務相關邏輯的變更不會影響整體系統的穩定性。
-
設計要點
微核心架構設計有以下三個關鍵點:插件管理、插件連結和插件通信。
-
插件管理
核心系統需要知道目前系統中共有多少個插件,哪些插件處于可用狀态,什麼時候加載一個插件,如何加載一個插件等。
實作上述功能的一個常用機制是插件系統資料庫:核心系統提供一個服務來響應插件的注冊請求,最終将目前系統的所有插件資訊(插件辨別,類别,啟動方式等)儲存起來。存儲方式可以選擇配置檔案存儲或者資料表存儲等。
-
插件連結
插件連結制定了一個插件與核心系統的通信方式,也就是連結規範,故任何一個可用插件都務必遵從核心系統中該類别插件所制定的連結規範。
常見的連結規範有OSGI(Eclipse),消息隊列,依賴注入(Spring),RPC等。
-
插件通信
插件子產品的設計是為了達到低耦合目的,也符合這一原則。但一個業務請求往往需要幾個插件子產品共同協作來實作,這就需要插件之間可以實作互相通信。插件之間的通信則需要通過中央處理器(核心系統)來作為橋梁,故核心系統除去提供上文提及的系統資料庫機制之外,還需要提供類似作業系統總線之類的通信機制。
- 深入探讨
-
OSGI(Open Service Gateway Initiative)架構
OSGI是一個插件化的标準而非一個可運作架構,目前遵循該标準的軟體有:Eclipse, Apache Felix, Spring DM。其具備熱插拔、擴充性、可複用性、高效性、穩定性的優點。請參看下面的邏輯架構圖:
Module Layer:子產品層主要涉及Jar包及共享的代碼;
Lifecycle Layer:生命周期層主要涉及元件的運作時生命周期管理;
Service Layer:服務層主要涉及子產品之間的互動和通信。
-
規則引擎架構
規則引擎其實是微核心架構的一中具體實作,其執行引擎可以看作是微核心架構中的核心系統,執行引擎解析配置好的業務流規則,進而執行其中的條件和規則,以此來支撐業務層面的靈活性和擴充性。
規則引擎常用于計費、保險、促銷等業務領域,其存在以下幾個優點:
a. 便于擴充
利用規則引擎,業務邏輯實作與業務系統分離,可以在不改動業務系統的情況下,靈活擴充業務共功能。
b. 便于了解
規則通過自然語言描述,業務人員更容易了解和操作。
c. 可視化
規則引擎一般情況下,會提供可視化的規則定制、審批、查詢、管理及示例規則,便于業務人員快速配置,滿足業務發展需求。
對上圖的簡要介紹如下:
開發人員将業務功能分解提煉為多個規則,将規則儲存在規則庫中;
業務人員根據業務需要從規則庫中拉取規則,并将規則排列組合,配置成業務流程,并儲存在業務庫中;
規則引擎同時從規則庫和業務庫中拉取規則,解析業務人員配置的業務流程,最終實作業務功能。
感興趣的同學可以了解下目前主流的開源規則引擎 JBoss Drools。
【Linux是否是微核心架構】
查閱了一些資料,目前說法不太一緻,故暫且不更新該章節!