Go to Contents Go to Java Page

JavaOne 2002 in SF Report

 
 

9/27 第 3日

 
 

第 3 日目、最終日のレポートです。

まずは Keynote から。

 

 
 

Keynote Session

 
 

今日の Keynote は NTT DoCoMo の榎さん、NEC の伊久美さんからです。

今日もステージ上には演台がありますが、お二方とも原稿を読まずにスピーチをされていました。

榎さんは人前で話されるのがなれているのか、他の日本人のスピーカに比べたら雲泥の差でした。話している内容には iMode と 504 の話だけで、目新しいものはありませんでした。しかし、それでもプレゼンがうまいので聞く側が引き込まれていきます。

とはいうものの、広いステージを歩き回りながら話すのは難しいですね。止まってスピーチをするのであれば、顔を動かすだけで客席のどこでも向くことができますが、歩き回っているとそういうわけにはなかなかいかないようです。特に、ステージのセンターを外してしまい、ずっとステージの端に立ってしまう。榎さんもステージの右側ばかり立ってしまっていました。

NEC の伊久美さんも原稿を読まずにスピーチをされたのですが、やはり場数が違うのでしょう。どうしても、スライドの方を見てしゃべっていることが多かったです。つまり、聴衆にはお尻を向けていたということですね。やっぱり、聞く人の方を向いてしゃべらないと。

この後、2 つの表彰式が行われました。

1 つが Night for Java Technology、もう 1 つが The Best BOF でした。

今年は参加者には 3 つのビー球が配られ、参加した BOF がよかったと思ったら、そのビー球で投票ができるようになっています。そして、それを集計してきまるのが The Best BOF です。

今年の The Best BOF は「TS-1018 プログミング・パズラー」でした。来年の San Francisco の JavaOne でもまた行うと約束していましたので、期待しましょう。

Rob Gingell, Sun Microsystems

最後の Keynote スピーカーは MC でもある Rob Gingell です。Rob Gingell は JCP (Java Community Process) のチェアを務めているというだけあって、JCP について多くの時間を割いていました。趣旨は Java と Community というものです。

JCP は Java のさまざまな標準を作成するコミュニティですが、現在 190 以上の標準策定が行われています。JCP の標準案は JSR (Java Specification Request) と呼ばれ、JSR それぞれのリーダ (Specification Leader と呼ばれています) の 50 % 以上が Sun 以外の人になっています。

JCP 自身もアップデートしており、最近では Executive Committees による投票システムなどが導入されています。

その他にサービスのコミュニティという意味での Jini を紹介しました。

また、なぜ Sun は Java を推し進めるのかということに触れました。Sun が創業以来訴えつづけているものとして The Network is the Computer というのがあります。これは当時、まだそれほどネットワークが一般的でなかった時代に、これからの最も重要な技術であると認識し、それを Sun の方向性としたのだそうです。Java もこれと同じで今後につながる最も重要な技術と思っているためであると説明されました。

 

 
 

Technical Session

 
 

今日、聴講したのは

  • TS-1014 Java プラットフォームのパフォーマンス
  • TS-1053 Project JXTA プラットフォームにおける Java テクノロジー・ベースのモバイル・エージェント
  • TS-1091 組込み型デバイス用の高性能 Java ランタイム環境
  • TS-1083 Project JXTA P2P セキュリティ: トランスポート層のセキュリティにおける Java テクノロジー・ベースのバーチャル・トランスポートの実装

TS-1091 はシャープの音川さんによる intent の紹介でした。Zaurus の Java 戦略はよく分かりません。以前 Zaurus 用の Personal Java が公開されたときは intent だったのですが、Linux Zaurus では Jeode を使っています。そして、この講演ではまた intent です。音川さんは研究所に所属し、事業部の思惑とは異なるという説明をしていましたが...

さて、ここでは TS-1014 のパフォーマンスに関するセッションのレポートをしたいと思います。

 

 
 

TS-1014 Java プラットフォームのパフォーマンス
Steve Wilson, Sun Microsystems

 
 

このセッションは 3 月の SF の JavaOne でも行われたのですが、聴講でなかったので、今回参加しました。逆に、これと平行して行われた Joshua Bloch の TS-1024 More Effective Java は SF で聴講したので、選択しなかったわけです。

スピーカの Steve Wilson は「Java プラットフォームパフォーマンス」の著者で、今回のセッションもこの本がベースになっています。しかし、パフォーマンスを向上させるための Tips に関するものではなく。システムを作成していく上で、どのようにパフォーマンスを捉えるべきかという観点からのセッションでした。

パフォーマンスを考えるにはまずプランが重要になります。システムがどの程度のパフォーマンスが期待されているか、安定性はどうか、拡張性はどうかなどを仕様分析の時から考慮する必要があるとしています。多くのプロジェクトではこのプランが行われていないために、失敗しているそうです。

実際にパフォーマンスに問題があったときは、それがどのような原因によるものかを調べる必要があります。特にパフォーマンスではプロファイラを使用して、測定を行うことを勧めていました。

プロファイラにはフリーの、というか Java 2 SDK にははじめから付属しているプロファイラがあります。これらは Java 2 であれば JVM の起動オプション -Xprof もしくは -Xrunhprof で動作します。前者が CPU の実行時間のプロファイル、後者がヒープのプロファイルになります。

市販のものであれば

が紹介されていました。

プロファイルの結果を設計、実装にフィードバックすることでよりよいパフォーマンスを得ることができます。

また、システムをデプロイした後にもモニタを行い、システムの使用状況を調べることでよりよいフィードバックが得られることがあります。例えば ECPerf でメモリの使用量をモニタするなどです。

最後に J2SE, v1.4 のパフォーマンスの強化点 (New I/O や JNI など) についてまとめました。

 

 
 

Birds of a Feather (BOF) Session

 
 

今日は最終日なので夜の BOF はなく Lunch BOF だけでした。今日は次のセッションを聴講しました。

  • BOF-1252 続プログラミング・パズラー

 

 
 

TS-1252 続プログミング・パズラー
Joshua Bloch, Sun Microsystems
Neal Gafter, Sun Microsystems

 
 

昨日の続きのセッションです。じつをいうと昨日のセッションは 3 月の SF の JavaOne でも行われていたので、問題は新作というわけではありませんでした。しかし、今日はまったくの新作です (たぶん)。

セッションは昨日と同じように行われましたが、4 人の参加者以外に昨日のディフェンディングチャンピョンも加えた 5 人が壇上で参加しました。

出題される問題も昨日と同じく 10 問。やっぱり難しいです。今日も 1 問だけ載せます。

問題

    public class PingPong {
        public static synchronized void main(String[] args) {
            Thread t = new Thread() {
                public void run() {
                    pong();
                }
            }

  
            t.run();

 
            System.out.print("Ping");
        }      
        
        public synchronized void pong() {
            System.out.print("Pong");
        }
    }

さて、出力は "PingPong" か "PongPing" かそれ以外か...

答え

    PongPing

スレッドを作って、start させるのには時間がかかるから、先に Ping が出力されそうですが...

でも、よくソースを見てください。スレッド t に対して t.start() をコールしているのではなく、t.run() をコールしています。これではスレッドはスタートしませんね。

よくある間違いだと思うのですが、これを見つけるのはとても大変です。一見うまく動いているように見えているのですから。

昨日よりはとけるかなと思って意気込んでいたのですが、やっぱり難しかったです。

 

 
 

おまけ

 
 

今回の JavaOne では Linux Zaurus が無線 LAN カードとセットで限定 300 セットがなんと \49,800 で売られていました。また、買われた方の得点として、IEEE 802.11b を利用したクイズに参加できるのです。

でも、あまり売れてなかったようです。SF の JavaOne ではキーノート待ちの行列より長い行列ができていたのにです。Linux Zaurus って人気ないのでしょうか。もうすこし安くすれば売れたかもしれませんが....

それはそれとして Zaurus が無線 LAN カードと一緒に売られて、会期中に IEEE 802.11b が使えることは知っていたので、Zaurus でなくても使えるかなと思い無線カードを持っていっていたのですが... 結局、使えませんでした。というのも WEP が設定されており、Zaurus を買わないとそれを教えてもらえなかったからです。

こういう場所なんだから、参加者が全員無線 LAN を使えるようにしてもらいたかったです。Key3Media さん、来年はお願いします。

(2002.9.28)

 
 
Go to Contents Go to Java Page