如上图所示,我有一个 EJB-3 Enterprise 应用程序(EAR 文件),它充当一个门户并拥有 3 个与同一个数据存储进行通信和事务的 Web 应用程序(WAR 文件)。这 3 个 webapps 不是 portlet 实现,而是通过 Enterprise App 的持久层与数据存储交互的普通 webapps。这些 Web 应用程序是独立开发的,因此,其中一些使用来自企业应用程序的 Web 服务,而一些使用 EJB 客户端。
此外,还有一个替代这些 Web 应用程序(Web App1、Web App2 和 Web App3)并使用独立的企业应用程序与数据库进行通信和事务的选项,如下所示:
现在,我的问题是:
1) 上面列出的 2 个选项中最好的选项是什么?
2) 当我们将那些充当企业应用程序客户端的 Web 应用程序替换为独立的企业应用程序(EAR 文件)时,它有何影响?
3) 对于事务处理、SSO 功能、可扩展性和其他因素,什么是更好的模型?
4)还有其他更好的模型吗?
编辑:
1) 在第一个模型中,哪种方法是与 EAR 文件交互的首选方式 - webservices 或 ejb-client jar 文件/库(接口和实用程序类)?
2) 两种模型在内存使用(服务器 RAM)和性能方面有何不同。有什么明显的区别吗?