使用OSGI拆分应用程序层是一种好方法吗?

时间:2012-06-21 11:36:28

标签: web-applications osgi layer

我有一个包含不同图层的Web应用程序(即ui-> services-> core)。如果我必须更新其中一个层,我必须重新启动整个应用程序。所以我决定使用OSGI来分离这些层。然后我可以在不重新启动的情况下更新每一层。

这是一个好主意还是osgi不是正确的方法?

2 个答案:

答案 0 :(得分:4)

嗯,我不能说它是 方法,但OSGi肯定是一个很好的方法。正如kctang在答案中指出的那样,它有着相当陡峭的学习曲线。然而,它最终付出了代价。您严格的模块化方法允许您实现与其他框架无法实现的关注点分离。

参考您的具体案例,我最近阅读了OSGi in Depth中的一章,其中他们指出了OSGi中的层分离,特别关注云部署。总而言之,远程服务规范将帮助您将层分布到多台计算机上,这可以为企业应用程序节省大量时间。 另一本有趣的书是Enterprise OSGi in Action,但目前只能通过Manning Early Access Program获得。

如果我必须批评,框架实现者的JMX支持仍然缺失。并不是说您无法以其他方式管理您的更新(程序化与否),但这本来是有用的。无论如何,这只是说OSGi还有改进的余地。

答案 1 :(得分:3)

如果担心在开发过程中避免重新启动整个应用程序,那么OSGi不应该是第一个看的选项。检查JRebel / LiveRebel之类的东西是否符合您的需求。

虽然OSGi可以实现不需要重新启动其他捆绑/层的事情 - 如果你做得对 - 恕我直言,它有一些学习曲线能够做到这一点。

进一步阅读: