3

是否有任何提供 OSGi 容器即服务的 Java PaaS 解决方案?

  • Google App Engine --> 有自己的 GAE 服务器,修改后的 Jetty
  • CloudBees --> 有自己的 RUN@Cloud 容器,它是 Tomcat 修改的
  • OpenShift --> 使用 JBoss/Wildfly
  • ???--> 使用 Karaf 或 Equinox

如果不是一个成熟的 PaaS,只是一个可集群/可扩展的 OSGi 主机。谷歌一无所获,所以我假设没有这样的事情。提前致谢!

4

5 回答 5

5

(与其他答案相反:),云中还没有 OSGi 即服务。

我目前正在撰写关于在 PaaS 上移植 OSGi 应用程序的硕士论文,因此我对 PaaS 和 OSGi 进行了自己的研究。我没有在云端找到任何基于 OSGi 的令人满意的解决方案(但我确实找到了其他解决方案;)。问题是 OSGi 非常不受欢迎,而云是出了名的流行。

正如前面提到的其他问题,OSGi 是一个 Java 库。因此,您几乎可以在支持 Java 的任何地方进行设置。但这更像是作为 PaaS 解决方案的 IaaS 解决方案(您似乎正在寻找它,因为您要求 OSGi 即服务)。您需要自行设置 OSGi 框架,并且不支持部署包。这大大降低了这个解决方案。所以不,没有针对 OSGi 的特殊云服务,尽管 Java 有很多。

但是,O'Reilly 出版了 Paul Baker 和 Bert Ertman的一本名为Modular Cloud Apps with OSGi的好书。这本书描述了他们在云中使用 OSGi 的类似 PaaS 的解决方案。基本上设置了一个 OSGi 包的存储库,它们存储了所有的东西。然后他们创建了一个云镜像,它只包含一个空的 OSGi 框架/服务器(就像 Apache Karaf,但他们出于某种原因编写了自己的工具,称为 Apache ACE……)。他们能够启动这些映像,并且在机器启动后,他们只需将包从存储库部署到实例(通过 Web 界面)。

在 youtube 上还有一段他们的演示视频:https ://www.youtube.com/watch?v=oN3jYKOQ1Tk

我认为这个策略是你能得到的最好的类似 PaaS 的解决方案。但是 - 不幸的是 - 任何开箱即用的云供应商都不支持这一点。但是你可以很容易地在(例如)亚马逊上设置它。

编辑

Cloud Foundry 还存在一个构建包,用于设置可以运行 OSGi 应用程序的 Virgo 服务器:https ://github.com/glyn/virgo-buildpack

于 2014-05-21T13:17:27.827 回答
1

有一个 OSGi 云服务的商业供应商——Paremus。他们有 2 个云产品 - Nimble 和 Service Fabric。您可能想检查一下。Nimble 产品提供有限的免费试用版。

于 2013-10-03T18:16:04.147 回答
1

看看Gyrex。它还不是一项服务,但可用于构建您自己的 OSGi PaaS 集群。它使用 Equinox、p2 进行配置和 Jetty。

http://eclipse.org/gyrex

免责声明:我是它的提交者和重度用户。

于 2013-09-16T14:11:46.257 回答
0

OSGi 基本上是一个 Java 库,可以在支持 JDK/JRE 的虚拟机上运行。但请记住,开箱即用的支持是您正在寻找的东西,您需要自定义您选择运行应用程序的 PaaS。我认为要做到这一点,您需要选择最容易配置和扩展的提供商。试试Jelastic。它是最容易完成并开始使用的。检查他们的jar uploads,我认为这足以满足您的需求。
让我知道您的想法以及此答案是否有帮助。
苏里亚

于 2013-10-01T02:22:06.857 回答
0

OSGi 几乎可以在任何提供 Java 支持的云提供商上使用,因为它本质上只是一个 Java 库。

Google App Engine 是个例外,因为他们不仅修改了 Jetty,还修改了 Java 本身并删除了创建线程和类加载器的能力,而这两者都是完整的 OSGi 支持所必需的。

于 2013-09-17T09:29:24.127 回答