2

私は初心者です......私は Java Swing アプリケーションを持っており、私のマシンで問題なく動作します。サーバーから Citrix 経由でこのアプリケーションにアクセスしたいと考えています。したがって、公開されたアイコンをクリックすると、jar ファイルのメイン メソッドが実行され、アプリケーションにアクセスできるようになります。このアプリケーションは、DB サーバー内の DB にアクセスできます。

しかし、複数のユーザーが同時にアプリケーションにアクセスできるようにしたいのですが、それが私の質問です。

  1. n 人のユーザーが利用できる n 個のスレッドを作成することを考えました (つまり、同時アクセスに制限を設定できます)。しかし、エントリポイントは何でしょう...公開されたアイコンをクリックすると、メインメソッドが呼び出されるたびに意味します。

  2. ユーザー インターフェイスをロジック レイヤーから分離することは考えられますが、その方法がわかりません。もちろん、私はMVCモデルに従っています。私の質問は、アプリケーションにアクセスするたびに gui の複数のインスタンスを作成するという点です。

  3. そして最後に、DB 接続プーリングを使用したいと思います。では、このプールを作成する別の Java プログラムを作成する必要があり、アプリケーションがそのデータソースを使用するということでしょうか?

誰でも私を正しい方向に「向けて」もらえますか? 私は特定のアイデアを探しているわけではなく、このマルチ ユーザー アプリケーションを作成する方法についてのアイデアを探しています。

4

1 に答える 1

5

通常、マルチユーザー Swing アプリケーションでは、アプリケーションの「クライアント」部分を「サーバー」アプリケーションから分離する必要があります。

これは次のように機能します。

  • 各ユーザーは、クライアント アプリケーションの独自の実行中のインスタンスを取得します。これは、独自のマシン上で行うことができます。
  • サーバー アプリケーションは、複数のクライアントからの接続を受け入れ、データベースと通信する単一のインスタンス (またはクラスター) です。
  • クライアント アプリケーションは、データにアクセスしたりデータを変更したりする必要があるときに、サーバー アプリケーションと通信します。使用できるさまざまな通信方法は多種多様です。
  • オプションで、サーバー アプリケーションはクライアントに通知を送信できます (たとえば、データが別のクライアントによって更新された場合)。

クライアントが同じデータベースに接続できるようにする場合は、サーバー アプリケーションを使用しなくてもかまいません。これはセットアップが簡単ですが、いくつかの欠点があります。

  • データベースへの同時アクセスや、同じデータを同時に変更しようとする異なるクライアントからの破損の可能性については、より注意する必要があります。
  • 信頼できない可能性のあるクライアントからデータベースへの接続を許可する必要があります。これはセキュリティ上のリスクです。

すでに動作中のアプリケーションがある場合は、おそらく 2 番目のオプションに移行する方が簡単です。欠点に注意してください。最初のオプションは、一般的にはるかに優れたアーキテクチャです。

于 2013-02-23T05:11:22.967 に答える