我们目前正在为大学设计一个项目,我们希望将其实现为逻辑模块和UI模块。我们几乎没有部署Web应用程序的经验,但是我们提出了以下替代方案:
我们想知道这些选择中的任何一个是否不正确,或者是否有任何一个比其他的更好。具体来说,为什么将项目部署为EAR模块有用(或没有)?
目前该项目正在启动,因此我们现在仅会处理数百个用户。但是,如果项目成功,我们将需要与数百万个用户打交道。
尽管Tomcat是一个servlet容器,但是所有其他选择都不是错误的,如果要使用EJB,则需要TomTo之类的东西,它是Tomcat扩展到完全EE支持的东西。或使用那个Glassfish。
最好的方法取决于您的特定要求:您是否需要/更重视模块的解耦,还是希望将事物捆绑在一起具有一致性和可靠性。EJB还具有一些可能令人感兴趣的其他好处,但是它们与每个项目都不相关。请注意,除了提到的替代方案之外,还有其他方案,例如基于JMS的通信,HTTP REST通信以及使用OSGi来解耦程序包。
关于将项目作为EAR模块进行部署的原因,引用维基百科:“ EAR(Enterprise ARchive)是Java EE使用的一种文件格式,用于将一个或多个模块打包到一个归档文件中,从而可以部署各种模块到应用程序服务器上的操作是同时发生的,并且是连贯的。它还包含称为部署描述符的XML文件,用于描述如何部署模块。” 因此,基本上,您可以获得归结为可靠性的耦合的好处,您将始终知道模块之间的部署方式。EAR模块很好地支持EE机制,例如EJB模块,您将获得一个可控制的容器。
已经存在一个线程什么时候适合使用EAR?什么时候应该在WAR中使用您的应用?,这可能很有趣。