けいブログ

プログラミングとお金の知識を身につけていくブログ

webの歴史:発展編


 

webの歴史:誕生編 - けいブログの続きです。

 

前回の記事ではwebとインターネットがほぼ同じ時期に普及したことと、webが開発された初期からwebを支えている技術についてまとめました。今回の記事ではwebが現在のwebアプリケーションになるまでどのように発展してきたかを整理します。 

 

まずはwebアプリケーションのきっかけとなったCGIから。

CGI

CGIとは

CGIとはCommon Gateway Interfaceの略で、簡単に言うとサーバーとサーバー上で動作するプログラムの連携の仕組みのこと。

 

CGIが誕生するまでは文書を公開し、共有することがwebの役割だった。しかし、表示するページが変わらないと、興味が失われるため徐々に閲覧者が減っていくという問題があった。さらにページを更新させるにも毎回人の手で行わなければならないため、大変な作業になる。

そのような問題点を解決するために、webサーバー上で動作するプログラムを作り、そのプログラムが人間の代わりにコンテンツを作成、変更するというシステムが考えられた。そのサーバーとコンテンツを生成するプログラムとの連携の仕組みがCGI。

 

CGIを使うことで動的なコンテンツを生成するだけでなく、ブラウザからの入力を受け取って、それに応じた処理を行うというアプリケーションも開発できるようになった。

  

問題点

CGIには大規模開発に向いているオブジェクト指向が取り入れられておらず、規模が大きくなるに従ってプログラムの作成が困難になっていったことと、ブラウザからリクエストが届くたびにCGIを通してプロセス(コンピュータ上で動作するプログラムの単位)を起動していたため、アクセスが増えると処理が追いつかなくなるといった問題点があった。

それらの問題点を解決するために生まれたのが、サーブレットという技術。

 

サーブレット

サーブレットとは

サーブレットとはJavaで作られたHTMLなどのコンテンツを作成するためのプログラムのこと。

Javaとはオブジェクト指向の機能をフルサポートしていて、C言語の文法によく似た言語。オブジェクト指向の他にも、特定のOSやハードウェアに依存せずに動作することや、当時重要性が増していたマルチスレッド、セキュリティ、ネットワーク通信が標準でサポートされているといった利点があった。

サーブレットは基本的にCGIと同じ考え方の仕組みであるが、オブジェクト指向によって大規模開発に向いている点と、サーバーと同じプロセスの中でコンテンツを生成するプログラムが動作するため比較的動作が早いという点でCGIより優れている。

 

問題点

サーブレットはJavaのコードの中にHTMLを埋め込むため、処理を行うコードと画面を表示するデザインのコードがごちゃごちゃになり、修正がしにくいという問題点があった。

 

JSP

JSPとは

Java Server Pagesの略で、サーブレットのJavaの中にHTMLを書くという発想を逆転した、HTMLの中にJavaを書くというものである。

ページ全体を動的に変更することは少ないため、ページを構成するHTMLの中で変更する部分をJavaで書いたほうが効率的である。

JSPによってプログラムのコードとデザインのコードを分けて書くことができるため、プログラマーとデザイナーで分業がしやすくなった。

 

問題点

webアプリケーションは規模がどんどん大きくなって、生活を支えるようなwebアプリケーションも開発されるようになってきた。規模が大きくなると、当然コードの量は増えて、完成させるために時間がかかる。さらに開発に関わる人も増えるので、各々が独自のコードを書いてしまうと、処理が合わなかったり、コードが統一されずややこしくなる。

 

 

フレームワーク

フレームワークとは

大規模な開発をしやすくする前提として再利用という考え方がある。よく使う処理をライブラリという部品としてまとめておくことで、誰が利用しても同じコードになり、何度もその処理を書く手間を省くことができるというものである。

再利用できる部品を組み合わせてアプリケーションを開発しやすくするための土台として作られたものがフレームワーク。

フレームワークはあくまで土台なので、変更や追加のコードが必要であるが、フレームワークを使うことで一から処理を書く必要がなくなり、開発者の間でコードが統一されるため、開発のコストを減らすことができる。

 

問題点

フレームワークを利用することでwebアプリケーションの仕組みを理解していなくても書けてしまうので、いざエラーが発生したときに対処が難しいといった問題点がある。なのでフレームワークは元の言語をある程度理解した上で使うべきである。

また新たな課題として、大規模なwebアプリケーションをどのようにして早く高品質に開発できるようにするかということがある。

 

まとめ

  • 何らかの問題点を解決するために新しい技術が開発され、また新しい問題点が生まれる、という繰り返しで技術が進化してきた。
  • 限られた利用から徐々に一般の人にも利用ができるようになり、現在では生活の基盤となるような大規模なwebアプリケーションが開発されるようになった。
  • 利用者が使いやすいだけでなく、開発者にとっても開発がしやすいような技術や環境が整えられてきた

 

参考