Rush into 实战OSGI

       OpenDoc上BlueDavy很不错,写了一篇非常好的关于OSGI的开源文档。
       今天下午我们组发布了插件容器,这个插件容器是用.NET实现了,实现了简单的微内核+插件的功能。具体说来就是实现了容器如何调用插件(这个已经仿照Eclipse,对插件设计了Plugin.xml来进行描述,通过解析Plugin.xml来得到一个Plugin的详细信息),插件对容器的调用(容器提供了一些扩展点,有UI的部分,也有非UI的部分),插件之间的相互调用(通过曝露插件提供的Service,容器知道所有插件提供的Service,插件之间的调用由容器来实现。实现起来也就是反射机制)
       应该说,基本的插件容器功能应该是差不多了,当然还有很多改进的地方。特别是插件对容器的扩展点,在服务器端应该说这种非UI的扩展点应该比较多;另外,插件提供的Service给其他插件使用,参数如何定义,返回值如何搞都是需要进一步深入的问题。
       我觉得在这个时候,我们已经比较了解插件原理了。虽然我不是这个插件容器的主要开发者,但是,我已经差不多掌握了整个插件的原理和实现。我们有很多实现的想法都是参考Eclipse以及Spring的,因此,eclipse的插件机制是值得研究的。至于现在开发出来的这个容器,当然可以继续改,做成.NET下的Eclipse。但是,我对这方面不是特别感兴趣。
       插件容器是我们关心的地方,但是不是我们最关注的地方。我们的核心竞争力还是在我们的业务上。我们的业务能够方面基于插件实现相互之间的调用,灵活具有可扩展性。
        因此,下一阶段的目标,我觉得有两个。第一:是深入理解Eclipse3.x所基于的OSGI框架并了解现有的实现OSGI规范的架构,评价这个架构是否能够满足我们的插件容器要求;第二:在此基础上开发核心业务插件。

       今天晚上系统学习了BlueDavy的文档,相当的好。照着文档做了例子,Eclipse这套东西绝对是值得研究一下的。明天继续。

你可能感兴趣的:(eclipse,spring,UI,.net,osgi)