基于Eclipse Equinox的插件框架:TPF

          這篇blog是繼之前的一篇提升C/S結構軟件的管理性的延續,在這篇blog中會更加的實際的去介紹基于Eclipse Equinox實現的一個插件框架,而不再是象上篇中那樣的提及的想法而已了,通過這篇blog來展現目前一個這樣的插件框架的實際應用的情況,為了更加形象的表達,在文中會貼出一些目前這個系統的截圖。
          這個框架的簡稱為TPF,是目前我所做的產品的底層框架,TPF本身構建于Eclipse Equinox之上,Equinox做為OSGI R4的RI,提供了OSGI R4的全部實現,而且同時它還結合了Eclipse IDE做為插件平臺的優勢之處,所以是一個非常優秀的插件框架,但相對需要強大管理性的應用系統來說,基于Equinox還是缺少了一些做為基于微核的系統的管理性,TPF就是為了滿足這個而實現的,TPF主要的目標就是:
          1、形成以TPF為微核的系統
          ????? Equinox其實也是一個具備微核特征的插件框架,在Equinox中只需要System Bundle是正常運行的,那么就可以通過它來完成基于它之上的所有插件的管理,但對于系統級別而言,更多時候需要的是一種基于系統級別的控制,也就是統一控制基于Equinox的插件,統一的進行重啟、停止和啟動這樣的管理,而同時由于Equinox僅僅提供了console方式的管理,這對于用戶來說通常會有點麻煩,所以在TPF中提供的是web形式的管理。
          ??????在一個擁有TPF的系統的圖示通常是這樣(寫基于TPF不太正確,因為其他的Bundle并不需要依賴于TPF):
          ??????tpfapp.jpg
          ????? 對于基于Equinox的系統而言,只需要安裝上TPF的Bundle,便可擁有TPF提供的方便了:
          ????? 通過TPF可更加方便的對插件進行安裝、管理(停止、更新、啟動);
          ????? index.JPG
          ????? 可以對插件的元信息(MANIFEST.MF)以及插件外帶的一些配置文件的信息進行直接的修改,同時更是提供了更為方便的設置插件啟動順序的方法以及更加形象標明插件作用的插件名的設置的功能;
          ????? info.jpg
          ????? 微核系統的特征,可統一啟動或停止系統中的插件,方便了對于用戶而言的管理功能。
          ??????appman.jpg
          ????? 從這些特性上可以看出,在Equinox中安裝了TPF的幾個Bundle后,就可以更加方便的對插件進行管理了,同時也可以形象的感覺到微核系統的特征,即不論系統處于啟動還是停止狀態,只要微核運行是正常的,那么系統就可以通過微核來進行管理、擴充功能以及修改功能的,而微核通常來講都是非常穩定的,在擁有這樣特征的系統中,形象的說就是可以在項目開始的第一天在客戶處部署一個系統,從此以后無論是更新版本還是如何,系統都是永遠保持在運行狀態的。
          2、增強的管理特性
          ??????在TPF中除了上面所說的一些插件管理功能的提升之外,最重要的就是增加了對遠程同樣基于TPF系統的監控,在TPF中可以監控遠程TPF系統的運行狀態,同時還可對遠程的TPF系統進行啟動、停止的管理動作。
          ????? remoteman.jpg
          TPF由三個Bundle共同構成,基于tpf.core可以實現其他方式的管理端,如client UI方式的管理端,JMX管理端等;tpf.webshell這個Bundle則提供了目前看到的web管理的方式,如不需要web管理則直接不安裝這個bundle就可以了或停止這個bundle(在需要的時候啟動就可以了);tpf.api提供了管理遠程TPF的接口,如不需要遠程管理,也可不安裝這個bundle或停止這個bundle。

          為了能更加清楚的說明TPF帶來的影響,畫了張簡單的時序圖:
          tpfstart.JPG
          這張圖表達出了在安裝上TPF Bundles后,其他App Bundles的生命周期包括啟動順序等是由TPF Bundles來控制,而不再是通過Equinox直接控制了,此時TPF Bundles和Equinox共同構成了系統的微核。

          posted on 2006-08-18 21:24 BlueDavy 閱讀(6743) 評論(10)  編輯  收藏 所屬分類: Plugin Architecture

          評論

          # re: 基于Eclipse Equinox的插件框架:TPF 2006-08-18 21:43 robbie

          正如你所講的,“寫基于TPF不太正確,因為其他的Bundle并不需要依賴于TPF”,你的TPF提供了一個管理界面,類似于osgi console但強于這種命令終端也更加方便,功能更為強大,但從架構上,正如osgi bundle 也如eclipse plugin ,TPF與其它的bundle是并行在一個平面上的,而沒有誰是誰的基礎條件的問題,因為其它的bundle并沒有依賴TPF,也沒有必須知道TPF的存在。所以你上面的圖就有點問題了,TPF不是作為infrastructure存在的,我覺得從概念上講 osgi web console更為合適。:)當然前提是我的理解沒有錯的話。不知道TPF是否以OS的方式發布?非常關注,因為作過一段時候的基于eclipse 的IDE開發,當時eclipse 并沒有完全轉向osgi,隨時的3.0的release,osgi便吸引了eclipse社區相當的關注。這是一個能使軟件真正能有機會實現組件化開發的機會  回復  更多評論   

          # re: 基于Eclipse Equinox的插件框架:TPF 2006-08-19 11:27 leowu

          我感覺那個框架圖也不是太貼切,其實TPF在層次上也是一個bundle而已,并不屬于基礎性的東西,整體圖示來看的話,核心還應該是osgi,tpf放在左側或者右側可能更合適一些。

          題外話:此外,對于遠程管理,可能很多時候還要考慮防火墻的限制,那么tpf作為大型應用的客戶端架構的話(例如服務器管理客戶端不同功能模塊),這種遠程控制就要做一些調整了。  回復  更多評論   

          # re: 基于Eclipse Equinox的插件框架:TPF 2006-08-19 16:36 BlueDavy

          @robbie
          感謝你的答復,你說的沒錯,由于我的一時偷懶,所以只是加了一行文字避免大家對圖的誤解,準確的來說TPF并不僅僅是OSGI Web console,就像我文中所說的Web console只是TPF提供的一個更加方便的管理方式可以,但如果覺得沒必要的話,仍然可以不安裝,TPF.core提供的API足以讓你完成其他形式的管理端,TPF將以OS的方式發布。

          @leowu
          圖的問題確實是由于我的一時偷懶表達的不夠準確,但其實在安裝了TPF后所有的插件不是通過System Bundle去安裝和啟動,而是通過TPF去安裝和啟動的。
          對于遠程管理方面的話,穿越防火墻仍然是http較為方便,而目前tpf采取的也是http的方式。  回復  更多評論   

          # re: 基于Eclipse Equinox的插件框架:TPF 2006-08-19 17:28 BlueDavy

          感謝robbie和leowu指出的錯誤,為了避免圖給大家造成的誤解,重新畫了圖,并增加了一個簡單的時序圖來說明下在安裝TPF后對Equinox產生的影響。  回復  更多評論   

          # re: 基于Eclipse Equinox的插件框架:TPF 2006-08-24 22:06 guangqing

          我的理解是這樣,TPF是一個web化的增強的Equinox的console,同時提供了對對于console的遠程管理。那么我想問,console中管理的是不是都是在同一個JVM中運行的bundle,遠程節點之間的bundle又可不可以交互呢?
          我對OSGi了解不多,總感覺它講的都是在同一個JVM的情況(也許是由于它的原始需求決定的),我不知道它可不可以解決遠程服務相互交互的情況,解決這個問題好像并不是一件難事?  回復  更多評論   

          # re: 基于Eclipse Equinox的插件框架:TPF 2006-08-25 11:31 BlueDavy

          遠程服務交互的話需要引入WebService,OSGI規范中目前只有硬件方面的遠程互通的協議。  回復  更多評論   

          # re: 基于Eclipse Equinox的插件框架:TPF 2007-09-07 16:09 huangmy

          BlueDavy 。不知道你能不能把TPF開源,謝謝  回復  更多評論   

          # re: 基于Eclipse Equinox的插件框架:TPF 2007-09-08 23:48 BlueDavy

          @huangmy
          TPF在今年年內一定會開源的,目前在做一些準備工作,最快的話可以在十月份完成開源的工作,多謝你的關注!
            回復  更多評論   

          # re: 基于Eclipse Equinox的插件框架:TPF 2009-05-13 09:29 瘋狂的奶瓶

          這張圖表達出了在安裝上TPF Bundles后,其他App Bundles的生命周期包括啟動順序等是由TPF Bundles來控制,而不再是通過Equinox直接控制了,此時TPF Bundles和Equinox共同構成了系統的微核。


          這么說,當TPF啟動后,equinox就退休了,此時不就是"基于"TPF了嗎?  回復  更多評論   

          # re: 基于Eclipse Equinox的插件框架:TPF 2009-12-14 13:17 sjrfox

          請問能給一個下載的有效連接嗎??謝謝  回復  更多評論   

          公告

           









          feedsky
          抓蝦
          google reader
          鮮果

          導航

          <2006年8月>
          303112345
          6789101112
          13141516171819
          20212223242526
          272829303112
          3456789

          統計

          隨筆分類

          隨筆檔案

          文章檔案

          Blogger's

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 祁连县| 南江县| 延边| 舒城县| 刚察县| 顺昌县| 河池市| 临猗县| 连云港市| 汉中市| 夏河县| 西乡县| 江安县| 汉寿县| 开平市| 宁波市| 鸡东县| 手游| 武川县| 两当县| 渝北区| 宁化县| 赤峰市| 祁连县| 双峰县| 灵寿县| 江津市| 满洲里市| 绥德县| 桦甸市| 汨罗市| 托里县| 伊春市| 舞钢市| 陆川县| 从江县| 大厂| 辛集市| 琼中| 天祝| 屏东市|