Plugin architecture
plugin的含义是什么?参见wikipedia Plug-in (computing),显然,基于plugin的architecture就是本文需要阐述的plugin architecture。plugin是一种概念,它可以以多种方式来进行实现,比如shared library,Library-base architecture其实也可以看做是一种plugin architecture。
NOTE: library-based architecture是我在阅读clang的doc时候,其中提出的一个概念。
在阅读Clang - Features and Goals时,其Library Based Architecture令我印象深刻,据我所知的,还有采用这种架构的有
software | 说明 |
---|---|
nginx | nginx提供了非常多的Modules,这些Modules就是一个一个的library |
redis | Redis Modules,这些Modules就是一个一个的library |
Tuxedo (software) | |
cpython | cpython也可以看做是library-base architecture,因为它允许Extending and Embedding the Python Interpreter¶ 参见: - python bindings, how does it work? - dlopen |
operating system kernel | 大多数现代操作系统都支持loadable kernel module特性 |
SQLite | 参见: - The Virtual Table Mechanism Of SQLite - Run-Time Loadable Extensions |
Reading list
Building Your Own Plugin Framework
实现
dlopen(3)
uselib(2)
Building a Simple C++ Cross-platform Plugin System
Build a Pluggable Application with IoC Container
ffead-cpp
Making a Plugin System
Introducing the new C++ plugins
Pluga
Implementing A Plugin System in C or C++ [closed]
Dynamic Loading of Modules
dlvhex
Chapter 12. Boost.DLL
Middleware
https://en.wikipedia.org/wiki/Middleware