まさ@ブログ書き込み中

まさ@ブログ書き込み中

まさの旅、英語、プログラミング、プライベートについて、色々記録しています。

Webがこんなに広まったワケ【Web技術入門2-2】

 

さて、前回はWWWの誕生とその発展について見てきました。

 

今回はWebとそのための技術が「作成した文書を世界に公開し、共有する」のレベルからもう一段上の現在のWebアプリケーションにつながる流れについてまとめます。

 

 

CGI

 

今までの紹介したWebとそのための技術のおかげで、用意したコンテンツを世界中に共有することが出来るようになりましたが、それじゃ閲覧者の興味を引き続けることはできません。

 

そのWebを利用していた企業・個人は自分たちの情報を見て欲しいわけですから、これは解決すべき問題です。

 

でも、Webクライアントが一々新しいコンテンツをWebで共有し続けるととても大変。

 

そこで考えられたのが、コンピュータによってコンテンツにちょっとした変化を加えるための仕組み、CGI

 

具体的には、ちょっとした変化を加えるためにWebサーバ上で動作するプログラムを作成し、そのプログラムが人間の代わりにコンテンツ(HTML)を生成させる。その際にCGIWebサーバとコンテンツを生成するプログラムを連携させるのです。

 

というわけで、CGIを利用した動的(予め用意されたものではない、プログラムによって生成された)コンテンツの生成の流れをまとめると、こんな感じ。

 

Webクライアント→(要求)→Webサーバ→CGI→プログラム→CGI→Webサーバ→(応答)→Webクライアント

 

ちなみに、Webサーバ側で主に利用された言語はPerl。大規模なものや高速性が求められるプログラムではC言語も利用されたそうな。

 

これによって検索サイト、掲示板システム、ショッピングサイトなどが実現されるようになり、便利なWebアプリケーションをきっかけに多くの人がウェブを利用するようになりました。

 

今Webが世界中の人々が利用する巨大なメディアになったのを支えたのが、CGIという技術だったのです。

 

 

サーブレットJSPフレームワークと、便利になっていく技術

 

サーブレット

CGIはすごいなー、と思っていたら、新たな問題が生じました。それは、

 

  1. Webアプリに求められる機能が大規模・複雑化して、Perlでプログラムを作成するのが大変になってきた
  2. Webブラウザからリクエストが届くたびにCGIを通してプロセス(動作するプログラム)を一々起動してたら、処理が追いつかなくなってきた

 

という問題です。

 

それを解決するために、Perlとは違いオブジェクト指向で当時広く使用されていたC言語によく似た文法のJavaが登場しました。

 

ただ、Java自体はWebアプリケーションのために開発された言語ではなかったので、JavaEE(Java Enterprise Edition)の一部として「サーブレット(Servlet)」が提供されました。まあ、PerlC言語Java版ですわ。

 

その魅力は、Javaオブジェクト指向と、Webサーバと同じプロセス(動作するプログラム)の中でコンテンツを生成するプログラムが動作するということです。

 

CGIとは違って新たなプロセスを毎回起動する必要がないのです!

 

また、Javaは特定のOSやハードウェアに依存せずに動作するという特徴があります。

JavaVMと呼ばれる仮想的なコンピュータの言語にコンパイルして実行するからです。

 

これは開発者にとってはありがたいことで、Webサーバに利用されるOSに開発環境を合わせる必要がなくなったのです。

 

JSP

ただそんなサーブレットも、少し問題が。。

 

それは、Javaコードの中にHTMLを埋め込むサーブレットでは、

Webデザインの変更が行われるたびに複雑なコードを変えるのが面倒なのです。

 

また、サーブレットによって出力されるHTMLが予想しにくいという問題もありました。

 

そこで、JSPJava Server Pages)という技術が考え出されました。

それまさに逆転の発想。

 

Javaコードの中にHTMLを埋め込むのではなく、HTMLの中にJavaコードを埋め込むのです。

 

動的なコンテンツと言ってもページ全体を毎回変更することは稀で、その一部のみを変えることが多い。そこに着目したわけですね。

 

Webアプリケーションフレームワーク

サーブレットJSP・・・。どんどんWebアプリケーション開発のための技術は便利になっていきました。

 

しかし、Webアプリケーションの大半が大規模になっていくにつれて、さらに便利な技術が必要になりました。

 

そこで作られたのがフレームワーク。「再利用」という発想が有効なソフトウェアでは、よく利用される処理を「ライブラリ」というプログラム部品で整備されていましたが、その考え方を推し進めることで生まれました。

 

Ruby on rails, JQueryもそうなのかなと思っています。

 

 

まとめ

いやあ、本当にすごい進化の歴史があったのですね。

 

Webは静的なコンテンツを共有するシンプルなものから始まり、

動的なコンテンツの必要性によってCGIが生まれ、その問題点を補うようにサーブレットJSP→ライブラリ→フレームワークと発展していったのですな。

 

なるへそって感じです。

 

では今回はここまで。

 

(50min)

広告を非表示にする