1.3. OSGi Framework

1.3.1. 概述

OSGi 联盟 是一个独立组织,负责定义 OSGi 服务平台版本 4 的特性和功能。OSGi 服务平台是一组开放规范,可简化构建、部署和管理复杂软件应用程序。

OSGi 技术通常被称为 Java 的动态模块系统。OSGi 是 Java 的框架,它使用捆绑包模块化地部署 Java 组件并处理依赖项、版本控制、类路径控制和类加载。OSGi 的生命周期管理允许您在不关闭 JVM 的情况下加载、启动和停止捆绑包。

OSGi 为 Java、卓越的类加载架构和服务的注册表提供最佳的运行时平台。捆绑包可以导出服务、运行进程以及其依赖项。每个捆绑包都可以满足其由 OSGi 容器管理的要求。

Fuse 使用 Apache Felix 作为其默认的 OSGi 实施。框架层形成安装捆绑包的容器。框架以动态、可扩展的方式管理捆绑包的安装和更新,并管理捆绑和服务之间的依赖关系。

1.3.2. OSGi 架构

OSGi 框架包含以下内容:

  • 捆绑 - 组成应用程序的逻辑模块。请参阅 第 1.5 节 “OSGi 捆绑包”
  • 服务级别 - 提供模块及其所含组件之间的通信。这个层与生命周期层紧密集成。请参阅 第 1.4 节 “OSGi 服务”
  • 生命周期阶段 - 提供对底层 OSGi 框架的访问。这个层处理单个捆绑包的生命周期,以便您可以动态管理应用程序,包括启动和停止捆绑包。
  • 模块层 - 提供 API 以管理捆绑打包、依赖项解析和类加载。
  • 执行环境 - JVM 的配置。此环境使用配置文件来定义捆绑包中可正常工作的环境。
  • 安全层 - 基于 Java 2 安全性的可选层,额外限制和增强。

框架中的每个层取决于它下面的层。例如,生命周期层需要模块层。模块层可以在无生命周期和服务层的情况下使用。