微內核架構在大型前端系統中的應用

2021-01-08 百家號

由一群儘可能將數量最小化的軟體程序組成,他們負責提供、實現一個作業系統所需要的各種機制和功能。這些最基礎的機制,包括了底層地址空間管理,線程管理,與進程間通訊。微內核架構在使用時主要考慮兩個方面『核心系統』和『插件模塊』。應用邏輯被劃分為獨立的『核心系統』和『插件模塊』,這樣就提供了良好的可擴展性與靈活性,應用的新特性和基礎業務邏輯也會被隔離。

一、核心系統

核心系統通常是一個可以獨立運行的最小化模塊,作業系統(Windows NT、Mac OS X)就是這麼實現的。從商業應用的角度來看,核心系統為那些特定的場景、規則、複雜的條件判斷提供了通用的業務邏輯,而插件模塊則提供了更為具體的業務邏輯。可以增加或擴展核心系統以達到產生附加的業務邏輯的能力。

二、插件模塊

插件模塊通常是一個專業處理額外特性的獨立組件。通常,插件模塊之間是沒有依賴的,當然你也可以創建一個依賴其他插件模塊的插件,但不管怎麼樣,讓插件模塊之間可以彼此通訊又不產生依賴是一個很重要的問題。

三、獲取插件模塊並判斷可用性

核心系統需要知道每個插件的可用性並且知道如何獲取它們,一個通常的實現方式是使用一組註冊表。註冊表包括了每個插件的基本信息,包括名稱、數據規範、遠程訪問協議(取決於插件模塊如何和核心系統進行連接)以及其他自定義數據。比如百度網盤中用於上傳文件的上傳插件提供了插件名稱、數據規範(輸入、輸出數據)、數據格式(json、xml),如果這個插件是通過異步進行加載的,那麼還會有一個具體遠程HTTP訪問協議地址。

四、連接到核心系統

插件模塊可以通過多種方式連接到核心系統,包括OSGI(open service gateway initiative)、消息機制、web服務以及點對點的綁定(對象實例化,既依賴注入)。使用何種方式主要取決於具體的應用場景和特殊需求(單機部署、分布式部署),微內核架構默認沒有要求具體的實現方式,但是必須保證插件模塊之間不能產生任何依賴。

五、通信規範

插件模塊和核心系統之間的通信規範分為標準規範和自定義規範,自定義規範通常是指某個插件模塊是由第三方服務開發的。這種情況下,就需要在自定義規範和標準規範之間提供一個Adapter,這樣核心系統就不需要關心每個插件模塊的具體實現。在設計標準規範之前制定一個版本策略很重要。

六、事件模式

核心系統提供了多種事件模式,主要包括常用的點對點模式、發布訂閱模式。同時,事件的類型分為全局(系統級)事件、系統內部事件以及插件模塊內部事件。由於點對點模式中發送者和接收者之間沒有依賴關係並且一條消息只對應一個接收者,所以可以用作廣播全局(系統級)事件,比如調起某個插件模塊。而發布訂閱模式中訂閱者和發布者之間存在時間上的依賴性,可以用於系統內部事件和插件模塊的內部事件。此外,核心模塊也可以通過發布訂閱模式向外發布某些屬於業務基本操作規則的事件。

七、接口設計

當插件模塊註冊到核心系統之後,通過系統級事件可以調起具體的某插件模塊。此時就需要核心模塊提供屬於基本操作規則的接口供插件模塊使用,同樣的,插件模塊也必須按照通信規範提供運行入口(類似於java的Main方法)和數據規範(參數格式,返回的數據格式),以此保障插件模塊可以在核心系統上正確運行。插件模塊是獨立於核心系統之外的,但是根據具體的需求(提供單純的數據服務、處理系統數據和信息)可能會需要操作核心模塊的系統服務做一些定製化功能,此時核心系統需要提供一個上下文對象(Context),且插件模塊與外部進行交互只能通過此上下文對象。上下文對象提供了基礎操作(調起其他插件模塊、調起系統服務、獲取系統信息)的API和事件。

遠程訪問協議核心系統調起插件模塊時,可以通過插件聲明的遠程訪問協議的HTTP地址,進行異步加載。

方案一:Manifest籤名文件

在Manifest籤名信息中放置插件模塊的遠程訪問協議,比如上傳插件模塊的籤名示例:

方案二:異步化接口 + import()

該方案是系統插件模塊的遠程訪問協議不放置在插件模塊的Manifest中,而是額外通過異步化接口請求得到遠程訪問協議。然後通過webpack提供的require.ensure()或esm的import()加載插件資源。

相關焦點

  • 微內核架構
    簡介:作為一名Java程式設計師,相信同學們都聽說過微內核架構設計,也有自己的理解。那麼微內核是如何被提出來的?微內核在作業系統內核的設計中又有什麼作用?本文從插件化(Plug-in)架構的角度來詮釋微內核架構設計,通過微內核架構和微服務架構的對比,分享其對微服務設計的參考意義。
  • 什麼是微內核架構設計?
    阿里妹導讀:作為一名Java程式設計師,相信同學們都聽說過微內核架構設計,也有自己的理解。那麼微內核是如何被提出來的?微內核在作業系統內核的設計中又有什麼作用?本文從插件化(Plug-in)架構的角度來詮釋微內核架構設計,通過微內核架構和微服務架構的對比,分享其對微服務設計的參考意義。
  • 微前端架構初探以及我的前端技術盤點
    微前端架構概念的誕生及應用對於提供複雜應用服務的企業來說顯然是一種機遇, 同樣也是一種挑戰.本文主要就微前端架構的概念和實現方案做一個總結和復盤,並且通過一個實際案例來實踐微前端架構,希望能對同樣有此需求的朋友們提供一些幫助和思路.
  • 華為鴻蒙系統四大特性:基於微內核,面向全場景,分布式架構
    華為鴻蒙系統四大特性:基於微內核,面向全場景,分布式架構 澎湃新聞記者 陳宇曦 周玲 2019-08-09 15:44 來源:澎湃新聞
  • 華為發布鴻蒙OS系統 採用微內核架構
    餘承東還宣布,未來作業系統是微內核架構,公司的「鴻蒙OS作業系統是全世界一個基於微內核的全場景OS」,採用是分布式架構,連結不同終端,不同設備,運行速度更快。今年6月,華為曾表示,「最快今年秋天,最晚明年春天,華為自研作業系統即將面世」。內核在作業系統中是一個基本的單元,負責管理系統資源。
  • 為什麼說Kubernetes是微內核的分布式作業系統?
    作為分布式作業系統,Kubernetes(包括其前代產品 Google Borg)的出現遠遠晚於 UNIX、Linux、Windows 等著名的單機作業系統,Kubernetes 架構設計自然地繼承了很多單機作業系統的珍貴遺產,微內核架構就是這些遺產中最重要的一份。在本文接下來的部分,我們將專注於微內核(microkernel)這個概念及其對 Kubernetes 架構的影響。
  • 鴻蒙微內核,你知道什麼是微內核麼?
    首次發布的鴻蒙系統將作為華為迎接全場景體驗時代到來的產物,發揮其輕量化、小巧、功能強大的優勢,率先應用在智能手錶、智慧屏、車載設備、智能音箱等智能終端上,著力構建一個跨終端的融合共享生態,重塑安全可靠的運行環境,為消費者大噪全場景智慧生活新體驗。值得注意的是鴻蒙系統採用的是不同於安卓系統單內核的微內核,那麼微內核到底是什麼?為什麼能獲得華為開發者的認可呢?
  • 鴻蒙發布新系統,微內核是什麼?
    在大會上,餘承東發表了宣講,闡述了鴻蒙OS的應用場景和技術特性,暢享了鴻蒙OS生態共享的能力,為我們預告了基於鴻蒙OS的萬物互聯的時代。據餘承東介紹,鴻蒙OS是基於微內核的面向全場景的分布式作業系統,隨著華為全場景智慧生活的來臨,鴻蒙OS將會應用在智能手錶、智慧屏、車載設備、智能音箱等智能設備上,而且,它還可以用在手機上,能比安卓更流暢,用起來更安心,也更加面向未來。
  • 前端架構發展史
    最初,前端是沒有架構的,因為功能簡單的代碼毫無架構可言。通過一個簡單的jQuery庫操作DOM就能完成的工作,無需複雜的設計模式和代碼管理機制,也就不需要架構來支持起應用。在諸多Web應用中使用了異步通信技術如 Google地圖,開啟了Web前端的一個新時代一旦前端應用需要從後端獲取數據,就意味著前端應用在運行時是動態地渲染內容的,這便是Model(模型)UI層解耦。
  • 什麼叫做微內核?與安卓系統有什麼區別?
    從以上四點就可以得出結論,Linux在設計上還是展示出很多的與眾不同之處,但從安卓系統性能上講這種單純的強內核架構已經顯示出來弊端了,如同餘大嘴說到的現在安卓的代碼差不多有一億行,但真正在運行只有8%的概率,所以在效率上有大打折扣,可以講隨著硬體以及軟體發展趨勢,微內核未來成為一種大的趨勢,現在微內核做得比較好的屬於美國黑莓公司的QNX系統,由於是收費系統在市面上推廣的力度不是很大,主要用在進口車的裡面的娛樂系統上面
  • 華為公布鴻蒙系統:基於微內核的全場景分布式OS
    餘承東表示:鴻蒙是一款基於微內核的全場景分布式OS。華為發布鴻蒙系統:基於微內核的全場景分布式OS餘承東表示,鴻蒙OS是基於微內核的全場景分布式OS,這是分布式架構首次用於終端OS,可以實現跨終端無縫協同體驗。鴻蒙系統系統4大特點據悉,「微內核」是鴻蒙OS的特點之一。
  • 大型組織的大規模前端架構
    我想與您討論如何在大型組織中管理前端架構。 在我看來,關於該主題的文章不多,並且解釋得不好。在本文中,大型組織是指前端工程師的人數開始超過15人且該公司至少具有多個前端項目的公司。我不想討論在這樣的大公司中常見的管理問題或業務領域問題,但讓我們只關注Frontend體系結構。
  • 鴻蒙系統:能否兼容Windows的應用軟體?網友:內核各異兼容不易
    Windows應用可以基於鴻蒙進行適配現有的Wintel體系是一套完整的生態,Intel提供基於x86架構的硬體體統,微軟則根據Intel的這套硬體提供對應的軟體作業系統,兩者合作形成了一個穩固聯盟以及生態體系。由於Windows系統基於x86架構,因此依附於Windows系統生存的各種應用程式同樣也得遵守這個架構,否則是沒法在Windows系統上使用的。
  • 華為鴻蒙系統刷屏,到底什麼是微內核作業系統呢?
    微內核結構由一個非常簡單的硬體抽象層和一組比較關鍵的原語或系統調用組成;這些原語,僅僅包括了建立一個系統必需的幾個部分;如線程管理,地址空間和進程間通信等。微核的目標是將系統服務的實現和系統的基本操作規則分離開來。例如,進程的輸入/輸出鎖定服務可以由運行在微核之外的一個服務組件來提供。
  • 鴻蒙OS的微內核到底是什麼?
    餘承東在現場表示, HarmonyOS 鴻蒙擁有分布架構、內核安全、生態共享、天生流暢四大優勢。知乎答主@bacon xu 對全球開發者大會提到的微內核做了一個解答,從另一方面認識一個不同的鴻蒙OS:在經過好幾代發展之後,微內核終於發展到了seL4,它成為了人類歷史上第一個用形式化證明的作業系統。
  • 微服務前端之微前端
    事實上,微前端架構整體思路和微服務架構演變一致。在以前的單體式前端、單體式後端應用中,前端請求的分發路由是通過框架來完成的,即框架將路由指定到對應的組件或內部服務中,微前端就是把以前的應用內的組件調用拆分成了更細的應用間的組件調用,通過路由來找到對應的應用,再由應用分發到對應的組件;後端請求把內部之間的函數調用變成了遠程調用。
  • RT-Thread Smart開源混合微內核作業系統橫空出世,替換智能設備中...
    微內核與宏內核之爭由來已久,事實上,在具體應用場景下,對於作業系統的選擇,沒有最好,只有最合適。例如,DRAM場景下,如何實現更短的啟動時間?在對外用戶場景下,如何進行功能分離?儘管RT-Thread宏內核廣受開發者的歡迎,但卻無法很好地滿足晶片廠商的上述需求,而使用微內核又存在效率不高的問題。
  • RT-Thread Smart微內核作業系統重磅發布!開源
    鄭院士表示,有幸見證 RT-Thread 發布微內核作業系統技術,微內核技術用於嵌入式領域尚不多見,源於輕量級實時作業系統的微內核更是有著較大的開創性,對我國嵌入式基礎軟體的發展意義重大;其相比於 Linux,在工業、國防、電力等行業都有著較為明顯的差異化競爭優勢和廣泛的應用前景。
  • 華為「鴻蒙」所涉及的微內核到底是什麼?一文帶你認識微內核
    UNIX系統,1971年誕生於大名鼎鼎的貝爾實驗室的一臺PDP-11/24機器上,其後經過不斷發展與傳播,在80年代取得了巨大成功,UNIX被移植到眾多的處理器架構,並在眾多行業得到廣泛使用,甚至成為行業標準影響至今。
  • RT-Thread Smart微內核作業系統重磅發布,開源
    鄭院士表示,有幸見證 RT-Thread 發布微內核作業系統技術,微內核技術用於嵌入式領域尚不多見,源於輕量級實時作業系統的微內核更是有著較大的開創性,對我國嵌入式基礎軟體的發展意義重大;其相比於 Linux,在工業、國防、電力等行業都有著較為明顯的差異化競爭優勢和廣泛的應用前景。