OSGi Service Platform 的核心部件定义了基于 Java™ 的安全且受管的服务平台。此平台支持部署可扩展且可下载的应用程序(称为捆绑软件)。 该规范定义了安全模型、应用程序生命周期管理模型、服务注册表、执行环境以及模块。
执行环境层指定在其中运行捆绑软件的 Java 环境(例如 Java EE 或 Java SE)。对于运行在 WebSphere® Application Server 中的 OSGi 应用程序,不需要指定执行环境。
模块层是 OSGi 框架用于处理捆绑软件的模块化方面的位置。用来允许 OSGi 框架处理捆绑软件的元数据在捆绑软件清单文件中进行设置。
OSGi 中的捆绑软件生命周期管理层会在运行时移除某些问题,如 Java 类装入文件以及找不到类异常,在那种情况下,因为找不到相依类,所以无法将其导入。将已安装的捆绑软件部署到框架中时,该框架先解析它的所有已声明的依赖关系。如果有未解析的依赖关系,那么框架会报告这些依赖关系并且不启动捆绑软件。
应用程序通常不需要提供捆绑软件激活器。 但是,如果在捆绑软件启动或停止时需要初始化,就可以创建捆绑软件激活器。
OSGi 中的服务注册表层从实质上支持面向服务的体系结构 (SOA)。捆绑软件将服务发布到服务注册表,其他捆绑软件可以从服务注册表发现这些服务。
这些服务是捆绑软件之间协作的主要方式。OSGi 服务是一个无格式普通 Java 对象 (POJO),发布到一个或多个 Java 接口名称下面的服务注册表,并将可选元数据作为定制属性(“名称/值”对)进行存储。发现捆绑软件会在服务注册表中按接口名称查找服务,然后可以通过使用定制属性潜在地过滤服务。
服务是完全动态的,通常与用于提供这些服务的捆绑软件具有相同的生命周期。