作成日: 2008年12月3日 | |
作成者:(株)エスアイヤ | 代表取締役 河野俊之 CTO 木戸間 周平 チーフシステムエンジニア 江上 新一 |
最終更新日: 2008年12月3日 |
今回は、Ajax、Flex、AIRといったよりリッチなアプリケーション環境とColdFusionの連携について解説します。
ColdFusion8ではAjaxとの連携をサポートするようになり、Ajaxを用いたデータ連携やリッチなUI表現といったことが容易に実現できるようになりました。この連携機能により、ColdFusionコンポーネント(以降CFC)内で定義されたメソッドをJavascriptから呼び出すことができるため、既存のビジネスロジックを生かし、少ない工数でAjaxアプリケーションを作るといったことを実現することができます。また、ColdFusion8で追加されたいくつかのタグを利用することで、Ajaxを利用したリッチインターフェイスを非常に簡単に構築することができます。本来、Ajaxを使ったインターフェイスの構築はとても大変なものです。多くの場合、prototype.jsなどのAjaxフレームワークを使いリッチインターフェイスを構築することになりますが、Ajaxフレームワークにも様々なものがあるため、用途に応じて最適なものを選ぶ必要があります。しかし、ColdFusionのタグを利用したリッチインターフェイスの構築では、Ajaxのフレームワークすら意識することなく、なじみのあるCFからはじまるタグでリッチインターフェイスを使ったアプリケーションを構築することが出来ます。
Adobe FlexはAdobe FlashをベースとしたRIA開発のフレームワークです。アニメーション制作ツールとしての位置づけから始まったFlashでの開発に比べ、Flexでの開発は一般的な開発者にとって馴染みやすいコード主体のものになっています。ColdFusionとFlexの連携ではFlashとの連携と同様にColdFusionに備わったRemotingゲートウェイを使うことで非常に簡単に高度なデータ連携を行うことができます。
Adobe Integrated Runtime(以降AIR)はクロスプラットフォームのアプリケーション実行環境です。HTML、Javascript、Flash、Flex、など既存のWeb関連の技術を使ってデスクトップアプリケーションを作成できるといった特徴を持ち、サーバーサイドとの連携にもHTTP、Webサービス、Flash Remoting、ソケット通信など様々な通信手段を利用できる、現在とても注目されている技術です。AIRとColdFusionの連携でもFlexやFlashとの連携と同じように、Flash Remotingを利用した連携を行えるため、ColdFusionからはAIRアプリケーションとの連携ということを特別意識することなく、開発を行うことができます。
ColdFusion8に追加されたタグを使うことで非常に簡単にリッチインターフェイスを実現できるということはすでに説明しました。ではどれほど簡単にリッチインターフェイスを実現できるのでしょうか、以下にColdFusionでAjaxを使ったリッチインターフェイスを実現するための簡単なコードを紹介します。
<cfwindow draggable="true” name="cfwindowObj” title="cfwindow”>
ウィンドウの中身
</cfwindow>
<input type=“button” name=“windowOpen” value=“Window Open” onclick=“javascript:ColdFusion.Window.show(’cfwindowObj’)”>
このコードは、ボタンを押すとページ中にポップアップウィンドウを表示するという動作をするものでcfwindowタグを使って書かれています。動作そのものはとても単純なものですが、cfwindowタグを使わずに書いた場合、このような単純な動作をさせるためであっても、もっと多くのコードを書かなくてはなりません。もちろん、Ajaxフレームワークを使う事でコード量を減らすことはできるでしょうが、それでも上記のコードよりコード量を減らすことは難しいのではないでしょうか。また、このコードでは、開発者がJavascriptを使っていることをほとんど意識する必要がないということが分かっていただけたかと思います。
今回はよりリッチなアプリケーション開発として非常に注目されているAjax、Flex、AIRといったアーキテクチャとColdFusionの連携について解説してきました。前回のFlashとの連携というものを含め、ColdFusionでは連携するアーキテクチャを意識することなく、どのアーキテクチャと連携する場合でも同じような方法で、とても簡単にそして強力に連携できることが分かっていただけたかと思います。このような異なるアーキテクチャとの強力な連携機能を使うことで、一つのビジネスロジックから様々な展開をしていけるのもColdFusionの優れたところといえるのかもしれません。
今回扱った「Ajax、Flex、AIRとの連携」に関しては、ColdFusion 8プロフェッショナルガイドのChapter5にて、多くのサンプルコードを含めて詳しく解説しています。こちらも是非ご覧頂ければと思います。