我一直试图在不阅读整个规范的情况下更多地了解 OSGi 的更广泛的图景。与许多事情一样,对OSGi 的实际介绍可能是由从事它工作了十年的人编写的,也许不适合将自己置于对它一无所知的人的心态中 :-)
看着 Felix 的例子DictionaryService
,我真的不明白发生了什么。OSGi 是 JVM 的一个独特实例,您可以在其中加载可以相互找到的捆绑包?
显然不仅 如此,因为 StackOverflow 上的其他答案明确表明 OSGi 可以解决包含部署在不同 JVM 中的模块的分布式系统的依赖问题(加上常见问题解答一直在谈论网络)。
在后一种情况下,在一个 JVM 中运行的组件如何与单独 JVM 中的另一个组件交互?这两个组件能否像在同一个 JVM 中运行一样“使用”彼此(即通过本地方法调用),以及 OSGi 如何管理跨网络的数据编组(Serializable
例如,您是否必须使用)?
或者组件作者是否必须使用其他一些不同的机制(由 OSGi 提供或自己编写)在远程组件之间进行通信?
非常感谢任何帮助!