サーバサイドとは?

サーバ上で動作するプログラムをサーバサイドプログラムと言います。
先ず初めに、サーバとクライアントの連携の様子について概略を抑えておきましょう。

サーバとクライアント

第8章の通信プログラムの作成で体験した様に、ポートを用意して接続を待っているマシンがサーバ、そして、其処に接続を要求するマシンがクライアントです。
サーバに対して、沢山のクライアントから情報が提供され、其の結果を沢山のクライアントが閲覧出来る、当にインターネット時代の情報収集術と言えるでしょう。

従来のクライアント・サーバシステム

従来のクライアント・サーバシステムでは、サーバとクライアントの間で、専用の通信プロトコルを決め、専用のソフトウェアや、時には、専用のハードウェアを用意していました。
其の為、変更が生じた場合には、サーバ側クライアント側両方の、全てのマシンのソフトウェアを入れ替えなければなりませんでした。

HTMLによるホームページの閲覧

インターネットでホームページを閲覧するには、ホームページのアドレスを指定して該当するファイルを受信し、此をブラウザで解析して自分のブラウザ画面に表示すると言う手順を踏みます。
インターネットでは、初期の頃からHTMLで記述されたファイルが使われて来ました。

上の手順を行っているソフトウェアをWebサーバと言います。

サーバサイドプログラミング

HTMLは、決まった内容の情報しか表示出来ません。
其処で、サーバ側に、状況に応じてHTMLを自動生成するプログラムを用意しました。
此のプログラムは、其の時の環境やデータによって、異なったHTMLを作成出来るのです。
此の様なプログラムをサーバサイドプログラミングと言います。
クライアントが受け取るのは、従来と同じHTMLです。
其の為、サーバ側で行われている事はクライアント側には関係有りません。
普通のブラウザで表示出来ます。
データ処理の全てをサーバ側が引き継いでいるので、改版が必要な時は、サーバ側だけの修正で良いのです。

CGI(Common Gateway Interface)

CGIは、サーバサイドプログラミングの手法の1つで、Perl言語等で書かれたプログラムをサーバ側で動かしてHTMLを動的に生成する物です。
クライアントからのリクエストが有ると、サーバ側では該当するプログラムをロードし、実行します。
其の結果、得られたHTMLをレスポンスとしてクライアント(此処では「クライアントA」とします)に返します。
CGIプログラムの実行中に、他のクライアント(「クライアントB」としましょう)から同じプログラムがリクエストされたとします。
サーバは「クライアントB」の為に、同じプログラムをロードし、「クライアントA」と「クライアントB」は別々に実行され、それぞれのクライアント用に生成されたHTMLを返します。
CGIでは、ページが要求する度にプログラムがロードされる為、其の度にロード時間が掛かり、又、メモリも消費します。
其の反面、クライアント毎に、別々に動作するので安全性は高まります。

プログラムをロードする時間等、実行を始める前に必要な時間をオーバーヘッドと言います。

サーブレット・JSP・JavaBeans

サーバサイドプログラミングをJavaで記述した物をサーブレットと言います。
サーブレットはスレッドで動作するので、複数のクライアントが同じページを要求しても、1度しかプログラムはロードされず、クライアント毎にスレッドが生成されます。
サーブレットはCGIと同様、データの処理を行った結果に基付いて、HTMLを作成するのが目的です。
其処で、簡単にHTMLを生成出来る言語、JSP(Java Server Pages)が開発されました。
JSPは、HTMLの記述の中に「Javaの命令を埋め込んだ」、そんなイメージの言語です。
又、「データ」をオブジェクト化する為に設計する方法をJavaBeansと言い、作成したクラスをBeanと言います。
JavaBeansは「コーヒー豆」の名前の通り、小さな部品ですが、サーバアプリケーションにとっては重要な部品です。
そして、JavaBeansはデータを扱うので、其の後ろ盾となるデータベースとの連携も重要です。
此の様にサーバサイドアプリケーションは、サーブレットとJSP、其れにJavaBeansの絶妙な連携で実現されるのです。

戻る