「Technologyは、既存のTechnologyの問題点を解決することで誕生する。」
プログラミング研修中に講師の方がおっしゃっていた言葉だ。僕は今、2ヶ月にも及ぶ新入社員を対象としたプログラミング研修中である。研修ではプログラミグ言語の"Java(ジャバ)"を中心としたLAMP(ランプ)を学習している(正確にはLAM。Pは学ばないようだ)。LAMPとは、OSの"Linux(リナックス)"、サーバーの"Apache(アパッチ)"、データベースの"MySQL(マイ・エス・キュー・エル)、スクリプト言語であるPerl(パール)、PHP(ピー・エイチ・ピー)、Python(パイソン)を総称とした頭文字からなる造語である。これらは全てオープンソースのソフトウェア群であり、数多くのIT企業がLAMPを用いたシステム構築を行っている。その中で僕は現在、Linux上でSQLデータベースにアクセスし、データベース上のデータを基にApache上で動作するプログラミング開発を行っている。
特定のプラットフォームに依存せずに、ウェブサーバーから外部プログラムを呼び出す"CGI(Common Gateway Interface)"という仕組みがある。CGIプログラムはウェブサーバーがクライアント側(ユーザー)からのリクエストに応じて起動するようになっている。サーバーはCGIからプログラムを呼び出さなければならなく、サーバーの負担を軽減させるために誕生したのがJava Servletである
"Java Servlet(ジャバ・サーブレット)"はウェブページを記述するHTML文書を動的に生成する同じくサーバー上で動作するプログラムである。こちらもクライアント側でJavaプログラムを稼動させるためのクライアントサイド技術である。ショッピングサイトやオンラインバンキングで用いられるケースが多く、Java言語で記述される。サーブレットの実行環境としてWebコンテナが存在し、現在では"Apache Tomcat(アパッチ・トムキャット)"などオープンソースソフトウェアとの相性がいいのが特徴だ。
そのサーブレットの技術を延長として開発されたのが"JSP(Java Server Pages)"である。JSPはサーブレットを自動生成して動作してくれる。サーブレットとJSPは異なる技術ではあるが、これらは組み合わせて使うことができ、JSPもサーブレットの一部として扱われることが多い。JSPはサーブレットのようにソースを修正したらコンパイルする必要性がなく、修正されたソースがリアルタイムで反映されるため、修正する度にコンパイルする手間が省けるという特徴がある。
CGIからJava Servletへ。Java ServletからJSPへと進化を遂げたJavaプログラムを稼動させるためのクライアントサイド・プログラム。このように、既存の技術の問題点を補うように次々と新技術が誕生してきている。今後はそれぞれの特徴にあわせたプログラム設計を行い、分担して作業することが求められるようだ。
関連記事:



