插件式架構設計(轉)


1.         基本架構

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

 

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

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

 

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

 (可以設計成接口, 即協議、契約)

插件是完成實際功能的實體,實現了要求的插件接口。盡管實現什么以及怎么實現,完全是插件自己的自由。在實際情況來,一般還是有些限制,因為插件接口本身可能就是一個限制。如,實現編譯功能的插件,自然不能實現成一個聊天功能的插件。

 公共函數庫是一組函數或者類,應用程序框架和插件都可以調用。它通常是一個獨立的動態庫(DLL)。應用程序框架本身是公用的,是代碼復用的一種方式。但並不是所有可復用代碼都可以放在框架中,特別是插件會用到的公共代碼,那會造成插件對框架的依賴。把這些公共代碼提取到一個獨立的庫中,是一種好的方法。

 

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

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

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

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

run:讓插件起動。

stop:讓插件停止。

至於插件要完成什么功能,要插到哪里,在init函數里決定,它調用公共函數庫里的函數把自己注冊到框架中某個位置。

 

 

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

核心系統通常包含最小的業務邏輯,並確保能夠加載、卸載和運行應用所需的插件。許多操作系統使用這種模式,因此得名微內核。

插件彼此獨立,因此解偶。核心系統持有注冊器,插件將自己注冊其上,因此核心系統知道哪里可以找到它們以及如何運行它們。

 

 

微服務架構

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

 

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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM