我是 osgi 的新手,想知道是否有可能有一个集中的机制来更新、安装或删除包。
2 回答
是的。您可以以编程方式执行此操作,这意味着有大量捆绑软件可以为您提供开箱即用的解决方案。它非常简单(而且非常有趣),以至于对于许多人来说,他们的第一个捆绑软件之一就是一个小的“管理代理”(正如 OSGi 规范所称的那样)。
最简单的解决方案是Apache File Install。它跟踪一个目录并从那里安装/卸载。将它与 Google Drive 或 Dropbox 结合起来,您就拥有了一个大规模的全自动部署模型(它还处理配置,这非常重要)。
OSGi 规范现在有一个 OSGi Bundle Repository (OBR) 规范。这是一个非常强大的模型来描述允许管理代理计算/利用依赖关系的依赖关系(不仅仅是捆绑包)。这在 Felix 上得到了开箱即用的支持。
有无数管理 OSGi 框架的解决方案。Paremus、IBM Tivoli、ProSyst 和许多其他公司提供商业支持。并通过 Apache ACE 和 fusebundles 开源。
有两种通用方法可以做到这一点:让您的应用程序从托管捆绑包的存储库中“拉”捆绑包并自行更新,或者让外部供应应用程序“推送”捆绑包到您的应用程序。
对于拉式解决方案,我会说有:
- Eclipse P2 由 Eclipse 的更新管理器使用。成熟、稳定,但可能有点难以进入,我也不确定 P2 是否可以与 Eclipse Equinox 以外的其他 OSGi 运行时一起使用
- Apache Bundle Repository (OBR) 更简单一些,它在 OSGi 规范中。
对于推送解决方案,我想说看看 Apache Ace,从您的问题来看,我认为这最接近您想要做的事情。