0

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

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

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

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

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

1 回答 1

1

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

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

我不确定 Tomcat 是否带有 RMI 层,尽管自从我愤怒地为 Tomcat 开发以来已经有一段时间了。它首先是一个 servlet 引擎。如果您正在查看客户端和服务器之间的 REST 接口,那将是一个不错的选择(尽管 Glassfish 也提供了一个 servlet 引擎)。

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

就 MVC 而言,从客户端的角度来看,您让 Swing 处理视图,而本机 Java 实现模型和控制器。在这种情况下,模型将是由 RMI 服务器组件公开的服务提供的 DTO。我认为Hibernate将仅限于Server进程,并且Services中几乎没有View。客户端代码中的模型将是 DTO 和将 RPC 发送到服务的周围框架。

希望这可以帮助

于 2013-01-29T05:13:40.997 回答