Macromedia Flexクイックマスター開講記念企画 よくわかる!Flex

「Macromedia Flexって、何ですか?」

という質問を、よく頂きます。

ならばということで、「Flex(フレックス)って何ですか?」という質問を、サイト外へリンク株式会社セカンドファクトリー 東 賢 氏にお伺いしてきました。


m-Schoolインタビュアー今日は、よろしくお願いします。それでは早速ですが、「一言で言うと、Flexとはなんですか?(笑)」

東(笑)一言っていうのは本当に難しいんですけど、「Flashアプリケーションを生成できるプレゼンテーションサーバー製品です」、という答えになりますね。

m-Schoolインタビュアー「アプリケーションサーバー」とは、違うのですか?

東違います。Flexをどういうものかを理解するためには、RIA(リッチインターネットアプリケーション)のアーキテクチャをしっかり理解する必要があります。

RIAの世界では、サーバー、通信、クライアントという、3つのレイヤーが存在しており、処理のロジックはサーバーとクライアントの両方に存在することになっています。

東 賢 氏これまでのアプリケーションサーバーの世界ではロジックはサーバー側で完結していていました。JavaScriptというものがありますが、基本的にはクライアント側にはロジックは無かったわけです。でもRIAでは、クライアント側で何らかの処理を行えたりとか、画面遷移があったりとか、処理ロジックをクライアント側に持ち込めることが可能なのです。それは大きなメリットでもあるのです。

そのクライアント側だけのロジックを担当できるのがMacromedia Flexです。もっと言えば、今までRIAを構築する場合のMacromedia ColdFusionMacromedia Flashで構築していたところの、Flashの部分を代替できるのがFlexです。ですから、Flex自体には、データベースを参照、操作する機能はありません。

m-SchoolインタビュアーFlexはクライアント側を担当するサーバーと考えてもいいわけですね。これって新しい考え方ですよね。

東そうですね。Flexの場合、ユーザーインターフェイスの記述は、XMLをベースにしてマクロメディアが開発したMXMLを用いて、ロジックの記述にはFlashのスクリプト言語であるActionScript(アクションスクリプト) 2.0を用います。

m-SchoolインタビュアーFlexを理解するためには、新しいRIAのアーキテクチャーの世界を知る必要があったわけですね。あ~、だいぶスッキリしてきました。さて、東さんは実際にFlexでの構築案件プロジェクトをご経験されたとのことですが。

東ユーザーがデジカメ画像をアップロードして、フォトアルバムっぽいことがWeb上でできるアプリケーションを、フィルムメーカーさんのご依頼で開発しました。例えば、画像をスライドショーで公開したり、アップロードした画像でポストカードを作ったりとかできるものです。こういったことは今まではFlashで開発されている分野でしたが、検討の結果Flexでいこうということになりました。

m-SchoolインタビュアーどうしてFlashではなく、Flexを採用することになったのですか?

東もちろんFlashでも良かったわけなんです。しかし、Flexを選択した理由がいろいろあります。ひとつは、サイト上の文言の変更といったことが頻繁に起こるだろうと予想されていたことです。何か変更がある場合、Flashでは、変更を製作業者に依頼し、変更作業を行ってもらう必要があります。そうではなくて、そういったメンテナンス面を自分たちでやりたいという強い希望があったので、そういうリクエストに答える必要があったわけです。

東 賢 氏次の理由として、すでにJ2EE環境のシステム構築をずっとやられていて、そのシステムを担当している会社とのコミュニケーションの方法を考える必要があったことです。Flashで作成したユーザーインターフェイスであれば、JSPからのパラメーターの受け取りをFlashでオブジェクトタグでパラメーターを書いてくださいという話になり、Javaプログラマーにとっては厄介な話になるわけです。

ところが今回は、MXMLで記述したユーザーインターフェイス部分のソースを.jspファイルに埋め込んでしまっているのです。つまり、Javaプログラマーにとっては、Flashのオブジェクトがどうしたとかいう厄介な話ではなく、ソースレベルでの管理ができるようになり、非常にやりやすくなるだろうという判断がありました。

そして、もうひとつは、ASP提供を行うということが事前にわかっていて、その対応も考慮しました。Flashで構築した場合、ASPを提供するところに合わせてロゴの画像なんかを差し替えた場合、.flaファイルに変更作業を行い、再コンパイルが必要になります。一社二社ならまだしも、これから営業をかけて増えて行くことを考えた場合、それは自分たちでできないと意味がないというお客さまのお話がありました。Flexなら外部パラメーターで画像を読み込み、動的にコンパイルできるので、簡単に実装できるわけです。

総じていえることは、お客さまが自分たちで、自分たちのサイトを、自分たちでメンテナンスを何とかしたいと思われていて、その中にFlashが組み込まれていたので、必然的にFlexが選択肢として浮上してきたのです。

m-Schoolインタビュアーなるほどですね。苦労話なんかをお伺いしたいところですが、そのあたりはFlexクイックマスター(講座)でお願いします。

東はい、わかりました(笑)。

m-Schoolインタビュアーでは、技術者の方にイメージしやすいよう、少しだけ具体的な話をさせてください。よくあるご質問で「J2EEとFlexはどんな感じで連携するのか?」ということなんですが。

東Flexの側にゲートウェイサーバーがあって、Flash側からJavaのオブジェクトを名前空間、メソッド、引数でアクセスしていくというやり方です。そのゲートウェイというのは、Macromedia Flash Remotingと呼ばれている製品がFlexにビルトインされているものです。これを使えば、今まで使っていたJ2EEの既存資産の再利用は、結構うまくできるのではないかと思います。

m-Schoolインタビュアーそろそろイメージが湧いてきたところでFlexクイックマスター(講座)の宣伝と参りましょうか?(笑) 講座の内容、習得目標等教えてください。

東まず前回の「Flexハンズオン講座」でもやったのですが、Flexのオーバービューとアーキテクチャーをしっかりご理解頂きます。また、さっきのご質問にもありましたように、FlexからJavaのオブジェクトにどういう風に接続して、サーバー上にあるものをどういう風に利用するか?といった、J2EEのエンジニアの方なら関心を寄せる内容も扱います。そして、MXMLを記述することでインターフェースを作ることもやってみます。

ここまで一通りやれば、簡単なアプリケーションが作れるはずなので、Flexで簡易に書けるというところも生かして、少しハデ目のアプリケーションを(笑)作ってみたいと思っていて、それをゴールにします。

おそらくFlexクイックマスター(講座)を受講しただけで、実務でFlexをバリバリ使えるというところまでは行かないかもしれませんが、ぜひIS担当者の方やJ2EEエンジニアの方に来ていただいて、Flexの可能性を体感頂き、これをベースに各社での取り組みのヒントにしていただければと、思っております。

m-Schoolインタビュアーそれでは最後に何かメッセージを。

東東 賢 氏リッチインターネットメディアには、ご存知のように既存の技術がさまざまあります。Flexは150万円しますが、それはコスト的にみると高いか安いかということを、ぜひ講座を通じて判断いただければと思います。専用のクライアントのライセンス料や、専用の開発環境のライセンス料を考慮すると、Flexでは開発環境(Flex Builder)がついてきますし、お好みのテキストエディターも利用できるということ、そしてクライアントがFlash Playerで無料であることを考慮すると、かなりコスト的にインパクトがあると考えます。

また、MXMLとかActionScript 2とか、また新しい言語を覚えなくてはならないと懸念する技術者の方がいらっしゃるかもしれません。ましてや、なんでユーザーインターフェース用に言語なんか!(笑)と思われている方もいらっしゃるのではないのでしょうか?

でも、「ユーザーインターフェース部分の記述」と「ロジック部分の記述」を明確に分ける、というのが世の中の流れのようです。マイクロソフトなんかにもそういった技術も出てきているので、ちょっと頑張ってこういうアーキテクチャーに、早めに慣れていくことをおすすめします。かつ、ActionScript 2は、JavaScriptと同じ言語体系にあるので、それほど習得が難しいものではないですし、ActionScript 2になってからはオブジェクト指向プログラミングの考え方がきっちりと踏襲されているので、とくにJavaエンジニアの方は、親和性が高い言語ではないのではないかと思います。

おそらくここ何年かでリッチクライアントで開発することが当たり前になる時代がやってくると思われるので、それに乗り遅れないためにも、そういう動きをFlexを通して、RIAのパワーとか、インパクトを早めに体感していただければと思います。

m-Schoolインタビュアーお忙しいところ、ありがとうございました。