Java - 网络应用程序 - 实时

时间:2014-10-23 16:20:55

标签: java real-time desktop-application

建立将在" desktop"上运行的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)

2 个答案:

答案 0 :(得分:1)

您希望了解如何使用套接字,TCP或UDP,并确定是否需要中央权威服务器(如果两个用户以不同方式更改相同的内容,其数据已保存,会​​怎么样?)

在此处阅读Oracle / Java中的这篇文章Java Custom Networking

答案 1 :(得分:1)

您想创建一个网络应用程序吗?基于套接字等?关于你的2个问题,我已经在不久前实现了这个场景,我正在为我的工作做类似的事情,它并不复杂,但我会根据你关注的两个问题回答你。

  1. 多个应用程序实例将在不同的计算机上运行。
  2. 如果要在人们的桌面上安装应用程序的实例,我建议对“路径”非常小心,不要硬编码任何路径,因为资源加载是动态的。

    仔细检查应用程序的安装网络架构。也许它只是一个局域网,或者它可以在大型网络中工作并通过VPN等进行访问。检查方案是什么。

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

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

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

    1. 应用程序必须实时通信(如果一个用户进行了更改,那么其他用户将能够看到)
    2. 如果您想这样做,您肯定需要一台服务器来提供和存储信息。服务器可以是在办公室中设置的物理机器,也可以是远程服务器。

      这里有两个选项:

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

      您可以简单地开发基于Java REST的应用程序,并使您的客户端应用程序连接到计算机(或计划实现负载平衡的计算机)并使用这些REST。您可以查看Jersey库以实现您的方案。确保为这些Web服务添加安全性,并使服务器对应用程序实例可在其中运行的网络进行私有访问。

      嗯,根据我到目前为止所做的以及我现在正在做的事情,我可以告诉你关于你尝试实施的场景。

      如果您需要更多或更多信息,可以在评论中回复,并且很乐意为您提供帮助。

      关心和快乐的编码:)