gpt4 book ai didi

osgi - OSGi 如何管理在不同 JVM 中运行的组件的交互?

转载 作者:行者123 更新时间:2023-12-03 23:31:27 25 4
gpt4 key购买 nike

我一直试图在不阅读整个规范的情况下更多地了解 OSGi 的更广泛的图景。与许多事情一样,introduction对于 OSGi 的实际情况,可能是由从事它工作了十年的人编写的,也许不适合将自己置于对它一无所知的人的心态中 :-)

查看 Felix 的示例 DictionaryService ,我真的不明白发生了什么。 OSGi 是 JVM 的一个独特实例,您可以在其中加载可以相互找到的捆绑包?

显然是不是 只是因为 StackOverflow 上的其他答案明确表明 OSGi 可以解决包含部署在不同 JVM 中的模块的分布式系统的依赖性问题(加上常见问题解答一直在谈论网络)。

在后一种情况下,在一个 JVM 中运行的组件如何与单独 JVM 中的另一个组件交互?这两个组件是否可以像在同一个 JVM 中运行一样“使用”彼此(即通过本地方法调用),以及 OSGi 如何管理跨网络的数据编码(例如,您是否必须使用 Serializable) ?

或者组件作者是否必须使用其他不同的机制(由 OSGi 提供或自己编写)在远程组件之间进行通信?

非常感谢任何帮助!

最佳答案

是的,OSGi 只处理在同一个虚拟机上运行的包和服务。然而,应该注意的是,OSGi 的一个显着特点是它促进了在同一个 JVM 上运行多个应用程序(以受控方式并共享公共(public)模块)。

在访问客户端 JVM 之外的服务时,目前还没有标准化的解决方案。 Paremus Infiniflow 和衍生的开源项目 Newton 使用 SCA 方法。即将发布的 4.2 版 OSGi 规范将解决问题的一方面,即如何使用通用分发软件,以便将远程服务带入客户端的 JVM。

正如有人提到 R-OSGi,这种方法还处理了问题的另一面,即如何管理分布式 OSGi 框架之间的依赖关系。由于 R-OSGi 不是通用分发软件,而是明确处理 OSGi 包的生命周期问题和依赖关系管理。

关于osgi - OSGi 如何管理在不同 JVM 中运行的组件的交互?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/375725/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com