SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

Adobe Developer Connection(AD)

「JavaからFlexへの移行で困ったこと? 一度もありませんね」 ― Adobe Flexのエキスパート達が語るRIA開発の最前線

  • X ポスト
  • このエントリーをはてなブックマークに追加

 Adobe Flexが、リッチなコンテンツをブラウザ上に表示するだけでなく、本格的な業務アプリケーションのフロントエンドを実装する技術としても大きく期待が寄せられている。そうなると、自ずと従来のWebアプリケーション技術、特にサーバサイドJavaとの相性は気になるところだ。そこで本稿では、Adobe Flexを取り巻く状況や、Javaとの組み合わせによるWebアプリケーション開発の現状などをテーマに、Adobe Flexのエキスパート3名により行われた対談の模様を紹介する。

  • X ポスト
  • このエントリーをはてなブックマークに追加

 リッチなユーザー体験を提供できるWebアプリケーションの実装技術として、ここ数年の間で急速に普及しているRIA(Rich Internet Application)。特に、Adobe Flash Playerの圧倒的な普及率をバックに、その上で動作するRIAの開発技術「Adobe Flex」(以下、Flex)が高い注目を集めつつある。

 Flexは、単にリッチなコンテンツをブラウザ上に表示するだけに留まらず、本格的な業務アプリケーションのフロントエンドを実装する技術としても大きく期待が寄せられている。そうなると、自ずと従来のWebアプリケーション技術、特にサーバサイドJavaとの相性は気になるところだ。そこで本稿では、Flexを取り巻く状況や、Javaとの組み合わせによるWebアプリケーション開発の現状などをテーマに、Flexのエキスパート3名により行われた対談の模様を紹介したいと思う。

(写真左から)アドビ システムズ 株式会社 ディベロッパーマーケティングスペシャリスト 轟 啓介氏、cuaoar 上条 晃宏氏、クラスメソッド株式会社 代表取締役社長 横田 聡氏
写真左からアドビ システムズ 株式会社 ディベロッパーマーケティングスペシャリスト 轟 啓介氏、cuaoar 上条 晃宏氏、クラスメソッド株式会社 代表取締役社長 横田 聡氏

企業システムのプラットフォームとして浸透しつつあるFlash Player

上条氏
企業の情報システム担当者や開発者は今、Flexに対してどのような期待を抱いているのでしょうか?
横田氏
新規開発で採用する技術というよりは、現在抱えているレガシーシステムをメンテナンス・拡張できなくなってしまって「どうしよう?」と悩んでいたところへ、「Webでクライアント/サーバっぽいUIが実現できる技術がある」ということを聞きつけて、Flexに興味を持つ企業が比較的多いような気がします。
上条氏
でも、ちょっと前までの業務系Webアプリケーションでは、「フロントの実装技術はHTMLでないといけない」という企業も多かったですよね。
横田氏
そうですね。あるいは、たとえFlashを使っていても、「うちはFlash Playerのバージョンは6で決まっているので、バージョンアップできません」という企業も多かったですね。しかし今では、「Flash Playerのバージョンを固定しなくてはいけない」というお客さまはほとんどいません。
上条氏
企業ユーザーがFlash Playerに対して持つ印象が変わってきましたね。
横田氏
それに、世の中のあらゆるソフトウェアのバージョンアップのスピードがどんどん速くなってきていますから、ユーザー側も変化を拒むよりは、積極的に受け入れる方がメリットを享受できるという意識に変わってきたのかもしれませんね。
上条氏
ただ、そうした中でFlashが普及した大きな理由は、Flash Playerのバージョンを上げても既存のコンテンツがほぼそのまま見られるというところですね。この点は、企業ユーザーにとっての安心感につながっているのかなと思います。

Flexをフロントの実装技術に採用するメリット

横田氏
シビアな評価基準のある業務系Webアプリケーションでは、「OSの種類とバージョン」と「ブラウザの種類とバージョン」の組み合わせの数だけテストケースが発生するので、テストがとても大変になりますよね。
横田氏
上条氏
プログラム実行時の振る舞いは、結局はOSやブラウザを作っているベンダーの実装しだいですからね。
横田氏
その点、Flexで開発したアプリケーションであれば、OSやブラウザが違っても見た目や振る舞いが大きく変わりませんから、テストケースを大幅に減らすことができます。またFlexの場合、クライアントとサーバの間の通信がAMFというデータフォーマットでカプセル化されますから、通信部分のテストケースも大幅に減らせます。これが、プレーンなXMLをそのままやりとりするようなアプリケーションだと、大変なことになります。
上条氏
ちなみにFlashというと、どうしてもユーザーインタフェースの使い勝手の向上というところが注目されがちですね。
横田氏
よく誤解されているのが、Flashはビジュアルをきれいに見せる技術だと思われていることですね。「どうせユーザーは操作中に画面を見てないから、見た目がきれいになってもしょうがないよ」といった具合です。
上条氏
美しく見せる技術としてとらえられているということですね。そうではなくて、例えば異なる2つのアプリケーションの画面をFlexを使って1つにまとめれば、これまで別々に行っていた入力操作を一元化して、業務を効率化できます。こういったFlexの事例は、割と多いですが見逃されがちですよね。
横田氏
参照系の処理でいえば、Flexではグリッド機能やチャート機能などを持った既存のコンポーネントがたくさんそろっていますから、それらを使えば開発作業をかなり効率化できます。また、今までのWebアプリケーションは画面とロジックが混ざり合った作りのものが多かったですよね。これがRIAになると、サーバ側の処理を全部サービス化して、画面と分離できるというメリットがあります。
上条氏
ちょっと古い言い方ですけど、SOAですね。
横田氏
その通りです。フロント層は次々に新しい技術が台頭したり、スマートフォンのような新しいデバイスが出てきたりしますが、バックエンドのデータ層はそうそう変化しません。10年、20年と運用されている古いデータベースは、それだけ長く安定稼働しているということですから、データ層のサービスとして今後も有効活用するべきです。
轟氏
それはとても大事な視点だと思います。少なくとも、MVC(Model-View-Controller)モデルに基いて設計されているアプリケーションであれば、レガシーなバックエンドシステムをサービス化した上でRIAに移行することで、劇的に変わる可能性を秘めています。
轟氏
横田氏
フロント層に関して言えば、クライアント/サーバシステムからのリプレースでは、Flexでは満たせなくなる要件が出てくる可能性はあります。その辺りは、あらかじめ洗い出しておかないと後々トラブルの元になりかねません。
轟氏
これまでよく言われていたのは、「ファンクションキーが使えなくなる」ということでしたね。でもこれは、Adobe AIR 2(以下、AIR)で使えるようになりました。
上条氏
確かにAIR 2以降では、やろうと思えばほぼ何でもできてしまいますね。
轟氏
例えば、JR北海道さんではFlexで運行業務システムをリプレースしましたが、ユーザーインタフェースの操作性は一切変えていません。しかもこれは、かなりミッションクリティカルなシステムです。
上条氏
Flexは金融系企業の社内システムでも採用されていますし、ミッションクリティカル環境でも実績がありますね。

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 業務システム改善セミナー」が定期的に開催されています。詳細は【コチラ】からどうぞ。

「FlexではじめるRIA開発」特集、絶賛公開中!

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加

【AD】本記事の内容は記事掲載開始時点のものです 企画・制作 株式会社翔泳社

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/5541 2010/11/10 14:00

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング