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

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

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

    Plugin Architecture簡述

    概述
    Plugin Architecture,無疑是如今軟件界最為熱門的名詞,在各種各樣的解決方案、白皮書中經常都能

    看到即插即用這么幾個字,但真的又有多少軟件做到了呢,當然,不可否認的是也有部分的軟件確實做到

    了,而且做的很好,例如Eclipse,知名的插件式系統,還有象maven這些都是,其實portlet container

    那些也都是的,列舉出來還真的有不少。插件式系統帶來的好處很明顯,最大程度的重用,為快速的搭建

    系統提供幫助,潛在的好處在于要求系統以插件式的方式進行設計,幫助你更好的做到模塊化的劃分以及

    幫助系統達到良好的封裝性。

    需求
    要做Plugin Architecture,首先需要做的是如何考慮Plugin,其實也就是需求,要看你是怎么看待一個

    Plugin的,認為一個Plugin應該是怎么樣的,認為Plugin是怎么樣被組裝起來構成系統的,這個時候需要

    的是大家從需求的角度來提出要求,不要從技術角度來提。一個系統既然是按照Plugin的方式搭建出來,

    那么首先需要知道的是就是Plugin能提供什么樣的功能,這些功能需要什么參數,這是最基本的,其次是

    如何去管理這個Plugin,包括修改它的配置參數,對它的生命周期進行管理(啟動/暫停/停止等),這是以

    單獨的Plugin角度來看,如果這個Plugin又得調用其他Plugin提供的功能,那么應該怎么去做,考慮了這

    些后又會想到Plugin應該怎么去部署、怎么去自動升級。從擴展方面我們又會考慮到那么我要如何去擴展

    一個Plugin呢,這也是很關鍵的。這都只是簡簡單單的提了一些Plugin的需求,歸納上面的需求可以得出

    主要的幾點就是Plugin的功能的暴露、Plugin的管理、Plugin的調用、Plugin之間的協作、Plugin的部署

    、Plugin的擴展這幾個大的方面。

    技術簡介
    現有的可參考的Plugin Architecture還是有比較多的,例如Eclipse、Geronimo、Maven、Pluto等等,這

    些都是做的比較好的插件式的系統,在這里主要講講Eclipse如今使用的Osgi和Geronimo所使用的JMX+IoC

    方式實現的Plugin Architecture,應該說兩者各有千秋,重點還是看對于Plugin的需求到底是怎么樣的

    ,Osgi規范將系統按照Bundle的方法進行組裝,每個Bundle下包含了一系列的Service,通過編寫Bundle

    完成對于Bundle的管理(Start、Stop),而Service則為Bundle所能提供對外的功能,通過MANIFEST.MF這

    個標準的jar包描述文件來描述bundle所能提供的功能以及一些元數據信息,由于對Osgi研究不深,也只

    能大概的提提這些了,Eclipse在3.0以后的版本開始采用Osgi,并兼容其原有的Plugin方式,可以通過閱

    讀Eclipse源碼去了解關于基于Osgi來實現Plugin Architecture的方式,Eclipse是基本實現了上述需求

    部分的,不過個人認為在plugin的管理、plugin之間的協作、plugin的部署上還可以加強;接下來提提

    JMX+IoC方式,對JMX稍有了解的人都知道JMX被大量的應用服務器所使用,如Jboss、Tomcat、Weblogic、

    WebSphere等等,數不勝數,JMX強調的是一個管理概念,對JMX不在此詳細的介紹,但其實它同樣是一個

    Plugin的概念,依照JMX系統可以編寫MBean的方式來暴露Plugin的功能,并實現對于Plugin的管理(各種

    方式,http、rmi等等)、Plugin的調用、Plugin的部署,那么為什么要引入IoC呢,IoC幫助實現Plugin之

    間的協作,并且是通過注入的方式來實現,IoC也不在這里詳細的去描述了。

    總結
    通過對上面兩種實現Plugin Architecture的簡介,分別都實現了需求中的內容,但都有提升的余地,個

    人認為Osgi的方式需提升對于Plugin管理的關注(不僅是生命周期管理)、而JMX+IoC方式則需提高對于

    Plugin內部結構的關注(就象Osgi將Plugin分解為了Bundle和Service),至于Plugin的擴展方面覺得

    Eclipse的Extension Point是非常不錯的一個設計,不過同時也看出在Plugin Architecture的實現上基

    本都采用了管理和靜態結構分離的方法,其實這個好處是非常明顯的,可以快速的將系統原有的模塊通過

    編寫一個管理類的方法就可作為plugin放入系統中,這提升了簡便性,當然最大的作用還是分清了職責,

    說一句題外話,職責單一一直是軟件設計的重中之重,此文純屬拋磚引玉,希望能聽到更多關于Plugin

    Architecture的聲音,也希望大家都關注Plugin Architecture,最近也出了一個JPF,不知道大家是否有

    所了解。

    posted on 2005-06-30 11:02 BlueDavy 閱讀(3222) 評論(6)  編輯  收藏 所屬分類: Plugin Architecture

    評論

    # re: Plugin Architecture簡述 2005-06-30 11:11 地獄男爵

    頂, 不知道能否在詳細講講.  回復  更多評論   

    # re: Plugin Architecture簡述 2005-06-30 11:29 emu

    還是講講具體的實現吧。這樣一通理論說的我似懂非懂的。  回復  更多評論   

    # re: Plugin Architecture簡述 2005-07-13 16:04 airlink

    google過來的。:)
    概括得很好,受益匪淺,多謝。


      回復  更多評論   

    # re: Plugin Architecture簡述 2005-08-23 10:52 煩人

    <<Notes on the Eclipse Plug-in Architecture>>很不錯。
    網上可以檢索到。值得一讀。

    另外,像簡述這樣的東抄西抄組合出來得破文章就不要發了。多談談自己的理解,

    哪怕是錯的,也比這樣的破文章好。

    學習+錯誤+討論--〉進步  回復  更多評論   

    # re: Plugin Architecture簡述 2005-08-23 15:21 Programmer's Life

    請問這篇文章哪里是東抄西抄出來的?
    有什么見解請直接說,不要說這些沒用的廢話  回復  更多評論   

    # re: Plugin Architecture簡述 2006-06-12 11:23 綠色使者、綠色心情

    總結的挺好的啊,學習中  回復  更多評論   

    公告

     









    feedsky
    抓蝦
    google reader
    鮮果

    導航

    <2006年6月>
    28293031123
    45678910
    11121314151617
    18192021222324
    2526272829301
    2345678

    統計

    隨筆分類

    隨筆檔案

    文章檔案

    Blogger's

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 日韩免费a级在线观看| 免费观看成人久久网免费观看| 久久久久高潮毛片免费全部播放| 精品亚洲一区二区三区在线播放| 亚洲AV日韩AV永久无码色欲| 毛片高清视频在线看免费观看| 亚洲一级毛片免费观看| h视频在线观看免费完整版| 亚洲色av性色在线观无码| 免费看h片的网站| 亚洲一卡2卡3卡4卡乱码 在线 | 国产中文字幕在线免费观看| 国产成人精品久久亚洲高清不卡 | 黄色a级片免费看| 国产成人精品久久亚洲| 黄网站免费在线观看| 亚洲午夜精品久久久久久人妖| 最近免费中文字幕大全免费| 亚洲国产一区在线观看| 成人毛片免费在线观看| 美女啪啪网站又黄又免费| 精品国产亚洲男女在线线电影| 大地影院MV在线观看视频免费| 久久亚洲精品无码VA大香大香| 91情侣在线精品国产免费| 亚洲.国产.欧美一区二区三区| 亚洲视频在线免费| 最近2019中文字幕免费大全5| 亚洲熟妇丰满xxxxx| 久久久久亚洲?V成人无码| 久久国产色AV免费观看| 亚洲欧美黑人猛交群| 亚洲AV永久无码精品一区二区国产| 一级毛片免费不卡| 亚洲第一页在线视频| 在线观看免费精品国产| 伊人免费在线观看高清版| 亚洲人成电影在线观看青青| 免费人妻无码不卡中文字幕18禁| 永久免费不卡在线观看黄网站| 亚洲永久在线观看|