JavaWorld Day 2006に行ってきました。
一番の目玉だった
Adobeの
上条さんのセッションについてここでは書いておきます。
他のネタもいくつかおもしろいのがあったのですが、ちょっと内容的に重いので別の場所に書きます。
んで、上条さんのセッションは現在beta3の
Flex2の紹介です。
とにかくにデモ中心の構成で見てて飽きなかったです。
アレ見てると、ホントFlex2とその周辺プロダクトすごいと思います。
いくつかキーワードを出して紹介してみます。
1.FlashPlayer9
既に何度かネタにしましたが、今回の目玉は性能が桁違いに上がったことです。
JITコンパイラが搭載されたので桁違いの速度が出てるわけです。
速度にして10倍ぐらいの差が出ることもあるようです。
デモでも、スタンダードJavaScript,
DoJo,FlashPlayer9とデモしていましたが、超高速にデータレンダリングしてました。
しかも、ソートだとかも超高速。
2.FlexBuilder
Flex2アプリケーションのデザイナとなるIDE。
eclipseプラグインとして提供。
インタフェースデザイナとコードがリアルタイムに同期するので、かなり快適なUI-Code作成が可能。
UIデザイナのドリルダウンはちょっとカッコいいし、直感的。
3.Data Services Components
FlexにおけるデータとUIのバインドをドライブするコンポーネント。
データを取得したら自動的にUIに反映。
クライアント側の技術要素。
こいつもデモでさっくり作ってしまっていました。
個人的にもいくつかコード書いたのですが、かなり扱いやすいです。
XML上でバンディング属性を一つ書くだけで基本的にバインドされます。
こういった形のUI-データバインディングは特に新しい概念でもないですが、開発の用意さの面で凄まじく洗練されています。
この概念は、
spryにも適用されています。
両方いじってみるとわかりますが、基礎技術要素は全く同じです。
4.Flex Data Services
クライアント側のData Services Componentsに対応する、サーバ側のサービス。
クライアントからのデータ取得(fill)、データ同期(sync)要求を適切なオブジェクトに伝える。
リクエスト-オブジェクトマッピングは、EJBなどの考え方とさほど変わりないと思います。
非常にシンプルなモデルで開発は相当しやすいと思います。
基本的にはID-オブジェクトマップをしているだけです。
fillやsyncの考え方は、データベースのselectやcommitの考え方と同じです。
fillは、データを抽出してくる。
syncは、クライアント側で変更されたデータをサーバに伝えてサーバ側のデータも更新する。
この辺りが、定型化されていてかなり簡単に実装できます。
5.Javaアプリケーションなどとの連携
例えば、データベースへのアクセスなどは
Hibernateなどを使ったり、ビジネスロジックは
Spring上で動くJavaアプリだったりする場合、何らかの方法でFlexアプリとJavaアプリを繋ぐ必要があります。
それを実現する仕組みがアダプタです。
アダプタ上でFlexオブジェクト-Javaオブジェクト変換を行うことにより、Flex側、Java側それぞれのアプリケーションの独立性を高めることができます。
要は、変更に強くなる。
これも、特別新しい考え方ではありませんが、Flex1系ではなかった概念。
6.
Cairngormが
Adobe Lab入り
Flex版Struts。
いくつかのデザインパターンをあらかじめ用意してくれていて、その型に当てはめていくだけでアプリケーションを作れるフレームワーク。
また、イベントドリブンな処理系。
何かが起きれば何かを動かしてあげるモデル。
元々、
iteration::twoという企業が作っていたプロダクトですが、Adobeが少し前に買収したので、正式にプロダクトラインに組み込まれるようです。
こいつか、近々Adobe Labに登場されるようです。
結局、Flex関連のプロダクトは全てLabを経由して出て行くことになりますね。
これは、ちょっと面白い現象です。
Flexが成功したら同じモデルを採用する企業が増えるのではないでしょうか。
このあたりが、聞いてて面白かったところです。
多分、実際に見て触ってみるのが一番だと思いますけど。
FlashPlayer8では、イメージフィルタなどの画像、ムービー関連の技術が多数搭載されたわけですが、FlashPlayer9は性能やRIAクライアントとしての面の強化が中心です。
そういう意味で、ムービークリエーター系の方の期待は少し裏切っているかもしれませんが、インタラクティブ系クリエーターなどにとって面白い技術はたくさん搭載されています。
それは、Flashだけでできる話ではないので、いろんな技術を習得する必要はあります。
そういう意味で、クリエーターの中でもFlashPlayer9,Flexを使いこなすか、従来通りの使い方をするかで大きな差が生まれそうです。
個人的にはJavaとかJMSとかJavaEEとかの技術はある程度押さえてるので、どう組み合わせたら面白いおもちゃ作れるかわくわくする。