OSGi越來越風行了,得到的關注越來越多,這本來是好事,但聽到的越來越多的聲音都是認為OSGi對于B/S、企業應用支持的太不夠,怎么說呢,這些聲音挺好,至少說明發出這些聲音的人肯定是想過將OSGi應用到自己的項目/產品中去,雖然這是好的,但我覺得更多的原因還是很多的人都習慣的以一種框架的觀點去看OSGi,這對于OSGi而言或多或少有些不公平,為什么這么說呢?
還得從OSGi的歷史講起,OSGi的建立并不是為了企業應用這種類型,而是嵌入式的應用領域,更為準確的說是為了網絡設備的管理,正是這個原因,在OSGi的規范中并沒有體現出為企業應用的充分考慮,OSGi聯盟的人在軟件設計的觀點上和Java企業應用的設計者觀點非常的不同,就像OSGi聯盟的主席Peter看Spring and OSGi的設計,就認為過于復雜了,OSGi的設計者們強調設計的簡單(不是簡陋)、以最小的代碼量去實現、盡量縮小最后應用的大小,同時由于它是為了支持部署在網絡設備上的軟件的管理,特別的強調模塊化以及動態的管理,這也就造就了OSGi在這兩方面具備了充足的優勢,而在支持嵌入式領域的應用自然也不必說了。
OSGi在模塊化和動態管理上的優勢被它帶有一點關系的Eclipse組織注意到了,于是引入到了Eclipse中,隨著Eclipse的引入,OSGi開始得到Java企業應用開發者的注意,但是直到今年才真正的比較廣泛了,這里面當然有各大廠商的原因,這也說明了OSGi確實是得到了各大廠商的認可,在JSR 291的投票上google、sun投出的反對票仍然沒有阻礙OSGi進軍Java SE領域,這也算是挽回了當年JSR 277上OSGi失敗的場面。
從這些發展過程中,我們可以看到,OSGi到目前受到Java企業應用界的關注階段為止,一直以來都尚未涉足企業應用界,就連OSGi的主席Peter都承認自己對于Spring只是了解而已,可想而知,那么我們憑什么在現在的這個階段就以企業應用級別的框架去評價OSGi的好壞呢,更不要僅僅以OSGi現階段對企業應用支持的不夠就斷定OSGi在Java企業應用界一無是處,那是不是很不公平呢?
當然,現在OSGi要進入企業應用界,大家以這樣的觀點去看待它沒什么太大的問題,至少大家評價的OSGi的不好也是對OSGi進入企業應用的一種促動的建議,只是希望大家不要純粹以一種新的Java企業應用的框架(象Spring等)的觀點去評價它,畢竟那不是OSGi的目標,OSGi并不希望成為一個新的Java企業應用的框架,在現階段,對于大家來說,也許去學習OSGi優勢的地方和不同的設計思想是我們最值得做的,相信大家也不希望等哪天OSGi成為了JDK中的一部分后再去學習吧,如果愿意嘗試將OSGi應用到你現在的項目/產品中,那就更好了,我相信將以目前Equinox(OSGi R4的實現)的表現來說,將你的新的應用基于它而搭建不會碰到什么太多的問題,如果你的新的應用是基于Equinox而搭建,非常歡迎與我進行交流,以后我也會在blog中更多的貼出一些關于基于Equinox搭建企業應用的實踐的文章(以前考慮到關注這些東西的人太少,就沒去寫了)。
OSGi現在在企業應用方面的努力工作大家有目共睹,相信在各大廠商(IBM、Oracle、BEA等)和各大開源組織(Spring、Apache)的支撐下,OSGi對于企業應用的支持會越來越好。