0

Web アプリケーションに関しては、アプリケーション サーバーが頻繁に使用されることは知っています。ここでは、Tomcat や jboss などのアプリケーション サーバーと通信するシン クライアント (ブラウザー) を取得しています。

ここで、リッチ/ファット クライアントと共にアプリケーション サーバーを使用している商用ソフトウェアを詳しく調べました。(<100 ユーザー) ここでは、リッチ クライアントが、アプリケーション サーバー (Tomcat、jboss など) で実行されているサーバー ソフトウェアと通信します。

アプリケーション サーバーをリッチ クライアントと一緒に使用するメリットがわかりません。

解決策 a に対する解決策 b の利点は何ですか?

a) リッチ クライアント <-> jvm で実行される単純なサーバー

b) リッチ クライアント <-> Tomcat や jboss などのアプリケーション サーバーで実行されるサーバー

ありがとう

4

2 に答える 2

1

ファット クライアントを使用するアプリケーション サーバーは、Web アプリを使用するアプリケーションと同じ機能を提供します。アプリケーション サーバーが Web アプリケーションに対してのみ有用である場合、Web アプリケーションに対してもアプリケーション サーバーを使用しても意味がありません。単純な Tomcat または Jetty サーバーで十分です。

完全な Java EE アプリ サーバーの利点は次のとおりです。

  • 宣言的トランザクション管理
  • 分散トランザクション (複数のデータベース、および/またはデータベースと JMS サーバーなど)
  • 宣言型およびプログラム型セキュリティ
  • スレッドプーリング
  • 並行処理
  • 永続化のための JPA サポート
  • 非同期通信の JMS サポート
  • リソース管理 (接続プールなど)
  • セッション Bean を Web サービスとして公開する機能
  • 依存性注入

UI が Web ベースかどうかに関係なく、これらの機能はすべて便利です。アプリケーションでこれらすべての機能を使用しない場合、アプリケーション サーバーは必要ありません。これらすべてを必要とせず、さまざまなコンポーネント (トランザクション マネージャー、JPA エンジン、JMS サーバーなど) を自分で統合したい場合は、Tomcat や Jetty などの Web コンテナーの有無にかかわらず、Spring を使用できます。

于 2012-01-07T18:54:57.043 に答える
0

サーバーには次の 3 つの目的があります。

  • ゲートキーパーとして機能し、クライアントが正常に動作していることを確認します。
  • クライアントに委託していない処理を行うため。と
  • ある種のハブを提供します。関連するデータが保管され、必要に応じてクライアントが集まって相互に通信できる集中型の場所です。

クライアントが独自にすべてを行い、相互に直接通信する必要がない場合、アプリケーション サーバーは実際には必要ありません。しかし、ユーザーが増えれば増えるほど、お互いの行動を調整する必要が増します。特定のアプリ固有のポイントを過ぎると、クライアントが互いの作業を踏みにじるリスクが、分散モデルのほとんどのメリットを上回ります。その時点で、サーバーを混在させることはより理にかなっています。

例が必要な場合は、Microsoft Access を取り上げます。おそらく、これがファット クライアント データベース アプリケーションであることに同意できます。それは多かれ少なかれデータベースを直接変更し (とにかく Jet/ACE データベースの場合)、他のプロセスとデータベースを共有できます。しかし、ユーザーが多すぎると、特にネットワーク経由で共有データベース ファイルにアクセスすると、破損が差し迫っています。ただし、データベースを処理するために SQL Server を導入し、Access に UI の作業とクエリの生成などを任せると、データベースを破棄するリスクがはるかに少なくなり、ほとんど同じ利点が得られます。

スタンドアロン サーバーが Tomcat などの Web アプリよりも優れているか劣っているかについて: これらのコンテナーのいずれかのアプリには、Tomcat で実行されている Web アプリがスタンドアロン Java Web アプリよりも優れているのとほとんど同じ利点があります。低レベルの詳細についてはそれほど心配する必要はありません。ソケットやパケットではなく、リクエストとレスポンスの観点から扱います。また、HTTP などの既知の標準プロトコルを使用すると、他のソフトウェア (独自のソフトウェアの新しいバージョンを含む) との通信が容易になります。ただし、その見返りとして、特定のコンテナーの処理方法に合わせてアプリの通信を調整する必要があります。それができるか、そうすべきかは完全にあなた次第です。

于 2012-01-07T17:02:04.720 に答える