Web は元来簡単な文書の共有システムとして設計された。公開する文書はデスクトップで作成されていたのだけれど、もっと速く、手軽に、誰もが参加できる形での文書共有も求められるようになっていった。
それならいっそ、情報の入力から文書の作成、公開まで Web だけで完結出来れば尚よい。
そうすればややこしい専門知識がなくても誰もが気軽に参加できる。そうなれば Web に蓄積される情報も増える。そうすれば Web は活性化し、それらが呼び込む情報は指数関数的に増えていく。そうなることで Web の有用性もそれと比例して増していく。現在主流の Twitter 等のソーシャルネットワークサービスなどは、このシステムなしにはなかった。
Web アプリケーションのデスクトップアプリケーションに対するアドバンテージ
元来アプリケーションはデスクトップで使用するものだったし、今でもデスクトップが主流であることに変わりない。
Web 上でワンストップで情報を公開できる仕組みが進化していくのは当然の事として、なぜ元々 Web での一般公開を目的としていない情報までも Web アプリケーションを利用して作成する流れが産まれているのだろう。
そこには当然 Web を利用することでしか得られないメリットがあり、それは以下のようなものが考えられる。
- 遠距離間でリアルタイムでコミュニケーションを行いながらの共同作業
- シーンを問わないファイルへのアクセス、(限定されたメンバーへの)公開
- アプリケーション間での通信
これらはデスクトップアプリでも可能な事もある。けれどデスクトップアプリでこれらを行う場合にも、裏では HTTP 通信が行われる事が多く、そうであれば Web サーバが介在している。つまり、ユーザーインターフェースはデスクトップであっても、プログラムインターフェースでは Web を利用しているのだから Web アプリケーションという仕組みなしには成立しないということになる。
遠距離間でリアルタイムでコミュニケーションを行いながらの共同作業
単純に Web 会議と言ったほうが通りがいいのかもしれない。コンピュータに搭載されたマイクとカメラを使い、音声と映像をやり取りしながら、一つの文書ファイル等を画面上で共有し、相互にリアルタイムで情報交換を行いながらの編集を行う。デスクトップアプリだけでは不可能だったコラボレーションが可能になり、物理的な移動に伴う時間的、金銭的コストも削減できる。
シーンを問わないファイルへのアクセス、(限定されたメンバーへの)公開
これもクラウドといったほうが話が早いこともある。いつでもどこでも Web に繋がる環境があれば同じファイルにアクセス可能で、編集した場合にも結果は瞬時に反映される。データを一元管理することによって重複作業に伴うコスト削減、人為的ミスの防止になる。また、同じファイルを複数のメンバーで共有すれば、編集結果も瞬時に共有できるので、情報共有のタイムラグに伴う混乱を防ぐという効果もある。
アプリケーション間での通信
極単純な例として、以前ぼくがつくった「Google Maps JavaScript API V3 をつかった飲食店検索インターフェース」で説明してみる。
これは Google Maps API とリクルートのグルメサーチ API を利用している。
処理の流れとしては
- 飲食店検索インターフェース(以下検索アプリ)から住所の情報を Google Maps API へ送信
- Google Maps API が住所の情報から緯度経度を計算し、検索アプリに返す
- 検索アプリは受け取った緯度経度の情報をグルメサーチ API に送信
- グルメサーチ API は緯度経度の情報をもとに周辺の店舗情報を検索し、結果を検索アプリに返す
- 検索アプリはグルメサーチ API の検索結果を Google Maps API に送信
- Google Maps API は店舗情報から地図の情報を作成し、アプリに返す
- 検索アプリは Google Maps API の計算結果をブラウザ上にレンダリング
という流れに成る。
複数のアプリケーションの機能を相互に利用することで、通常いちから作成した場合には考えられないほど、圧倒的低コストでのアプリケーション開発が可能になる。
Web アプリケーションの可能性
デスクトップアプリケーションだけでは不可能だった様々な事が Web アプリケーションの利用で可能になる。当然リスクもあるけれど、それを補ってなお有り余る可能性に満ちている。
最近では HTML5 やその周辺の新たな技術で Web はアプリケーションプラットフォームになる、といわれている。けれど HTML5 は変化の基盤ではあるけれど、当然それだけで何かが変わる訳じゃあない。また、それらは新しいコンセプトというよりも、既に起こっている変化に対応する部分の方が多い。
それに、今でも Web はアプリケーションプラットフォームという一面を持っている。これが新技術によってさらに進化するのであれば、それはどのような進化だろうか。
また、去年公開された Google+ から予測する Google のアプリケーション群の利用の変化や OAuth によるアプリケーションをまたいだ個人の識別。これらによって起こる変化はどのようなものが考えられるだろう。