我们正在考虑在我们的企业环境中使用分布式OSGi。
我们将有以下设置:在许多主机上分布式OSGi - 跨所有容器管理包的正确方法是什么?
- 10至100的OSGi容器提供的各种服务。
- 许多这些服务都由多个容器提供。
- 其中一些服务可能需要在所有 容器(部署相同版本)中保持一致。
跨所有容器管理包的生命周期(安装,启动,更新,停止,卸载)的正确方法是什么?
几个要求:
- 由于可能有这么多的容器,所有的人都应该被处理 在一起;即当我即将更新捆绑包时,单个命令 应更新该捆绑包已经存在的所有容器。
- 命令必须是可重复的:首先在测试系统上执行命令,然后在完成测试后在生产系统上重复完全相同的命令。
我很欣赏关于上述问题的任何建议。
最好的问候, 马顿
是否所有这些OSGi容器都构建一个大的分布式OSGi容器,其中主机X上的服务A可以在主机Y上使用服务B,就像它将在同一主机X上一样?或者它们是相互分离的,而您只有10-100个OSGi容器需要维护?它们和10-100个OSGi容器都是一样的,它们有完全相同的包,并且你想同时向所有这些OSGi容器发送命令(比如“安装”)?或者他们不同,主机X有一个OSGi容器与N捆绑和主机Y上的OSGi容器有一组不同的捆绑? – Progman 2011-12-29 14:42:45
这是一个大的分布式OSGi环境:主机X上的服务A可以使用主机Y上的服务B.每个容器可能有不同的一组软件包。谢谢! – 2011-12-29 15:35:12
我会尝试使用Apache Karaf构建这样的系统(因为它提供了简单的方法来自动执行命令并轻松管理捆绑包)。我将使用一个共享包存储来设置它,所以无论何时更新一个包,所有运行时都会将其提取出来。 Karaf被设计为支持从脚本执行命令,所以编写所需的脚本并不难,它将管理系统。但是,您不会得到分布式事务。在某些时候,会有版本不匹配,我不认为目前有解决方案。 – 2011-12-30 08:16:04