2011-05-27 92 views
0

我刚刚熟悉OSGi技术 - 从来没有用过但听说过很多次。我已经阅读过几篇文章“傻瓜”,但我认为我还没有完全理解它的用例。也许你们中的一些人可以确认我是否理解正确。OSGi用例 - 我是否正确?

这是我可能想要做的一个例子。 让我们假设我想构建一个Java Web应用程序。简单的战争。但是,它以这样的方式组织,它包含不同的模块。每个模块将包含不同的功能。也许每个模块都会被打包成一个单独的jar,我不确定。

现在,我想要的是该应用程序的UI部分能够检查哪些模块也部署以显示(或不)相关的菜单,项目,页面的部分等...

那么,OSGi技术解决方案是否适用于这类问题呢?这是打算用于还是我不在赛道上?

非常感谢您的回答。

回答

1

是的,OSGi技术是针对您在问题中提到的那种问题的解决方案。

Eclipse是一种使用OSGi技术的解决方案。在Eclipse中,UI将成为Eclipse富客户机平台(RCP),而其他模块将成为Eclipse插件。每个模块将是一个独立的包,其中包含比JAR更多的组件。

您可以使用其他解决方案平台,或自己编写所有OSGi代码。 OSGi背后的想法是让您的应用程序更加模块化,以便您可以更新应用程序的各个部分而无需更新整个应用程序。

+0

好的,我知道日食是使用OSGi,我想知道是否可以与网页类似。 我是否应该将使用模块功能的页面放入该模块中,否则我将不得不将它们直接放入战争中? 如果模块不仅可以带来新的功能,而且还可以带来UI的一部分,那将会非常棒。在这种情况下,我的用户界面(它的核心)将永远是相同的 - 模块会在其上添加更多的用户界面内容。这可能吗? – ezamur 2011-05-27 13:17:10

+0

@ezamur:对于网页,您有一个Java应用程序服务器,如Glassfish或Websphere。 OSGi技术为其他类型的应用程序提供了一个应用程序或功能服务器。 – 2011-05-27 13:20:05

+0

JBoss也可以完成这项工作吗? – ezamur 2011-05-27 13:24:42

2

那么,OSGi技术解决方案是否适用于这类问题呢?这是打算用于还是我的轨道?

我会说这正是OSGi所要求的场景。

看看Eclipse RAP project,它在Equinox OSGI container之上运行,并且描述了您所描述的那种类型。

一些优秀的教程可在vogella.de

+0

感谢您的快速回复。 – ezamur 2011-05-27 13:16:29

+0

我刚刚检查了您提供的链接,看起来非常有趣。谢谢。 – ezamur 2011-05-27 13:55:45

0

Vaadin是一个基于osgi的web框架,您可以在其中完成此操作。 另外,您可以看一下OSGI and Equinox书,它应该包含足够的信息来帮助您推出自己的解决方案。

+0

谢谢你,user424935。加注正是我在经过一番调查后遇到的情况。这可能是要做的。 – ezamur 2011-05-30 07:34:28