過于的一年多,在和很多it屆的同學及朋友見面時,他們總會問我最近在做什么。“OSGi!”,我不加思索的回答。到目前為止,對這個單詞得到的反應都沒有超出“這是什么?”,“我沒有聽說過”,“噢,能具體點嗎?”等等。而我的回答更讓他們糊涂,最后,大家干脆放棄這個話題,轉到買房,運動等等更能體現聚會實質的問題上。不過最近,我一直在思考這個問題,下次再遇到這種情況時,該如何去表達才能讓也是it屆的哥們姐們能迅速的理解這個領域的范圍呢?要知道,技術人員往往不善于表達,我們已經習慣了和業內人士用行話交流。
關于這個問題,我訪問了OSGi Alliance的網站,在里面的faqs中,找到了我想要的東西。實際上,正如faqs中所解答的,OSGi涵蓋了太多的范圍,簡單的兩三句話是無法說清楚的。而我這里指的OSGi從技術的角度,應該說是“OSGi service platform ”,faqs中這樣解釋OSGi service platform(http://www.osgi.org/about/faqs.asp?section=1#q19) :
The OSGi service platform delivers an open, common architecture for service providers, developers, software vendors, gateway operators and equipment vendors to develop, deploy and manage services in a coordinated fashion. .......(以下省略上千英文單詞)
好長!不過第一句話就已經能總結陳詞了,“OSGi service platform是一個開放并且提供統一接口標準的體系框架,基于這個體系框架,服務提供商,程序開發人員,軟件提供商,服務網管運營商,設備提供商能夠協調地聯合起來開發,部署以及管理向用戶提供的各種服務。”還需要提到的是OSGi service platform是一個基于Java的platform。
OSGi的提出和誕生之初,其目的主要是能夠靈活方便并遠程管理互聯的網絡嵌入設備(聽說是1997年左右提出,與Jini有深厚淵源)。隨著硬件設備的能力不斷提高,java技術的日益普及,尤其J2ME的壯大,現實應用的需求也不斷擴大和推進,一個統一的標準變得非常的必要。OSGi Alliance就在這樣的背景下成立了。從1999年成立以來,OSGi Alliance已經針對這個service platform發布了4版規范,其中r4是2005年10月份剛剛發布。
目前有不少公司對OSGi service platform推出了自己的實現,象ibm的smf(Service Management Framework,嗯,多好的名字,在那么多的platform實現中,我個人最喜歡這個名字,言簡意賅)。
德國的ProSyst公司(http://www.prosyst.com)是OSGi Alliance中非常活躍的推動者,看看他們的產品列表吧http://www.prosyst.com/products/osgi.html(他們甚至提供了kvm + cldc的OSGi framework)
開源的Oscar(http://oscar.objectweb.org/),Knopflerfish(http://www.knopflerfish.org/)
對于OSGi的成功應用,最有名的應該是eclipse了,它就是基于OSGi service platform的產品。還有Apache,據說OSGi將被應用于其新一代的build工具中。這些都是j2se和j2ee的應用,而基于j2me的,手機(對應OSGi Alliance的MEG)和車載設備(對應OSGi Alliance的VEG)是OSGi的主要領域,OSGi Alliance已經有相應的規范,這些領域的應用相信會更加精彩,讓我們拭目以待吧。