XMLDB.jp

XMLDB解説
HOME  >  XMLDB解説  >  XMLデータベースとAjaxの熱い関係「第2回:Ajaxを巡る現状」

XMLデータベースとAjaxの熱い関係「第2回:Ajaxを巡る現状」

Webの革新・Ajax

Ajaxとは、Webアプリケーションの革新と言える。それによってもたらされる使い勝手の改善は劇的と言える。より使い勝手の良いサービスを提供することで、より多くの利用者を得ようとするサイトがこぞってAjaxを採用するのは当然と言える。まさに、来るべきして来たAjaxブームと言える。

Ajaxがいかに素晴らしいかは、実際にAjaxで構築されたサービスを使ってみれば分かるだろう。たとえば、Ajaxの代名詞とも言えるGoogle Mapsは、従来のWeb地図のイメージを完全にひっくり返してしまった。スクロールはマウスのドラッグで自由自在に行うことができ、縮尺率もマウスホイールを回すだけで変えられる。そこには、いちいちクリックして次の画面が送られてくるのを待つというストレスの溜まる待ち時間が存在しない。

そして、もう1つ注目すべき点は、誰でも容易にAjaxのサービスを体験できることだろう。もはやインストールという手順は必要ない。主要な最新のWebブラウザを使ってサービスのURLにアクセスすれば、その瞬間からWebアプリケーションはフル稼働して対応してくれるのである。

しかし、技術的な意味でAjaxとは新しいものではない。古い技術を集めて、新しくAjaxという名前を与えたに過ぎない......と考えて良い。典型的なAjaxアプリケーションは、JavaScriptでリッチなユーザーインターフェースを作成し、ページ間を移動することなくXMLHttpRequestオブジェクトでXMLデータを受信し、それをDynamic HTMLでページ内に即座に反映させる。ここで使用される技術の大半は、20世紀が終わる前に既に出現済みだったのである。かつて、Dynamic HTMLの可能性に胸が躍った技術者、XMLが生まれて間もない頃にJavaScriptでXMLデータを処理するプログラムを書いた者達なら、「ああ、あれか......。懐かしいな」と思う技術に他ならない。

Ajaxはどこから来たのか

Ajaxという言葉が最初に登場したのは、2005年2月18日のことである。これは、Jesse James Garrett氏が、Ajax: A New Approach to Web Applications(kentaro / けんたろさんによる和訳)という文書を発表した日である。

この文書はその時点で既に存在していたGoogle Mapsのような新しいタイプのWebアプリケーションをAjaxと呼ぼう......と呼びかけた文書である。ここで特徴として注意する価値があるのは、Ajaxとは理念の提唱ではなく、既に存在するサービスの共通する特徴に付けられたラベルに過ぎないということである。

これは非常に重要な特徴である。従来の多くの画期的新技術は「このようなシステムは素晴らしい成果を出すであろう」という未来形の語りであったのに対して、Ajaxは「既に人気のある優れたシステム」の共通特徴を示す現在進行形の語りなのである。つまり、新技術が出現するごとに繰り返される疑問、「それは本当にあなたが言うように素晴らしい成果を出してくれるのか?」という問い掛けをAjaxに対して行うことに意味はない。現在進行形で素晴らしい成果を出しつつあるサービスが実在するからこそAjaxという言葉が生まれたからである。

Ajaxの構成要素

上記の文書には、Ajaxを構成する技術として、以下のような名前が示されている。

XHTML HTMLの後継言語(XMLによって表現されるHTML)
CSS HTML文書に色やレイアウトの指定を与えるスタイルシート
Document Object Model(DOM)で表示されているHTML文書の内容を動的に変化させる技術/XMLのAPIの1つ
XML ご存じExtensible Markup Language
XSLT XML文書を加工するための言語
XMLHttpRequest HTTPプロトコルによりXML文書やテキストデータをやり取りするオブジェクト
JavaScript 大多数のWebブラウザで標準的に採用されているプログラム言語

いずれも、Webアプリケーションに関わっていれば、一度は耳にしたことのあるありふれた技術ばかりだろう。だが、そのありふれた技術の可能性を信じ、複合して使いこなすことで、Webアプリケーションの使い勝手は大きく向上するのである。

Ajaxの自由

さて、優れたサービスありき......で生まれたAjaxは、当然のことながら「定義に対する縛り」が希薄である。上記のAjaxの構成要素は、あくまで典型的なAjaxアプリケーションで使われることが多い......という理由で列挙されたものに過ぎない。しかも、その文書が書かれた時点での判断であり、サービスは刻一刻と変わっている。上記のリストにある技術を使わなくても良いし、上記のリストにない技術を使っても良い。おおよそ、特別なプラグインなどを要求せず、Webブラウザさえあれば動作可能なサービスであれば、Ajaxと呼びうると言って良いだろう。

そのような自由の一例が、前回紹介したJSONということになる。XMLではプログラムが無駄に大きくなり、扱いにくいということで生まれたJSONだが、既にAjaxで利用される典型的な技術の1つとして認知されている。JSONは上記のリストには含まれていないが、それは全く問題にされていない。問われるのは、あくまでそれによって素晴らしいサービスを作成できるか否かである。

Ajaxの流行はなぜ遅れたのか

ここで絶対に外せないのは、Ajaxの流行はなぜ遅れたのかという理由の確認である。Ajaxが古い技術の寄せ集めに過ぎないのならば、2005年を待つことなく、1999年ぐらいからブームになっていてもおかしくなかったはずである。それにも関わらず、ブームの到来が遅れたのはなぜだろうか。もしも、そこに致命的な問題が隠されていたら、Ajaxブームも砂上の楼閣となってしまうのである。

ここで、日本XMLユーザーグループのXML デザイナー メーリングリストを実際の事例として取り上げてみよう。このコミュニティでは、1999年から2000年頃にかけて、日本国内で、日本人の手によって、Ajaxにかなり近いWebアプリケーションが日常的に生み出されていた。その多くは、XMLとXSLTを使い、JavaScriptを援用しつつ、動的に構成されるページを作り出すWebアプリケーションとして構成されていた。これは、日本XML界の初期段階の絶頂期であったと言えよう。その活発な活動は、海外からも注目されていたほどである。

だが、そのような活動と、現在のAjaxブームの間に関連性はない。かつての絶頂期を支えた人材や遺産が、Ajaxブームの土台になった訳ではないのである。そこには大きな不連続のギャップが存在するのだ。

なぜ、XML デザイナー メーリングリストの絶頂期の活動は途絶えてしまったのだろうか。その理由はいくつも考えられる。しかし、1つだけ絶対的に超えられないハードルとして存在したのがInternet Explorer以外のWebブラウザでは動作しなかった......という事実である。当時、Internet Explorerの最大のライバルとされたWebブラウザはNetscape Navigator(Firefoxの間接的な祖先にあたる)だが、Netscape NavigatorのXML対応は全くと言って良いほど進んでいなかった。それにも関わらず、さほど意味のないアンチMicrosoft的なInternet Explorer嫌いであるとか、Internet Explorerが動作しないOS上でNetscape Navigatorを使うしかない......といった理由から、Netscape Navigatorを使うユーザーはけして無視できない人数に達していた。つまり、実用水準でユーザーに使われるWebによるサービスを作ろうと思ったとき、XML関連の機能は一切使うことができなかったわけである。つまり、いかにAjaxに肉薄するような素晴らしいサービスを作ることができても、それは実用システムに適用することが一切できない「技術的なお遊び」にしかなれなかったのである。技術に対する熱狂が過ぎ去れば、廃れていくのもやむを得ないと言えるだろう。

このような状況は、長い間変化しなかった。Netscape Navigatorを受け継いだMozillaプロジェクトは、XMLに対してさほど大きな優先順位を置いていなかったからだ。しかし、誰もがあの絶頂期の喜びを忘れた頃、Internet Explorerのライバル達のXML対応がやっと整備されてきた。最後の一撃となったのは、FirefoxとOperaにXMLHttpRequestオブジェクトが実装されたという出来事だろう。XMLHttpRequestオブジェクトとは、本来Microsoftという私企業が決めた仕様であり、ライバルが同じものを実装する理由は何もない。しかし、これは便利だと言うことで、ほぼ同様の仕様を持つオブジェクトを実装したことで、突如として「技術的なお遊び」は「幅広く利用可能な実用技術」に変わったと言える。

つまり、Ajaxがブームになるまで長い時間を要したのは、単にInternet Explorerのライバル達の進化が遅すぎた......というただそれだけの理由であり、技術的に致命的な問題点などは見あたらない。そして、ようやく安心してAjaxに取り組むことができる時代が到来したのである。もはや、Ajaxに取り組むのにためらう理由はない!

次回予告

前回はデータベースの現状を、今回はAjaxを巡る現状を見た。次回は、データベースの中で特にスキーマレスXMLデータベースがAjaxと相性に優れる理由を深く追求していくことにしよう。乞うご期待である。


▲このページのTOPへ

  • 無償で使える!XMLDB「NeoCore」
  • サイバーテック求人情報
  • メールマガジン申し込み
  • TEchScore

  • ▲NeoCoreについて記載されています!

  • ▲XMLマスター教則本です。試験対策はこれでばっちり!
Copyright (c) CyberTech corporation ltd. All ights Reserved. | サイバーテックについて | ご利用ガイド