OSGi 入门指南:架构、服务与实践
1. OSGi 简介
OSGi(Open Services Gateway Initiative)的捆绑架构为应用程序带来诸多好处,例如导入和导出包机制为类共享奠定了基础。除了这些,OSGi 服务也能集成到捆绑包中。下面我们来深入了解 OSGi 框架的各个层面。
1.1 OSGi 框架层次
OSGi 框架由多个层次组成,多数层次拥有全面的 API,可通过 Java 类为每个捆绑包指定所需的服务行为,这些 Java 类通过相应的清单文件与捆绑包关联。以下是 OSGi 框架的主要层次:
1. 安全层 :基于 Java 2 安全架构,定义了捆绑包的数字签名方式以及在框架内实施安全检查的方法。由于 OSGi 安全基于 Java 2 安全模型,因此没有专门的 OSGi 安全服务 API,而是依赖原有的 Java 安全 API 为捆绑包提供安全功能。实际的安全检查与生命周期层的 OSGi 服务 API 集成。
2. 模块层 :和安全层一样,模块层没有特定的服务 API,主要定义框架自身所需的模块化特性,包括捆绑包的结构、应支持的清单值以及类加载架构的工作方式。
3. 生命周期层 :定义并管理 OSGi 捆绑包在任何时候可能处于的各种状态,如活动状态、已卸载状态、已安装状态、已解析状态、启动状态和停止状态。捆绑包状态的转换可能由用户在管理控制台输入更改,或框架根据依赖捆绑包的其他操作动态执行。每个状态转换都与一个事件相关联,对应一个 API 监听器方法,可用于在事件发生时调用其他服务。此外,每个捆绑包在启动时会