OSGi帶來(lái)的規(guī)范的模塊化

          規(guī)范的模塊化開(kāi)發(fā)是需要OSGi的重要理由之一,模塊化的開(kāi)發(fā)方式一直就是現(xiàn)在的主流開(kāi)發(fā)方式,但業(yè)界卻一直缺乏這樣的標(biāo)準(zhǔn),當(dāng)然,如果java本身具備這樣的標(biāo)準(zhǔn)自然就更好了,那么大家就會(huì)很自然的以同樣的方式去設(shè)計(jì)、開(kāi)發(fā)和部署模塊,但目前java暫時(shí)還沒(méi)有這樣的標(biāo)準(zhǔn),雖然之前的JSR 277(Java Module System)的目標(biāo)是制定這樣的標(biāo)準(zhǔn),但由于該標(biāo)準(zhǔn)制定完后并沒(méi)有得到業(yè)界和各大廠商的認(rèn)可,所以基本上沒(méi)起到什么作用,而現(xiàn)在JSR 291的認(rèn)可則更是觸動(dòng)了它,目前的情況看下去,OSGi成為下一個(gè)版本的Java Module System JSR只是時(shí)間的問(wèn)題而已,整個(gè)業(yè)界能夠采取統(tǒng)一的方式進(jìn)行模塊的設(shè)計(jì)、開(kāi)發(fā)是非常重要和有意義的事,這也是OSGi得到IBM等大公司支持的重要原因之一,說(shuō)了這么多背景性質(zhì)的話后開(kāi)始來(lái)看看OSGi是如何規(guī)范化模塊的開(kāi)發(fā)的:
          1、模塊的定義
          ????? 在OSGi中模塊以Bundle的形式進(jìn)行定義,而對(duì)于模塊中的重要概念如模塊的依賴、模塊的版本、模塊對(duì)外提供的功能等都通過(guò)規(guī)范的Bundle的元數(shù)據(jù)信息來(lái)表達(dá),這就使得模塊的定義得以規(guī)范。
          ????? 而同樣的OSGi對(duì)于模塊的規(guī)范化的定義也是平時(shí)我們?cè)谶M(jìn)行模塊化的定義時(shí)值得參考的。
          2、模塊的設(shè)計(jì)
          ??????在模塊的設(shè)計(jì)上首先遵循OSGi Bundle的方式無(wú)疑為我們的模塊設(shè)計(jì)提供了類似Best Practice的指導(dǎo),這個(gè)對(duì)于構(gòu)建整個(gè)系統(tǒng)而言具備非常強(qiáng)的指導(dǎo)意義,我們知道在進(jìn)行業(yè)務(wù)架構(gòu)設(shè)計(jì)時(shí)最重要的就是模塊的劃分和依賴的設(shè)計(jì),而這從OSGi上都給予了非常好的指導(dǎo)。
          ????? 而對(duì)于模塊本身的實(shí)現(xiàn)方面的設(shè)計(jì)而言,OSGi更是提供了Service-Oriented Component Model做為設(shè)計(jì)的指引和參考,這從本身上來(lái)講已經(jīng)提升了目前的很多的模塊的設(shè)計(jì)方法。
          ??????可見(jiàn),從設(shè)計(jì)這個(gè)層面上來(lái)說(shuō),OSGi不僅提供了規(guī)范化的方法,一定程度上來(lái)說(shuō)更是提供了模塊化設(shè)計(jì)的Best Practice。
          3、模塊的部署
          ????? 在OSGi中模塊統(tǒng)一以Bundle的方式部署到系統(tǒng)中。
          在以前的很多的插件式的系統(tǒng)中也能找到上面三個(gè)部分的影子,但最關(guān)鍵的是那些都不足以形成業(yè)界統(tǒng)一的規(guī)范,規(guī)范性才是模塊化中最為重要的一點(diǎn),當(dāng)然,OSGi在動(dòng)態(tài)性方面的優(yōu)勢(shì)使得它在這一領(lǐng)域占據(jù)了優(yōu)勢(shì),也使得OSGi在模塊的管理上具備很強(qiáng)的優(yōu)勢(shì),象模塊的生命周期的動(dòng)態(tài)管理、模塊的版本化管理以及模塊行為的動(dòng)態(tài)改變等。

          posted on 2006-09-14 15:32 BlueDavy 閱讀(2386) 評(píng)論(8)  編輯  收藏 所屬分類: OSGi、SOA、SCA

          評(píng)論

          # re: OSGi帶來(lái)的規(guī)范的模塊化 2006-09-14 15:50 差沙

          感謝你對(duì)OSGi的推廣所做的貢獻(xiàn)、、、  回復(fù)  更多評(píng)論   

          # re: OSGi帶來(lái)的規(guī)范的模塊化 2006-09-14 16:35 BlueDavy

          @差沙
          ...希望能有越來(lái)越多的人使用OSGi..  回復(fù)  更多評(píng)論   

          # re: OSGi帶來(lái)的規(guī)范的模塊化 2006-09-14 18:38 JRobot

          能不能介紹些入門的相關(guān)知識(shí)哇,好像這方面的還很少  回復(fù)  更多評(píng)論   

          # re: OSGi帶來(lái)的規(guī)范的模塊化 2006-09-14 23:35 飛飛



          是啊,我對(duì)OSGI還不太明白呢!  回復(fù)  更多評(píng)論   

          # re: OSGi帶來(lái)的規(guī)范的模塊化 2006-09-15 11:16 BlueDavy

          @JRobot
          ...請(qǐng)參見(jiàn)我寫(xiě)的OSGi Opendoc。  回復(fù)  更多評(píng)論   

          # re: OSGi帶來(lái)的規(guī)范的模塊化 2006-11-08 17:16 生與夏花

          對(duì)于一個(gè)系統(tǒng)的分析,一套好的系統(tǒng)模型時(shí)非常重要的,他不僅可以規(guī)范設(shè)計(jì),還可以避免我們犯錯(cuò),OSGI規(guī)范正是提供了這一套好的系統(tǒng)模型。在這個(gè)基礎(chǔ)之上我們可以設(shè)計(jì)出于我們業(yè)務(wù)相關(guān)的業(yè)務(wù)模型出來(lái)。
          對(duì)于模塊的部署,是不是可以借鑒一點(diǎn)Maven的repositer概念,這樣在開(kāi)發(fā)的時(shí)候我們可以共用一個(gè)remote的bundler庫(kù)進(jìn)行開(kāi)發(fā),在本地有一個(gè)local開(kāi)發(fā)庫(kù),對(duì)于公共的bundle,比如說(shuō)框架部分的bundler,一些通用的服務(wù)性質(zhì)的bundler庫(kù),如LogService,JOTM(分布式事務(wù)管理器),JPA service都可以發(fā)布到遠(yuǎn)程的bundle庫(kù)中,統(tǒng)一進(jìn)行更新和維護(hù)。
          這樣我們就可以把continous integration 機(jī)制加入進(jìn)來(lái),通過(guò)Mevan(個(gè)人覺(jué)得如果使用osgi作為Maven的核心架構(gòu)的話,會(huì)對(duì)Mavne的功能有很大的提升)的mojo來(lái)擴(kuò)展自己的插件,這樣就把OSGI的開(kāi)發(fā)和管理都集成為一個(gè)統(tǒng)一整體.  回復(fù)  更多評(píng)論   

          # re: OSGi帶來(lái)的規(guī)范的模塊化 2006-11-08 17:26 BlueDavy

          @生與夏花
          OBR就是借鑒了Maven的repositer概念..  回復(fù)  更多評(píng)論   

          # re: OSGi帶來(lái)的規(guī)范的模塊化 2006-11-08 17:32 生與夏花

          @BlueDavy
          剛剛才看到,我還想一直在想如何實(shí)現(xiàn)呢  回復(fù)  更多評(píng)論   

          公告

           









          feedsky
          抓蝦
          google reader
          鮮果

          導(dǎo)航

          <2006年9月>
          272829303112
          3456789
          10111213141516
          17181920212223
          24252627282930
          1234567

          統(tǒng)計(jì)

          隨筆分類

          隨筆檔案

          文章檔案

          Blogger's

          搜索

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

          主站蜘蛛池模板: 岳池县| 贞丰县| 南丰县| 嘉定区| 东光县| 双牌县| 双城市| 乌兰浩特市| 清水河县| 宁阳县| 温宿县| 宜州市| 孟津县| 延吉市| 乌苏市| 白朗县| 额尔古纳市| 鸡西市| 汝城县| 灌云县| 泸溪县| 正镶白旗| 丽江市| 咸宁市| 枣强县| 桦川县| 伊吾县| 天津市| 桑植县| 大姚县| 伊宁市| 卓资县| 辽阳县| 平阳县| 临沂市| 锡林浩特市| 广丰县| 翼城县| 镇江市| 高淳县| 青铜峡市|