第15回 3層構造って?

さて、それぞれのツールがそろったところで、Webアプリケーション、すなわちWebDBの構造をちょっと考えてみましょう。いわゆる三層構造ですね。三層っていうくらいだから大きく分けて次の三つの要素からなります。

1.ユーザーが実際に画面を見たり操作したりする
  「ブラウザー」
私が思うに今回はきっとIEに違いない。

2.ブラウザーから情報を受け取って、情報を加工して
  データベースとやり取りをして、ブラウザーに再び
  情報を渡す
  「Webサーバー」
私が思うにPWSをみんないれて使うに違いない。

3.Webサーバーから情報を受けとって格納したり、
  Webサーバーへ格納した情報を渡したりする
  「データベースサーバー」
私が思うにMS-ACCESSをみんないれて使うに違いない。

この三つの関係を良く理解する必要があります。
理解のポイントをいくつか箇条書きにして見ましょう。

a)3者はみんな違う言語世界で生きてる。
これが結構重要だ。1が理解出来る言語はHTMLのみ(もの によってはVB-ScriptだのJava-Scriptだの理解出来るが、 今回は混乱を避けるために使わないことにしておこう)だ し、2が理解出来るのは、今回はPWSなのでVBをベースに したActiveServerPagesである。そして、3が理解出来る のは前にもやったけどSQLだけだ(ただし、今回はMS-ACC ESSなので厳密にはちょっと違うものもある)。
なので、ブラウザに直接SQLだのASPを書いても無駄だし、 いっぽうでデータベースにHTMLを渡しても何も仕事をし てはくれない。

b)1,2の間と、2,3の間でのみ情報の行き来が可能である。
今回はきっと一つの機械上でやってしまうので、情報の やり取りの関係を忘れてしまいがちだが、あくまで、 1-2-3という繋がりでしかやり取りはできない。
ブラウザで直接mdbファイルは見れないし、aspのファイルを ダブルクリックしても見ることはできない。あくまでも ブラウザーはhttpのプロトコルを通してWEBサーバーに アクセスしてそこからHTMLを貰わないと表示の確認は 出来ないのだ。
整理すると、1-2の間は、1→2はフォーム分をつかって 値をWebサーバに渡すという作業。2→1はHTTPを通じて HTMLを渡す作業。
2-3の間については2→3はODBCやADOをつかってSQL文を 渡す作業。3→2はその結果をレコードセットとして変数に 返す作業。
となる。

c)見せるのは1の仕事
1の一番重要な仕事は、入力フォームを表示して値をユーザーに 入力させること(意識させるさせないは別として)と、その値に 応じた結果を表示させることだ。
言い換えれば、それ以外のことはなんにもできない。
ある意味脳味噌の無いパープリンである。

d)考えるのは2の仕事
1から値を受けとってそれに応じて、値をデータベースに渡したり 情報を加工したり、1に渡すHTMLを作ったりと大忙しの部署である。 原則として値を受け取っても、それを覚えることは全くしない。
覚える仕事は、3に押し付け、表示の仕事は1に押し付け、それ以外の いろんな雑務をする部署である。

e)覚えるのは3の仕事
2からSQLを受けとって、ひたすらそれを実行するだけである。 SQLによってものを覚えたり、覚えている情報を渡したりする だけである。

初心者にとってキーになるのは、見れば分かるように2の仕事を どう定義するか、すなわちプログラムをどう組むかという部分である。
上記の関係を意識しながら、実際に次回から簡単なWebDBを作っていこう。----- EXTENDED BODY: