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