RIAの技術が成熟するにつれて、Adobe FlexアプリケーションのようなRIAを安定したサーバーサイドのサービスと統合することは、ますます重要になってきている。Java開発者のお気に入りサーバーサイドフレームワークの一つであるSpringは(サイト・英語)、RIAを安定したサーバーサイドのサービスと統合するというプロセスで重要な役割を果たす可能性がある。
RIAvolutionize the Web(source)ブログのMarco Casario氏は、SpringがFlexのエンタープライズシステムを統合するのにBlazeDSを推薦する理由として「Springはオープンソースフレームワークで、Springを使うと開発者の開発生活をより楽にしてくれるからだ。」と語った。標準的なJEEアプローチに従って開発を行なった場合、コードを沢山書いてしまうことが多く、それらのコードは有益ではなく、冗長で尚かつ時間を費やして J2EEデザインパターンを実装している。それらは真の解決策というよりむしろテクノロジーの限界に対する次善策である。これらのプロセスをやめて、Springを使うことにより、時間をたくさん節約出来る。
Christophe Coenraets氏は(source)、FlexをSpringと統合することに対する論理的根拠を提供してくれた。
SpringのInversion of Control(制御の反転)の本来の趣旨は、コンテナに、コンポーネントのインスタンス生成を任せ、コンポーネント間に存在する依存性を注入してもらうというものだ。しかしデフォルトで、Flexクライアントによってリモートアクセスされたコンポーネントは、サーバーサイドにあるFlexアプリケーションによってインスタンス化される。従って、FlexとSpring統合の鍵は、SpringコンテナにSpringビーンのインスタンスを生成してもらうようにFlex destinationを設定することである。Flexデータサービスは、この種のカスタム構成要素のインスタンス生成の概念をサポートしている。ファクトリの役割は、Flex destinationに、これらのコンポーネントをインスタンス化させる代わりに、使う準備が出来たコンポーネントのdestinationを、Flexのdestinationに提供することだけだ。
Flex、Spring、IBATIS(サイト・英語)及びCairngorm(サイト・英語)の統合に関して、Chris Giametta氏(source)が、以下の発言をした。
一貫性があり、モジュール化されていて、反復可能なアーキテクチャを作ろうと思っている。アーキテクチャは、非常に堅牢なエンタープライズアプリケーションと同様に小さなアプリケーションをサポートするのに十分な大きさでなければならない。プロジェクト成功の鍵は、新人開発者が、直ぐにアーキテクチャに馴染むことが出来て、一日で生産的な作業を行えるようになるアーキテクチャを作ることだ。Spring、iBATISおよびCairngormを結合したFlexがあるおかげで、パターンベースで反復可能なアーキテクチャを早く作ることが出来ると私は思っている。
Sébastien Arbogast氏は(source)、フルスタックのFlex、BlazeDSおよびSpringの統合をどうやって構築すればよいかを実演するためにブログに連続記事を書いた。
Arbogast氏のフルスタックは、最初から、以下の製品を含んでいる。アプリケーションサーバーは、JBoss、データストレージにMySQL、データアクセスにHibernate(source)、ビジネス層の構築にSpring、リモートサービスにBlazeDS(source)そして、リッチクライアントにFlexe-genialが含まれている。そのシステムは、flex-compiler-mojoプラグインを(サイト・英語)導入したMavenを(source)使用して構築された。
Arbogast氏は、「このプロジェクトをセットアップするのには、確かにわずかな作業が必要です。このとき直ぐに修正しなくてはいけない設定ファイルの複製に関する小さな問題(欠点ではない)は脇に置いておきます。そして、flex-compiler-mojoは、実に素晴らしい動きをしてくれます。」と語った。
原文はこちらです:http://www.infoq.com/news/2008/05/integrate-flex-spring