首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> J2EE

OSGi 是什麼:Java 動態模組系統核心概念與容器生態

     編輯:J2EE

51CTO 曾發布《OSGi 為什麼重要:向模組化轉移的主攻手》分析優勢,但許多人對 OSGi 實質仍模糊。本系列《你好,OSGi》從基礎介紹,本部分闡述 OSGi 定義與容器現狀(原文 2008 年 3 月發布於 JavaWorld)。

OSGi 定義與核心優勢

OSGi 即 Java 動態模組系統,為模組化應用開發定義基礎架構。多家開源容器實作:Knopflerfish、Equinox、Apache Felix。透過容器將應用拆分多模組單元,輕鬆管理交叉相依。

OSGi 規範類比 Servlet/EJB 規範,定義兩類物件:容器提供的服務物件、容器與應用間契約(服務物件由容器實作)。開發者須使用 OSGi API 建構應用並部署至容器。開發者視角三大優勢:

  1. 不重啟容器動態安裝、卸載、啟動、停止模組
  2. 容器可同時運行特定模組多個版本
  3. 為嵌入式、行動、富網際網路應用 (RIA) 提供優秀基礎架構

若 Servlet 容器開發 Web 應用、EJB 容器開發交易應用,為何仍需 OSGi 容器?簡短回答:OSGi 專為複雜 Java 應用設計,極需將應用拆分模組。後續文章將深入探討。

1. OSGi 在企業開發的應用演進

OSGi Alliance 1999 年 3 月起草規範,旨在制定開放標準向區域網路設備提供可管理服務。核心思維:網路設備(伺服器、嵌入式裝置)採用 OSGi 服務平台後,可從網路任何位置管理軟體元件生命週期,背景安裝、升級、卸載不中斷設備運作。

近年 OSGi 廣泛應用於嵌入式系統與網路設備市場。隨 Eclipse 成功,OSGi 在企業開發成為切實可行的高價值技術。

1.1 產業界支援度快速上升

  • 2003 年 Eclipse 團隊為提高工具集模組化選擇 OSGi 作為元件執行模型,2004 年 6 月 Eclipse 3.0 為首個基於 OSGi 平台版本
  • 幾乎所有企業應用伺服器支援 OSGi,Spring 透過「OSGi 服務平台 Spring 動態模組」專案支援,提供 OSGi 基礎架構簡化企業開發整合

2. 開源 OSGi 容器三大主流

企業開發者視角:OSGi 容器需求低,易嵌入企業應用。例:Web 應用拆分視圖層、DAO 層、資料存取層模組,OSGi 容器管理交叉相依,可不重啟 Web 應用將慢速 DAO 升級為快速 DAO。

應用相容 OSGi 規範即可運行於任一容器。三大主流開源容器:

  • Equinox:依 OSGi R4 實作,構成 Eclipse IDE 核心——模組化 Java 執行環境;實作規範強制功能與大部分可選功能
  • Knopflerfish:OSGi R3/R4 開源實作,涵蓋強制功能與部分可選功能
  • Apache Felix:ASF 實作開源容器,截稿時未完全相容 OSGi 規範

本系列採用 Equinox 作為 OSGi 容器。下部分將繼續介紹 OSGi 基礎知識。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved