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

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

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

          評論

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

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

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

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

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

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

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



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

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

          @JRobot
          ...請參見我寫的OSGi Opendoc。  回復(fù)  更多評論   

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

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

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

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

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

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

          公告

           









          feedsky
          抓蝦
          google reader
          鮮果

          導(dǎo)航

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

          統(tǒng)計(jì)

          隨筆分類

          隨筆檔案

          文章檔案

          Blogger's

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 长海县| 鹤岗市| 卢龙县| 文昌市| 安丘市| 威海市| 徐水县| 长葛市| 铜鼓县| 石柱| 沙湾县| 扬中市| 驻马店市| 土默特右旗| 麦盖提县| 石柱| 沙田区| 大兴区| 张北县| 安图县| 介休市| 宣武区| 保亭| 象州县| 合江县| 彭泽县| 北川| 铜川市| 射阳县| 前郭尔| 阳东县| 康保县| 昭通市| 包头市| 什邡市| 财经| 亳州市| 丹寨县| 内丘县| 金华市| 瑞昌市|