Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/308.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 有人发现OSGi在公司应用程序中很有用吗?_Java_Osgi - Fatal编程技术网

Java 有人发现OSGi在公司应用程序中很有用吗?

Java 有人发现OSGi在公司应用程序中很有用吗?,java,osgi,Java,Osgi,有人在OSGi中部署了公司应用程序并发现它很有用吗 我可以看到好处,强制模块化,良好的依赖定义等,但这些似乎主要是与构建相关的改进 是否有人发现动态替换现有模块很有用?我们倾向于按进程划分应用程序,老实说,用更新的库启动应用程序的新实例并不难。OSGi对此有用吗 更换模块的可靠性如何?我突然想到,如果您有一个非常繁忙的流程,并且正在进行大量工作,那么更换正在运行的模块充满了危险。我们的大多数应用程序都是web应用程序 我们有一个OSGi厚客户端,用于收集生物特征信息。照片和指纹通过指纹卡扫描,目

有人在OSGi中部署了公司应用程序并发现它很有用吗

我可以看到好处,强制模块化,良好的依赖定义等,但这些似乎主要是与构建相关的改进

是否有人发现动态替换现有模块很有用?我们倾向于按进程划分应用程序,老实说,用更新的库启动应用程序的新实例并不难。OSGi对此有用吗


更换模块的可靠性如何?我突然想到,如果您有一个非常繁忙的流程,并且正在进行大量工作,那么更换正在运行的模块充满了危险。

我们的大多数应用程序都是web应用程序

我们有一个OSGi厚客户端,用于收集生物特征信息。照片和指纹通过指纹卡扫描,目前


OSGi对我们的好处是,我们可以从中心网站更新插件,而不是使用卸载/安装过程。我们的胖客户机将遍布全美100多个地点,因此这对我们来说非常重要。

我在电信环境中工作。像OSGi这样的东西对我们非常有用。我们将应用程序部署到无法脱机而不影响收入的客户。他们每秒处理数千个电话。现在,他们必须在维护窗口中进行更新,以接受新的修复或更新

如果我们能够以热部署的方式提供修复和增强,这将是一个巨大的好处。当然,在我们进行模拟交通测试之前,还有一个风险因素和额外的测试工作

OSGi不仅仅适用于动态更新,它还适用于版本控制等方面,以确保在复杂环境中选择正确的版本

我们正在开始研究OSGi,如果我发现任何更有趣的东西,我会发布更新



我刚刚在博客上写下了原因


简而言之,我相信OSGi的基础是坚实的,但它不是为大规模应用程序开发而构建的。它在已经充满挑战的开发/部署过程中引入了摩擦。我希望看到OSGi规范的领导者更多地关注OSGi的开发人员/用户角色,使其在开发过程中不可见。另外,我对JVM仍然没有透明的模块标准感到震惊

我们正在一家大型电信公司使用它。我们已经生产了2年,我们正在继续增加捆绑包,现在我们有大约110个捆绑包

操作人员很高兴这给了他们精细的控制:他们可以开始停止单一功能并监控它们。理论上,我们也可以在生产中热部署新版本,但在现实中,我们仅在进行测试和预编译时使用该功能

我们的宽泛架构基于此架构:

我们的主要问题总是试图在osgi中使用标准java框架。第二个问题是捆绑导入/导出管理本身。我们正在使用maven插件

总而言之,我们对这个选择很满意,但是你需要考虑2件事: 1.您是否愿意与任何想要添加的java框架抗争?
2.您是否有足够的纪律性,不会扰乱您的依赖关系?

这就是我想象的那种用例。我想知道是否有人真的在其中一种情况下使用它,管理起来有多容易。你能在客户端运行时更新它吗?更重要的是,你能吗?客户端必须运行才能执行更新。更新过程是客户端的一部分。话虽如此,我们建议在更新期间不要对客户机做任何其他事情。我们的客户机是一个EclipseRCP,有些更改可以“即时”进行,有些更改则不能。对于我们的应用程序,不值得搞清楚哪些更改是哪些更改。我不知道我完全同意你所说的一切,但你还是提出了一些好的观点。(+1)