FlexとJavaの組み合わせによるWebアプリケーション開発
横田氏
|
時々「JavaからFlexへの移行」みたいなことが言われますが、サーバ側はJavaでも全然構わないんです。Seasar 2のDIコンテナであろうと、Springフレームワークであろうと、Strutsであろうと、サーバ側の作り方はほとんど変えずに、フロントだけをFlexにすればいいんです。実際、そうした作り方で困ったことは一度もありません。
|
|
上条氏
|
クライアント側のデータモデルの抽象化さえできていれば、Flexではどういうフォーマットでデータを送るかということは問題になりませんよね。実際、Flexのクライアントから、Springのフレームワークを直接叩いてデータを取ってくるようなことができます。また現行の開発環境である「 Adobe Flash Builder 4」からは、フォームとそれに付随するデータアクセスメソッドを簡単に自動生成できる機能もつきましたね。
|
轟氏
クライアントがJavaのサーバサイドからいかにきれいにデータを取り出せるか、というところがRIAのポイントだと思いますが、そういう意味ではFlexは非常にJavaと相性がいいですね。
横田氏
またFlexの場合、汎用性の高いコンポーネントがソースコード付きでネット上に大量に流通していますから、それらを使ってほとんどのことが実現できるのもメリットの1つだと思います。
轟氏
特定の業務でしか使わないような汎用性の低いコンポーネントは、カスタムコンポーネントとして開発することもできるわけですが、クラスメソッドさんのようなスキルの高い会社はともかく、そうでないところではどのように対応すればいいと思いますか?
横田氏
カスタムコンポーネントの開発は、アプリケーションのパフォーマンスが上がっていくと、どうしても壁にぶつかります。まあこれは、Flexに限った話ではないのですが、そういう場合はFlexに詳しい会社に依頼するのが一番いいと思います。何だか、宣伝しているみたいですが(笑)。また開発に限らず、運用で何か問題が発生した場合も、そういった会社に助けを仰ぐのが一番手っ取り早いと思います。でも、運用開始後にFlex単体の問題に遭遇したことは、今までほとんどないですね。
轟氏
手っ取り早く始めやすいのもFlexのいいところですね。私自身はもともとJavaをやっていたのですが、Flexの開発言語であるActionScriptは1カ月ほどの学習で「ああ、いけるな」という感触がつかめました。ただ、イベントドリブンの考え方には、初めの内はなかなか慣れることができませんでしたが。
横田氏
シーケンシャルに実行されるようなプログラムばかりを書いてきた人は、イベントドリブンに慣れるのには少し時間がかかるかもしれませんね。でも、Swingのプログラムを書いていた人にとっては、非常にイメージしやすいと思います。基本的には、オブジェクト指向やHTTP、トランザクション処理などといった、ソフトウェア開発の基本的なことが一通り分かっている方であれば、誰でもFlexは触れます。
上条氏
Flexはプロトタイプが作りやすいのも大きなメリットの1つだと思います。HTMLのアプリケーションは、サーバ側のプログラムが必要になることもありますが、Flexならクライアントだけを作って動かせますから、それをミーティングの席で皆でレビューしたり、その場でちょこちょこ直しながら画面の仕様を検討することもできます。
Flexが切り拓く次世代アプリケーションへの道
横田氏
先日、AndroidやiOS、BlackBerryなどのスマートフォンにも対応した「AIR 2.5」が発表されましたが、今後はクライアント端末の種類がいくら増えても、サーバサイドの実装は変えずに対応できるようになりますね。ちょっと前までは「HTMLで頑張って書かなきゃ」なんて思っていたことを考えると、まるで夢の世界です。
轟氏
UIの部分はクライアントの種類によって多少作り直さなくてはいけませんが、それ以外のクライアント側ロジックやサーバ側ロジック、さらにはデータベースなどをすべて共有できる可能性がある技術は、今のところ実績面ではFlexがNo.1ですね。
上条氏
でも、アドビのイベント「Adobe MAX 2010」で会場案内をしてくれるソーシャルアプリケーション「MAX Companion 2010」は、単一のソースコードでPCとAndroid両方で動くようになっていますよ。フレームワークの次期バージョン「Flex 4.5」の新機能を使って開発されているので、同じアプリでも、PCとスマートフォンそれぞれで動作させることができるんです。
轟氏
そのような機能をマルチプラットフォームで実現している技術は、今のところほかにはないですね。AIR 2.5は、スマートフォンに限らず、TVやタブレットPCなどでも動作するマルチデバイスを実現しています。米国で既に予約を受け付けているGoogle TVのChromeブラウザ上ではFlash Playerが動作します。Flexは、こうした様々なプラットフォームやデバイスに展開しているクライアントで、動作させることができるフレームワークです。そうした多様な環境でエンドユーザーに同一の体験を提供できるようなアーキテクチャや、それらを意識した開発スタイルが主流になっていくでしょうから、今の内から
Adobe Developer Connectionなどで勉強しておくと良いかもしれませんね。
アドビ システムズとクラスメソッド共催の無料セミナー「Flex × Java 業務システム改善セミナー」が定期的に開催されています。詳細は【コチラ】からどうぞ。