Webアプリケーションの種類と、その開発環境を紹介しておきましょう。
- クライアントサイドとサーバーサイド -
Webアプリケーションには、プログラム自体をサーバーからクライアントに送信してクライアント側で実行するものと、サーバーの側でプログラムを実行してクライアントにその結果を返すものとがあります。
前者をクライアントサイド・アプリケーション、後者をサーバーサイド・アプリケーションといいます。
・ |
クライアントサイド・アプリケーション
HTMLを介してWebサーバー上に保存されたプログラムをクライアントに送信し、クライアントのCPUで実行します。
Webサーバーはプログラムを送信するだけなので、負担が軽くなるという利点があります。その半面、アプリケーションの処理速度はクライアントの能力に依存するという欠点を抱えます。
|
・ |
サーバーサイド・アプリケーション
クライアントからの要求に従って、プログラムをWebサーバーのメモリに読み込みWebサーバーのCPUで実行して、処理結果がHTMLを介してクライアントに送信されます。
クライアントは、処理結果となるHTMLファイルを受け取るだけとなるため、クライアントによって処理速度にばらつきが出ることはほとんどありませんが、Webサーバーに負荷が集中します。 |
図4:クライアントサイドとサーバーサイド
- クライアントサイド・アプリケーション -
クライアントサイド・アプリケーションは、アプレットとスクリプトに分けられます。
・ |
アプレット
コンパイル型のJava言語を使ったプログラムです。Webブラウザに組み込まれたJava仮想マシン(Java VM)と呼ばれる機能を使って実行されます。
|
・ |
スクリプト
Java言語をベースとしたJavaScriptと、VBをベースにしたVBScriptがあります。どちらもソースコードをHTMLファイル中に埋め込み、クライアント側のブラウザがそれを読み取って実行します。
処理速度の面ではアプレットより遅くなりますが、コンパイルしなくてよいため、開発や保守は容易です。 |
- サーバーサイド・アプリケーション -
サーバーサイド・アプリケーションでは、様々な言語を利用できるCGIとWindows2000系OSで利用できるASPが有名ですが、この1~2年でJava言語を使ったサーブレットが有力になってきました。
・ |
CGI
Common Gateway Interfaceの略です。Webサーバーから送られてきたデータを別のプログラムで処理させ、処理結果をWebサーバーに送り返す――という働きによって、「保存されているHTMLファイルをクライアントに送信する」というWebサーバーの基本機能を補います。
CGIはWebサーバーとデータ処理プログラムとの通路(gateway)であり、データはそれぞれ専用に開発したプログラムが処理します。プログラムを開発するための言語には、以下のようなものがあります。
Perl:UNIXのスクリプト言語として有名ですが、Windowsでも(Perlインタプリタをインストールすれば)利用可能です。掲示板やアクセスカウンターなどの簡単な処理に、よく使われています。
PHP:データベースの扱いに長けたスクリプト言語で、Webサーバーソフトにスクリプト・エンジンを組み込み、高速な処理を実現できるようになっています。
C、C++:今さら説明するまでもないでしょう。汎用のコンパイル型言語です。
プログラムは、Webサーバーの稼働するOS上で動作する普通のプログラムです。従って、(多少手間はかかりますが)WindowsでVBを使って作ることもできます。
|
・ |
ASP
Active Server Pagesの略です。WindowsのWebサーバー機能IIS(Internet Information Server)にこの機能が組み込まれており、VBScriptまたはJScript(Javaスクリプト)を使ってプログラムを作成します。
データベースの扱いとユーザーインターフェイスの構築機能に優れており、ActiveXコンポーネントを使った高度な処理も可能です。
|
・ |
サーブレット
Java言語で記述しコンパイルしたプログラムを、Webサーバーの側で実行する機能です。データベースとの接続を担うJDBC(Java DataBase Connectivity)、インターフェイスの整形を行うJSP(JavaServer Pages)、コンポーネントプログラミングを実現するEJB(Enterprise JavaBeans)など、業務アプリケーションを開発するための環境も整っています。 |
今回は、Webアプリケーション開発の前段階として、インターネットとWebの関係を中心に、総論的な内容を取り上げました。
VBによる開発では、その動作基盤であるWindowsについてさえ深く知る必要はありませんでした。しかしWebアプリケーションの開発では、TCP/IPプロトコルなどの動作基盤、記述言語であるHTML、SQLなどデータベースの扱い…と、様々な知識を総動員しなければなりません。
いずれ、もっと簡単で効率的なプログラミング手法が確立されるでしょうが、今はまだ過渡期なのです。今のうちに基礎的な知識をしっかり身に付けておきましょう。
|
|
|