谷歌应用引擎上的OSGI?

4
我正在评估几种技术,为谷歌应用引擎开发一个开源应用程序。我正在寻找有关在谷歌应用引擎上使用OSGI的信息。
我发现了Lemmon,但它似乎是一个已经停止维护的项目。最后一次提交是在2009年中期... :-/ 还有一个来自Eclipse博客的条目,发布于2009年4月,但这不是一个真正的成功故事。
有人在GAE应用程序中成功地使用过OSGI吗?
3个回答

7
这个问题的最大难点在于OSGi框架和GAE之间在线程管理方面不兼容。GAE会为您管理线程(和机器实例),并且会限制您如何处理自己应用程序中的线程,使其变得困难/可控。而OSGi则恰恰相反。

5

我也对此做了一些实验,另外请参见这个问题

除了各种技术问题之外,GAE和OSGi在概念上根本不匹配。OSGi维护了许多内部状态,例如哪些捆绑包已启动,并具有非常复杂的生命周期。在GAE上,您的应用程序分布在多个JVM上,而JVM随时可能被关闭。实际上,您需要为每个请求重新创建/同步整个捆绑包启动过程。


谢谢,也许谷歌有一天会提供一个OSGi风格的环境,这样人们就可以部署更细粒度的应用程序模块了。 - Patrick Cornelissen
是的,在底层使用像OSGi这样的东西来支持“较小”的模块会很好,特别是如果它有助于减少服务器启动时间,这在GAE/J上是一个真正的问题。 - Thilo

1

我在GAE上没有使用过OSGI,但是我有一个建议,你可以尝试一下——用Lemmon(或其他实现)进行快速概念验证。基本上,试试看。

据我所知,你可以免费设置一个Google App Engine网站。我会利用这个机会,尽可能快地进行概念验证。

请记住,有些开源项目不会有持续的提交。有时候,一旦一个开源项目完成了作者想要做的事情,开发就会停止,直到需要新的东西。下一次提交可能要等几个月,当原始实现者的需求改变或者代码库采用者发现问题时。


没错,我希望有人已经尝试过它,这样我就可以依赖他的经验。 - Patrick Cornelissen

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接