@IT|@IT自分戦略研究所|QA@IT|イベントカレンダー+ログ | ||
Loading
|
@IT > プロダクトレビュー ColdFusion MX |
企画:アットマーク・アイティ 営業企画局 制作:アットマーク・アイティ 編集局 掲載内容有効期限2003月8月18日 |
|
|
Macromedia ColdFusion MX Server(以下ColdFusion MX)は、全世界で開発人口30万人を誇るColdFusionの最新バージョンである。 この製品は3つの大きなトピックをもっている。1つはJ2EEをプラットフォームとするアプリケーション・サーバに刷新されたことだ。これによってColdFusionはオープンな製品に生まれ変わると同時に、J2EEの信頼性や生産性の高さというメリットを享受できることになった。2つ目は、リッチインターネットアプリケーションのプラットフォームを実現しているということだ。HTMLのさまざまな問題を克服するFlashを用いることにより、ユーザーにリッチなインターフェイスを提供することに成功している。3つ目はWebサービスへの対応だ。Webサービスの対応機能を強化するアプリケーション・サーバ製品が増えてきている中、ColdFusion MXはそれらの製品と比較し、非常に優れた特長をもっている。 ここでは、この3つのポイントにターゲットを絞り、ColdFusion MXの機能と可能性について紹介していくことにしよう。
今年のJavaOneで、米国マクロメディアは1つの大きな発表を行った。ColdFusion MX for J2EE(後述)がJava検証プログラムに合格し、Java Verifiedのロゴを取得したというのだ。これは、ColdFusionが従来のC++で書かれたアプリケーション・サーバからJ2EEに完全対応したアプリケーション・サーバとして客観的に認められたことを意味する。 それでは、ColdFusion MXは、J2EEに完全対応することによってどのようなメリットがもたらされたのだろうか。その解説に入る前に、ColdFusion MXには大きく以下の2種類の製品が用意されていることを説明しなければならない。
「Macromedia ColdFusion MX Server」は単独でJ2EEのエンジンをもつ。同製品はJ2EEコンテナに定評あるJavaアプリケーション・サーバ「Macromedia JRun」を採用し、高い信頼性とパフォーマンスを確保している。Javaアプリケーション・サーバをもたないユーザーがColdFusion MXを利用するための製品だ。 もう一方の製品は、J2EEのエンジンをもたない「Macromedia ColdFusion MX for J2EE Application Server」だ。すでにIBM WebSphere Application ServerやBEA WebLogic ServerなどのJavaアプリケーション・サーバを利用してJ2EEの環境を構築しているユーザーが、その環境上にColdFusion MXの機能を付加することができるというものだ。既存のJ2EEプラットフォームにColdFusion MXのメリットをもたらすことができる。 これらの2種類の製品の使い分けは上述の通りだが、ここでわかることは、ColdFusion MXのコアとなる部分は、J2EEコンテナの上で動作する純然たるJavaアプリケーションであるということだ。
■J2EE開発に新たな可能性をもたらす ColdFusion MXでは開発言語にCFML(ColdFusion Markup Language)と呼ばれるHTMLに似たタグ言語を用いる。CFMLは習得に時間がかからず、しかも容易にWebアプリケーションを記述できるという特長をもつ。ColdFusionがこれまで支持されてきた大きな理由の1つだ。 ColdFusion MXは、J2EEという業界標準のプラットフォーム上に、CFMLによる高い生産性をもたらすことができる点がメリットといえる。リスト1とリスト2を比較してほしい。これらのコードはデータベースからSQL文を使い“氏名”を抽出して表示するプログラムだ。JSPで実装する場合に比べて非常にシンプルなコードで同じ機能を実装できるのがおわかりいただけるだろう。
また、これまで蓄積してきたJavaの資産を利用することもできる。具体的には以下の事項が可能になる。
サーブレット/JSPのページとセッションを共有できるほか、CFMLで直接JSPカスタムタグを利用することができる。例えば、Jakarta Projectに蓄積されている抱負なオープンソースの資産を活用できるわけだ。 従来のJ2EE環境にCFMLによる高い生産性を提供すると同時に、従来のJavaの資産を活用し、さらに生産性を高めることができる。補足だが、ColdFusion
MXにはCFMLをライブラリ化して利用できるColdFusionコンポーネント(以下CFC)が採用されている。CFMLとJavaの資産を両方活用することで、J2EE開発の生産性を大きく向上させることが可能になるだろう。
Webアプリケーションは、インターネットを介したBtoB、BtoCビジネスに大きな変革をもたらした。さらに企業内を見ると、Webブラウザをクライアントとするモデルが、クライアント側の管理コストを劇的に削減することに成功した。しかし、もたらしたものはメリットばかりではない。その一方で、HTMLによるユーザーインターフェイスは、クライアント/サーバ時代に比べて著しくユーザビリティを低下させる結果をもたらしてしまった。例えば以下のようなデメリットが挙げられるだろう。
さらに、HTMLとJavaScriptを組み合わせたり、DHTMLを活用してインタラクティブなユーザーインターフェイスを構築する試みも行われてきたが、これらの技術や手法はブラウザに依存する部分が多く、クロスブラウザやクロスプラットフォームの点で問題を抱えていた。 これらの問題を解決するために、いまリッチクライアントへの回帰の必要性が語られるようになってきている。クライアント/サーバに完全に回帰することはできない状況の中で、Webブラウザをクライアントに用いながらもリッチクライアントを実現できる技術としてFlashが注目されている。Flashムービーであれば、いったんクライアント側にロードされた後は、クライアント側のアプリケーションとして稼働する。クライアント/サーバ時代と同様の高いユーザビリティを実現するのは容易だ。しかも、FlashはあらゆるPC環境(最近ではPocket PCやiモードにも採用されている)でクロスプラットフォームを実現している。 ■Flash Remoting機能を内蔵 ColdFusion MXは、Flashをクライアントとして用いるWebアプリケーションを容易に実現するためのFlash Remoting機能を内蔵している。Flash Remotingは、クライアント側にロードされたFlashムービーとサーバサイドのビジネスロジックの間の通信を実現すると同時に、Flashムービーとサーバサイドのビジネスロジックの両方にActionScriptによる処理を記述することを可能にしている。すなわち、ActionScriptを用いることで、Flashのユーザーインターフェイスをコントロールするだけでなく、サーバサイドのビジネスロジックを呼び出して実行することが可能になる。
ところで、FlashムービーとFlash Remotingゲートウェイ間はAMF(Action Messaging Format)というプロトコルで通信を行う。これはMacromediaが独自に開発したプロトコルだ。HTTPやHTTPSのプロトコルを利用し通信することができるため、従来のWeb環境をそのまま利用できる。さらには、バイナリ通信のため、非常に狭い帯域で通信を実現し、非常にスピーディーなレスポンスを期待できる点もメリットとして大きい。 ■非常に高い開発生産性 Macromedia Flash MXと連携すると、Flashの開発を非常に効率よく行うことができる。Flash MXではユーザインターフェースのコンポーネント化をサポートした。さらに、アプリケーション画面を構成するスクロールバー、テキスト入力フィールド、入力ボタン、ラジオボタン、チェックボックス、リストボックス、コンボボックスなどの最も頻繁に使用されるアプリケーションインターフェイスがあらかじめ用意されており、開発効率を向上させると同時に、アプリケーションの操作感に統一性を持たせることができる。 また、Flash MXにはFlashアプリケーションの記述言語であるActionScriptを編集するためのActionScriptエディタが提供されており、開発効率を高めている。コードの一部を入力するだけでパラメータやプロパティ、イベントの候補を表示してくれるコードヒント。ブレイクポイント、コードステップ、関数スタックなどを含む、ソースレベルのスクリプトデバッガの提供で、デバッグ作業を効率よく行うことができる。
ColdFusion MXは、Apache AxisをベースとしたWebサービスのための環境を備えている。Webサービスの利用やWebサービスのパブリッシュのどちらもが容易に実現できるのが大きな特長だ。その容易さは客観的にも評価されている。今年のSeybold GroupのWebサービスに関するリサーチ結果のなかで最も高い得点を獲得し、「Bull's-Eye」とランキングされた。 ColdFusion MXによるWebサービスの利用には2つの方法が用意されている。1つはCFMLのタグを記述して利用する方法、もう1つはCFScriptと呼ばれる、タグを使用しないスクリプトシンタックスから利用する方法だ。 タグとスクリプトシンタックスのそれぞれの方法で、Googleの検索WebサービスAPIを利用して、「Macromedia」というキーワードで日本語のサイトを探すコード(表示部分を除く)を実際に見てみよう。これらのコードを見るだけで、Webサービスの呼び出しがいかに簡単であるかが理解できる。 リスト3は、タグを使ったWebサービスの呼び出しだ。 CFMLのタグからWebサービスを呼び出す方法は、cfinvokeタグと呼ばれる1つのタグを記述するだけの簡単なものだ。
また、スクリプトシンタックスによるWebサービスの呼び出しはリスト4のようになる。CFScriptからWebサービスを呼び出す場合は、CreateObject関数を用いる。
Webサービスのオブジェクトを作成したあとは、通常のオブジェクトへのアクセスと同様にWebサービスのオペレーションを呼び出すことができる。 このように、Webサービスの呼び出しは非常に簡単に行える。WSDLの解析は自動的に行われ、Webサービスを呼び出すために必要なProxyオブジェクトが実行時に自動的に生成される。 また、FlashクライアントからのWebサービスの呼び出しも可能だ。ただしこの場合Flashクライアントから直接Webサービスにアクセスすることはできないので、Flash Remoting経由で呼び出すことになる。 一方、WebサービスのパブリッシュはColdFusionコンポーネントを作成することで行う。Webサービスを意識した特別なコードを書く必要はなく、Webサービスとしてパブリッシュしたいメソッドをリモート属性で定義するだけだ。そうすることによって、WSDLが自動的に生成され、WSDLにその関数がインクルードされる。 ここまでの説明で、ColdFusion MXにおけるWebサービスの実装がいかに容易であるかが理解いただけたと思う。
ColdFusion MXは、ここまで紹介した以外にも他のアプリケーション・サーバにはない、以下のようなさまざまな特長をもっている。
ここまでの説明で、ColdFusion MXは、J2EE環境にこれまでにない高い生産性とリッチなアプリケーションインターフェイス、そしてWebサービスによる新しいアプリケーション間連携の容易な実現をもたらすことができるプラットフォームであることが理解いただけただろう。 次回は、マクロメディアのWebサイトから無償ダウンロードできるColdFusion MXのトライアル版を利用して、簡単なサンプルアプリケーションを動かし、ColdFusion MXのメリットを実際に体験してみよう。
|
|