日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

微内核架构(Microkernel Architecture)

發(fā)布時間:2024/1/3 综合教程 36 生活家
生活随笔 收集整理的這篇文章主要介紹了 微内核架构(Microkernel Architecture) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

微內核架構(Microkernel Architecture)

微內核架構有時也被成為插件架構模式(plug-in architecture pattern),通常用于實現(xiàn)基于產(chǎn)品的應用,如Eclipse和Firefox。然而許多公司也將內部的業(yè)務軟件做成軟件產(chǎn)品,提供版本、發(fā)版說明和插件特性。微內核架構模式通過插件向核心應用添加額外的功能,提供了可擴展性和功能的獨立和分離。

模式描述

微內核架構包含兩部分組件:核心系統(tǒng)(core system)和插件模塊(plug-in modules)。應用邏輯被分割為獨立的插件模塊和核心系統(tǒng),提供了可擴展性、靈活性、功能隔離和自定義處理邏輯的特性。


圖1 微內核架構模式(microkernel architecture pattern)

微內核架構的核心系統(tǒng)通常提供系統(tǒng)運行所需的最小功能集。許多操作系統(tǒng)使用的就是微內核架構,這也是它名字的由來。從商業(yè)應用程序的角度來看,核心系統(tǒng)一般是通用業(yè)務邏輯,沒有特殊情況、特殊規(guī)則或復雜情形下的自定義代碼。

插件模塊是獨立的模塊,包含特定的處理、額外的功能和自定義代碼,來向核心系統(tǒng)增強或擴展額外的業(yè)務能力。通常插件模塊之間也是獨立的,也有一些插件是依賴于若干其它插件的。重要的是,盡量減少插件之間的通信以避免依賴的問題。

核心系統(tǒng)需要知道哪些插件是可用的且如何使用。一種實現(xiàn)的方式是使用插件注冊表。注冊表中包含插件的一些信息,如名稱、數(shù)據(jù)契約(輸入數(shù)據(jù)和輸出數(shù)據(jù))、遠程訪問協(xié)議(決定插件如何與核心系統(tǒng)連接,XML或WSDL等)。

插件模塊和核心系統(tǒng)的連接方式有多種,包括OSGi (open service gateway initiative)、messaging、web service、甚至點對點綁定(對象實例化)。選擇哪種連接方式取決于構件的應用類型和是否分布式部署等特殊需求。

插件和核心系統(tǒng)之間的契約也是各種各樣的,既可以是標準的也可以是自定義的。通常在使用第三方插件時需要自定義契約。這種情況下,通常創(chuàng)建一個該插件契約到你的標準契約的適配器,這樣核心系統(tǒng)就不需要針對每個插件的定制編碼了。創(chuàng)建標準契約時(通常為XML),要記得從一開始就設計好版本策略。

案例

微內核架構最好的案例也許就是Eclipse啦。下載基礎版本的Ecilpse或許只比一個功能花哨的編輯器強一點,一旦裝上一些插件,它立刻就變成高度定制化的很有用的產(chǎn)品。瀏覽器也是微內核架構產(chǎn)品的典型案例。

這樣的基于產(chǎn)品的軟件例子數(shù)不勝數(shù),但是大型商業(yè)應用呢?微內核結構也是適用的。這里再以保險公司的索賠處理為例。(書中的例子都不符合國情,看著挺費勁的。)

索賠處理過程很復雜,每個階段都有很多不同的規(guī)則和條例來說明是否應該得到賠償。例如汽車擋風玻璃被巖石擊碎,有的州是允許賠償?shù)模械氖遣辉试S的。標準的索賠過程幾乎有無限的條件。

通常保險索賠應用都會使用一個大型的復雜的規(guī)則引擎來處理。但是規(guī)則引擎會像滾雪球一樣越來越大,修改一個規(guī)則可能會影響其它的規(guī)則,或者一個簡單的規(guī)則修改需要很多分析人員、開發(fā)人員和測試人員。使用微內核架構模式可以避免這樣的問題。

如圖2中所示,核心系統(tǒng)claims processing包含了處理索賠過程的基本業(yè)務邏輯。每個插件模塊包含一個州的特殊規(guī)則。這個例子中,插件模塊可以通過自定義代碼或分離規(guī)則引擎實例來實現(xiàn)。最重要的是,每個州的獨特的規(guī)則從核心系統(tǒng)中剝離出來,可以被添加或移除,修改時不影響或會稍微影響核心系統(tǒng)與其它插件。


圖2 微內核架構案例

注意事項

微內核架構模式的一個優(yōu)秀之處在于它可以嵌入或者作為其它架構模式的一部分。例如事件驅動架構中的事件處理組件就可以使用微內核架構實現(xiàn)。

微內核架構為遞進設計和增量開發(fā)提供了方便。可以先實現(xiàn)一個穩(wěn)固的核心系統(tǒng),然后在不對核心系統(tǒng)進行大量修改的情況下逐漸地增加功能和特性。

對于基于產(chǎn)品的應用,微內核架構是一開始的首選。尤其是這樣的產(chǎn)品:隨著時間逐漸地發(fā)布新功能,而且希望保證所有的用戶都能獲取到新功能。如果以后發(fā)現(xiàn)該架構不符合需求了,可以隨時重構成其它架構。

模式分析

下表展示了分層架構模式的通用架構特性的評級和分析。

整體靈活性

評級:高

分析:整體靈活性是對環(huán)境變化快速響應的能力。由于插件之間的低耦合,改變通常是隔離的,可以快速實現(xiàn)。通常,核心系統(tǒng)是穩(wěn)定且快速的,具有一定的健壯性,幾乎不需要修改。

易于部署

評級:高

分析:取決于實現(xiàn)方式,插件可以在運行時動態(tài)添加(熱部署),最小化部署的停機時間。

可測試性

評級:高

分析:插件可以獨立測試,也很容易被模擬,不需修改核心系統(tǒng)就可以演示或構建新特性的原型。

性能

評級:高

分析:雖然微內核架構本身不會使應用高性能,但通常使用微內核架構構建的應用性能都還不錯,因為可以自定義或者裁剪掉不需要的功能。JBoss應用服務器就是這樣的。

可伸縮性

評級:低

分析:因為大部分微內核架構的實現(xiàn)都是基于產(chǎn)品的,一般都很小,是一個獨立的單元,因此不具有高可伸縮性。取決于插件的實現(xiàn)方式,有時在插件特性層可以提供伸縮性,但總體上來說該架構還是用于構建高可伸縮性應用的。

開發(fā)容易度

評級:低

分析:微內核架構需要深思熟慮的設計和契約的規(guī)劃管理,因此實現(xiàn)起來比較復雜。契約的版本機制、插件的注冊機制、插件的粒度、插件連接方式的選擇都使得實現(xiàn)起來是復雜的。


參考資料:

Software Architecture Patterns

colobu.com

總結

以上是生活随笔為你收集整理的微内核架构(Microkernel Architecture)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內容還不錯,歡迎將生活随笔推薦給好友。