無為

          無為則可為,無為則至深!

            BlogJava :: 首頁 :: 聯(lián)系 :: 聚合  :: 管理
            190 Posts :: 291 Stories :: 258 Comments :: 0 Trackbacks

          1、OSGi 的體系架構是基于插件式的軟件結構,包括一個 OSGi 框架和一系列插件,在 OSGi中,插件稱為 Bundle,其中,OSGi 框架規(guī)范是 OSGi 規(guī)范的核心部分,它提供了一個通用的、安全可管理的 Java 框架,通過這個框架,可以支持 Bundle 服務應用的部署和擴展。Bundle 之間可以通過 Import Package 和 Require-Bundle 來共享 Java 類,在 OSGi 服務平臺中,用戶通過開發(fā) Bundle 來提供需要的功能,這些 Bundle 可以動態(tài)加載和卸載,或者根據(jù)需要遠程下載和升級。OSGi 體系結構圖如圖 1 所示:


          圖示1 OSGi 體系結構
          圖示1 OSGi 體系結構

          其中:

          Execution Environment:

          Bundle 應用所倚賴運行的 Java 執(zhí)行環(huán)境,如 J2SE-1.4、CDC-1.0 等都是可用的執(zhí)行環(huán)境。

          Modules:

          模塊層定義了 Bundle 應用的加載策略。OSGi 框架是一個健壯并且嚴格定義的類加載模型。在大多數(shù) Java 應用中,通常只有一個單獨的 ClassPath,它包含了所有的 Java 類文件和資源文件,OSGi基于Java技術,對于每個實現(xiàn)了 BundleActivator 接口的 Bundle 應用,為它生成一個單獨的 ClassLoader,使得 Bundle 應用的組織更加模塊化。

          Life Cycle:

          生命周期層可以動態(tài)地對 Bundle 進行安裝、啟動、停止、升級和卸載等操作。該層基于模塊層,提供了一組 API 來控制 Bundle 應用的運行時操作。

          Service Registry 和 Services:

          OSGi 服務層定義了一個集成在生命周期層中的動態(tài)協(xié)作模型,是一個發(fā)布、動態(tài)尋找、綁定的服務模型。一個服務通常是一個 Java 對象實現(xiàn)了特定的服務接口,并且通過服務注冊,被綁定到 OSGi 的運行環(huán)境中。Bundle 應用可以注冊發(fā)布服務,動態(tài)綁定服務,并且在服務注冊狀態(tài)改變時,可以接受到事件消息等。

          Security:

          OSGi 的安全管理是基于 Java2 安全體系的,貫穿在 OSGi 平臺的所有層中,它能夠?qū)Σ渴鹪?OSGi 運行環(huán)境中的 Bundle 應用進行詳細的管理控制。


          2、Bundle 生命周期的狀態(tài)分析

          在一個動態(tài)擴展的 OSGi 環(huán)境中,OSGi 框架管理 Bundle 的安裝和更新,同時也管理 Bundle 和服務之間的依賴關系。一個 Bundle 可能處于以下六個狀態(tài),如圖 2 所示:


          圖示 2 Bundle 狀態(tài)圖
          圖示 2 Bundle 狀態(tài)圖

          INSTALLED:安裝完成,本地資源成功加載。

          RESOLVED:依賴關系滿足,這個狀態(tài)意味該Bundle要么已經(jīng)準備好運行,要么是被停止了。

          STARTING:Bundle正在被啟動,BundleActivator的start()方法已經(jīng)被調(diào)用但是還沒有返回。

          STOPPING:Bundle正在被停止,BundleActivator的stop()方法已經(jīng)被調(diào)用但是還沒有返回。

          ACTIVE:Bundle 被成功啟動并且在運行。

          UNINSTALLED:bundle被卸載并且無法進入其他狀態(tài)。

          Bundle接口定義了getState()方法來返回Bundle的狀態(tài)。



          凡是有該標志的文章,都是該blog博主Caoer(草兒)原創(chuàng),凡是索引、收藏
          、轉載請注明來處和原文作者。非常感謝。

          posted on 2007-08-29 09:40 草兒 閱讀(2875) 評論(2)  編輯  收藏 所屬分類: 關注OSGi

          Feedback

          # re: OSGi 體系結構及Bundle簡介 2007-08-30 12:43 JAVA面試題
          專業(yè)啊  回復  更多評論
            

          # re: OSGi 體系結構及Bundle簡介 2012-12-11 15:35 我日
          @JAVA面試題
          專業(yè)什么啊。。抄襲  回復  更多評論
            

          主站蜘蛛池模板: 扎赉特旗| 山东| 铜山县| 商都县| 平度市| 南宫市| 黎平县| 渑池县| 潼关县| 阿克苏市| 叙永县| 葫芦岛市| 鹤壁市| 连平县| 武定县| 华阴市| 兴和县| 焉耆| 宁津县| 康定县| 林州市| 文登市| 抚州市| 珠海市| 定安县| 嘉善县| 海原县| 肇庆市| 鄂尔多斯市| 通城县| 安泽县| 清苑县| 桓台县| 高雄市| 英德市| 格尔木市| 灵川县| 林周县| 藁城市| 开原市| 黄梅县|