OSGi的基本主题是什么?

kom*_*mal 8 osgi

OSGi是一个用于Java的动态模块化系统.好的,但基线主题是什么,为什么OSGi开发了?使用OSGi有什么好处?开发OSGi的主要故事是什么?它为什么存在?

Pav*_*hos 17

如果你仔细观察,Java中classpath的概念真的很糟糕.

您可以在JAR文件中分发类,但在运行时,Java会(几乎)盲目地将所有JAR文件中的所有类放入一个大包,其中具有相同名称的类相互遮盖,然后以意想不到的方式进行交互.

OSGi为Java平台带来了适当的运行时模块化,并在此基础上提供了强大的服务模型,有时称为"JVM内部的SOA".

我强烈建议您阅读一些关于OSGi的介绍性文章,这些文章将更加具体地说明这一切的含义.一个很好的起点可能是由Alex Blewitt撰写的有关Java模块化的InfoQ系列文章:


Tom*_*ire 5

OSGi

  • 用于Java的模块系统:它提供了一种导出和导入Java包并强制执行模块边界的方法,包括显式依赖项和版本信息.

  • Java系统的通用容器:可以在不停止系统的情况下动态加载和卸载bundle,其中"bundle"基本上是jar文件.

  • 面向服务的编程系统:除了通过软件包模块化系统外,OSGi还支持面向服务的模块化,包括白板模式(PDF)等.

OSGi最初是为支持机顶盒等高端嵌入式系统而开发的,它可以激发显式依赖关系和版本控制,并在用作更新的企业级容器时使其相当轻量级.