ウェブアプリケーション
ウェブアプリケーション(Web application)は、ウェブの機能や特徴を利用したアプリケーションソフトウェアのことである。
ウェブアプリケーションの一例としては、ウィキペディアなどで使われているウィキやブログ、電子掲示板、銀行のインターネットバンキング、証券会社のオンライントレード、電子商店街などネット販売のショッピングカートなどを挙げることができる。
ウェブアプリケーションに対して、ローカルのデスクトップ環境上で動作するアプリケーションは、デスクトップアプリケーションやスタンドアロンアプリケーションと呼ばれる。
目次 |
特徴 [編集]
サーバとクライアントの間の通信手段としては、アプリケーションプロトコルの1つであるHTTPを用いる。HTTPはステートレスなプロトコルであるため、HTTPだけでは状態の管理は行えない。しかし、大半のウェブアプリケーションではセッションの管理が必要であるため、Cookieなどを用いてサーバとクライアント間でセッションIDの受け渡しをし、セッションの管理を行っている。
当初、クライアント側にはHTML文書を送信するだけであったが、近年ではJavaScriptを用いたAjaxやAdobe FlashやHTML5などを用いることにより、リッチなユーザインタフェースを備えたウェブアプリケーションも多くなっている。これらはリッチインターネットアプリケーションとも呼ばれている。
歴史 [編集]
当初、ウェブは、Webサーバ上に配置したHTMLファイルをウェブブラウザなどのユーザエージェントに返却することしかできなかったが、CGIの登場によりユーザからの入力に応じて、HTML文書などのリソースを動的に生成し、返却することができるようになった。このことにより様々なウェブアプリケーションを構築できるようになった。
現在では、ウェブアプリケーションを構築するための技術としてはCGI以外に、Java ServletなどのJava EEやApache HTTP Server用のモジュールとしてPHPで記述されたプログラムを実行するmod_php[1]、マイクロソフトが開発したActive Server Pagesなどが存在する。
開発 [編集]
PerlやPHPやRubyといったWebサーバ上で動作するスクリプト言語を利用して開発することが多いが、高速化のためにC言語や、低級言語を使うこともある。また、最近は、基幹系業務や金融システムなどには、セキュリティに強く[要出典]ミッションクリティカル領域への適用を想定して設計されているJava EEを用いるケースも増えている。
クライアント上で動作するJavaScriptを上記のものと併用することで、動的な表現や入力チェック等が行えるためWebサーバの負担を軽減ができる。しかし入力チェックの際にクライアント側がJavaScriptをオフにしたりブックマークレットを使用すること等がある事から、Webサーバの入力チェックをなくすことはできない。
メリットとデメリット [編集]
メリット [編集]
- 更新が容易である
- Webサーバ上のファイルを更新するだけで、クライアントはHTTPアクセスするだけで最新のウェブアプリケーションを利用できる。
- クライアント側にアプリケーションのインストールが不要
- Webサーバで処理を行って出力結果のファイルをクライアント側(ウェブブラウザ)で表示するだけなのでクライアントはウェブアプリケーションをインストールする必要はない。
- ウェブブラウザがあれば環境に依存しない
- 各クライアント側の環境が違っていてもウェブブラウザがあればクロスプラットフォームに対応できる。
デメリット [編集]
- Webサーバの障害発生時は利用できないこともある
- Webサーバにファイルがあり処理も行うので、利用しようとアクセスしても使えない。
- 通信環境が使えない場所では利用できない
- Webサーバと通信するためスタンドアロンでは利用できない。
- ウェブブラウザによっては描写や動作が異なる
- ウェブブラウザのバグや設計によって違いが出るためである。特にクライアントが古いウェブブラウザを利用している場合、新しい技術(HTML5や新規格のJavaScript等)に対応していないために適切に動作しないことがある。
関連項目 [編集]
- Webアプリケーションフレームワーク
- Webサーバ
- ウェブブラウザ
- HTML
- HTTP
- リッチインターネットアプリケーション
- 多層アーキテクチャ
- SaaS - アプリケーションサービスプロバイダ(ASP)
- ウェブユーザーインターフェース