OSGi 架构分层
- 模块层 (Module Layer)
- 生命周期层 (Lifecycle Layer)
- 服务层 (Service Layer)
模块层
关注于代码包和重用代码
- 模块在 OSGi 中被称为 bundle
- 模块包含: 元数据、类文件和资源文件
- 模块向外部申明可见包 (exported packages) 和依赖包 (imported packages)
- 模块解析: 进行导入、导出包的一致性检查
生命周期控制层
关注于模块在运行期的安装、更新、初始化、销毁等过程管理
- 通过 (install, update, start, stop, and uninstall) 操作动态管理运行期模块
- 让模块之间,模块与运行期上下文之间建立交互体系
服务层
关注于模块之间的交互协作
- 实现面向服务架构理论
- 服务提供
- 服务请求
- 服务注册
- 以 Java interfaces 连接服务提供者和服务请求者
- 由于动态模块和动态服务可以让服务在任何时间出现和消失
我们的体验
- 通过模块化划分问题单元,将要解决的问题分而治之
- 通过生命周期管理层和服务层将模块进行装配连接,从而将模块转换为运行期组件完成服务提供、注册和请求。完全可以避免以前软件编程模式下那种由于软件整体过大带来的破碎问题。赋予模块、系统、应用灵活的伸缩性和扩展性