Peter(OSGi主席)在7月3日的一篇blog上展示了一个很有趣的演示,相信可以给公众很好的展示下使用OSGi是一件很好玩的事,很简单的快速的基于OSGi搭建出各种各样不同的系统,我知道也许你会说你们的系统也可以,但你觉得真的能做到和基于OSGi所做出的系统的效果一样吗,really?如果可以的话,非常恭喜你,你对模块化、动态化都有很强很深的认识,如果不可以但又想做到这种效果的话,我觉得不妨和Peter所做的一样试着Play OSGi,then Study OSGi and use it,:)。
这个演示其实比较简单,但它很好的向大家展示出了基于OSGi系统的模块化和动态化是多么的容易,效果是多么的好,所以这是个非常不错的演示,建议大家都去看看:http://www.aqute.biz/Blog/20070703,这个演示的脚本的是这样的:
1、在Eclipse中新建一个工程,加载OSGi所需的核心的jar包,以main程序的方式启动;
2、从OBR中下载并安装一个监控目录变化的Bundle,这个Bundle在监控到目录中文件发生变化时会进行安装或更新相应的Bundle;
3、从OBR中下载一些游戏,放入监控的目录中,可以看到的效果就是游戏被自动安装了,并可开始使用;
4、从OBR中下载PHP解析器Bundle,放入监控的目录中;
5、从网上下载PHP版的Wiki,使用BND将其打包成jar;
6、将第5步打包生成的jar文件放入监控的目录中,放入后就可以通过网页来使用这个php版的wiki了。
在整个过程的演示中,可以看到基于OSGi来实现这些是非常的流畅,也向大家展示了基于OSGi来做产品、做项目的一种方法,那就是可以首先通过公司的OBR或OSGi的OBR来寻找是否已经有相同或类似功能的Bundle,如有的话则可直接安装到OSGi上了,也就是说也许某一个项目、某一个产品演示你可以通过这样安装Bundle的方式就快速的完成了搭建,而且从安装PHP Wiki的过程中可以看到要让传统的asp、PHP的系统运行在OSGi上也是一件很容易的事,看到这些不想试试吗?just try with Peter,:),Play OSGi happy.
在这个演示中可以看到OBR开始发挥作用了,同时也展示了另外一个好用的东西,那就是BND,关于BND Peter写了一篇详细的blog来介绍,请见:http://www.aqute.biz/Code/Bnd,简单来说呢,就是可以通过BND将传统的project打包为符合OSGi规范要求的Bundle,需要的仅仅是编写一个bnd的文件,而且BND的使用非常的方便,可以使用命令行、Eclipse插件、Ant Task或者Maven,Bnd还有很多别的作用,像通过一个jar包安装其所需要的其他的所有的jar包,检查一个插件里所有的依赖等等,这些可以通过Peter的这篇blog来看出:http://www.aqute.biz/Code/BndHibernate
ps:近来OSGi的发展还是一如既往的快速,OSGi得到的关注也是越来越多,从InfoQ这些高质量的网站中也可以看出,OSGi正在得到各方面的高度关注,同时各大厂商现在也是大力的在支持,另外就是随着SCA V1.0的推出,希望在SCA将来的规范中能很快的看到OSGi的影子。