Flexフレームワークを活用したRIAの実行環境
実際にRIAをFlexフレームワークで実現した場合の実行環境には、いくつかのパターンが考えられます。最もシンプルなシステムであれば、Webサーバに対して情報の送受信を行い、Flexフレームワークを使って開発したFlashアプリケーションをWebブラウザ上で実行するという形になります。この時サーバサイドでは特別な動作は必要なく、従来と同様にデータベースなどを活用し、クエリによって各種操作を行い、サービスのインターフェースを提供するという構造のままでFlashアプリケーションから利用できることとなります。
FlexフレームワークにはAMF3というデータ通信の機能が用意されています。このAMF3は以前は仕様が非公開だったため、Seasarプロジェクトでは独自にAMFを解析してJavaによるサーバサイドアプリケーションとFlexフレームワークの通信を実現するS2Flex 2の開発が行われていました。しかし2008年にAdobeがAMF3の仕様をオープン化し、さらにJava EEで通信を行うためのコンポーネントも公開したことで、サーバとの連携が容易に行えるようになりました。
またオープン化を受けて、これまでサーバサイドアプリケーション開発で多く利用されていたPHPやRuby、さらには.NET用にも通信を行うためのコンポーネントが有志によって開発され、サーバサイドに大きな変更を加えることなく、Flexフレームワークを使ったリッチなUIに載せ替えるといったことが可能になったのです。
さらに高度な連携はAdobe製品との組み合わせで
RIAが従来のサーバサイドアプリケーションと大きく異なるのは、クライアント側が受信したデータをアプリケーション上で保持/更新が行える点です。このため、アプリケーションとサーバの両方でデータが異なるケースがあり、データの同期について常に注意を払う必要があります。もちろんJavaをはじめとした従来のサーバサイドの言語で同期機能をスクラッチで記述することもできます。
しかしこの部分に手間をかけるよりも、実際のRIA開発ではUIや操作性といった部分により注力したいものです。そこで考えられる最も有用な選択肢は、上の図にあるようにサーバ側のアプリケーションの実行環境にAdobeの製品である「LiveCycle」や、オープンソースで公開されている「BlazeDS」を組み込むことによって、より密なデータ連係を行うことができるようになります。