Webアプリとは?

Webアプリとは、Webアプリケーションの略称で「データ移動にWebを利用したアプリケーション」と言えます。このページでは、これまでのWebアプリの歩みを振り返りながら、その特徴や開発方法について考察を行いたいと思います。

Webを利用したアプリケーション

Webはデータ通信のために開発された技術です。けれど、ただ決まったデータをやり取りするだけではなく、プログラムが処理したデータを送信したり、時にはプログラム自身をデータとして送信したりすれば、通信されるデータの質が向上します。そのため、サーバーやブラウザにアプリケーションが形成され、それらを一般的にWebアプリケーションと呼ぶようになりました。

Webアプリで何が変わった?

一般に知識や情報は伝達されなければ利用されることはありません。Webにより情報の伝達が容易になり、大量の情報が利用されるようになりました。Webアプリによって、Web(データ通信)とアプリケーション(データ処理)が近接することで、情報のより効率的な伝達が可能になり、ますます大量の情報が利用されるようになりました。

Webアプリの急展開と曖昧さ

アプリケーションがWebを利用するだけでWebアプリと言えるのでしょうか?
昔は、アプリケーションと言えば『デスクトップ環境で実行されるネイティブアプリケーション』を指し、Webアプリと言えばCMSなどの『サーバーアプリケーション』か、gmailのような『ブラウザを実行端末として利用するアプリケーション』を指していたと思います。しかし、現在では、実行環境がパソコンだけではなく、モバイル、タブレットへと広がり、実行環境がネイティブかブラウザかだけではアプリケーションの特性を区別することができなくなりました。
さらに、今日ではネイティブアプリケーションもオフラインではなく、Webを用いたデータ通信を多少なりとも伴い、ネイティブアプリケーションをWeb上で提供したり、サーバー上で仮想化するいわゆるクラウド化も進んでいます。一方で、ブラウザでオフライン実行できるアプリケーションのこともWebアプリと呼んでいたり、ブラウザをOS化してしまう動きさえあります。
Webアプリという言葉の境界にこだわる必要はありませんが、このようにWebアプリという言葉の対象はとても広く曖昧になってきています。

Webアプリの特徴

冒頭で、Webアプリを「データ移動にWebを利用したアプリケーション」と定義しました。従来のアプリケーションのデータは固定的なものが大半でした。一方、WebアプリはWebを用いることで、アプリケーションの扱うデータがオープンで柔軟なものになりました。データを大量に収集することも蓄積して高度な情報処理を加えることも可能です。これがWebアプリの利点であり、価値の中心と言えます。Webアプリの開発においてはこの利点を十分に生かすことが重要となりますが、反面、セキュリティーや倫理面での危険も内包していることを意識しなければなりません。

Webアプリの開発

Webアプリを開発する場合、どのように情報を収集するのか、どのように蓄積し解析するのか、どのように頒布するのか、ということが大きな枠組みになります。多くのWebアプリでは、情報処理をサーバーとユーザー端末の二ヶ所に分けて、端末側はインターフェース処理を行い、サーバー側はデータの収集・蓄積・解析などの高度な情報処理を行うようにします。両者の処理負担は、端末とサーバーの能力や、情報技術の隠蔽化なども考慮して配分します。

端末がパソコンであれば、実行環境は主にブラウザを用います。データをHTMLで、デザインをCSSで、プログラムをJavaScriptで扱うようになっています。ブラウザの互換性という問題もありますが、昔に比べて規格の統一は大きく進み、高度なプラットフォームライブラリも開発されています。HTMLやCSSは、Webのデータ化、アプリケーション化という二つの側面で進化しており、JavaScirptの処理速度や機能拡張も大変なスピードで進んでいます。端末がモバイルやタブレットであれば、端末に搭載されたOSによって、JavaやObjective-Cでの開発が中心になります。

サーバー側では、C#,Java,Perl,Ruby,Python,PHPなどのWeb用の様々な言語でサーバーアプリケーションを開発できます。開発規模、演算速度、ソフト・ライブラリの充実、プログラミング能力などを考慮して言語を選択すれば良いと思います。これらの言語でサービスの提供、情報の収集・蓄積を行い、情報の解析にはC,C++などの演算速度の速い言語を用いると良いと思います。あるいは、分散化の手法を取ることもできます。
サーバーは、簡単なWebサービスを運営するのであれば、レンタルサーバーを借りてサイトを構築するのが効率的です。AmazonやGoogleなどのクラウドサービスを使えば、技術的にも規模的にもかなり自由なWebアプリを構築することができます。ただ、他人のサービスを利用していることに変わりはないので制約は当然あります。高度なサービスを自由に展開するには、自社サーバーの運営が必要になります。

将来の展開

Webという情報通信インフラが整備された現在、分野による適不適はあるにしてもWeb抜きの高度なアプリケーションは考えられなくなりました。それに伴いWebアプリのプラットフォームは日々進化し、標準化され、より高度なサービスを作成することが可能になってきています。各企業間の主導権争いも加熱し、今後ますますWebアプリはソフトウェア開発の中で存在感を高めて行くものと思われます。