1. HOME »
  2. ITA Issue

ITA Issue Article

ソーシャルブックマークに登録 : Yahoo!ブックマークに登録 はてなブックマークに登録 del.icio.usに登録 newsing it!に登録 Buzzurlにブックマーク livedoorクリップに登録 Choix!にブックマーク イザ!ブックマーク

print 印刷用ページの表示

ITA Issue 連載 : アーキテクトなら知っておきたい

企業システムにおけるAjax活用のポイント

第4回 第4回:Ajaxアプリケーション開発を支援するライブラリ

Ajaxという言葉が世に出てから3年以上が経過したが、その間に多くのAjax用ライブラリが公開され、現在では150種類以上のライブラリが存在すると言われる。短期間で随分多くのライブラリが登場したものだが、そもそもAjaxアプリケーションの開発において、そうしたライブラリを使う必要はあるのだろうか。結論を言えば、Ajaxを使って業務アプリケーションを開発するのなら、ライブラリの使用は必須である。そこで今回は、Ajaxアプリケーションのアーキテクチャを示したうえで、その中で使われる主なAjaxライブラリを紹介する。

2008年7月14日更新

text ●  清野 克行

Ajaxアプリケーションの実現を支えるライブラリ

図1:Ajaxアプリケーションのアーキテクチャとライブラリの使用領域

 図1に示すのは、Ajaxアプリケーションのアーキテクチャである。これまでにも述べたように、Ajaxアプリケーションは、Webベースのクライアント/サーバ・アーキテクチャで動作する。その大きな特徴は、WebブラウザのJavaScriptエンジンにより、クライアント側でプログラムの処理が行える点と、クライアント/サーバ間で非同期通信を行う点である。図中、点線の左側に位置するのはクライアントとなるWebブラウザ、右側に位置するのはサーバだ。

 こうしたアーキテクチャをとるAjaxアプリケーションの開発、特にAjaxを用いた業務アプリケーションの開発では、開発の効率化やアプリケーションの品質向上のために、Ajaxライブラリと呼ばれるライブラリの利用が必須となる。Ajaxライブラリは、機能分野によっていくつかのカテゴリーに分けられる。図1にも記したが、そのカテゴリーは大きく分けて次の3つとなる。

(1)サーバ・リモーティング機能を提供するもの
(2)JavaScriptの言語機能を拡張するもの
(3)ユーザー・インタフェース(UI)表現を豊かにするもの

 このうち、「(1)サーバ・リモーティング機能を提供するもの」については、次回に「DWR(Direct Web Remoting)」を題材にして詳しく解説する予定なので、今回は「(2)JavaScriptの言語機能を拡張するもの」、「(3)UI表現を豊かにするもの」について見ていくことにしたい。

JavaScriptの言語機能を拡張するライブラリ

 JavaScriptの言語機能を拡張するライブラリは、図1のAjaxエンジン全体をカバーするものであり、適用範囲が広い。Ajaxが登場する以前のJavaScriptは、その用途が画面上での簡単な表示操作など狭い範囲に限られていたこともあり、言語機能も低く見られがちであった。その多くは誤解によるものだったのだが、他の言語、例えばJavaなどと比べて見劣りする部分があるのも確かだ。そこで、劣ると見られる言語機能を拡張/補強するようなライブラリが提供されるようになった。その代表格がPrototype.jsだ。

Prototype.js

 「Prototype.js」は、おそらくAjaxライブラリの中でも最もよく使われているものの1つだろう。いわばAjax開発における定番ライブラリだ。このPrototype.jsによってJavaScriptの言語機能を拡張し、さらに同ライブラリのAjaxフレームワークを使うことにより、Ajaxアプリケーション開発の生産性を飛躍的に高めることが可能になる。

 また、Ajaxアプリケーション開発で最もやっかいなクロス・ブラウザ対策(複数種類のWebブラウザにおける動作保証)の面で見ても、主要なWebブラウザでの動作が保証されており、開発者にとっては大きな助けとなる。

 こうした理由から、Prototype.jsは他のAjaxライブラリに組み込まれて使われることが多い。つまり、他のAjaxライブラリの開発において、開発生産性や保守性を高める目的でPrototype.jsが使われているわけだ。

MochiKit

 言語機能の拡張を主なねらいとするライブラリには、Prototype.jsのほかにもう1つ、「MochiKit」がある。MochiKitの開発者はPythonコミュニティに属しており、言語仕様もPythonとよく似ている。これは言語機能を拡張するライブラリというよりも、「言語書式を変換するライブラリ」と呼んだほうがよいかもしれない。

 Ajaxアプリケーションのクライアント側のプログラミング言語は、サーバ側とは異なりJavaScriptのみでほかに選択の余地はないが、JavaScriptの言語仕様に違和感を持つような方は、MochiKitの利用を検討してみてもよいかもしれない。もちろん、MochiKitでも、クロス・ブラウザ対策がとられている。

ページの先頭へ戻る