J2EE之巔

           

          過細粒度的Bundle是成功實現OSGi應用的大敵

           

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

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

          1 良好的動態特性

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

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

          4 DS提供的IoC支持

          請思考你的應用程序真的需要這些嗎?

          很多設計和開發人員都會在設計和實現時忽略應用的真正需要和OSGi的復雜性,將應用的所有內部細小劃分都采用Bundle實現。

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

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

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

          保持應用的簡單性,不要針對特定技術進行設計,而要為設計選擇適合的技術。

          蔡超
          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

          導航

          統計

          常用鏈接

          留言簿(12)

          隨筆分類(54)

          隨筆檔案(59)

          文章分類(2)

          文章檔案(1)

          相冊

          搜索

          積分與排名

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 鄢陵县| 吴堡县| 交城县| 南投县| 灯塔市| 阳江市| 林芝县| 高邑县| 新竹县| 和政县| 泸州市| 麻城市| 安阳县| 涟源市| 浦江县| 邯郸县| 白城市| 凯里市| 南通市| 伊宁市| 普兰县| 如东县| 萨迦县| 哈尔滨市| 贺兰县| 宣汉县| 三都| 湾仔区| 玉林市| 巫山县| 城步| 阳信县| 新乡县| 珠海市| 从江县| 郓城县| 南城县| 蒙阴县| 景德镇市| 兴山县| 名山县|