AJAX

2月17日の日記にGoogle Mapの話([/bellin/20050217:title])で、JavaScriptを駆使したインタフェイスを使っていると書きました。
そのときは、ソースを見てとても手書きで書くものではないなと思っていたのですが、どうやら、JavaScriptを使ったAjaxというWebアプリの作り方(Approach)を使っているいうことです。
また、AJAXを実現するためのhttp://oss.metaparadigm.com/jsonrpc/というフレームワークもあるとのこと。

Ajaxについては、以下のサイトで解説されています。
http://www.adaptivepath.com/publications/essays/archives/000385.php

Ajaxとは、"Asynchronous Javascript + XML"の略で、主要なテクノロジーの組み合わせによって実現されています。
XHTMLCSSを使った標準をベースにしたプレゼンテーション
・DOM(Document Object Model)を使った動的な表示
XMLXSLTを使ったデータのやり取りと操作。
XMLHttpRequestJavaScriptを使ったデータの非同期な取得

実際に、Google マップGmailorkut.comを使ってみれば、Ajaxが使い易いユーザビリティを実現しているのが実感できるだろう。

XMLを使っているかどうかはわからないが、サイボウズなどもJavaScriptを利用した動的な画面書き換えを使っており、Ajaxに近いことをしていると思われる。

最近Thinクライアントの操作性の低さから、リッチクライアントの必要性が高まってきているが、AjaxによってWebアプリが見直されるのではないだろうか。
リッチクライアントと呼ばれるほとんどの技術がクライアントにインストールを必要とするのに対し、Ajaxのようにシンプルかつ標準技術による方法は、非常にスマートに感じられる。

Ajaxに近い技術として、NexaWebが思い当たる。
NexaWebは、JavaAppletによって動的かつリッチな画面を実現するリッチクライアント技術である。JDK1.1.x相当のMSJVMもサポートするため、ほとんどの環境で追加のプラグインなしで動作する。画面定義には、XUL(次バージョンではXULに近い言語)を使い、AppletからXULSessionのデータをやり取りすることで、インタラクティブな画面を可能にしている。

ただ、Appletを使わないAjaxの方が、スマートな方法に思える。

Ajaxで問題なのは、特殊なキー操作(ファンクションキーの利用等)や帳票にどのように対応するのかということと、開発生産性がよいかどうかといったところだろう。

とにかく、Ajaxが今後のWebアプリケーションの作り方に大きく影響を与えることは間違いないと思う。