ウルシステムズ
主席コンサルタント
中村 正弘

前回の記事では,Web2.0の代表的なキーワードである「永久にベータ版」をシステム構築の観点からとらえ,それが「普通の企業」にもたらす意味を解説した。今回はもう一つの代表的なキーワードである「Ajax」について,その意味や意義をひもといていく。何もAjaxが貢献するのは,コンシューマ向けのWebサイトだけではない。(ITpro)



図2
図1●今後の進展が期待されるWeb2.0の活用エリア

 Ajaxをご存知の方は多いとは思うが,念のためおさらいしておきたい。Ajaxは「Asynchronous JavaScript and XML」の略で,「Google Mapsの実装手段として有名になった技術だ。言葉の持つ意味どおりにこの技術を説明すると,「通信メッセージにXMLを使い,JavaScriptを使ってサーバーと非同期に通信をするための技術」ということになる。

 このAjaxという言葉が初めて使われたのは,Jesse James Garrett氏の「Ajax: A New Approach to Web Applications」という記事である。記事によると,Ajaxを使ったWebアプリケーションの定義は以下の通りだ。

-XHTMLとCSSを使って画面を作る
-DOM(DOMの解説記事),Dynamic HTMLを使って動的に画面を更新する
-データ交換や操作にXMLやXSLT(XSLTの解説記事)を利用する
-XMLHttpRequestオブジェクト(HTTP通信を行うためのJavaScriptクラス)を利用して,非同期にデータを取得する
-上記すべての要素をひも付けるためにJavaScriptを使用する

 これら一連の定義を図2に示した。これらの要素の中で特に重要なのが次の2点である。

図2
図2●Ajaxの仕組み

 ・DOMとDynamic HTMLを使って画面を部分的に,かつ動的に更新する仕組み
 ・XMLHttpRequestオブジェクトによる非同期通信

 Ajaxが備えるこれらの仕組みを使うことで,Google Mapsのように地図をマウスによる操作で自在にスクロールさせるような,これまでのWebアプリケーションでは考えられなかったリッチなユーザー・インタフェースを実現できるのだ。

Webアプリの「縛り」を解き放つ

 なぜ今Ajaxが注目されているのだろうか。現在,業務システムのかなりの部分がWebアプリケーションとして実装されている。その理由は,Webアプリケーションには次のようなメリットがあるからだ。

■理由その1:バージョンアップとそれに伴う配布の問題から解放される

 例えばクライアント/サーバー(C/S)型システムの場合,クライアントPCに専用のソフトウエアをインストールする。アプリケーションをバージョンアップした際に,クライアントPCにソフトをインストールし直す必要がある。クライアントPCが数台から数十台規模ならそれほど大きな手間にはならないが,PCの台数が数百台~数千台規模だったり,全国に拠点が分散したりしている場合は,大変なコストがかかってしまう。特に拠点が分散しているのであれば,すべてのクライアントPCについて一斉にバージョンアップするのは困難だ。このため,サーバー側のアプリケーションは複数のバージョンのクライアント・ソフトをサポートする仕組みが必要になる。

 一方,Webアプリケーションの場合,システムを稼働させるために必要なほぼすべての仕組みがサーバー側に集中している。クライアントPCに必要な条件としては,基本的にはWebブラウザが使えるといった程度だ。このため,クライアントPCが地理的に分散していても,サーバーのソフトウエアをバージョンアップすれば作業が完了する。先に挙げた「インストール問題」や,「複数バージョンのサポート問題」に頭を悩ませる必要はない。

■理由その2:プラットフォームがオープンで,安価に構築できる

 Webアプリケーションを構築するための技術群は,HTTP/HTMLを中心とするオープンな技術を基にしている。また,これらの技術を支えるミドルウエア(HTTPサーバーやアプリケーション・サーバー)はフリーなものから商用の製品まで非常に選択肢が広い。フリーなミドルウエアとはいえ実際の大規模開発で使われている事例もあり,信頼性という面での不安はそれほどない。

 このようなメリットを持つWebアプリケーションではあるが,もちろんデメリットもある。最も大きなデメリットは,Webアプリケーションの使い勝手の悪さだろう。WindowsやMac OSで動作するデスクトップ・アプリケーションと比較すると,HTML/CSS/JavaScriptで構成されるWebアプリケーションは,使い勝手の面でどうしても劣っていた。HTMLで実現できるユーザー・インタフェースは非常に限られていたからだ。

 Webアプリケーションの使い勝手を改善するための技術はAjax以外にもいくつか存在する。リッチ・クライアントを実現するための技術がそれだ。代表的なものについてメリットとデメリットを表1にまとめた。

表1
表1

 Flash/Flex環境は社外など比較的広く提供するのに適している。ほかの技術は環境を限定しやすい企業内システム向けと言えるだろう。ただ,ご覧のように,どの技術にもそれぞれにメリットとデメリットがあり,広く利用されるには至っていない。

 これら技術の欠点を克服するのがAjaxである。Ajaxはブラウザに特別なプラグインをインストールする必要はない。Internet Explorer(IE),FireFox,Safari,Operaなど,主要なブラウザであれば動作する。リッチなインタフェースを実現する技術にAjaxを採用すれば,特別なプラグインなしに,様々なプラットフォームで利用可能な,使い勝手のよいWebアプリケーションを開発することができるのだ。Ajaxが各所で注目されている理由はここにある。

 しばしば「Ajaxさえあれば,デスクトップ・アプリケーションは不要になる」という議論を聞く。筆者に言わせれば,このような議論はナンセンスだ。

 デスクトップ・アプリケーションには,Webアプリケーションにはないメリットがある。Webアプリケーションがデスクトップ/アプリケーションに完全に取って代わることは今後もないだろう。Ajaxは「Webアプリケーションのメリットを維持しつつ,これまで課題であった使い勝手の悪さを克服するための技術である」という“位置付け”を忘れてはならない。

 Webアプリケーションで作られた業務システムは,ユーザーから「使い勝手が良くない」と指摘され続けてきた。メインフレームやC/SシステムをWebアプリケーションに置き換える際,既存のアプリケーションでは実現できていたユーザー・インタフェースをあきらめざるを得なかったケースは多いことだろう。また,現在のインターネット上にはGoogle Maps, 同じくGoogleのメール・サービス「Gmail」といった使い勝手の良いWebアプリケーションが数多く登場している。もはや,「Webアプリケーションだから使い勝手が悪い」という言い訳は通用しない時代に突入している。