何时应该使用像OSGI这样的平台,何时必须避免使用?

15

我的问题很简单:什么样的应用程序特性会促使开发人员利用类似OSGI系统的工具?在哪些情况下,这样的工具是不必要的?

3个回答

9
我刚刚在另一个问题中发布了以下链接(OSGi解决了什么问题),但我认为它在这里更适合。Hal Hildebrand撰写了一篇关于为什么以及何时他认为OSGi有助于您的开发/产品的博客。
(相当长的)文章的核心要点是,在处理长时间运行、复杂的企业项目时,它特别有帮助。特别是在长期运行中,强制结构的好处将得到回报,但请自行阅读
编辑:修复了破损的链接。

“read for yourselves”链接已经失效。Wayback机器人备份链接:http://web.archive.org/web/20120720010714/http://www.tensegrity.hellblazer.com/2009/10/all-we-need-to-do-is-take-these-lies-and-make-them-true-somehow.html - Gilead

3

如果你想要以下一些功能,可以使用OSGI:

  • 非常模块化的代码结构(极端情况:每个安装都有不同的模块/插件集)
  • 启动/停止/升级模块而不会停止应用程序的其余部分

2
如果你偶然在Java中编写一个Web浏览器,你会使用OSGI吗? - Bubba88
作为一名技术人员,通常会给我规定限制,我在工作中并不选择它们。如果我是出于兴趣写这个的话,我可以自己选择;那么我会根据“我想学习OSGI吗?”来做决定。所以我的答案是,因为OSGI是一项非常有前途的技术,已经得到了广泛的应用。 - KLE
3
@Bubba88 - 是的,OSGi非常适合Web浏览器!浏览器需要一个可扩展的架构,支持第三方在以后贡献的插件;这正是OSGi所提供的。 - Neil Bartlett

1

OSGi是在2000年代初设计的,旨在支持嵌入式设备的使用案例。使用OSGi,您可以在Java程序中交换捆绑包(清单JAR文件),而无需重新启动Java进程。这个简单的功能增加了很多灵活性和复杂性。

现在看来,特别是在企业和云原生世界中,OSGi已经失去了它的相关性。


希望您知道,您回答了一个13年前的问题,并给出了15年前可能会给出的答案。在运行时交换捆绑包可能是OSGi最初设计的动机,但其主要价值在于强制实施应用程序的模块化设计,并为组件版本定义提供了良好的支持。 - Michael Lipp

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接