bch*_*tty 6 java enterprise portal

如上图所示,我有一个EJB-3企业应用程序(EAR文件),它充当门户网站并拥有3个与同一数据存储区通信和交易的Web应用程序(WAR文件).这3个webapps不是portlet实现,而是通过Enterprise App的持久层与数据存储交互的普通webapp.这些Web应用程序是独立开发的,因此,有些人使用企业应用程序中的Web服务,而某些人使用EJB客户端.
此外,还有一个选项可以替换这些Web应用程序(Web App1,Web App2和Web App3),并使用独立的Enterprise Apps与数据库进行通信和交易,如下所示:

现在,我的问题是:
1)列出的2个选项(上图)中最佳选项是什么?
2)当我们将作为客户端的Web应用程序替换为企业应用程序时,它作为独立的企业应用程序(EAR文件)会如何影响?
3)什么是更好的事务处理,SSO功能,可伸缩性和其他因素的模型?
4)还有其他更好的型号吗?
编辑:
1)在第一个模型中,哪种方法是与EAR文件交互的首选方式 - webservices或ejb-client jar文件/库(接口和实用程序类)?
2)两种型号的内存使用(服务器RAM)和性能有何不同.有什么可观的差异吗?
小智 3
既然你这么抽象,我也这么做。如果我们删除所有流行词,如“门户”、“企业应用程序”等……我们最终得到的是三个 Web 应用程序和一个通用库或框架(企业应用程序)。
看到它的应用程序尽可能简单。您有三个开发人员需要开发三个 Web 应用程序。您将提供一些对构建他们的应用程序有用的通用代码。您将使用的模型取决于您将提供给他们的代码类型。
1.- 您只需提供一些实用程序和常用业务代码。也许古典图书馆适合您的需求。(在 Java EE 环境中,您必须考虑如何利用持久性缓存级别 2 为单个数据存储共享会话工厂的优势)
2.- 您将提供持久性、缓存、安全性、审计等共享服务...您将需要一个服务层作为第一个选项。您将拥有一个共享状态,因此您只需要一个实例。
3.- 更常见的情况是您为通用服务提供一些业务 API 和服务层。
您没有指出任何强制您为您的场景使用更复杂的解决方案的要求。
编辑:
关于是否首选 rmi(ejb 客户端)或 web 服务。我总是使用 rmi 来与地理位置较近的应用程序进行通信。它的使用很简单,而且协议比 Web 服务更快(您可以在 google 上搜索 rmi Web 服务性能,阅读有关此主题的大量比较)。
另一方面,rmi 对网络延迟更敏感,需要特殊的防火墙配置,并且它比 Web 服务耦合性更强。因此,如果我假装向第三方提供服务或连接地理上稀疏的服务器,我会更喜欢 Web 服务甚至 REST。
关于最后一个问题,最初在同一服务器上部署一个或十个应用程序没有任何区别。与使用应用程序的开销相比,部署费用微不足道。当然,您必须将此视为一般假设。显然,应用程序的大小和部署方式会对内存消耗等产生影响。
您必须考虑到此决定可以根据您的需要轻松更改。因此,正如我所说,您可以从简单的解决方案开始,如果您在部署应用程序时遇到问题,您可以轻松地重组您的耳朵。