OSGI 与 Apache Felix

Posted

技术标签:

【中文标题】OSGI 与 Apache Felix【英文标题】:OSGI vs Apache Felix 【发布时间】:2018-05-14 13:28:01 【问题描述】:

我必须为学校创建一个项目。我们想创建一个监控传感器的系统。由于传感器发展非常迅速,因此它们有可能在几年内使用其他传感器。为了解决这个问题,我们想创建一个系统,让用户编写插件来监控传感器。

我正在研究不同的框架,主要是 OSGI。

谁能告诉我 Apache Felix 和 OSGI 之间的区别?另外,OSGI 还活跃吗?

谢谢!

【问题讨论】:

OSGI 是 API 规范。 Apache Felix 是 OSGI 的实现。其他实现包括KarafEclipse equinoxProsyst。如果你想开发监控传感器的应用程序,那么你应该看看Intel XDK IOT Edition with nodejs。 @11thdimension Karaf 不是 OSGi 框架实现。 你是对的,它是一个使用 Felix/Equinox 的捆绑包。它不是 OSGI 的实现。 为什么邪恶? 因为它迫使您编写强大的模块化软件并且没有作弊的选择。这对于很多习惯了一切的人来说是非常困难的——可以和依赖关系是好的,更多的依赖关系更好。 【参考方案1】:

OSGi 是一组规范,由称为OSGi Alliance 的行业联盟开发和发布。

Apache Felix 是一个实现了多个 OSGi 规范的项目。因此,尽管 OSGi 为您提供了一个规范(本质上是一个 PDF 文档!),但 Apache Felix 是您可以运行的实际软件。因为 Felix 符合 OSGi 规范,所以您编写的在 Felix 上运行的任何代码也将在任何其他 OSGi 实现上运行。其中包括 Eclipse Equinox、Knopflerfish 和 Concierge。

是的,OSGi 非常活跃,并且与您的要求特别相关。大公司(例如博世、德国电信、华为)现在正在使用它来构建物联网系统并将其运送到人们的家中、车辆等处。

您还可以查看 Eclipse Kura,它构建了 IoT 功能,例如基于 OSGi 的设备通信。

【讨论】:

以上是关于OSGI 与 Apache Felix的主要内容,如果未能解决你的问题,请参考以下文章

OSGi:Apache Felix 和 Apache Karaf 有啥区别?

osgi 与dubbo 有啥优势

OSGi 捆绑包未启动:缺少要求 osgi.wiring.package; > &(osgi.wiring.package=org.apache.felix.dm)

OSGi:无法在 Apache Karaf 中找到 UserAdmin

Apache Karaf 和 OSGI 捆绑包

无法在 Apache ServiceMix 中启动 OSGI 包