我是OSGI框架的新手。我正在浏览网站并阅读有关OSGI框架的内容。坦率地说,我没有理解任何事情。以下是我的疑惑
我完全糊涂了。有人能回答我吗?如果可以给出一些例子。
答案 0 :(得分:4)
答案 1 :(得分:4)
我对模块的定义是一个封装单元(即隐藏内部细节),它通过契约与其他模块通信(即一组预定义的可能交互)。 JAR文件不是模块,因为它既不显示这些属性。没有封装,所有内部实现细节都是可见的,可从外部访问。没有契约,你只需将JAR文件放在类路径上,并希望它提供你想要的功能。
动态意味着可以在运行时中安装,升级或卸载 OSGi捆绑包(模块)。这对于升级正在运行的系统或在大型网络中有效部署软件非常有用。
必须安装软件包,因为在使用软件之前必须始终安装软件。还必须安装JAR文件!只有安装方式略有不同,即JAR文件被添加到类路径中,而捆绑包是使用install
命令安装的(这也可以是脚本或从API调用)。 OSGi使我们能够更好地控制这一过程。
答案 2 :(得分:3)
我试图在OSGi博客中回答你的第一个问题:http://blog.osgi.org/2013/08/dear-prudence-cant-we-achieve.html
下周,将回答下一个。
答案 3 :(得分:2)
除了Bundles作为真正模块的方面,已经在所有其他答案中处理过,还有一些其他功能使OSGi非常强大:
答案 4 :(得分:1)
阅读有关OSGi规范的实现可能是有利的。
如果你使用过Eclipse,那么你已经体验过OSGi的一些优点,甚至可能都不知道它。
以下是对Equinox的基本知识的精彩描述。