- PR -

WEBサーバとAPサーバの違い

1
投稿者投稿内容
sand
大ベテラン
会議室デビュー日: 2007/01/15
投稿数: 247
投稿日時: 2007-02-02 11:49
WEBサーバとAPサーバの違いがわかりません。
APサーバがJ2EE等JAVAの実行をしてWEBサーバがHTMLの送受信をするという認識なのですが、
APサーバが無くてもJRE等実行環境が入っていればJ2EE等のJAVAの実行はできるのでAPサーバは必要ないのでは?
WEBサーバのプロセスにjava.exeへの実行権限さえ与えていればAPサーバは必要ないのでは?
と思ってしまいます。
APサーバの役割について説明をお願いします。
NAO
ぬし
会議室デビュー日: 2001/10/24
投稿数: 1256
お住まい・勤務地: 神奈川のはずれから東京の下町
投稿日時: 2007-02-02 11:58
簡単に言えば。
APサーバとかにはきっちりとサービスに必要な
トランザクション制御とかコンテキスト制御とか
JAVAの実行環境だけでは無く、
様々な制御機能を備えてます。

つまり商用サービスとかを実現する際に必要な機能が
含まれてる訳ですね。

まぁそんな所です。
山本 裕介
ぬし
会議室デビュー日: 2003/05/22
投稿数: 2415
お住まい・勤務地: 恵比寿
投稿日時: 2007-02-02 12:22
JREだけでは「J2EE等のJAVAの実行」はできません。
J2SE、と違い J2EE で規定されているのはほとんどインターフェースです。
実際の実装は AP サーバベンダに任されています。

java のプロセスは長時間稼働して初めて本領発揮します。
java プロセスの初期化は非常に重たい処理ですので CGI として起動させると火傷します。
java.exe の読みこみ、各種ライブラリの読みこみ、コンパイル、main クラスの実行、といった複雑な処理が必要だからです。
また CGI として起動させた場合 JSP や Servlet 等は動作させられません。

まずはフリーで使える Tomcat や WebLogic Server などを動かしてみて感覚を掴んでみることをオススメします。
sand
大ベテラン
会議室デビュー日: 2007/01/15
投稿数: 247
投稿日時: 2007-02-26 16:17
引用:

sandさんの書き込み (2007-02-02 11:49) より:
APサーバがJ2EE等JAVAの実行をしてWEBサーバがHTMLの送受信をするという認識なのですが、
APサーバが無くてもJRE等実行環境が入っていればJ2EE等のJAVAの実行はできるのでAPサーバは必要ないのでは?
WEBサーバのプロセスにjava.exeへの実行権限さえ与えていればAPサーバは必要ないのでは?
と思ってしまいます。
APサーバの役割について説明をお願いします。


APサーバがトランザクション管理も行っているという話ですが、セッションのトランザクション管理などですね。たしかにcgiだと接続ごとのセッションオブジェクトは持つことができませんね。
JREでは、J2EEの実行ができないというのは初耳でした。調べてみたところ、classpathにservlet-api.jarなどのライブラリを読み込ませないとコンパイルができませんでした。
回答ありがとうございました。
ゆきお
会議室デビュー日: 2006/03/10
投稿数: 4
投稿日時: 2007-02-26 20:12
ゆきお的観点からゆきお的解釈で書いてみました。

WEBサーバであるURLにアクセスが来たらJAVAのあるプログラムを起動させると
1000件のアクセスが同時に来たとき1000個のVMが起動されますよね。
1つのJAVA_VMが32MByteの最低メモリを取得するとしたら
それだけで32GByteのメモリが必要になる。
インターネット創世記にCGIチャットなんかでサーバがよくダウンしてたのはこのせいです。
(1アクセスに1つperlのプロセスが起動するから凄く重い)

でもAPサーバで、あるURLにマッピングされたプログラムってのは
APサーバ起動時にそのプログラムが起動され常駐しています。

アクセス内容は引数という形で渡って来るため
1つのインスタンスで何件でも同時に処理可能なため
非常に軽いというのが最大のメリットかな?

※だからサーブレットでフィールド変数を使用するには
 注意が必要なんだけど繋がるかな?

【イメージ】
 CGI
  起動⇒処理⇒終了(任意のタイミング)
  起動⇒処理⇒終了(任意のタイミング)
  起動⇒処理⇒終了(任意のタイミング)

 APサーバ
  起動(APサーバ起動時)
   処理
   処理
   処理
  終了(APサーバシャットダウン時)


※常駐の下りは微妙に間違ってる? けど上記認識で問題ないと思う

間違ってたら指摘をお願いします
加納正和
ぬし
会議室デビュー日: 2004/01/28
投稿数: 332
お住まい・勤務地: 首都圏
投稿日時: 2007-02-26 23:45
引用:

sandさんの書き込み (2007-02-02 11:49) より:

WEBサーバとAPサーバの違いがわかりません。



APサーバ = J2EE規格実装 + 運用管理 + 独自部分

というところでしょうか。

J2SEとJ2EE規格の区別がよく分からないのならば、
APサーバとWebサーバは違いがないと思います。

APサーバにWebサーバの機能もついてることがありますから。

J2EEというのは、大規模システム開発用規格です。
まぁ、小規模で使ってもいいですが。メッセージングなんて
役にたたん規格に見えます。(見えてました。いまでも、そう見えますけど。。。)

あしゅ
ぬし
会議室デビュー日: 2005/08/05
投稿数: 613
投稿日時: 2007-02-27 11:08
引用:

加納正和さんの書き込み (2007-02-26 23:45) より:
まぁ、小規模で使ってもいいですが。メッセージングなんて
役にたたん規格に見えます。(見えてました。いまでも、そう見えますけど。。。)



ええっ?!

1台のサーバー内でも非同期処理に便利ですよ。
ロールバックしたらリトライしてくれたりもするので。
あしゅ
ぬし
会議室デビュー日: 2005/08/05
投稿数: 613
投稿日時: 2007-02-27 11:23
引用:

sandさんの書き込み (2007-02-26 16:17) より:
APサーバがトランザクション管理も行っているという話ですが、セッションのトランザクション管理などですね。たしかにcgiだと接続ごとのセッションオブジェクトは持つことができませんね。



J2EEにはHTTPのセッション管理も含まれていますが、
トランザクション管理はセッション管理ではないです。
二相コミットを実装したTPモニタのことです。

ちなみにTomcatはJ2EEのごく一部(Webコンテナ)だけを実装しています。
1

スキルアップ/キャリアアップ(JOB@IT)