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

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

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

    基于Equinox開發系統的總結

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

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

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

    評論

    # re: 基于Equinox開發系統的總結 2006-03-14 11:30 破門

    呵呵,整理的不錯啊。
    是不是準備招募插件管理框架的合作開發人員?:)

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

    SOA么,暫時還沒有什么想法,只是覺得以前Apache Avalon中提出了很多不錯的概念和實現,那樣一個項目的關閉還是讓人有些遺憾的,希望能夠在Equinox應用過程中有所突破。

    可配置性、可管理性、反轉控制、MVC等等這些優秀特性如何在Equinox中應用值得大家努力來發展。
      回復  更多評論   

    # re: 基于Equinox開發系統的總結 2006-08-09 11:14 Steven

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

    # re: 基于Equinox開發系統的總結 2006-08-09 17:18 BlueDavy

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

    # re: 基于Equinox開發系統的總結 2007-09-29 00:00 fxfx

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

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



      回復  更多評論   

    # re: 基于Equinox開發系統的總結 2007-09-29 00:03 fxfx

    還有就是版主能不能給推薦一個可供學習的基于equnnox的開源項目。  回復  更多評論   

    # re: 基于Equinox開發系統的總結 2007-09-29 09:12 BlueDavy

    @fxfx
    ...RCP本身就是基于Equinox而搭建出來的..
    至于基于Equinox的學習性質的開源項目,在我的新的Opendoc寫完后會相應的公布。
      回復  更多評論   

    # re: 基于Equinox開發系統的總結 2007-10-04 15:46 fxfx


    版主所說的“RCP本身就是基于Equinox而搭建出來的”,那么插件在基于eclipse 3.3和equinox這個兩個平臺上運行有什么區別嗎?

    另外,如果一個我自己開發的rcp程序要想實現插件的start和stop(osgi可實現)又如何操作呢?

    請版主詳細的給說說。
    謝謝  回復  更多評論   

    # re: 基于Equinox開發系統的總結 2007-10-04 19:51 BlueDavy

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

    開發的RCP程序要實現插件的start、stop非常容易,方法也是直接調用OSGi的Bundle接口的方法,如bundle.stop、bundle.start這些方法,建議你先仔細看看《OSGi實戰》Opendoc,在里面的規范解釋部分有些描述。
      回復  更多評論   

    # re: 基于Equinox開發系統的總結 2007-10-05 10:21 fxfx

    謝謝回復!

      回復  更多評論   

    公告

     









    feedsky
    抓蝦
    google reader
    鮮果

    導航

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

    統計

    隨筆分類

    隨筆檔案

    文章檔案

    Blogger's

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 最近免费中文字幕中文高清| 99无码人妻一区二区三区免费| 久久亚洲精品中文字幕无码 | 久久精品免费大片国产大片| 久久精品亚洲综合| 一个人看的www在线观看免费| 国产成人综合亚洲| 亚洲精品第五页中文字幕| 日韩精品亚洲专区在线观看| 99爱免费观看视频在线| 黄色三级三级三级免费看| 亚洲精品中文字幕无码AV| 亚洲?V无码乱码国产精品| 67pao强力打造高清免费| 国产成人精品免费大全| 亚洲国产91在线| 久久久亚洲精品国产| 四虎在线播放免费永久视频| 最近中文字幕大全中文字幕免费| 四虎影视在线看免费观看| 国产.亚洲.欧洲在线| 亚洲AV无码一区二区乱孑伦AS| 青青草国产免费久久久下载| 久久精品私人影院免费看| 成人精品综合免费视频| 久久夜色精品国产噜噜亚洲a| 亚洲av日韩av无码黑人| 亚洲日韩VA无码中文字幕| 成人免费午间影院在线观看| 99精品视频在线观看免费专区| 色多多A级毛片免费看| 亚洲午夜无码久久| 亚洲中文无码线在线观看| 亚洲高清国产AV拍精品青青草原| 四虎AV永久在线精品免费观看| 成人看的午夜免费毛片| 最近最新高清免费中文字幕| 久久福利青草精品资源站免费| 一级做a爰片性色毛片免费网站| 国产精品亚洲专区无码唯爱网| 亚洲国产成人精品久久|