Webアプリケーションサーバの利点は、「システムの分散化」と、Webブラウザをクライアントとして使用できる点などがあげられる。
システムの分散化
現在でも多く使われているシステムの形態として、「クライアント/サーバモデル」というものがある。この場合、中間にアプリケーションサーバは介在せず、「クライアント」と「データストア」の2者が直接接続され、データのやりとりを行なっている。先ほど述べたようなセキュリティや認証、そしてビジネスロジックの処理は、クライアントソフトやデータストア側が持っていて、データストアから情報を出してきたりしまい込んだりするのはクライアントソフトやデータストア側に用意されたソフトウェアが行なっていたわけだ。これでうまくいくのなら、まったくそれで問題はない。ユーザー側からデータストアへの接続も2点間ですめば、アプリケーションサーバを介した場合よりもパフォーマンスも出る場合もあるだろう。
クライアント/サーバモデルのデメリット
ただ、クライアント/サーバモデルには、デメリットもある。たとえば
- システムを変更するのに手間がかかる
- Webショップなどの、インターネットにおける展開ができない
まず、1のシステム変更に手間がかかるというデメリットだが、たとえば、
ビジネスロジックに変更が加えられた場合、全ユーザーに新しいビジネスロジックを搭載したクライアントソフトを配布/アップデートしたり、データストレージ側にもロジック変更が必要になるだろう。こうした手間は膨大だ。
そしてデメリット2だが、基本的に情報を表示するだけのWebブラウザそのものを、ビジネスロジックを実行するクライアントソフトとして使用することは不可能となる。つまり、インターネットにおけるWebショップのような展開は難しいのである。
クライアントサーバモデルと多階層モデル
そこで、クライアントソフトとデータストアの中間にアプリケーションサーバを存在させる。そして、
- クライアントソフトは情報の入出力(ユーザーインターフェイス)のみを担当
- アプリケーションサーバがビジネスロジックを実装
という形態、つまり「多階層モデル」にすれば、ロジックに変更があった場合も、アプリケーションサーバのみに変更を加えて、システムそのものを新しくできる。
クライアントサーバモデルと多階層モデル |
Webアプリケーションサーバの最大の利点
そして、アプリケーションサーバが情報を渡す先を、独自のクライアントソフトではなくWebサーバにし、Webサーバが渡された情報をもとにHTMLを発信、Webブラウザからの入力をアプリケーションサーバに渡す仕組みにすれば、Webブラウザをクライアントとして使用可能になる。そうすれば、
- インターネットにおける展開も可能になる
- Webブラウザが動作する環境ならば、どのようなマシンからでも、システムにアクセスできるようになる
これがWebアプリケーションサーバの最大の利点といえる。