首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java跨web应用程序通信设计?

Java跨web应用程序通信设计?
EN

Stack Overflow用户
提问于 2012-11-05 14:11:45
回答 1查看 1.6K关注 0票数 1

我们正在设计两个不同的系统,可以通过下面的典型例子来模拟。

Web #1 -课程目录(允许更新/填充课程目录)

  • 教授
  • 课程(courseCode,professorId,先决条件列表,使用的等级表)
  • 先决条件(courseCode和最低等级要求)
  • GradeScale (即A,1-100,及格/不及格)

Web #2 -学生目录(处理学生注册新课程,查看他们的成绩单等)

  • 学生
  • 成绩单(他们选修了什么课程,最后成绩是什么)

需要在这两个系统之间传递的数据(将有更多的呼叫和东西需要来回传递,但这给出了这样的想法:这是一个双向的问答流程):

  1. 学生是否有修读某门课程所需的预修课程?
  2. 从课程目录中提取详细信息以创建完整的成绩单。

从阅读上看,我们的选择似乎是:

  1. 为底层数据模型创建EJB,然后让web应用程序使用EJB接口。
  2. 在两个应用程序之间使用REST或Web接口。
  3. RMI还是其他Java远程处理?

你会用哪种方式把它切成罐子/战争/耳朵?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-11-06 09:07:47

这最初是一个评论,但实际上太长了。

如果您只得到简单的命令式服务(设置它,这样做,这有效吗?),那么您可以使用基于AXIS2 2/SOAP的web服务解决方案。(你可能不需要整个SpringWS的膨胀)。如果应用程序的逻辑不是太扭曲,我会遵循接吻原则。

我不知道您的系统场景,但是如果您使用的是完全灵活的RDBMS,那么数据库很可能驻留在它自己的机器上,因此有不同的池连接到它,这并不是什么负担。(如果您在每个AS上使用本地db,那么以后可能会遇到一些可伸缩性问题)。

在现代Java应用服务器中,您实际上可以使用一个服务器的连接池(通过jnp:// urls),这只是JNDI查找的问题。

如果db引擎支持它,oracle一样的db链接也是在应用程序之间共享数据库的好方法。

您可以节省代码时间,方法是在一个简单的java项目中有一个业务/数据层,其中包含所有ORM内容,并在两个web项目之间共享,因此业务逻辑的最终变化将反映到这两个应用程序中。

您还可以尝试混合方式(简单命令式Web服务和数据库共享),这实际上取决于两个应用程序之间交换的消息。您可以提供一层web服务API (基于SOAP或基于jsonp ),但考虑到web服务本身的执行时间(使用耗时的ws并不好)。

Web服务和EJB很好,可能可以满足您的需要,真正的问题是:您真的需要它们吗?最近我看到了很多从完全休息开始的项目,在很多情况下就像用火箭筒杀死苍蝇一样。

如果需求很简单,那么保持简单。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13233855

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档