Java RMI 部署

标签 java model-view-controller tomcat glassfish 3-tier

我正在尝试开发一个 3 层架构的分布式 Java 应用程序。

  1. 数据库服务器
  2. 应用服务器
  3. 瘦客户端 Swing 应用程序

我以前没有开发过这种类型的应用程序。我正在考虑使用 java RMI 在应用程序服务器和瘦客户端应用程序之间进行通信。此外,我将使用 Hibernate 框架作为 ORM 工具。

我的问题是,部署这样一个应用程序需要哪些组件。

  1. 我是否需要某种服务器,例如 Tomcat 或 Glassfish?
  2. 如何在此类应用程序中实现 MVC 模型?

最佳答案

相当大的问题,没有真正的唯一答案。您确实需要确定正在构建的应用的需求是什么。

就 RMI 而言,您需要一个提供 RMI 主机的服务器进程。 Glassfish 为您提供了一个。但是,如果您使用的是 glassfish,您可能希望使用 JPA/EJB3 作为持久层。这只是为 OpenSource 世界重新标记了 Oracle 的 TopLink。

我不确定Tomcat是否带有RMI层,虽然我为Tomcat开发已经有点生气了。它首先是一个 servlet 引擎。如果您正在寻找客户端和服务器之间的 REST 接口(interface),那将是一个不错的选择(尽管 Glassfish 也提供了一个 servlet 引擎)。

如果您真的想使用 Hibernate 并且希望 RMI 作为客户端和服务器之间的传输,请不要小看 Spring。它将具有 RMI 服务器引擎,您可以在其中定义调用 Hibernate 的 Spring bean。不需要应用服务器(Spring 提供的除外。

就 MVC 而言,从客户端的角度来看,您有 Swing 处理 View ,而 native Java 实现模型和 Controller 。在这种情况下,模型将是由 RMI 服务器组件公开的服务提供的 DTO。我会认为 Hibernate 会局限于 Server 进程,Services 中几乎没有 View。客户端代码中的模型将是 DTO 和使 RPC 成为服务的周围框架。

希望对你有帮助

关于Java RMI 部署,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14575891/

相关文章:

tomcat - COPY 和 ADD 在 Dockerfile 中不起作用

java - 为同一个 HTTP 请求多次调用 Servlet doGet 方法

java - 如何用IDE组织java项目?

java - 将 JSONArray 转换为适当类型的 Java 数组

javascript - 将模型数据和行为放在哪里? [tl;博士;使用服务]

model-view-controller - MVC View : Type arguments Html helper DisplayFor cannot be inferred from the usage

java - spring security j_spring_security 注销问题

java - Oreo 中的 sendOrderedBroadcast setPackage 要求

c# - 无法隐式转换类型 'List<System.Web.Mvc.SelectListItem> to ' IEnumerable<Microsoft.AspNetCore.Mvc.Rendering.SelectListItem>'

java - 错误 : org. hibernate.HibernateException: Access to DialectResolutionInfo cannot be null when 'hibernate.dialect' not set