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的影子。