返回

OSGi介紹

OSGi(Open Services Gateway initiative)規範定義出Java動態化模組的標準,已符合大型分散式系統與嵌入式系統使用, 有效的減少了系統的複雜度。

OSGi框架中的概念分為幾個結構

  • Application / Bundles : 一般Jar檔
  • Services : 透過Java Interfaces (POJIs) 或Java Objects(POJOs).兩種介面來整合各模組
  • Service Registry : 管理個服務介面
  • Lifecycle : 管理bundle的生命週期
  • Modules : 定義模組的依賴性
  • Sercurity : 定義個模組預設的安全性

OSGi優點

OSGi框架中每一個應用程式都是支援熱部屬方式,因此對單一應用程式修改時並不會影響到伺服器上的其他應用程式,部署時也不需要重啟伺服器,可減少部署應用程式所花費的整體時間。由於OGSi核心由數個jar組成,且因系統本身可分可合的特性不會因為部分應用程式發生錯誤而導致整體系統崩潰,若發生問題只會相關應用程式無法運作,可有效減少系統崩潰的風險。

OSGi缺點

第三方jar檔案引入複雜,需要另行操作引入。常用的方向為將jar作為bundle入OSGi儲存庫中再進行引入。由於OSGi框架本身與現有的框架具有許多差異,彼此之間的兼容性較低,如果加上Hibernate則會使OSGI動態載入的特性無法正常運行。

Liferay 7對OSGi支援

Liferay 7起對OSGi架構提供完全支援,Modules開發部署亦依循指定的模式程序,享受更高彈性的模組化平台。