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 的实现。其他实现包括Karaf
、Eclipse equinox
、Prosyst
。如果你想开发监控传感器的应用程序,那么你应该看看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 捆绑包未启动:缺少要求 osgi.wiring.package; > &(osgi.wiring.package=org.apache.felix.dm)