譯自《OSGi R4規范》

          Eclipse從3.0版本開始采用基于OSGi的插件體系結構。

          ××××××××××××××××××××××××
          先簡要介紹下OSGi框架

          OSGi框架是OSGi服務平臺規范的核心部分。該框架提供了一個大眾化,安全,可管理的平臺,可以支持可擴展可下載應用插件的部署,我們稱這些應用插件為Bundle。

          與OSGi兼容的設備可以下載和安裝OSGi bundles,在不需要的時候還可以在運行時卸載它們。OSGi框架使用一種動態的,可協調的方式管理OSGi環境中bundles的安裝和更新,為了完成這個任務,框架會管理bundles、services的依賴細節。

          框架使得Bundle的開發者能夠充分利用java平臺的跨平臺性和動態加載能力,這樣,開發部署到大規模的嵌入式設備的服務將更加容易。

          OSGi框架的功能模塊主要劃分為以下幾個層面:
          * 安全管理層面
          * 模塊層面
          * 生命周期層面
          * 服務層面
          * 部署的服務

          安全管理層面基于Java 2的安全機制,但另外添加了一些安全方面的限制,還擴充了Java安全方面的一些管理機制。

          模塊層面定義了一個基于Java的模塊化模型,它更正了Java部署模型的一些缺陷,它在bundles之間的共享包(package)和隱藏包方面定義了嚴格的規則。模塊層面可以在沒有生命周期層面和服務層面的情況下使用,生命周期層面提供了一個管理模塊層面中bundles的類庫,而服務層面則提供一個bundles之間交互的模型。

          生命周期層面提供了一個管理bundles生命周期的API。這個API定義了bundles的運行時模型,它定義了bundles是如何啟動,停止,安裝,更新和卸載的。而且它還提供了一個事件API,使得一個行使管理功能的Bundle能夠控制服務層面的行為。生命周期層面依賴于模塊層面,它不依賴于安全層面。

          服務層面為Java Bundle開發者提供了動態,準確和一致的編程模型,通過解耦服務規范及其實現來簡化服務Bundle的開發和部署。這個模型允許Bundle開發者只綁定到接口規范。如果要為了特定需要進行優化,或選擇不同的廠商定制,就可以在運行時選擇相應的實現來替換。

          一致的編程模型使得開發者可以協調各個方面的實現問題 -- 這是很重要的,因為框架有可能要運行在不同的設備平臺上,這些平臺有著不同的硬件特性,這會影響到實現的諸多方面。但一致的接口可以保證各個組件能夠重新被組裝起來,構建出穩固的系統。

          OSGi框架中,bundles可以在運行時通過服務注冊表選擇可用的實現。Bundles可以注冊新的服務,接受服務的狀態信息,查找已存在的服務來適應設備的當前能力。框架的這些機制使得已經部署的bundles能夠繼續更新和擴展:新的bundles可以被添加以擴充功能,運行中的bundles也可以在不重啟系統的情況下被修改和更新。




          版權所有 羅明
          posted on 2007-06-29 14:18 羅明 閱讀(2197) 評論(29)  編輯  收藏 所屬分類: JavaEclipseStudy
          Comments
           
          主站蜘蛛池模板: 巴林右旗| 湖北省| 南充市| 星子县| 济南市| 巴中市| 锡林郭勒盟| 德令哈市| 邵东县| 安平县| 海城市| 平遥县| 临海市| 万载县| 秭归县| 长寿区| 惠来县| 凌云县| 普宁市| 常德市| 绵阳市| 扶沟县| 奈曼旗| 滦平县| 西安市| 台山市| 阳春市| 界首市| 岗巴县| 建阳市| 陆良县| 延寿县| 灵川县| 榆林市| 广平县| 甘南县| 宜章县| 大关县| 论坛| 舟山市| 内黄县|