3

Javaアプリケーションサーバーの役割とWebサーバーとの違いについて少し混乱しています。
2つのサイトの同じ違いを説明しているサイトをたくさん見つけましたが、満足のいくものではありませんでした。
では、次の2つのケースについて説明してください。-

1)アプリ。サーバーとWebサーバーとの違い:

これらの2つのリンクから:
アプリケーションサーバーとサーブレットコンテナの違いは?
アプリケーションサーバーとWebサーバーの違いは何ですか?

Webサーバー:
クライアントからの要求を受け入れ 、サーブレットコンテナー( Apache Tomcatなど)
アプリを使用してクライアントに応答を送信することにより、httpプロトコルを介してすべてを処理しますサーバー:アプリケーションサーバーは、JMS、JPA、RPCなどのJavaEE全体をサポートします。

今私が混乱しているのは、Webアプリケーションにjarファイルを
追加することで、TomcatでJMS、JPAなどの多くのJavaEEAPIをどのように使用できるかということです。これは、アプリケーションサーバーを使用する場合、それらのjarファイル を追加する必要がないことを意味しますか?(そうは思いません

2)アプリケーションの役割。サーバー(これは私にとって非常に重要です)

ウィキペディアから
http://en.wikipedia.org/wiki/Application_Server

アプリケーションサーバーは、セキュリティ、トランザクションサポートなどのサービスを提供します。
「この用語は、JavaEEをサポートするWebサーバーによく使用されます」 -JavaEE APIの必要なjarファイルを追加すると、Webサーバーがapplになるように聞こえます。サーバ。それはどうですか。

ここで私の質問は、アプリケーションサーバーがセキュリティ制御またはトランザクション管理のタスクをそれ自体でどのように実行するかということです。
たとえば、Springフレームワークを使用するWebアプリケーションでは、Springを使用してセキュリティを提供しています。セキュリティと、@Transactionalアノテーションとその他すべての知識を使用したトランザクション管理を使用しています。
applもそうです。サーバーは私のセキュリティやトランザクション管理と関係がありますか、それとも独自の方法がありますか?

私の無知を許してください。

4

3 に答える 3

3

Springを使用すると、実際には、アプリケーション内にある種のJavaEEコンテナーを埋め込んでいます。ただし、Springを使用している場合でも、JTAサポートが必要な場合(分散XAトランザクションが必要なため)、追加のトランザクションマネージャーを使用する必要があります。JMSが必要な場合は、追加のJMSブローカーをインストールする必要があります。接続プールが必要な場合は、追加の接続プールを使用する必要があります。クラスパスとプロパティまたはXMLファイルにjarを追加するのと同じくらい簡単な場合もあります。時々それは難しいです。

Java EEアプリサーバーには、すべてがバンドルされています。柔軟性は低くなりますが、すべてを自分でインストール、構成、および機能させる必要はありません。

于 2012-06-07T08:46:05.813 に答える
2

を使用する場合Java EE framework、それは仕様です。したがって、アプリケーションサーバーがそうである場合はJava EE compliant、これを実装する必要があります。したがって、仕様が実装されると、仕様に記載されているためSecuritytransactionなどに対応します。だからそれは契約です。一方、では、web server静的リソースを引き出すだけです。他のものを扱う必要はありません。

の場合Spring framework、フレームワークはトランザクションやセキュリティなどを処理する方法を知っています。したがって、特に開発者は、他のシナリオでアプリケーションサーバーによって実装されるこれらの側面を調べる必要はありません。

アプリケーションサーバーがセキュリティ制御またはトランザクション管理のタスクを単独で実行する方法

これらの問題に対処するのはむしろ仕様であり、アプリケーションサーバーではありません。したがって、アプリサーバーの義務はこれらを実装することです。したがって、アプリケーションがJava EE compliantである場合、これらの領域は対処され、実装はアプリサーバーによって実行されます。

于 2012-06-07T08:43:55.970 に答える
1

これは単純化しすぎかもしれませんが、

Webサーバーは、基本的にhttpプロトコルを介してコンテンツを提供するHTTPサーバーです。したがって、Webサーバーは単にhttpプロトコルを介してコンテンツを提供することです。典型的な例は、ApacheWebサーバーです。これは単なるファイルサーバーです。

ここで問題となるのは、Webサーバーがコンテンツをどこから取得するのかということです。考えられる情報源は

  1. リクエストに応じて生成されないが静的に提供される静的コンテンツ(images / cssなどのコンテンツ)。
  2. 動的コンテンツ:簡単に言えば、提供されるコンテンツはユーザーの要求に応じて生成されます。

静的コンテンツの場合、Webサーバーはファイルを読み取って提供するだけなので、何も必要ありません。

動的コンテンツの場合、Webサーバーは、提供されるコンテンツを生成する追加コンポーネントの支援を必要とする場合があります。

ここで、アプリケーションサーバーが見えてきます。

これで、前述のこれらの追加コンポーネントは、データベースやその他のシステムなどと相互作用する可能性があります。

Webサイトが膨大な数のユーザー(意図的/意図的でない)にさらされているWeb環境では、ユーザーが期待される応答を受け取り、アプリケーションの動作に矛盾が見られないように、トランザクション/セキュリティ/同時実行などの一般的なサービスが必要です。 。

アプリケーションサーバーには、トランザクション/セキュリティ/同時実行/リソース管理を管理する機能が組み込まれています。一般に、これらはマネージドサービスと呼ばれ、それらによって提供される環境はマネージド環境と呼ばれ、これらの基本的なサービスはアプリケーションサーバーによって管理され、プログラマーはそれらを気にする必要がありません。

アプリケーションサーバーにはWebサーバーが必要です。または、Webサーバーはアプリケーションサーバーのサービスを使用して動的コンテンツを生成すると言えます。

たとえば、JBossはTomcatを組み込みのWebサーバーとして使用します。一方、Webロジックには独自のWebサーバーがあります。Tomcatは、サーブレットの管理環境も提供するため(原則として)、アプリケーションサーバーと呼ぶことができます(サーブレット/ JSPの同時実行性とインスタンスプールを管理します)。

Springの例を 紹介します。アプリケーションサーバーには、必要かどうかに関係なく、トランザクション/セキュリティなどが組み込まれています。春はこれを処理する非常に良い方法を提供します。春にはこれらすべてのものがありますが、必要なものを使用します。これらだけでなく、TomcatのようなJava Webサーバーだけで、アプリケーションサーバーを必要とする本格的なサービスを構築できます。

于 2012-06-07T09:29:15.647 に答える