插件式架構設計(轉)

1.         基本架構架構

應用程序由應用程序框架、插件接口、插件和公共函數庫四部分組成。框架

 

應用程序框架負責應用程序的總體運做,它清楚程序整個流程,但並不知道每一個過程具體要作什麼。它在適當的時候調用一些插件,來完成真正的功能。分佈式

(設計師必定要站在更高的角度,去理清整個流程)函數

 

插件接口是一個協議,可能用IDL描述,多是頭文件,也可能一段文字說明。插件按照這個協議實現出來,就能夠加入到應用程序中來。固然,對於複雜的系統,插件接口可能有多個,各自具備獨立的功能。微服務

 (能夠設計成接口, 即協議、契約)spa

插件是完成實際功能的實體,實現了要求的插件接口。儘管實現什麼以及怎麼實現,徹底是插件本身的自由。在實際狀況來,通常仍是有些限制,由於插件接口自己可能就是一個限制。如,實現編譯功能的插件,天然不能實現成一個聊天功能的插件。操作系統

 公共函數庫是一組函數或者類,應用程序框架和插件均可以調用。它一般是一個獨立的動態庫(DLL)。應用程序框架自己是公用的,是代碼複用的一種方式。但並非全部可複用代碼均可以放在框架中,特別是插件會用到的公共代碼,那會形成插件對框架的依賴。把這些公共代碼提取到一個獨立的庫中,是一種好的方法。.net

 

另外,值得補充說明一下的是插件接口。插件接口一般有兩種:插件

通用插件接口:這一類插件接口是通用的,你沒法從接口函數看出這個插件的功能。它的接口函數一般有這些函數:設計

init : 用於初始化插件,一般在插件被加載時調用。

deinit:用於反初始化插件,一般在插件被卸載時調用。

run:讓插件起動。

stop:讓插件中止。

至於插件要完成什麼功能,要插到哪裏,在init函數裏決定,它調用公共函數庫裏的函數把本身註冊到框架中某個位置。

 

 

微內核架構(Microkernel architecture)模式也被稱爲插件架構(plugin architecture)模式。這是產品型應用程序的理想模式,由兩部分組成:核心系統和插件模塊

核心系統一般包含最小的業務邏輯,並確保可以加載、卸載和運行應用所需的插件。許多操做系統使用這種模式,所以得名微內核。

插件彼此獨立,所以解偶。核心系統持有註冊器,插件將本身註冊其上,所以核心系統知道哪裏能夠找到它們以及如何運行它們。

 

 

微服務架構

儘管微服務的概念還至關新,但它確實已經快速地吸引了大量的眼球,以替代總體應用和麪向服務架構(SOA)。其中的一個核心概念是具有高可伸縮性、易於部署和交付的獨立部署單元(Separately Deployable Units)。最重要的概念是包含業務邏輯和處理流程的服務組件(Service Component)。拿捏粒度設計服務組件是必要而具備挑戰性的工做。服務組件是解耦的、分佈式的、彼此獨立的,而且可使用已知協議來訪問。

 

轉:http://blog.csdn.net/absurd/article/details/877063  ,感謝做者的分享

相關文章
相關標籤/搜索