Java Swing-单用户应用程序到多用户应用程序



我是个新手。。。。。。我有一个Java Swing应用程序,它在我的机器上运行得很好。我想通过Citrix从服务器访问此应用程序。因此,当我点击发布的图标时,它将运行jar文件中的main方法,并使我能够访问应用程序。此应用程序将能够访问数据库服务器中的数据库。

但我希望多个用户同时访问应用程序,这就是我的问题所在:

  1. 我想为n个用户创建n个可用线程(即)我可以设置并发访问的限制。但切入点是什么。。。。。我的意思是,当我点击发布的图标时,这意味着每次都会调用主方法。

  2. 我可以考虑将我的用户界面与逻辑层分离。。。。但我不知道该怎么做,当然我遵循的是MVC模式。我的问题是在每次访问应用程序时创建多个gui实例。

  3. 最后,我想使用DB连接池。那么,这是否意味着我必须创建一个单独的java程序来创建这个池,并且我的应用程序将使用它的数据源?

谁能给我指个正确的方向吗?我不是在寻找具体的想法,只是关于如何创建这个多用户应用程序的想法。

通常,对于多用户Swing应用程序,您希望将应用程序的"客户端"部分与"服务器"应用程序分开。

其工作原理如下:

  • 每个用户都将获得自己正在运行的客户端应用程序实例。这可以在他们自己的机器上
  • 服务器应用程序是一个单独的实例(或者可能是一个集群),它接受来自多个客户端的连接并与数据库对话
  • 客户端应用程序在需要访问或更改数据时与服务器应用程序进行对话。你可以使用多种不同的沟通方式
  • 可选地,服务器应用程序可以向客户端发送通知(例如,在数据由另一个客户端更新的情况下)

如果您愿意让客户端连接到同一个数据库,则可以不使用服务器应用程序。这设置起来更简单,但也有一些缺点:

  • 您需要更加小心来自不同客户端的对数据库的并发访问/试图同时更改相同数据的潜在损坏
  • 您需要允许从可能不受信任的客户端连接到数据库。这是一个安全风险

考虑到你已经有了一个可用的应用程序,第二种选择可能更容易让你转向。只需注意缺点:第一种选择通常是更好的架构。

相关内容

最新更新