首先要说明一点的是,我对COM、OSGI、插件方面了解的不深,我只是粗略的看了一下COM本质论的前面几章,对OSGI也只是看了一下网上的介绍,没有深入研究OSGI的规范,对插件也只是看浏览器方面的插件知识(NSAPI)。如果你觉得我说的内容有错误,请见谅并请指出。
由于最近在工作中使用Spring-DM即OSGI方面的知识,我很久以前就对OSGI很好奇,主要因为eclipse软件,在网上看到eclipse是一堆插件堆积起来的,eclipse只是做了插件方面的管理工作,即实现了OSGI。
我以前研究过浏览器方面的插件工作模式,浏览器的插件模式大致是这样的:
1.由浏览器启动、加载、停止插件。也就是说对插件来说是被动的,浏览器软件是主动的。
2.插件如果要绘图,则只能是以下两种方式:
1)浏览器会传一个窗口句柄及对应的窗口起始位置,宽,高给插件,插件只能在这个窗口中绘图。
2)插件获得窗口的大小,然后插件先临时在内存中绘图(起始位置为0,大小为插件对应的大小),把结果传给浏览器,浏览器就会在插件对应的位置画图。
3.浏览器会把插件对应的事件传给插件。
所以我非常想知道OSGI的插件模式的原理?,粗略看了一下OSGI, 发现OSGI的概念和COM的概念非常相似。