J2EE之巔

           

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

           

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

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

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

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

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

          4 DS提供的IoC支持

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

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

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

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

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

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

          蔡超
          Chaocai2001@yahoo.com.cn

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

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

          導(dǎo)航

          統(tǒng)計(jì)

          常用鏈接

          留言簿(12)

          隨筆分類(54)

          隨筆檔案(59)

          文章分類(2)

          文章檔案(1)

          相冊(cè)

          搜索

          積分與排名

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

          主站蜘蛛池模板: 崇州市| 三明市| 达尔| 双鸭山市| 勐海县| 灵石县| 福安市| 乐亭县| 来安县| 麻江县| 宁国市| 米易县| 固安县| 定州市| 报价| 浦县| 奉新县| 金湖县| 扎囊县| 乐安县| 兴隆县| 永修县| 武宁县| 洪泽县| 富源县| 徐州市| 陇川县| 庄浪县| 慈利县| 湖南省| 吉安市| 西安市| 遂昌县| 沐川县| 抚顺市| 南通市| 拜泉县| 景德镇市| 宜宾市| 东兰县| 湄潭县|