4. Flexはエンタープライズやビジネスアプリケーションに向かない
過去数週にわたって筆者は、Adobe Flexで実現されたOracleの最新アプリケーション群について、7回連載のブログシリーズを公開しました。近頃開催されたOracle OpenWorldにて発表されたこれらのアプリケーションには、営業支援ツールから、データベース管理、ビジネスインテリジェンスに至るまで、さまざまなジャンルのものが含まれています。
OracleのFlex使用事例以外にも、InfoQ.comには、エンタープライズアプリケーションでFlexを利用する組織を紹介する記事が掲載されています。また、筆者はInfoQ.comに対し、Workday、SAP、SalesforceおよびBusiness Objectsなどの企業において、Adobe Flexで開発中のエンタープライズアプリケーションが多数存在することも指摘しています。
5. Flexは高価である
無償で利用でき、しかもまもなくオープンソース化されるFlexは、Webおよびデスクトップ向けのリッチインターネットアプリケーション開発を可能にする、デベロッパー用のツールキットです。この無償SDKには、デベロッパーが、どのブラウザやオペレーティングシステムでも同様に動作するRIAを開発するために必要なすべてが含まれています。無償のFlex SDKには、その一環として拡張とスキン変更にも対応でき、しかもアクセシブルな、コンポーネント群が用意されています。これらのコンポーネントの多くは、Flexコンポーネントエクスプローラでチェックできます。
無償のFlex SDKを使用したアプリケーション開発を、より効率的に行えるようにするのが、EclipseのオプションプラグインでもあるFlex Builderです。Flex Builderには統合型のデバッギング、デザインビューおよびコードの自動補完といったさまざまな機能が含まれています。
近頃、Flex Builderの価格体系が改定されました。学生や教員の方はFlex Builderを無償で利用することができます。また、チャートコンポーネントを含まないFlex Builder Standardの価格は、段階的なFlex Builder価格体系の導入にあわせて31,500円まで値下げされています(無料体験版ダウンロードはコチラ)。
Flexアプリケーションのバックエンドインフラを構築するための選択肢には、さまざまなものがあります。高性能なAMFデータ転送プロトコルの恩恵を享受できるよう、Javaベースのアドビ製品であるLiveCycle Data Servicesとそのオープンソース版のBlazeDSが用意されています。また、他のバックエンドシステム用としては、複数のオープンソースプロジェクトが存在します。AMFを利用すれば、データをテキスト形式(SOAP、RESTfulなど)に変換し、転送後、データへと再変換するといった無駄な処理が省けます。また、AMFの場合、転送処理時に型情報を維持しておくことも可能です。
AMFと他のテキストベースのシリアライズテクノロジの性能比較については、筆者が開発したCensus RIA Benchmarkアプリケーションを参照してください。
6. Flexアプリケーションには特殊なサーバが必要である
Flexアプリケーションは、あらゆるWebサーバ、アプリケーションサーバおよびデータベースサーバ上で実行でき、むしろ、クライアント/サーバアプリケーションのような存在です。FlexアプリケーションのロジックはFlash Player内のクライアント側で実行されるため、サーバとの通信手段が必要となります。Flexを、ご利用中のインフラへと接続するための選択肢は多数あります。例えば、バックエンドのデータやサービスを特別なライブラリを用意することなくRESTful、XMLまたはSOAPで公開し、Flexアプリケーションでこれらのデータを手軽に利用することができます。
なお、バイナリ形式のシリアライゼーションプロトコルのAMFを使用する場合は、Webアプリケーションに追加ライブラリを実装しなければならないことがあります。AMFはXMLやJSONと同類のシリアライゼーションテクノロジであり、数多く用意されているバックエンドSOA(サービス指向アーキテクチャ)との通信手段の1つとして利用することができます。
7. Flexを習得するのは大変である
InfoQ.comコミュニティで活動するLeftie Friele氏は、InfoQ.com掲載の「Who is Using Flex?」記事の中で、自社におけるFlex習得経験の詳細を次のように語っています。
我々が立ち上げたスタートアップカンパニーのEzmoでは、登場初期からFlexを使用していますが、このフレームワークには大変満足しています。
FlexやFlashの予備知識がなかったにもかかわらず、アプリケーションを2週間弱で構築することができました。また、JavaとFlexの統合も非常に簡単であったため、Flexにはスムーズに入っていくことができました。
ツールサポートの面でも、Flex Builderに大変満足しています。Flex Builderは使い慣れたEclipse同様の開発環境を提供するので、問題なく開発作業に打ち込めます。欠けているものがあるとすれば、総合的な統合のためのより良いツールと、Flexアプリケーション開発時におけるMavenへのより優れたプラグインぐらいでしょう。
筆者は、Flex初心者がスムーズに開発作業を始められるよう、実際のFlexアプリケーション開発状況を収録したスクリーンキャストを用意しています。また、Adobe Developer Connectionには、FlexおよびJavaの使用法に関して数多くの記事が掲載されています(Flex初心者のためのCodeZine特集ページはコチラ)。