Go to Contents Go to Java Page

JavaOne 2004 in SF Report

 
 

6/29 第 2 日

 
 
Compuware

一時期の熱狂的な雰囲気はなくなり、落ち着いた雰囲気の JavaOne です。

それだけ Java が浸透したということでもあるとは思いますが、とんがったところがないのはちょっとさびしいところです。

それでも参加者は去年よりも増えているような気がします。しかし、参加者がおじさん化してきていると思うのは私だけでしょうか。もっと若い人が参加してくればいいと思うのですが。

ところで、今日も General Session に並んでいたら、Compuware のオレンジの人がいました。でも、昨日みたいに大騒ぎすることなく静かにしてます。静かにしていると逆に気味が悪いです ^^;;

さて、今日聴講したセッションは

今日は BOF は後で書く理由により聴講しませんでした。

 

 
 

General Session

 
 
Scott McNealy アニメ
ゲーム機  

Scott McNealy

彼のスピーチはおもしろいですね。Jonathan Schwartz が硬だとしたら、Scott McNealy は柔。両方とも硬だったり、柔だったりしたらつまらないと思うのですが、対比がおもしろいです。

今日のスピーチで Scott McNealy が何度も繰り返していたのは Community です。さまざまな Community の話が飛びだしました。

Stieve Balmar と Scott McNealy の 2 ショット写真を合成ではないよといってちゃかしたりはしますが、以前の敵対していた頃の感じとはずいぶん違います。それでも、Microsoft から得られる 2億ドルの使い道に関したアニメが公開されて会場では大爆笑です。

そのほかにもいろいろと攻撃するのは相変わらずです。Java のオープンソース化に対する IBM の公開書簡をとりあげて、逆に Microsoft と Redhat に JCP に加わるようにといい、「これが私から公開書簡だ」と。それでも、私は JCP で .NET と J2EE の相互接続に関する標準が策定されたらおもしろいと思うのですが。

昨日の General Session では車と医療が取り上げられていましたが、今日はゲームです。

Pure Java の 3D のシューティングゲームが紹介されました。また、Xbox で Java が動かないかという話になり、Infinity Labs が開発した Java が動作するゲーム機を紹介しました。

また、昨日に引き続いて川原さんが登壇。昨日は準備が整うまで Looking Glass のオープンソース化はまだということだったのですが、なんと準備が整ってしまったらしいです ^^;;

めでたく、Looking Glass もオープンソースとして java.net で公開されることになりました。

最後に恒例の Duke Award が発表されました。Award のタイトルがおもいろいですよ。

Award 企業 製品/サービス
Java in the City Award 8D Technology Java-based Parking System
Miss Con-JINI-aliy Award Orbitz Java & Jini-based Travel Site
Eat Your Own Dogfood Award Agitar Software Code Debugging Tool That Can Even Dubug Itself
Rocket Science Award JPL Maestro Maestro, Mars Rover Navigation System
Whenever You Go, There You Are Award Avis Rental Car Navigatin System
Can Over 100 Million Users Be Wrong? Award eBay Massive Online Marketplace
Only Two Certainties in Life Award Brazilian Secretary of Revenue Online Income Tax System
Fun Is Serious Business Award Techlnd Chrome, the Java-Powered 3D Game
Press 5 for Java SK Telecom Phone-Based Payment System
To Infinity and Beyond Java Award Slooh.com Online Observatory

 

The Cyclist

その後、昨日に引き続いて James Gosling が登場し、T-shirt ランチングマシンを紹介しました。今日は、自転車の先に筒がついているような形状のマシンです。実際に人が漕いで T-Shirt を打ちだしました。ちゃんと演出用にドライアイスまで使って煙が出るようになっているところなど芸が細かいです。

しかし、すぐに壊れてしまいました ^^;;

 

 
 

Technical Session

 
 

High-Performance XML Processing: Techniques and Tips With the Java API for XML Processing (JAXP) 1.3

JAXP 1.3 で私にとって一番うれしいのは XPath が使えるようになったことです。今までは XSLT のスタイルシートの中で使用することはできましたが、プログラム中では使えなかったのです。

使用するにはまず XPathFactory オブジェクトを static なファクトリメソッドで生成します。次に XPathFactory クラスの newXPath メソッドを使用して XPath オブジェクトを取得します。

実際に XPath を使用して該当するものを取り出すのは evaluate メソッドです。引数は XPath の評価式、InputSource、戻り値の型です。evaluate メソッドの戻り値は Object になります。Tiger に特化しているらなら Generics を使ってもらいたいところですが、そうもいきません。ちょっと残念。

評価式をコンパイルしておくことも可能です。それには XPath#compile メソッドを使用します。

そのほかの機能としてXInclude、DOM Level 3、SAX 2.0.2 などがあげられています。

 

Sharing the Virtual Machine

昨日の General Session で J2ME の KVM でマルチタスクという話がありましたが、それの J2SE 版です。というかこっちが先のようですが。

1 つの VM の中に仮想的に複数の Java アプリケーションを動作させるというコンセプトです。Java による Java のための仮想 OS のような感じです。

なぜ、こんなことをするのでしょうか。その理由として

  • Improve Start-up Time
  • Improve Performance
  • Decrease Memory Footprint
  • OS are Good at Sharing

起動時間が短くなるというのはすでに JVM が動作しているので、コア部分のクラスローダリングが不必要となるためです。また、メモリも読み込みのみのヒープを共有することによって、使用量を抑えることができます。一種のシェアードライブラリのようなものです。

パフォーマンスの向上は動的コンパイルによるものです。コアでよく使われるライブラリはすでに動作しているアプリケーションで動的コンパイルされている可能性がたかくなるので、再び動的コンパイルする時間が不必要になります。このため、起動してすぐに動的コンパイルの恩恵にあずかることができるわけです。

動作している複数のアプリケーションが同士の関係も重要なキーとなります。Java のオブジェクトであればクラスローダを変更することで分けることができますが、JNI も同じようにそれぞれのアプリケーションで分離できるようになっています。これらは JSR-121 の Isolation がベースとなっているようです。

 

Observability Architecture in J2SE Platform Release 1.5

Tiger ではいろいろと JVM の内部情報が見れるようになったのですが、そのあたりの話です。また、内部情報だけで通常のオブジェクトから情報を引き出す方法についても解説しました。

このようなことをおこなうツールや API には

  • java.lang.instrument
  • JVM Tool Interface (JVMTI)
  • Thread Dump/State API
  • java.lang.management
  • JMX/JMX Remote
  • Out-of-the-box Management

などがあります。

まず、java.lang.instrument パッケージの説明から。java.lang.instrument パッケージはいわゆる Bytecode Instrumentation (BCI) を実現するための API です。BCI といえば Javassist が有名ですが、本家のほうも対応を始めてきました。基本的には ClassFileTransformer インタフェースをインプリメントしたクラスを記述します。コードを変更するためのエージェントは premain メソッドを持ちます。premain メソッドの中で、ClassFileTransformer インタフェースをインプリしたクラスを Instrumentation オブジェクトに登録します。

起動するときには -javaagent:[エージェントのJARのパス]=[エージェントへの引数] というオプションを使用します。

次の JVMTI は J2SE 1.4 までのプロファイリングインタフェースの JVMPI とデバッガインタフェースの JVMDI が統合されたものです。Tiger ではまだ JVMPI も JVMDI も残っていますが、次の Mustang からは JVMTI だけになる予定です。

 

 
 

おまけ

 
 
Lunch Box にんじんケーキ
アート アート
アート アート
アート バンド
Crustacean カニ
ケーキ  

今日のランチはチキンのサンドウィッチ。去年と同じような感じです。写真ではハンバーガみたいですが、サンドウィッチです。うしろにある紙袋にはクッキーが入っています。直径 10 cm ぐらいの大きなソフトクッキーです。日本の Starbucks で売っているのと同じです。

あともう 1 つはキャロットケーキ。これがまたアメリカの典型的なケーキでむちゃくちゃ甘い。私がいうくらいなので、甘すぎて食べられない人も多いようです。それでも、私は食べましたが ^^;;

ついでに昨日の絵を見に行ったら 3 枚完成していました。残り 1 枚もほとんど完成に近いようです。それぞれ Java をイメージした絵のようです。

その下の写真は別に変なものではなくて、会場で演奏していたバンドです。スライドギターがなかなかよかったのですが、あまり聞いている人がいないのでかわいそうなぐらいでした。

 

さて、今日 BOF を聴講しなかったのは、日本からの参加者でカニを食べに行ったからなのです。みんなで 15 人。結構な人数ですね。

いきなりきました。カニ丸ごと ^^;; カニを食べに行きましょうといわれていたときには、まさかこんなのが出るとは思いませんでした。かなり油があり、ゆっくり食べていると油が固まってきておいしくなくなってしまいます。黙々と食べてしまいました。食べ終わったら手がベトベト ^^;;

その後ケーキも食べましたが、それほどおなかいっぱいになっていないのです。アメリカに来てから胃が拡張しているのかもしれません。

ちなみに値段は時価。英語で時価のことを Quoted Price ということをはじめて知りました。勉強になるなぁ。

 

(2004.6.29)

 
 
Go to Contents Go to Java Page