webアプリケーションとは、インターネットなどのネットワークを通して利用するアプリケーションソフトウェアの総称であり、webブラウザ上で操作する動的コンテンツやアプリケーションを指すことが多いですが、広い意味では、オリジナルのインターフェースを持ち、クライアントソフトウェアからネットワークを通じて利用するようなものも含みます。
webアプリケーションはブラウザ上(クライアントサイド)で動作するプログラムと、webサーバー上(サーバーサイド)で動作するプログラムが連携することによって動作しますが、主となる処理(プログラム)の実行をクライアント側で実行する「クライアントサイド・アプリケーション」と、サーバー側でプログラムを実行する「サーバーサイド・アプリケーション」に大別されます。
webアプリケーション開発で必要なこと
webアプリケーションは、サーバーとクライアント間の通信をHTTP(またはHTTPS)で行います。
HTTP(HTTPS)は現在の状態などのデータ保持を行わないプロトコルであるため、何らかの方法によって、サーバー・クライアント間で現在の情報を共有・同期しておく必要があります。
この状態(セッション)管理については、Cookieなどを用いて行われることが多かったのですが、HTML5から実装されたWeb Storage機能により、Cookieを使わないwebアプリケーションが増えてきています。
また、初期のwebアプリケーションでは、動的にHTMLを生成して、クライアント側に送信する程度であり、ユーザーインターフェースとしてはシンプルかつ質素なものでした。
しかし、Adobe FlashやHTML5といった技術が生まれたことにより、美しい見栄えや豊富な機能・操作性を持つwebアプリケーションを作ることが可能になりました。
そのため、webアプリケーションにおいて、より高いデザイン性や豊富なユーザビリティが求められるようになってきています。
webアプリケーション開発の環境とは
従来型のアプリケーション開発方式では、webアプリケーションを開発する際には、インターフェースのデザインやユーザビリティを設計・開発するwebデザイナーと、クライアントサイドやサーバーサイドで動作するプログラムを設計・開発するwebプログラマーの二つの役割が必要となり、さらには、クライアントサイドとサーバーサイドで使用する技術や言語が違うため、それぞれを担当するプログラマーも必要となります。
そのため、開発環境としては、webデザインのための環境、クライアントサイドプログラミングのための環境、サーバーサイドプログラミグのための環境、がそれぞれ別々に必要となっていました。
しかし、近年の超高速開発ツールの進化により、これらwebデザイン・クライアントサイド・サーバーサイドの開発は、一つの環境で行えるようになってきています。