さ、Ajax Experienceも3日目で最終日を迎えました。
DWR & Spring
最初はDWRとSpringそのものの説明なので、その間に昨日のDAY2 part2を記述。
DWRとSpringの統合は、DWR Servletのラッパを提供することで、Spring内で設定が記述できるようになるというもの。設定ファイルをSpring対応すると書き方はめんどいわけですが、dwr名前空間を準備中とのこと(おそらくxbean。参照:xbean ある意味、究極の統一定義)。こんな感じでdwr:remoteを使って書けるようになります。
<debug/>
</dwr:configuration>
<bean id="chatManager" class="com.i21.tae.ChatManager">
<dwr:remote javascript="ChatManager"/>
</bean>
もう1つのネタはAjaxアプリケーションにおけるSpringの利用方法。
まずトランザクション管理。Ajaxの場合には画面の遷移に関係なくリクエストが来るので、同じ処理でもばんばん飛んで来てしまいます。そのままではトランザクション管理で追い越しや重なりがおきて問題がでてしまうことが考えられます。
そこでSpringのAOPによるトランザクション管理を挟み込むことで、同じクライアントからのリクエストを自動的にシリアライズ化することができます。
そしてキャッシング。サジェスト処理のようにデータが大量に行きかう場合にはキャッシュが必要。Springであれば、Spring Modulesを使うことでキャッシュ処理も設定のみ。OSCacheでのデモを見せてくれました。
ま、当たり前ではありますが、アプリをAjaxifyするのにできるだけAOPでなんとかしましょうというアプローチはそれなりに有効なのでしょう。これもAjaxテクニックのうちですね。
Ajax on Rails
日本人ですから。いきなりRuby on Railsのデモが3分。そして熱く10分語り倒します
ActiveRecordの説明をしていたら勇気(?)ある人が「JDBCは?」と。「Sorry, what JDBC ?」と返して、いかにActiveRecordがすごいかを熱く10分間語り倒します。DSLがうんたらなど。うーん、Javaの人が執拗にからんでいます。Railsになにを求めているのでしょうか。
という感じで、普通にRailsの機能紹介でした。まだまだ、知らない人も多いのですかね。
Brendan Fich, the creator of JavaScript
MozillaのCTOでもあり、JavaScriptの作者でもあるBrendan Fich氏の講演。来年にでも実装が登場するJavaScript 2.0(ECMAScript 4)の機能紹介です。
型変換、Namespaces/Packagesなどの現状の不満点を解消しつつ、インターフェースを導入したりオブジェクト指向言語色を強めています。
変わりますねJS 2。というか変わりすぎですね。4年ぐらいで入れ替わるとは言っていますが実際にはどーなんでしょうか。そのころにはAjaxブームも終わって次に向かっている気もします。
Designning on Ajax
Yahoo!の中の人によるAjaxのデザイン・パターンの説明。Yahoo!といえばYahoo! User Interface LibraryをBSDライセンスでリリースしたことで話題になりました(まだデモを見ていない方はサイトからどうぞ)。一方で、Yahoo! Design Pattern Libraryみたいなものも作っており、その紹介になります。
で、まずは7つの基本ルールがこれ。
1. Keep it direct : Drag & Drop、In Page Editingのように、見えているものを直接さわれるようにする
2. Provide live feedback : Live Suggest、Live Previewのように、入力しながら答えがでてくるようにする
3. Offer an invitation : Tooltip、Cursorが変わるのように、何ができるかがわかるようにする
4. Cross borders reluctantly : Overlaysのように1ページの中で様々なことができるようする
5. Leave a light footprint : Live Ratingsのようにクリック1つで処理がおきるようにする
6. Show transitions : Progressやエフェクトによって何が起きているかわかるようにする
7. Think in objects : 写真のShareableのようにページではなくてオブジェクトを操作する
整理されきっているとは思わないのですが、だいたいのニュアンスは伝わります。面白かったのがユーザー・インタラクションに対する考え方。「Speak to the BRAIN(脳に話しかけろ)」というように、ユーザーとの対話が重要になっていると。しかも、デスクトップ・アプリケーションに比べて動きが多彩にできるため、ある意味、デスクトップ・アプリケーションよりも進んだインタラクションがあるとのこと。Office 12で採用されるコンテクスチャルツール、ギャラリー、ライブプレビューフローティーなんて、実はWebではけっこうみかけるものになっています。
DWRのようなサーバ通信形式の話は異なるレイヤーです。どちらもAjaxではありますが、ここらへんが"Ajaxらしい"楽しさなんでしょうね。で、このようにパターン化していくことで、また新しいインタラクションルールがうまれてくるはずです。
まとめ
さて、僕のAjax Experienceはここで終了です。星さんのAjax Experienceレポート(3日目):JavaScriptの作者が登場と渡辺さんの【The Ajax Experience 3日目】Google Maps API - GMapType,GTileLayer,GUnload, and Google Data API、【The Ajax Experience 3日目】dojo.storage、【The Ajax Experience 3日目】Grease Monkeyもどうぞ。
Ajaxって、非常に現実的というか、地に足が付いているというか。どのセッションも1年後の話なんてしなくて、今まさに考えていることをシェアするだけ。皆でAjaxって言葉の意味を考えながら、一緒に走っている感じが楽しいです。イベントそのものもアットホームで、ベンダー色の強いイベントとは大違いですね。あんまり、こういうのに出たことがないので新鮮でした。
ま、それだけに過度の期待はしないでおいて、手の届く範囲で取り入れていけばいいですかね。不勉強でDWRとか未チェックだったのですが、これは面白いです。
逆に、ベンダーが必死になってブームを取り入れようとしている印象を受けました。明らかに流行の作られ方がシフトしています。でも、ベンダー本体が取り組むのは難しいはずです。Ajaxは日々進化しています。商用製品をリリースして、1年ごとにバージョンアップなんでビジネスモデルは不可能でしょう。
開発者達は「すげー、すげー」という一時的な盛り上がりを乗り越えて冷静にテクニックとして見極めを行なっています。仕掛けが分かっちゃえばこっちのもの。いろいろなアイデアを日々試しているのです。
というわけで、Ajaxは楽しむものだというのが良く分かった3日間でした。日本に帰ったら、何からHackしましょうかね。
さて、来週はSUN様主催のJavaOne2006です。どんなイベントになるのか楽しみです。
