Webアプリ開発事始 第4回

TCP/IPネットワークとWebアプリケーションの基礎(4)
~実行環境と開発環境
長谷川裕行
有限会社 手國堂

サーバーサイド・アプリケーション

前項の"1.サーバー側で実行する――サーバーサイド・アプリケーション"に掲げた、Webサーバーに保存されたアプリケーションをWebサーバー上で実行し、その結果をWebブラウザに表示する形態です。


- 表示の基本はタグの記述 -

前回、WebサーバーのHTMLデータに基づき、クライアントのブラウザが情報を表示するまでの仕組みを説明しました。HTMLデータはタグで表示方法を指定します。例えば、HTMLファイル内で以下のように記述されていたとします。

  <CENTER><H2>●Webサーバーでアプリを動かすには?</H2></CENTER>

この記述をブラウザが読み込むと、ウィンドウ内に

  ●Webサーバーでアプリを動かすには?

という一文が、見出し用の大きな文字で画面左右方向の中央に表示されます。
また、以下のように記述されていたとします。

  <IMG src="whatsnew.gif">

この記述をブラウザが読み込むと、ウィンドウ内に“whatsnew.gif”という名前の画像ファイルの内容(画像そのもの)が表示されます。

HTMLのタグは画面表示命令であり、ブラウザはWebサーバーからその命令を記述したデータを受け取って、それに従った表示を行っているだけです。


- HTMLを自動生成する -

一般的なWebページでは、Webサーバーの側に保存されているHTMLファイルが、直接ブラウザに送られます。これはどのようなブラウザが表示しても、その結果は同じになります。ブラウザは、Webサーバーから送られてきたHTMLデータを受け取り、それに従って文字や画像を表示するだけです。

サーバーサイド・アプリケーションでは、Webサーバー上で実行されるアプリケーションが、自動的にHTMLデータを生成します。これによって、ユーザーの操作によって得られた異なる結果を、動的にクライアントで表示できます。
例えば、以下のようなプログラムがWebサーバーで稼働しているとします。

  Webサーバーに内蔵されている時計から現在の時刻を取り出し、
  <CENTER><H2>現在の時刻はxx時xx分xx秒です</H2></CENTER>

という文字列を生成して送信する

ようになっていれば、ユーザーがそのWebサーバーに接続した時刻によって、表示される情報は変わります。
このように、サーバーサイド・アプリケーションでは、Webサーバー上で稼働するアプリケーションが、クライアントに送るHTMLデータを自動生成することで、動的な処理を行えるようになっています。


- データ入力と処理結果の表示 -

ブラウザには、ユーザーにデータの入力を促し、それをWebサーバーに送信する仕組みが備わっています。これと上述のHTML生成機能を組み合わせれば、

  ユーザーの入力を受け取って何らかの処理を行い
  処理結果をユーザーのブラウザに表示する

という仕組みが作れます。
例えば、ブラウザの側で「氏名」と「生年月日」を入力できるようになっており、それを受け取ったWebサーバーのプログラムがシステムから取得した年月日と入力された「生年月日」から現在の年齢を計算して、以下のような表示を行うことも可能です。

  文化織江 さんは、現在26歳です。

Webサーバーは、接続しているクライアントごとに個別に通信を行うため、この表示を行うHTMLデータは、元のデータを送信したクライアントにしか返されません。Webサーバーにプログラムを配置すれば、たくさんのユーザーが個別にそのプログラムを実行できるのです。


- CGI -

上述のような仕組みを利用した機能の典型がCGIです。CGIは、Webサーバーがクライアントから受け取ったデータをプログラムに送り、プログラムの処理結果を受け取ってクライアントに返す――という機能を提供します。

CGIでは、サーバーOSで稼働するプログラムを作るための言語なら、基本的にどれでも利用できるという利点があります。LinuxなどUNIX系のOSなら、C言語の他にPerlなどのスクリプト言語を使うのが一般的です。Windowsでは、Visual C++の他に、なんとVisual BasicでCGIを作ることも可能です。


図2:CGIの仕組み


- Javaサーブレット -

Javaは、後述するクライアントサイド・アプリケーション用のプログラムであるアプレットを開発するための言語として一般化しました。が、最近では、Javaで作成したプログラムをサーバー側で動かすJavaサーブレットが注目されています。

サーブレット・エンジンと呼ばれる機構がサーバー側で稼働し、プログラムを実行します。データベース接続機能JDBCや各種コンポーネントなどを使って、業務処理を簡単に開発できる環境が整ってきました。


- Active Server Pages -

Windows 2000やWindows XPで使えるIIS(Internet Information Services)では、ASP(Active Server Pages)という機能が使えます※3。ASPは、VBスクリプトとCGI双方の長所を活かしたWebアプリケーションの実行環境です。

Webサーバーの拡張機能として働き、VBスクリプトによるプログラムを記述したファイルを読み込んでHTMLデータを生成し、ブラウザに送信します。

処理の構造はCGIと似ていますが、ActiveXを使ってブラウザ上で様々なプログラムを実行できます。また、データベースの扱いも容易です。

※3 .netでは、さらに機能を強化したASP+となります。また、Visual Studio .netではWebアプリケーションのインターフェイスデザインも、ある程度GUI化されます


- 目次 -
HTMLの前と後
HTMLとタグ
サーバーで動くかクライアントで動くか
サーバーサイド・アプリケーション
表示の基本はタグの記述
HTMLを自動生成する
データ入力と処理結果の表示
CGI
Javaサーブレット
Active Server Pages
クライアントサイド・アプリケーション
業務処理はサーバーサイドで
データベースとサーバーサイド・アプリケーション
あとがき

Copyright © MESCIUS inc. All rights reserved.