繁体   English   中英

Java-网络应用程序-实时

[英]Java - Network application- Real-Time

建议使用哪些策略来构建将在“桌面”而不是浏览器中运行的Java应用程序。 该应用程序的特征是:

1. Multiple application instances would be running on different machines
 2. Applications must communicate in real-time (if one user make changes,
in another application data must be refreshed)

您想研究使用套接字,TCP还是UDP,并弄清楚是否要使用中央权威服务器(如果两个用户以不同的方式更改同一件事,并保存其数据该怎么办?)

在此处阅读Oracle / Java的这篇文章Java自定义网络

您是否想创建网络应用程序? 基于套接字等等? 关于您的两个问题,我前段时间已经实现了该方案,我在工作上也从事类似的工作,这虽然并不复杂,但是我将根据与您有关的两个问题回答您。

  1. 多个应用程序实例将在不同的计算机上运行。

如果要在人们的桌面上安装应用程序的实例,建议您对“路径”非常小心,不要硬编码任何路径,因为资源加载是动态的。

仔细检查将在其中安装应用程序的网络体系结构。 也许它只是一个LAN,或者它可以在大型网络中工作并通过VPN等访问。请检查情况。

一旦确保您的应用程序可以在不同的机器上正常运行而没有任何路径冲突或资源加载冲突,就可以导出jar,使用maven,ant等生成它。

另外,如果要继续前进,则可以使用任何安装向导创建来创建安装程序,并为Windows创建一个批处理文件(.exe)或为Linux distr创建一个批处理文件(.sh)。 但这只是安装阶段的建议。

另一方面,如果您想将应用程序作为Java桌面执行,但使用URL来启动它,则可以看看JNLP。

  1. 应用程序必须实时通信(如果一个用户进行更改,那么其他用户将能够看到)

如果要这样做,则肯定需要一台服务器来提供和存储信息。 服务器可以是在办公室中设置的物理计算机,也可以是远程计算机。

您在这里有两个选择:

使用Java网络:创建一个用作服务器的应用程序,该服务器提供并保存信息(它应该是并发环境,因为许多人将在该环境上执行事务或查询)。 检查如何使用Sockets创建基本的服务器-客户端应用程序,以更好地了解其工作方式,然后您将不会遇到增加环境所要求的复杂性的问题。

您可以简单地开发一个基于Java REST的应用程序,并使您的Client应用程序连接到计算机(如果您打算实现负载平衡,则连接到计算机)并使用这些REST。 您可以看一下Jersey库来实现您的方案。 确保为这些Web服务添加安全性,并使服务器私有访问您的应用程序实例将在其中运行的网络。

好吧,这就是我可以根据目前已经完成的工作和现在正在执行的工作告诉您的方案。

也许您需要其他或更多信息,可以在评论中回复,这对您有所帮助。

问候和愉快的编码:)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM