torutkのブログ

ソフトウェア・エンジニアのブログ

JavaOne Tokyo 2005

11/8〜10の3日間、東京国際フォーラムを会場に開催されました。
今回は無料パスでの申し込みで、しかも仕事上客先での打ち合わせを期間中に2回入れられてしまい、9日はフル一日と10日の夕方以降参加してきました。

めぼしいセッションがなく、返って夕方のBOF枠の方が興味深いほどでした。

今回はメモもほとんど取らず、気の向くままさまよっていただけです。

11/9(水)

午前のジェネラル・セッションは1時間ほど経過した頃に途中入場。立ち見の人が壁沿いにずらっといた状況ですが、よく見ると席はあちこち空いていたのでずかずかと進んで座りました。入ったときはOpteronサーバーの紹介のときで、「欲しい人は?」との声に会場からは数人しか手があがりませんでした。
途中、Duke人形(着ぐるみ)と大きなケーキが入場、ハッピーバースデー・デュークの斉唱がありました。SunからGoogleに移ったJoshua BlockとNiel Gafter両氏も登場し、Javaパズラーの宣伝とGoogleでのJavaの紹介。ちなみにGoogle検索エンジンLinux/C++で書かれているそうですが、1997年開発時にLinux上ではJavaが駄目駄目でC++になったとのことです。

お昼はJRをまたいで銀座インズ2の地下飲食店街の魚やで魚定食を食べました。焼き魚(ぶり)、煮魚(さば)、フライ(鮭)、刺身(まぐろ、ぶり、たこ)、あら汁と豪華でした。

展示会場に入るときに、Java読書会のメンバーに次々と会いました。午後は智弘さん行動を共にし、まずはICカードのスタンプラリーを回って抽選し、アイテム2品Get。智弘さんがGetしたミニカーまでもらいました。帰宅後息子にあげたら大喜びでした。

ちょいとお茶をして(智弘さん、ご馳走様です)、15:00から「Java標準化の限界と今後の機能拡張の展望」というアプリクス社の郡山氏のセッションを受けました。携帯電話関係のJavaの話です。仕事上で少しだけ携帯電話上のアプリケーションに関する調査をすることになりそうなので(JavaOneの前日に話が出た)、Java MEの情報収集をするためです。KVMという懐かしい言葉も出てきたセッションで、Java ME方面の動向がざっと把握できました。

また会場をぷらぷらしてから17:00の「Pragmatic SOA」のセッションを受けました。特に印象なし。

18:00からはMark Hapner氏の「JBI BOF」。5分くらい概要をしゃべって「さあ質問は?」というスタイルでした。いくつか質問がでて話しが進みました。以下メモ

  • コンポジットアプリケーションと呼んでいる
  • UNIXのパイプに喩えていた
  • JBIはデフォルトローカル。1つのノード上でSMPでアプリケーションを動かす。外部はBC(Binding Component)を介す。EJBのリモートの失敗の反省から来ている。
  • 新しい概念なので開発者が受け入れるのは大変だろう

19:00からはMenasse Zaudou/Pratul Wadher両氏の「Integrating performance and quality assessement methodologies in the development lifecycle」BOF(名前長〜い)。
Java SEの製品としての試験サイクルについての紹介です。いつも使っているJavaVM・SDKがどうやって試験されているのかうかがい知ることができました。性能試験について掘り下げた話がありました。性能の指標を決めることが重要なのは同じです。

  • JavaVMのオプション-XX:+PerfDataSaveToFileを指定するとhsperfdataと付く名前のデータファイルが生成される
  • 性能計測は結果の可視化が重要、統計的にばらつきを見ることも重要
  • マイクロベンチマークは小さすぎて意味無し

20:00からはCliff Click氏の「Java Performance Myths Exposed」BOF
以下の神話を複数のJavaVMで検証

  1. finalを使うとインライン化が促進され速くなる
  2. try catchを避ける
  3. RTTIを使い、virtualメソッドを避ける(instance of やクラスに一意の識別子を持たせる)
  4. synchronizedを使わない
  5. オブジェクトプールを使う
  6. Tigerの新機能の性能

結果から言うと、

  1. BEAを除くVMでは性能には無関係(final有無で性能は一緒)
  2. BEA/IBMを除くVMでは性能には無関係
  3. コードが複雑になるが、速くなる(10〜30%)
  4. BEAは変わらないが、それ以外のVMは速くなる
  5. 大きなオブジェクトに限る
  6. enum以外は問題なし。enum#values()がcloneを返すため

11/10(木)

この日は仕事の関係で客先に赴き、夕方からJavaOneに行きました。
夕方のセッションは、無料枠に目ぼしい題名のものがなかったので、展示会の方をゆっくり回り、18:00〜のBOF3つに参加しました。

Sunのブースでは、Real-Time Javaのデモ(倒立振り子)、Project Mustang、Sun Java Application Serverを回りました。

Real-Time Specification for Java(RTSJ)の実装で、GCを実行してもリアルタイム制御(倒立振り子の制御)スレッドは動き続けていることのデモです。SunのRTSJ実装JVMは、現時点ではSPARC/Solaris 10上のHotspot 1.4.1(JDK1.4.1)ベースのものでしたが、来年にはLinuxも対応するとのことです。なお、無償ではないので、購入する必要、価格はSun営業担当に聞いてくれとのことでした。組み込み/制御系の世界でもJavaを利用するケースはこれから少しずつ増えていくでしょう。

Project Mustangでは、説明に立っている人がU.S.の方で英語でのコミュニケーションが必要でしたが、片言ブロークン英語でなんとか成立。WindowsSolaris x86でMustangのソースコードのビルドに成功したと伝えたらとっても喜んでくれました。なお、Mustangのコントリビュータとなるには書面でのサインとFAX送信(U.S.のSun宛)が必要なので難しいねと言ったら、日本語の書面を用意してあるのでここでサインすればOKよ、となりました。サインして渡したらTシャツとUSBハブ(セルフパワー)をもらいました。

Sun Java Application Serverでは、無償のPlatform Edition(PE)と有償のStandard Edition(SE)/Enterprise Edition(EE)との違いを聞きました。PE+管理機能がSE、SE+クラスタリングがEEという感じです。SE/PEはそれぞれCPU単位のライセンスが発生します。

ソランというブースでOSGiの説明を聞きました。OSGiは先日のセッションで名前だけ紹介されていたフレームワークで、主にCDC/CLDCのJavaVMの世界でデバイス同士を動的に結びつけるための欧州発の技術です。ホームネットワークやカーエレクトリニクスが主ターゲットですが、応用はいろいろあり注目の技術です。日本はとかくアメリカ偏重ですが、欧州発信技術も要注目ですね。


BOFでは、旧Javaカンファレンス(現インターネット協会Java部会)の主催する10年間、SunのJAXB実装チームに属する川口さんのJAXB/JAX-WS実装の興味深いお話し、最後にEJB3.0仕様策定チームからJBossのKing氏(Hibernate作成の中心人物)、OracleのKeith氏(TopLinkアーキテクト)、SunのDeMichiel氏(EJB3.0 Spec Lead)と巨匠達が揃うBOFで締めくくりです。

TeikadeがJ2SE 5.0(Tiger)でも動いているのは素晴らしいですね。ほかにもいろいろなネタが飛び出していました。

川口さんの実装の話はいつもながら興味深いです(お話しがとても上手)。JAXB1.0から2.0で実装に苦労した点(性能、メモリフットプリント)がいろいろと紹介されました。JAXBチームとJAX-RPC(JAX-WS)チームとの壁や壁を崩して協力していった話し、スペックチームと実装チームの軋轢(?)などがうかがい知れました。JAXB2.0での今後のやりたいことリストにRELAX NGが入っていてちょっとうれしいです。頑張れと応援します。

EJB3.0BOFは豪華メンバーですね。昼のセッションでの説明を聞けるとよかったのですが・・・。Stateless/Statefull BeanからEntityを永続化するコードからいろいろディスカッションが展開されていました。同時通訳レシーバを持っていかなかったので理解度が少ないですが、EJB3.0ではEntityオブジェクトがモバイル性を持ち、従来のDTOは不要になるということが画期的ではないかなと思います。