<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    基于Equinox開發(fā)系統(tǒng)的總結(jié)

    Equinox,我不想多做介紹,相信很多人都有所了解了,不了解的可具體去www.eclipse.org/equinox看看。
    最近基于equinox做了一個(gè)系統(tǒng),還是碰到了一些問題,當(dāng)然也得到了在插件體系架構(gòu)下的不少優(yōu)點(diǎn),在這里也做個(gè)總結(jié)。
    總體而言,基于equinox做開發(fā)對于大多數(shù)java開發(fā)人員來說應(yīng)該不會(huì)有太多改變的感覺,最多改變的感覺應(yīng)該是帶給設(shè)計(jì)師,設(shè)計(jì)師需要有發(fā)揮插件體系架構(gòu)優(yōu)點(diǎn)以及減少其帶來的缺點(diǎn)的能力,^_^
    1、部署不是很方便
          equinox默認(rèn)提供的是一個(gè)console端的插件部署管理,部署起來需要通過"install reference:file://"這樣的方式來安裝插件,不是特別的方便。
          ^_^,由于我當(dāng)時(shí)使用的時(shí)候equinox還沒提供osgi中httpservice的實(shí)現(xiàn),便使用了oscar中提供的httpservice的實(shí)現(xiàn),基于這個(gè)httpservice的實(shí)現(xiàn)寫了一個(gè)web端的插件管理的工具,呵呵,將來整理后會(huì)將這個(gè)bundle公布出來,到時(shí)大家直接下載就可以用了。
          在部署方面還有一個(gè)不方便的地方就是不能指定插件的啟動(dòng)順序,現(xiàn)在equinox是通過config.ini中來實(shí)現(xiàn)插件啟動(dòng)順序的控制的,這個(gè)在我的web端的插件管理工具中也提供直接,可直接設(shè)定插件的啟動(dòng)順序。
    2、Classpath的問題
          這個(gè)問題是我在使用equinox時(shí)比較頭疼的一個(gè)問題,我在bundle中使用了spring IoC container,而由于spring中使用的不是當(dāng)前類的加載器,導(dǎo)致在加載配置文件的時(shí)候會(huì)出錯(cuò),只得直接修改了spring中那些部分的代碼,將其改為使用當(dāng)前類的加載器。
           在集成其他一些自己含有classpath的東西的時(shí)候也很容易出現(xiàn)這個(gè)問題。
           雖然從原理上來講這個(gè)是可以理解的,因?yàn)樵诓寮w系結(jié)構(gòu)中每個(gè)插件都擁有獨(dú)立的插件類加載器,這個(gè)確實(shí)會(huì)對集成的有些東西產(chǎn)生影響,抑或我們應(yīng)該理解為集成的那些東西在這方面設(shè)計(jì)有缺陷?
    3、有利于面向接口編程的執(zhí)行
          這個(gè)應(yīng)該說是屬于插件體系結(jié)構(gòu)的好處,每個(gè)插件可以控制自己對外所暴露的包,這個(gè)時(shí)候就可以只暴露接口所在的包,^_^,呵呵,面向接口的編程就這么被強(qiáng)制的執(zhí)行了。
    4、插件開發(fā)的IDE
          這點(diǎn)是我覺得equinox的天然優(yōu)勢,擁有一個(gè)eclipse這么優(yōu)秀的插件開發(fā)的IDE,^_^
          支持了插件的調(diào)試...
          我認(rèn)為的最重要的一點(diǎn)是它解決了插件依賴的問題,通常在出現(xiàn)project依賴的時(shí)候我們都需要引用該project或是該project生成的jar,而在插件體系結(jié)構(gòu)中只需要在插件文件中定義所依賴的包即可,這個(gè)就解決了去引用project那樣方式引起整個(gè)項(xiàng)目工程包混亂和開發(fā)不便的現(xiàn)象。
    5、插件的測試
          這點(diǎn)我想也是大家很關(guān)心的,不過大家可以放心,基本沒什么不同的,unit test繼續(xù)使用Mock方式完成所測試的unit的外部依賴的部分,集成測試則需要啟動(dòng)equinox容器,這點(diǎn)應(yīng)該沒什么不能接受的。
    6、Bundle和Service的定義
          這個(gè)就是插件體系結(jié)構(gòu)帶來的一個(gè)挑戰(zhàn),如果準(zhǔn)確的定義系統(tǒng)中的bundle和service是很關(guān)鍵的一個(gè)問題,這對于發(fā)揮插件體系結(jié)構(gòu)的bundle級別、service級別的重用性至關(guān)重要,同時(shí)對于整個(gè)項(xiàng)目結(jié)構(gòu)的清晰度也會(huì)產(chǎn)生很大的影響,形成bundle的清晰的service依賴結(jié)構(gòu)。
    7、面向服務(wù)的體系
          我想這也同樣是象equinox這樣的插件框架引發(fā)使用者的思考,系統(tǒng)采用的應(yīng)該是一種面向服務(wù)的體系,服務(wù)才是系統(tǒng)的核心,bundle只是一個(gè)管理器而已,這個(gè)時(shí)候怎么樣設(shè)計(jì)出動(dòng)態(tài)、松散耦合的服務(wù)體系是很關(guān)鍵的。

    equinox一直都在發(fā)展之中,它的maillist一直就非常的熱鬧,而且現(xiàn)在對于osgi中的service它基本都實(shí)現(xiàn)了,也已經(jīng)開始提供對于servlet container集成的支持,^_^,極度支持equinox,雖然它還需要不斷的努力.....
    可以看得出,經(jīng)過我上面的總結(jié),大家其實(shí)要擔(dān)心的是引用一種新的體系結(jié)構(gòu)帶來的設(shè)計(jì)層面的變革,而不是開發(fā)實(shí)現(xiàn)層面,^_^ 

    posted on 2006-03-12 21:32 BlueDavy 閱讀(5317) 評論(9)  編輯  收藏 所屬分類: Java 、Plugin Architecture

    評論

    # re: 基于Equinox開發(fā)系統(tǒng)的總結(jié) 2006-03-14 11:30 破門

    呵呵,整理的不錯(cuò)啊。
    是不是準(zhǔn)備招募插件管理框架的合作開發(fā)人員?:)

    ClassPath和啟動(dòng)問題的確會(huì)有很多困擾,不過這也說明了在Equinox還有很多可以發(fā)展的空間。比如 Boundle和IOC的接合就需要好好探討一下。

    SOA么,暫時(shí)還沒有什么想法,只是覺得以前Apache Avalon中提出了很多不錯(cuò)的概念和實(shí)現(xiàn),那樣一個(gè)項(xiàng)目的關(guān)閉還是讓人有些遺憾的,希望能夠在Equinox應(yīng)用過程中有所突破。

    可配置性、可管理性、反轉(zhuǎn)控制、MVC等等這些優(yōu)秀特性如何在Equinox中應(yīng)用值得大家努力來發(fā)展。
      回復(fù)  更多評論   

    # re: 基于Equinox開發(fā)系統(tǒng)的總結(jié) 2006-08-09 11:14 Steven

    請問Equinox怎么能兼容老的plugin呢,怎么能把plugin.xml 所定義的 plugin 遷移為 MANIFEST.MF 定義的 bundle 呢?  回復(fù)  更多評論   

    # re: 基于Equinox開發(fā)系統(tǒng)的總結(jié) 2006-08-09 17:18 BlueDavy

    @Steven
    遷移只需要把以前在plugin.xml中編寫的信息移植到MANIFEST.MF中就可以了,對于兩者Eclipse都提供了圖形化的界面,很容易就可以完成這步...  回復(fù)  更多評論   

    # re: 基于Equinox開發(fā)系統(tǒng)的總結(jié) 2007-09-29 00:00 fxfx

    版主整理的很好??!
    我是個(gè)初學(xué)者,有個(gè)問題想請教。在eclipse 中我要新建個(gè)plug-in工程,里面有個(gè)選項(xiàng)就是這個(gè)新建的plug-in 是運(yùn)行在eclipse上 還是運(yùn)行在equinox上。
    我的理解是若面向eclipse的話可能是要開發(fā)一個(gè)rcp程序,而運(yùn)行在equinox上是要開發(fā)一個(gè)服務(wù)bundle系統(tǒng),這個(gè)系統(tǒng)需要osgi的一個(gè)控制臺(tái)來啟動(dòng)各個(gè)插件。我的問題是,若要開發(fā)一個(gè)基于服務(wù)組件的系統(tǒng)的話,可以基于equinox,但要是希望能夠利用rcp的一些插件(或者說仍然希望能有個(gè)漂亮基于rcp的界面)那么如何來集成這兩個(gè)框架。

    謝謝版主。寫了很多,希望能給個(gè)建議。
    我qq:406746058



      回復(fù)  更多評論   

    # re: 基于Equinox開發(fā)系統(tǒng)的總結(jié) 2007-09-29 00:03 fxfx

    還有就是版主能不能給推薦一個(gè)可供學(xué)習(xí)的基于equnnox的開源項(xiàng)目。  回復(fù)  更多評論   

    # re: 基于Equinox開發(fā)系統(tǒng)的總結(jié) 2007-09-29 09:12 BlueDavy

    @fxfx
    ...RCP本身就是基于Equinox而搭建出來的..
    至于基于Equinox的學(xué)習(xí)性質(zhì)的開源項(xiàng)目,在我的新的Opendoc寫完后會(huì)相應(yīng)的公布。
      回復(fù)  更多評論   

    # re: 基于Equinox開發(fā)系統(tǒng)的總結(jié) 2007-10-04 15:46 fxfx


    版主所說的“RCP本身就是基于Equinox而搭建出來的”,那么插件在基于eclipse 3.3和equinox這個(gè)兩個(gè)平臺(tái)上運(yùn)行有什么區(qū)別嗎?

    另外,如果一個(gè)我自己開發(fā)的rcp程序要想實(shí)現(xiàn)插件的start和stop(osgi可實(shí)現(xiàn))又如何操作呢?

    請版主詳細(xì)的給說說。
    謝謝  回復(fù)  更多評論   

    # re: 基于Equinox開發(fā)系統(tǒng)的總結(jié) 2007-10-04 19:51 BlueDavy

    @fxfx
    插件在基于Eclipse和Equinox運(yùn)行可能會(huì)有差別,那就要看你的插件是否是基于RCP擴(kuò)展出來的,Eclipse就是部署一些插件到Equinox上而形成的。

    開發(fā)的RCP程序要實(shí)現(xiàn)插件的start、stop非常容易,方法也是直接調(diào)用OSGi的Bundle接口的方法,如bundle.stop、bundle.start這些方法,建議你先仔細(xì)看看《OSGi實(shí)戰(zhàn)》Opendoc,在里面的規(guī)范解釋部分有些描述。
      回復(fù)  更多評論   

    # re: 基于Equinox開發(fā)系統(tǒng)的總結(jié) 2007-10-05 10:21 fxfx

    謝謝回復(fù)!

      回復(fù)  更多評論   

    公告

     









    feedsky
    抓蝦
    google reader
    鮮果

    導(dǎo)航

    <2006年3月>
    2627281234
    567891011
    12131415161718
    19202122232425
    2627282930311
    2345678

    統(tǒng)計(jì)

    隨筆分類

    隨筆檔案

    文章檔案

    Blogger's

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 午夜老司机永久免费看片| 99视频全部免费精品全部四虎| 亚洲中文久久精品无码ww16| 国产日韩亚洲大尺度高清| 午夜精品一区二区三区免费视频 | 麻花传媒剧在线mv免费观看| 亚洲情综合五月天| 乱爱性全过程免费视频| 亚洲无删减国产精品一区| 成年女人免费v片| 丁香花免费完整高清观看| 直接进入免费看黄的网站| 亚洲va久久久噜噜噜久久狠狠| 我的小后妈韩剧在线看免费高清版 | 四虎影院在线免费播放| 高清免费久久午夜精品| 亚洲欧洲日产国码www| 亚洲国产a级视频| 一级毛片免费播放试看60分钟| 亚洲欧洲日产国码久在线观看| 国产又粗又猛又爽又黄的免费视频 | 国产午夜鲁丝片AV无码免费| 免费视频精品一区二区三区| 亚洲人成网站色7799| 亚洲成a人片77777kkkk| 国产亚洲福利一区二区免费看| 久久国产高潮流白浆免费观看| 国产成人综合亚洲绿色| 亚洲精品成人久久| 亚洲欧洲日产国码无码久久99| 日本免费网站观看| 国产免费A∨在线播放| 亚洲中文久久精品无码1| 亚洲国产婷婷六月丁香| 国产又粗又长又硬免费视频| 黄页免费的网站勿入免费直接进入| 久久国产乱子伦精品免费午夜| 国产成人亚洲精品播放器下载| 亚洲综合在线视频| 国精无码欧精品亚洲一区| 国产成人精品高清免费|