我制作了一个 Java Swing 应用程序。现在我想让它成为一个客户端-服务器应用程序。当服务器上的数据发生变化时,所有客户端都应该得到通知,所以我不是在寻找 Web 服务。客户端-服务器应用程序将在单个 LAN 上运行,它是一个业务应用程序。服务器将包含一个数据库 JavaDB。
什么技术和库最容易上手?我应该使用套接字从头开始实现它,还是应该使用 Java RMI 或 JMS?还是有其他更容易入手的替代方案?
有没有我应该使用的服务器库? Jetty 是替代方案吗?
最佳答案
鉴于您已经有了应用程序,也许最简单的事情就是确定客户端和服务器之间所需的接口(interface),然后首先重构您的应用程序以使用该接口(interface)在后端之间进行通信/前端在同一进程中。
然后你就可以开始拆分了。一个简单的解决方案是使用 RMI 将其分开(因为您正在谈论 Java 对象并进行 Java 方法调用)。 Spring 包含有用的工具来简化/自动化接口(interface)的 RMI 公开。
对于通知要求,简单的 UDP 多播(或广播)就足够了。
请注意,一旦您拆分应用程序,就会遇到问题。维护一致的数据 View 、管理及时更新、处理服务器停机时的情况、当您获得大量客户端时可能出现的加载问题等。从某种意义上说,将应用程序拆分为客户端和服务器只是新架构的开始过程。
关于java - 如何使我的 Java Swing 应用程序成为客户端-服务器应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2783795/