J2EE之巔

           

          過細粒度的Bundle是成功實現(xiàn)OSGi應(yīng)用的大敵

           

          近期做了幾個使用OSGi開發(fā)的應(yīng)用,發(fā)現(xiàn)使用過細粒度的Bundle不會給項目帶來任何好處,而很多設(shè)計人員實際都會在使用OSGi平臺時陷入這個陷阱。

          首先我們分析OSGi的特點及可以給我們應(yīng)用帶來的好處

          1 良好的動態(tài)特性

          2 更細粒度的類裝載控制,多個版本組件在同一運行環(huán)境中共同運行

          3 JVM內(nèi)部實現(xiàn)SOA(我個人倒是認為OSGi所涉及的僅僅是SOA思想的一小部分)

          4 DS提供的IoC支持

          請思考你的應(yīng)用程序真的需要這些嗎?

          很多設(shè)計和開發(fā)人員都會在設(shè)計和實現(xiàn)時忽略應(yīng)用的真正需要和OSGi的復雜性,將應(yīng)用的所有內(nèi)部細小劃分都采用Bundle實現(xiàn)。

          而我們除了應(yīng)該注意采用OSGi開發(fā)和調(diào)試帶來的復雜性;同時也要明白動態(tài)特性的支持并不是僅僅采用OSGi平臺就可以搞定的,要真正實現(xiàn)動態(tài)特性必須注意模塊的啟動順序無關(guān)性及對其所依賴服務(wù)的監(jiān)聽等,這些都會大大增加系統(tǒng)實現(xiàn)和調(diào)試的復雜性。

          其實我們應(yīng)該認真分析應(yīng)用是否需要這些OSGi的特性及這些特性應(yīng)該在應(yīng)用的那些部分體現(xiàn),例如我們可以在擴展方面采用Bundle實現(xiàn)擴展插件,至于其它部分則不必采用過多的Bundles(甚至可以采用一個大的Bundle,而其內(nèi)部則可以采用如Spring來幫助我們實現(xiàn)模塊化)。

          同時,不要忘記其他的framework同樣提供了很好的組件化的基礎(chǔ)架構(gòu)如SpringPico-Container,在OSGi與其它技術(shù)混合時SCA同樣是很好的選擇。

          保持應(yīng)用的簡單性,不要針對特定技術(shù)進行設(shè)計,而要為設(shè)計選擇適合的技術(shù)。

          蔡超
          Chaocai2001@yahoo.com.cn

          JEE咨詢顧問
          SCEA(1.2&5)
          IBM Certified OOA&D Solution Designer vUML2

          posted on 2008-04-15 21:43 超越巔峰 閱讀(1377) 評論(0)  編輯  收藏 所屬分類: Design PatternJava EE

          導航

          統(tǒng)計

          常用鏈接

          留言簿(12)

          隨筆分類(54)

          隨筆檔案(59)

          文章分類(2)

          文章檔案(1)

          相冊

          搜索

          積分與排名

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 崇礼县| 枣阳市| 广河县| 安康市| 广南县| 淄博市| 小金县| 崇州市| 家居| 雷山县| 佛坪县| 灵山县| 烟台市| 阿尔山市| 五大连池市| 彭水| 奎屯市| 隆回县| 临江市| 赤水市| 开封市| 玛沁县| 绍兴县| 阿克苏市| 博罗县| 军事| 峡江县| 隆林| 大石桥市| 巧家县| 张家川| 舒城县| 武穴市| 龙里县| 兴海县| 弥勒县| 大关县| 陆川县| 封开县| 社旗县| 桓台县|