从Eclipse,Equinox和OSGI看插件式Plug-in项目开发

插件式程序开发其实是一个比较模糊的概念,因为真正以插件模式完成一个大型系统的开发之后,插件和模块的区分就变得比较困难。二者都在专注于松耦合,系统可拆分,可重组重用等,如果非要突出插件化,那么除了可以认为插件比模块更独立化,并且其运行要基于一个核心模块外,更多的其实在于系统设计与开发方式的转变。


插件式程序开发,系统设计有别于传统方式,其更专注于核心运行平台和架构的搭建,而在核心平台完成之后,单个插件的开发就更专注于插件自身功能的实现,以及插件与核心平台的对接设计上,而不必过多的考虑与其它模块的易融合性。从开发方式和运行情况来看,其粗略地表现在每个插件基本上都是一个独立的项目,而运行时全部插件虽然是一个整体,但是每个插件的类加载都是独立的,这和一般的模块化系统是有所区别的。


另外,插件概念和现存的SOA等系统架构概念并不是对立的,相反,插件式程序开发更多的是为了更方便的去实现这些系统架构设计。而在插件式程序开发中,以前实现大型系统需要关注的那些问题,例如数据持久化,系统MVC设计等,同样需要去关注和解决,插件化程序开发并不能使得这些问题迎刃而解,它只是使得这些问题的解决变得相对容易,或者是将这些问题影响的范围进行了隔离。


其实插件化程序开发理念出现的很早,最现实可见的例子就是开源IDE软件Eclipse,但是由于开发难度原因,插件化程序开发最早只在一些移动平台和嵌入式设备中得到实验。最近的热度骤起,其实还是来源于Eclipse 的带动。


Eclipse的插件机制在最新的版本中得到了重新实现,其实现的基础是基于OSGI的Equinox框架,而基于OSGI的Equinox框架,是开源的并被设计为用于帮助各种软件进行插件式开发的。并且在Eclipse中,已经加入了Plug-in项目的开发支持,使得基于插件式进行系统开发变得更加可行和易于上手。


至于OSGIEquinox,目前也正在日新月异,等其对B/S架构系统的开发支持度达到一定高度的时候,就是其大行其道的时候。

 

 

http://www.kingxy.com/archives/57.html

你可能感兴趣的:(eclipse)