上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人
第1章 OSGi简介
1.1 梦想中“即插即用”的系统
第一次听到插件应该是当初用WinAMP播放器的时候,记得当时WinAMP有很多的插件,可以方便地下载、安装、使用。在实际的工作中,有过引入COM组件技术使系统模块化的经历,后来自己也做过一个产品用的插件管理器(实在不能说是插件平台),实现了基本的插件远程下载、安装、启动、停止等管理工作,也有插件间的消息通知。但是这个管理器更像是对模块的动态管理,并且在实现上也发现它远没有最初设想的简单。还有一个问题是,这个插件管理器是用在公司的第一款产品上,目标是做到公司内通用,但是最终发现其实并不是那么通用,并且这个管理器也有些相关平台。当时就在想,有没有一个通用的框架,实现一个插件体系结构,使用者遵循规范,开发自己的插件,使用已有的插件,而插件又能控制对外暴露的内容,在运行时,可以动态地安装、启动、停止、卸载插件,每个插件提供一个或多个服务,其他的插件只是根据接口来获取服务提供者,而完全不知道提供者是谁。如果有了这样的规范和框架,我们就可以用已有的积木搭出各种造型,也能够提供积木给自己、给别人来使用。所以,我们很希望能够有一个稳定的平台,管理规范的插件,插件可以热插拔,并且在运行期能够改变行为。