我们正在设计两个不同的系统,可以通过以下典型示例进行模拟。
Web App#1 - 课程目录(允许更新/填充课程目录)
Web App#2 - 学生目录(处理学生注册新课程,查看成绩单等)
需要在两个系统之间传递的数据(将会有更多的调用和需要来回传递的东西,但这会让人觉得它是一个双向的问题和答案流程):
从阅读来看,似乎我们的选择是:
你会用哪种方式将其削减到JAR / WAR / EAR中?
答案 0 :(得分:0)
这最初是评论,但实际上太长了。
如果您只获得简单的命令式服务(设置此项,请执行此操作,这是否有效?),那么您可以使用基于AXIS2 / SOAP的Web服务解决方案。 (你可能不需要整个SpringWS)。如果app逻辑没有太扭曲,我会遵循KISS原则。
我不知道您的系统方案,但是如果您使用完整的承诺RDBMS,那么数据库很可能会驻留在自己的计算机上,因此有不同的池连接到它,这不是很大的负担。 (如果你在每个AS上使用本地数据库,以后可能会遇到一些可扩展性问题。)
在现代Java EE应用服务器中,您实际上可以使用另一个服务器的连接池(通过jnp:// urls),这只是JNDI查找的问题。
如果db引擎支持它,oracle相似的db链接也是在应用程序之间共享数据库的好方法。
您可以通过在包含所有ORM内容的简单Java项目中创建业务/数据层来共享代码时间,这些内容在2个Web dinamic项目中共享,因此业务逻辑的最终更改将反映在两个应用程序上。
您还可以尝试混合方式(简单命令式Web服务和数据库共享),它实际上取决于两个应用程序之间交换的消息。您可以提供一层Web服务API(基于SOAP或jsonp),但要考虑Web服务本身的执行时间(耗时ws并不是那么好)。
Web服务和EJB很好,可能可以做你需要的,真正的问题是:你真的需要它们吗?最近我看到很多项目从完整的REST开始,在许多情况下,这就像用火箭筒杀死苍蝇一样。
如果要求很简单,那就保持简单。