这两个应用服务器至少部分基于 OSGI。一个(Glassfish)显然是 Java EE,而另一个不是。现在我正处于为新项目选择平台的阶段,很自然的选择是 Glassfish v3 Prelude。这确实提出了一个问题,也许我们应该使用 S2AP。
那么问题是:springsource dm 服务器是否提供了任何令人信服的理由来使用它而不是 Glassfish?反之亦然。
这两个应用服务器至少部分基于 OSGI。一个(Glassfish)显然是 Java EE,而另一个不是。现在我正处于为新项目选择平台的阶段,很自然的选择是 Glassfish v3 Prelude。这确实提出了一个问题,也许我们应该使用 S2AP。
那么问题是:springsource dm 服务器是否提供了任何令人信服的理由来使用它而不是 Glassfish?反之亦然。
Java EE 应用服务器具有分布式事务管理器。如果这很重要,那么可能想看看 SpringSource dm 是否包含这些。
可以使用 Spring-Framework 进行 XA TX,只是您需要自己找到合适的 XA 管理器并将其集成。
当然 XA TX 已经声名狼藉。大多数人试图像瘟疫一样避免它们。例如,Amazon.com 不使用它们。
我们目前组合使用 Spring-Framework 和 Tomcat。我们进行所有自己的集成。很多人都做出了类似的中间层堆栈选择。我们确实与 Spring-Framework API 相关联——就像 Java EE 人员与 Java EE/EJB 相关联一样。不要让春天的花言巧语欺骗你。但是,它继续保持开放源代码可供用户社区访问。
一旦你使用 Java EE,你就会被绑定到一个特定的 Java EE 供应商,因为很难在实现之间移动。EJB3 据说会缓解这一点,但我敢打赌,切换 Java EE 应用程序服务器仍将是一项重大任务。
坦率地说,Spring-Framework 提供了比 Java EE/EJB 标准更有用的 API,而且它的创新速度更快。
这是一个旧线程,但我认为对于遇到此问题的人(就像我所做的那样)分享最近的 GlassFish OSGi 增强功能,主要是在 OSGi 企业 RFC 领域:http ://wiki.glassfish.java.net /Wiki.jsp?page=OsgiDashboard
当然,还有基于@Resource 的 OSGi 声明式服务注入,自 09 年 12 月的 v3 以来就一直存在。
我认为 SpringSource 对 Covalent Technologies 的收购使他们能够更好地帮助任何使用 Spring/Tomcat 堆栈的人。Spring dm Server 附带的 Tomcat 优化可能比 OSGi 特性更有价值。
在 Glassfish 中使用 OSGi 具有误导性。Glassfish 在服务器内部使用 OSGi;OSGi 不适用于 Glassfish 中部署的应用程序。
使用 Spring dm 服务器,可以编写应用程序以使用 OSGi。
OSGi 对您来说是一个重要的考虑因素吗?唯一其他真正的 OSGi 应用服务器是 Paremus 的 Infiniflow。所有其他应用服务器现在都在谈论 OSGi,但它是一个内部实现细节;它不适用于已部署的应用程序。
我没有使用过 SpringSource dm 服务器,但我相信在生产环境中尝试之前最好等待一段时间。原因与它是相当新的技术有关。此外,许可方案与 SpingSource (GPL) 一起使用的方式并没有太大帮助,因为它实际上意味着您现在和将来将只依赖 SpringSource。如果您需要对服务器的支持,那么您唯一的选择就是使用 SpringSource。
SpringSource dm Server 支持模块化应用程序——您可以将应用程序划分为 OSGi 包,并在应用程序之间共享您关心的任何基础设施服务。这使您远离 Java EE 定义的 WAR 等单体结构。通常,这意味着您在开发过程中获得了非常快速的编辑/保存/重新部署周期。OSGi 然后允许您对模块和它们导出的包进行版本控制以及动态更新模块,而无需重新启动整个服务器。
SpringSource dm Server 是作为 OSGi 捆绑包从头开始构建的。因此,如果您不想要标准集,您可以配置加载 dm Server 的哪些子系统。