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 安全性的可选层,额外限制和增强。
框架中的每个层取决于它下面的层。例如,生命周期层需要模块层。模块层可以在无生命周期和服务层的情况下使用。