OSGi即服务是否存在?

时间:2013-09-16 10:03:41

标签: java osgi soa apache-karaf paas

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

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

如果不是一个成熟的PaaS,只是一个可集群/可扩展的OSGi主机。谷歌什么都没有,所以我假设没有这样的东西。提前谢谢!

5 个答案:

答案 0 :(得分:5)

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

我目前正在撰写关于在PaaS上移植OSGi应用程序的硕士论文,所以我自己研究了PaaS和OSGi。我没有在云中找到任何基于OSGi的令人满意的解决方案(但我确实找到了其他解决方案;)。问题在于OSGi非常不受欢迎,而且云是众所周知的时尚。

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

然而,O'Reilly出版的Paul Baker和Bert Ertman出版了一本名为 模块化云应用程序与OSGi 的好书。该书描述了他们在云中使用OSGi的类似PaaS的解决方案。基本上设置了OSGi包的存储库,它们存储了所有的东西。然后他们创建了一个云图像,它只包含一个空的OSGi框架/服务器(就像Apache Karaf一样,但他们编写了自己的工具,名为Apache ACE,原因是什么......)。他们能够启动这些映像,一旦机器启动,他们就会将捆绑包从其存储库部署到实例(通过Web界面)。

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

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

修改

还有一个用于Cloud Foundry的Build Pack来设置可以运行OSGi应用程序的Virgo服务器:https://github.com/glyn/virgo-buildpack

答案 1 :(得分:1)

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

http://eclipse.org/gyrex

免责声明:我是一名提交者,也是重度用户。

答案 2 :(得分:1)

有一个OSGi云服务的商业提供商 - Paremus。他们有2个云产品--Nimble和Service Fabric。你可能想看看它们。 Nimble产品有限免费版供试用。

答案 3 :(得分:0)

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

例外情况是谷歌应用引擎,因为他们不仅修改Jetty,他们修改Java本身并删除创建线程和类加载器的能力,这两者都是完全支持OSGi所必需的。

答案 4 :(得分:0)

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