第2回 Webサーバーとその周辺

しばらくは地味な話をやって行きます。本当は、「Web-DBではこんなこともできる!あんなこともできる!どうだ!すごいだろう!!」みたいな内容のほうが、Web-DBをやる気になるのかもしれませんが、とりあえず、このシリーズは作るための技術話に特化します。
これも理系大学出身でコンピューターでの構造解析の鬼だった人間が書いているということで勘弁してください。
与太話はこの辺で、今日の本題に。

前回、Web-DBに必要な5つの仕組みを紹介しました。もう一度書きますと、

 1・当然、情報を発信するためのWebサーバー。
 2・お客の情報を蓄積していくデータベース。
 3・Webサーバー上の履歴をデータベースに渡すプログラム。
 4・データベースから情報を引き出して分析するプログラム。
 5・分析結果に応じて必要なHTML(ホームページ)を
   吐き出すプログラム。

このうち、1、3、5は非常に密接に関わってきます。いわゆるWebサーバー回りの技術ということになります。この三つをWebサーバーを中心に大雑把に解説していきます。まず、そもそも、Webサーバーとはなんぞや?という話からですが、いわゆるホームページを配信するサーバーです。そのソフトを一般にはhttpdなんていう風に呼んだりすることもあります。基本的には、インターネットを経由してブラウザーが「HTMLを頂戴!」って言ったらHTMLをそのブラウザーに送ってあげる仕組みのことです。そういう意味では、普通のWebサーバーは、出来合いの食品が並ぶ、スーパーみたいなもので、あるものしかもらうことが出来ません。ここまでの機能を実現してくれるのが、いわゆる厳密なWebサーバーです。

「でも、これじゃぁ、データベースを反映させて、お客ごとに合ったページを出すってのは出来ないじゃない?」と思ったあなた。正解です。これだけじゃぁ出来ないのです。じゃぁ、何が出来ないといけないかというと、食べ物の比喩が続きますが、メニューの注文を受け取り、注文を受けるたびに食事を作る機能が必要なります。

料理の世界で言えば、厨房と注文を受け取るウェイターですね。カウンターだけのバーとかだと、この厨房と注文を受ける人は一人で良いわけですが。

この注文取りと厨房にあたる機能がWebサーバーに追加されていなければなりません。これの最も代表的なものがCGIといわれるものです。厳密には、このCGI自身は、注文取りと料理して出来たものをお客の渡すのが仕事なので、ウエイターでしかないのですが、CGIの裏側でC言語だのPerlだので組んだプログラムを実行することが出来ます。すなわち、厨房の機能にあたる部分なわけです。要するに、Web-DBをやるにはこういうサーバー側で処理を行う厨房が必要だということです。

では実際にこうしたことをやるものにはどういうものがあるのか紹介しましょう。Webサーバーとして代表的なソフトを三つ紹介しますApache,iPlanet Web Server,IIS(PWS)本当はこれ以外にもたくさんありますが、商売の世界ではこの3種類でほぼ全てです。

どれもCGIは使えるのですが、CGIは作るのが難しいとか、スピードが遅いとかいろいろ欠陥も指摘されています。(とはいえ、現状でのシェアはNo1です)で、 CGI以外のCGIのような、注文受けと厨房に当たる機能にそれぞれ特徴があります。

まず、ApacheではPHPといわれるものが今ブームです。特にWeb-DBを構築しやすいので人気です。ちなみに、このApacheとかPHPはただで入手可能です。このWebもPHPで動いてます。

iPlanet Web Server(旧名NetscapeEnterpriseServer)では、NSAPIが特徴的でしょうか。NSAPIはC言語を使うので、開発は敷居が高いですが、ものすごく高速です。

最後のIISですが、これは、WindowsNT上でしか動かないなかなか 癖のあるWebサーバーです。最も特徴があるのは、ASP(ActiveServerPages)という非常に 紛らわしい名前のサーバーサイドスクリプトです。それでも非常に強力なメリットが あり、VB-Script,JavaScript,Perlなどほとんどの言語で好きなように開発が出来るというのが作り手側としては最大のメリットです。

あと、ここ1、2年ではやって来てるのが、サーバーサイドで動くJavaであるJavaServletやJSPと言われる建前上プラットフォームに依存しないものです。こうした共通的な開発手法もこれからは視野に入れていくべきでしょう。

どれで作るにしても本質的にはまったく同じです。後は自分にとって市場使い安いものを選択すればいいでしょう。ちなみに私は、「MS製品は嫌いだ!」と豪語しながら IIS+ASPという組み合わせを愛用しています。こういう、特徴のあるWebサーバーがあるという程度の理解でいいでしょう。ちなみにWebサーバーの話題は、データベースと連携するところが出てくるまでしばらくお休みになります。 さて、次回はようやくデータベースについてのお話です。データベースについての簡単な概説をお話したいと思います。ここからが、Web-DBのDBたる内容になってくるはずです。----- EXTENDED BODY: