分布式OSGi - 管理所有容器中的捆绑包的正确方法是什么?

时间:2011-12-29 11:11:22

标签: java osgi distributed provisioning dosgi

我们正在考虑在我们的企业环境中使用分布式OSGi 我们将进行以下设置:

  • 许多主机上的10到100个OSGi容器提供各种服务。
  • 其中许多服务由多个容器提供。
  • 其中一些服务可能需要在所有服务中保持一致 容器(部署的版本相同)。

在所有容器中管理捆绑包生命周期(安装,启动,更新,停止,卸载)的正确方法是什么?

几个要求:

  • 由于可能有这么多容器,所有容器都应该处理 一起;即当我即将更新捆绑包时,单个命令 应该更新该捆绑已经存在的所有容器。
  • 命令必须是可重复的:首先在测试系统上执行命令,然后在测试完成后在生产系统上重复完全相同的命令。

我很欣赏有关上述问题的任何建议。

祝你好运, 马顿

4 个答案:

答案 0 :(得分:7)

您可能希望了解针对类似云的环境制作的更多“托管”解决方案:Apache ACE或更大的兄弟Amdatu

Apache ACE将单个OSGi容器转换为托管容器,其状态可以从单个管理点进行控制。 Amdatu是一个更完整的框架,包括用于配置的ACE,但增加了横向功能。

答案 1 :(得分:3)

在管理大量捆绑包方面,看看Karaf功能 - 它们大大简化了捆绑套件的处理。

对于分布式方面,请查看Karaf子项目Cellar,它使用HazelCast对Karaf进行聚类(并通过功能机制安装在Karaf中)。

答案 2 :(得分:2)

如果您认真对待企业准备 - 意味着“强大” - 分布式OSGi运行时 - 那么请查看Paremus Service Fabric。我们自2005年以来一直这样做:)

Service Fabric的配置/管理架构具有极高的可扩展性(>> 1,000个容器),响应迅速且稳定!多年的开发和商业运行时经验支撑着该产品。 Service Fabric体系结构支持多个并发的分布式OSGi应用程序。 Service Fabric的架构以OBR为中心;我们的首席工程师负责最近的OSGi Alliance OBR规范活动。

Service Fabric消息背板利用DDS消息传递协议 - IMO是分布式OSGi的天然合作伙伴。 Paremus RSA(远程服务实现)是该标准的洁净室实施 - 非常强大,重量轻,并允许协议和分发提供商的动态插拔能力。默认发现提供程序 - 再次是DDS。

最后 - 并且Service Fabric开箱即用。

答案 3 :(得分:1)

Gyrex中,我们使用p2在群集的不同节点上分发捆绑包。通过使用节点标记和LDAP过滤器表达式(OSGi中常见),可以控制应将哪些捆绑配置到哪个节点。例如,可以仅在Web节点上安装(和激活)Web捆绑包。

对分布式服务的支持是not available out-of-the box。 ECF需要手动集成。