Flash Builder 4によるデータ中心型開発
Adobe Flash Builder 4は、Flex開発の初心者にもベテランにも、新しい機会を提供します。その1つは、データ中心型のリッチなインターネットアプリケーションの開発です。Flashプラットフォームを構成するプロフェッショナルなツール、オープンソースフレームワーク、ユビキタスなクライアントの組み合わせにより、極めて表現力の高いコンテンツやアプリケーションを提供できます。
ただし、ほとんどのアプリケーションは、プラットフォーム外部に存在するサービスにも依存しています。例えば、企業データベースに記録された情報に対して、レポートやデータビジュアリゼーションの機能を提供するアプリケーションが考えられます。あるいは、既存の注文管理システムやサードパーティ製の支払いサービスに、リッチな電子商取引アプリケーションを統合する必要があるかもしれません。電子メールの送信やデータベースの照会といった簡単なものから、クラウドホステッドサービスやサードパーティAPIとの統合まで、あらゆるアプリケーション機能でサーバーやサービスとの接続が必要となります。
以前のリリースでは、開発者はさまざまな技法を学んで、サーバーやサービスとの接続を自分でコーディングする必要がありました。例えば、SOAP Webサービスに接続するには、ColdFusionコンポーネントやPHPクラスに接続する場合とは異なるMXMLタグが必要でした。また、コードイベントリスナーやフォールトハンドラーなどのコーディングが一般的に必要とされますが、このような概念は従来のWeb開発の世界から来た開発者にはなじみがなく、混乱の元でした。
Flash Builder 4で、アドビはこのような状況を根本的に変え、データ中心型アプリケーションを構築するためのまったく新しい手法を導入しました。初めてFlex開発を行う人でも、データやサービスにすばやく接続し、データをリッチなUIコンポーネントにバインドできます。また、経験豊かなデベロッパーは、高度なデータ指向アプリケーションを構築するための強力な新しい方法を利用できます。
Flash Builder 4によるデータ中心型の開発には、以下の3つの主なステージがあります。
- データ/サービスモデルの定義
- Flexコンポーネントへのサービス操作のバインド
- ページングやデータ管理などの高度なデータ機能の実装
この記事では、単純なデータ管理アプリケーションを構築するための主要な手順を紹介します。データベース内にテーブルがあり、ユーザーがデータの表示と、レコードの追加、更新、削除を実行できるFlexアプリケーションを作成することが目的です。
必要条件
この記事を最大限に活用するには、次のソフトウェアとファイルが必要です。
Flash Builder 4
Flash Builder 4のインストール方法等は、下記の記事で紹介しています。
この記事に必要な予備知識
Flex Builderの使用経験があれば役立ちますが、必須ではありません。ColdFusion、Java、PHPなどのサーバーサイドテクノロジーを理解していることが必要です。
ステップ1:サービスの作成
Adobe Flash Playerで動作するアプリケーションは、データベースと直接にはやり取りできないので、Flexから要求を受け取ってデータベースに渡すサービスが必要です。このサービスはまた、データベースからのデータをFlexが理解できる形式でFlexに返す機能も果たす必要があります。
このリモートサービスを実装する際には、異なるテクノロジーをいくつでも組み合わせて使用できます。Flash Builder 4は、ColdFusion、PHP、Javaで作成したサービスのサポート機能を内蔵しているのに加え、他のテクノロジーをサポートするためのフレームワークも備えています。他の種類のサービスは、SOAP Webサービス、HTTPサービス、またはXMLファイルとして使用できます。
選択肢として最適なのはColdFusionです。あらゆるバックエンドデータベースと通信でき、シンタックスが簡単なので少数のタグを使うだけでデータアクセスサービスを作成できるからです。また、ColdFusionは、AMFというハイパフォーマンスのプロトコルを使用して、標準でFlexアプリケーションとのデータ交換を実行できます。AMFサポートはPHPとJavaに対しても用意されているので、自分にとって最も使いやすく生産性の高いサーバーテクノロジーを使用できます。
ColdFusionでは、Flexアプリケーションが実行する必要があるそれぞれのデータ操作に対して、ColdFusionコンポーネント(CFC)を作成します。これは、テーブルからの全レコードの取得、テーブルへの新規レコードの追加、レコードの削除などです。CFCの関数は、弱い型付けのデータと強い型付けのデータの両方を返すことができます(例えば、よりオブジェクト指向的な手法で開発する場合は、getAllRecords
関数はColdFusionクエリーオブジェクトまたはオブジェクトの配列を返すことができます)。Flexはどちらにも対応できます。また、コンポーネントはColdFusion Builderで生成することも、Flash Builder 4にあるサンプル生成オプションを使用して生成することもできます(図1)。
cffunction
タグのaccess
プロパティがremote
に設定されていることを確認し、コンポーネントをテストします。これで、Flexアプリケーションがサービスを使用できるように設定する準備が整いました。