java - 如何使我的 Java Swing 应用程序成为客户端-服务器应用程序?

标签 java swing networking client-server distributed-system

我制作了一个 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/

相关文章:

java - 获取带有线程上下文的堆栈跟踪

java - 如何在 JScrollPane 中显示底部组件?

c++ - sprintf 错误 "variable may be unsafe"(C4996)... 替代方案?

ios - 在 iOS 本地托管页面

java - 使用 SwingWorker 实现 UDP 客户端/服务器

java - 我在java应用程序中看不到udp多播流量,而我可以从wireshark中看到

java - 在 JTable 中随机选择多行

java - 使用数字对对数组进行排序

java - rabbitmq中的路由键区分大小写吗?

java - 游戏的主菜单