【发布时间】:2012-05-05 23:55:51
【问题描述】:
如上图所示,我有一个 EJB-3 Enterprise 应用程序(EAR 文件),它充当一个门户并拥有 3 个与同一个数据存储进行通信和交易的 Web 应用程序(WAR 文件)。这 3 个 web 应用程序不是 portlet 实现,而是通过企业应用程序的持久层与数据存储交互的普通 web 应用程序。这些 web 应用程序是独立开发的,因此,其中一些使用来自企业应用程序的 Web 服务,而一些使用 EJB 客户端。
另外,还有一个替代这些 webapp(Web App1、Web App2 和 Web App3)的选项,并使用独立的 Enterprise Apps 与数据库进行通信和事务处理,如下所示:
现在,我的问题是:
1) 上面列出的 2 个选项中最好的选项是什么?
2) 当我们将那些充当企业应用程序客户端的 Web 应用程序替换为独立的企业应用程序(EAR 文件)时,会有什么影响?
3) 对于事务处理、SSO 功能、可扩展性和其他因素,哪种模型更好?
4) 还有其他更好的模型吗?
编辑:
1) 在第一个模型中,哪种方法是与 EAR 文件交互的首选方式 - webservices 或 ejb-client jar 文件/库(接口和实用程序类)?
2) 两种模型在内存使用(服务器 RAM)和性能方面有何不同。有什么明显的区别吗?
【问题讨论】:
-
您为什么要考虑这两个选项?例如,它适用于不同的部署选项吗?此外,您如何在选项 2 中拆分数据访问权限 - 每个 EAR 是否对其自己的数据拥有“所有权”,或者他们每个人都对整个数据集具有完全的读/写访问权限?如果分开,交易边界在哪里?每个 EAR 是否只需要关注自己的边界?您拥有什么类型的数据存储,它将成为瓶颈。您的应用程序主要是读取还是写入。抱歉,所有问题 - 我希望这些不会反映我自己的无知!
-
Romski:我正在考虑这两个选项,出于我自己的好奇心,只是为了找出哪些是最佳实践,哪些更适合我们的需求。至于您的问题,是的,每个 EAR 都拥有所有权。它们是这样设计/开发的,因为它们处理不同的功能和其他业务原因。目前,所有应用程序都主要是读写并使用 RDBMS。
-
另外,请查看我原帖的“编辑”部分。
-
我已经更新了我的答案
标签: java enterprise portal