Ajaxをユーザビリティ技術とだけ捉えるべきではない

最近は猫も杓子もといった具合にもてはやされているAjaxだが、私はAjaxをユーザビリティ向上技術とだけ捉えるべきではないと考えているのである。

AjaxはWeb2.0を実現する技術の1つとして、中心的な位置にある。
Web2.0の特徴の1つに、優れたユーザビリティというものがある。Ajaxは真に有効な手段となる。
しかし、Ajaxがもたらすメリットは、それだけではない。

自分でAjaxアプリケーションを作っていて感じたのだが、サーバ側のプログラムは、実に単純なものになる。
サーバ側は、データベースからデータを取得して若干の加工をして、クライアントに送信(返答)する。
クライアント側は、そのデータを受信し、画面を作る。
何気に、クラサバチックな動きになる。どうやら、Ajaxアプリケーションとは、そういうものになるようだ。(故に、VisualBasicライクにWebシステムを作ろうと考える.netとは相性が良いに違いない。)

サーバ側はデータ処理に専念し、プレゼンテーションについてはすべてクライアントに任せることが出来る。
これほど、綺麗に高凝集性を実現することは、レガシーWebシステムでは難しかった。
いくら、Webフレームワークを用いてロジックとプレゼンテーションの分離を図っても、所詮はサーバ側でやるのだ。完全には分離しづらくなる。

さらに、Ajaxにおけるクライアント~サーバ間通信の主役はXMLである。
RESTを使ったとすれば、URLパラメータとして引数を渡し、結果がXMLとして返ってくる。
もう少し発展させて、行き返りともにXMLにしてメッセージング的にやりたいところかもしれない。
いずれにせよ、結合度が疎になっている。

Ajaxによって、データの表現形式がXMLになることによるメリットは大きい。
XMLであれば、クライアントから処理を依頼されたサーバが、別のサーバからXMLデータを取得して、何らかの加工を行って返す…といった、サービスの連鎖によるシステムが実現できるようになる。

「ロジックとプレゼンテーションの分離(高凝集性)」、「XMLデータを媒介とする疎結合性」、「XMLデータを中心にしたサービスの連鎖」…。
このようなシステムの構造は、非常に理想的なものではないか。
元々はユーザビリティ向上技術であるAjaxをトリガーにして、こうしたシステム構造の変化が起こり得る。
しかも、既に実現可能な技術なのだ。

この記事を書いた人

井上 研一

株式会社ビビンコ代表取締役、ITエンジニア/経済産業省推進資格ITコーディネータ。AI・IoTに強いITコーディネータとして活動。画像認識モデルを活用したアプリや、生成AIを業務に組み込むためのサービス「Gen2Go」の開発などを行っている。近著に「使ってわかった AWSのAI」、「ワトソンで体感する人工知能」。日本全国でセミナー・研修講師としての登壇も多数。