XMLDB解説
HOME  >  XMLDB解説  >  XMLデータベースとAjaxの熱い関係「第7回:Ajax+XML DBで実現するWebカタログ」

XMLデータベースとAjaxの熱い関係「第7回:Ajax+XML DBで実現するWebカタログ」

Webカタログへの要求

前回、利用者の立場から見た、Webカタログに求められる機能性について説明した。たとえば、製品の種類によって記録された項目の種類が異なるため、検索条件の指定は検索対象のカテゴリが変われば、ガラッと入れ替えねばならない。しかも、それを素早く行う必要がある。また、新製品もすぐに検索できる即応性、迅速に試行錯誤する使い勝手の良さとリアクションの素早さも求められる。それに加えて、Webブラウザだけで使いたい......という要求も重なる。

これらの要求は、NeoCoreXMSに代表されるスキーマレスXMLデータベースと、Ajaxがあれば満たすことができる。以下、そのことを説明していこう。

多様性への対応

Ajaxは、ユーザーインターフェースをJavaScriptプログラムによって動的に作り出す。そのため、通信を行うことなく、画面の入力フォームの姿を即座に変えることができる。たとえば、検索カテゴリを一般のダイオードから発光ダイオードに切り替えた瞬間に、色を指定する項目が追加表示されるであるとか、角材からパイプにカテゴリを切り替えると、縦、横、高さの3つから、直径と長さの2つの入力項目に差し替えられる......といった処理を容易に実現することができ、しかもリアクションは高速である。

そして、サーバとの通信は非同期で行うことができるため、通信中でも操作を続けることができる。たとえば、検索クエリをサーバに送信して結果を待っている時間でも、検索とは関係ない機能を使い続けることができる。それにより、イライラと待たされるという印象を軽減し、より気持ちよい使い勝手を実現できる。

それだけではない。Ajaxは、基本的にページ間を移動することなく、様々な情報やユーザーインターフェースを提供する技術である。それゆえに、検索情報の入力ページ、検索結果の一覧ページ、個々の製品の情報ページを分けないという選択も容易である。その結果、検索結果一覧や個々の製品の情報を見ながら検索条件を変え、再検索を実行するような素早い試行錯誤を実現することもできる。

新規情報への対応

既に説明した通り、新しい項目を持つ製品をカタログに登録するという作業は、サーバ側ではスキーマレスXMLデータベースを用いることで容易に実現できる。問題はクライアント側である。Webブラウザ上で実行されるJavaScirptプログラムが無修正のまま新しい情報を扱えればよいが、場合によってはプログラムのバージョンアップが必要とされるかもしれない。

しかし、このようなバージョンアップに際して、Ajaxは無類の強さを発揮する。なんと、利用者にはバージョンアップのための手間を全く掛けさせない......という驚くべき機能性を、ごく当たり前のように発揮してくれるのである。

なぜそのようなことができるのだろうか?Ajaxのプログラムとは、見かけ上HTMLの文書そのものである。JavaScriptプログラムとは、その文書の中に埋め込まれているか、あるいはその文章が参照されるURL上に存在する。それらは一度読み込まれると、Webブラウザは自分自身のキャッシュに格納する。そして、再び要求されると、無駄な転送を避けるためにキャッシュされた文書を再利用する。しかし、サーバ上により新しいファイルがあれば、キャッシュを新しいファイルで置き換える。これにより、プログラムがバージョンアップしていれば、自動的にそれが実行されるようになる。

ここで特に注目すべき点は、このようなメカニズムは日常的に当たり前のように動作していて、一般の利用者は意識することもない......ということである。

そうです。Ajaxでは、バージョンアップという作業は、意識することも無いぐらい当たり前で簡単な作業になっているのである。

AjaxとXMLデータベースを併用すべき決定的理由

さて、Webカタログという切り口で、AjaxとスキーマレスXMLデータベースという組み合わせにたどり着いたわけだが、この2つを組み合わせるべき決定的理由は他にある。

Ajaxの最後の"x"とは、XMLの"X"である。つまり、通信用のデータ記述手段としてXMLデータベースを利用することが想定されている。そして、XMLデータベースが格納するデータ形式もXMLである。ということは、XMLデータベースから取り出したXMLデータをそのまま送信できることを意味する。RDBMS等を使った場合、「XMLに変換する」という手順が必要とされるが、XMLデータベースを使えばそのような手間そのものが消滅する。

しかし、話はまだ終わらない。実はAjaxの世界では、XMLよりもシンプルなJSON(JavaScript Object Notation)というデータ交換フォーマットが多く使われるようになっている。ならば、AjaxとXMLデータベースとの相性の良さは過去になりつつあるのかというと、そうではない。このJSONという形式もまた、XMLと同様に、スキーマレスかつ不定形の基本構造を記述する技術である。それゆえに、縦横2次元の表を基本とするRDBMSとの相性の悪さは、XMLと全く変わらない。逆に、データの基本構造が良く似ているため、JSONデータは容易にXMLに変換することができる。つまり、Ajaxプログラムがやり取りするJSONデータを格納するデータベースは......と考えたとき、やはりXMLデータベースが最善だという結論になるわけである。

ちなみに、JSONにはスキーマの概念が存在しないので、最もJSONにマッチするデータベースとは、スキーマレスXMLデータベースになる。

今後、Ajaxが広まるにつれ、Ajax+スキーマレスXMLデータベースという相性の良いコンビが使われるケースが増えていくだろう。それは、静的なWebコンテンツ+RDBMSという定番システム構成に取って変わっていくことになるだろう。


▲このページのTOPへ

  • XMLとは?IT初心者でもすぐわかるXML超入門
  • 無償で使える!XMLDB「NeoCore」
  • サイバーテック求人情報
  • メールマガジン申し込み
  • TEchScore

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

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