Go to Contents Go to Java Page

JTC 2004 Reports

 
 

2/18 第 1 日

 
 

今年は日本では JavaOne ではなくて、Java Technology Conferences です。JavaOne と Sun Tech Day が合わさったようなものです。

JavaOne でないせいか、参加費もずいぶん安くなってかつ無料セッションも多くあります。しかし、登録制にしたのはいただけません。自由参加にしないと。

JTC カー
JTC カー
JTC Bus
JTC バス

朝、会場のホテルニューオータニへ赤坂見附の駅から向かったのですが、Java の車とバスに遭遇しました。四谷方面には Java のハマーが痛そうですが見逃してしまいました。

今日は Keynote、通常セッション、Night for Java Technology があり、BOF はお休みです。Keynote は日本初登場の Jonathan Shwartz です。

普通の Keynote の前に Technical Keynote という変則的な設定ですが、朝一は入りが悪いからというような理由があるような気がします。

今日の聴講したセッション

この中で興味深かったものに関してレポートしたいと思います。

 

 
 
Thechnical Keynote Sun Microsystem Mark Hapner, Tim Lindholm
 
 
Tim Lindholm
Tim Lindholm
Mark Hapner
Mark Hapner

Thecnical Keynote ではおなじみの Tim Lindholm と、J2EE の Mark Hapner の登場です。

前半が J2SE と J2EE、後半が J2ME の話題です。

J2SE ではほとんど Tiger に関して時間を割き、残りの時間を J2EE 1.5 という感じでした。

J2SE と J2EE の全体のテーマとして Ease of Development (EoD) があります。

Tiger での EoD として取り上げたのは

  • Metadata
  • Generics
  • 拡張 for, enum, autoboxing
  • Simple Formatted I/O

です。それぞれ紹介程度でしたが、Metadata を一番はじめに持ってきたのは以外でした。

ところがこの後、J2EE 1.5 の EoD に話が移って Metadata が一番になった理由がわかりました。J2EE の EoD として

  • Deployment Description の簡略化
  • EJB 3.0
  • JAX-RPC 2.0
  • JAXB 2.0
  • JDBC 4.0

という 5 つの技術が上げられたのですが、すべてに Metadata がからんでくるのです。

DD の簡略化ではソースコード中にデプロイの情報を Metadata で記述する、EJB もデフォルトを Metadata で表わすようにする。

JAX-RPC はもちろん Metadata を使用して、インタフェースを自動生成します。JAXB や JDBC でも Metadata を活用するというのです。

Tiger では Metadata を使えるだけになってしまっていますが、J2EE 1.5 になって Metadata を扱うツールやライブラリが充実し、いよいよ Metadata が活用する段階になるのだと思います。

次に Java とスクリプト言語に関して。JSR-223 でスクリプト言語と Java に関して仕様が策定されています。ここではさまざまな言語が対象になっているようですが、特に PHP にフォーカスをあてるようです。

また、Tomcat が PHP をサポートする予定だそうです。

J2ME に関してはちょっと話題が少なすぎる気がしました。始めにいまさらの感がある MIDP 2.0 を紹介し、Technical Keynote なのにマーケティング的な話題に移りました。

J2ME の中心的話題は JTWI でしたが、これも去年の話なのでちょっと新鮮味に欠けるかなという気がします。

最後にロードマップを示しました。主なものをあげておきます。

J2SE 1.5 Tiger 2004 年中旬
J2SE 1.5.1 Dragonfly 2005 年初頭
J2SE 1.6 Mustang ???
J2EE 1.5 ???
JTWI Next 2004 年後半
CDC 1.1, FP 1.1, PBP 1.1, PP 1.1 2004 年後半

 

 
 
Keynote Sun Microsystem Jonathan Schwartz
 
 
Jonathan Schwartz
Jonathan
Schwartz

日本発登場の Jonathan Schwartz です。日本で行っているせいかスーツ姿でした。

演題は "The New Fronties: Java Technology is Everywhere"

Java の切り口を Developer、CIO、Operator、Consumer の 4 つに分け、それぞれの切り口に関して Java との関わりを説明していきました。

私のような開発者にとって一番おもしろいのはやはり Developer 向けの話しなので、それを中心に。

今年の 1 月の Java (J2SDK ?) のダウンロードは 7,000,000 もあるそうです。Java はさまざまなコミュニティに対し魅力のあるものとなっているようです。Linux やオープンソースのコミュニティなどに Fueling するという表現をしていました。

さらに、Java Desktop System に関して触れ、Looking Glass のデモを行いました。Looking Glass は 3D のデスクトップシステムで Java で記述されています。

また Java Stdio Creator などの開発環境に関しても触れました。

CIO 向けとして IT 技術のトレンドがスタンドアローンからネットワーク化、さらに分散化と進んでいき、その中で重要な技術としての Java を紹介しました。

Operator 向けとしては N1 Grid、Consumer 向けとして java.com をそれぞれ紹介しました。

この後、NTT Docomo 榎さん、富士通 田中さん、NEC の伊久美さんがそれぞれスピーチをしましたがつまらなかったので省略。なぜ、こういう場で自社のビジョンを示せないんでしょうね。単に製品紹介にしかなっていないのでつまらなくなってしまうということが分からないのでしょうか。

逆におもしろかったのは 3 つの事例紹介です。

UFJ 日立システムはUFJ 銀行の、講座振替システムに関して。とてつもない量のトランザクション (受付件数 800 万件/ 7 時間、引き落とし処理 1500 万件/ 2 時間) を扱うようなシステムを J2EE で構築しているらしいです。

次が東京電力の発電所の監視システム。Linux の上で Java で監視システムを構築しています。リアルタイムで問題なく動作できるぐらいのパフォーマンスがあるそうです。

最後がクラリオンのバス車載システムです。行先表示や運賃表示、料金収納箱などを J2ME CDC Personal Bases Profile でコントロールしているそうです。

 

 
 
一般セッション
Java Desktop System が切り開く新しい地平: Looking Glass
Sun Microsystem 西田 和弘, 川原 英哉
 
 

まず、西田さんが Java Desktop System の一般的な説明、次に川原さんが Looking Glass の説明を行いました。

Java Desktop System は Micrososft に対抗すべく Sun が提供しているデスクトップシステムです。名前は Java がついていますが、実際は Java は名前だけ借りているような状態です。

現状は Susie Linux をベースにしており、そこに Gnome, Mozilla, StarSuite などが一緒になった Sun の Linux ディストリビューションと考えることができます。

今年の 4 月に日本語対応版がリリースされる予定で、IME には ATOK、日本語フォントはリコーのものが使われるそうです。値段は $50 の為替レートを考慮したていどらしいので、\5,000 から \6,000 になるのではないかということです。

また、10 月には Solaris 版も提供される予定だそうです。

さて、Looking Glass です。Looking Glass は Keynote でもデモされた 3D のデスクトップ環境です。しかし、3D にあまりとらわれてしまうと Virtual Reality のようなシステムになってしまい、使い勝手からすれば使いにくいものになってしまっているのが多いと思います。

「3D にしたから何がうれしいの?」というところをまじめに考えているという印象をうけました。

Looking Glass は既存の 2D のアプリも 3D のアプリもシームレスに使えるように考えられています。ウィンドウを立てて脇に置いておくというのはよくありますが、それだけではありません。

たとえば、ブラウザの裏側に表示している Web ページに関するメモを書けるようになっていたり、設定のためのダイアログをアプリケーションの裏側にしてみたりという使いやすさのための工夫がなされています。

こんなことをしていると重たそうですが、それほど CPU のリソースは使わないようです。

2004 年の中旬には Looking Glass の SDK が提供される予定だそうです。また、Web サイトもできたそうです。

Looking Glass Web サイト
http://wwws.sun.com/software/looking_glass/

最後の Q&A で下側のライブラリに関して質問をしてみました。予想通り OpenGL を Java から使用しているらしいです。

SDK が公開されたらぜひ使ってみたいですね。

 

 
 
人のバグ見て我がプログラム直せ
NEC 岸上 信彦、木村 英一
 
 

バグの事例からのケーススタディです。会場はそれほど広くはないところでしたが、立ち見状態。みなさん、パフォーマンスで困っているんですね。

紹介された事例は 3 つです。

Scenario 1

MVC の分離の話。

Web システムでビューとコントロールをすべて JSP で行っている事例があったそうです。

JSP が V と C を持ってしまい、ロジックや画面遷移にかんするものまで JSP にハードコーディングされていたそうです。解決法としては当たり前ですが、Servlet を導入して、C は Servlet に行わせるようにすることです。

ここで重要なのはデータの生存期間です。Servlet のスコープによりデータの生存期間が変わるので、情報の種類によって適切なスコープを選ぶ必要があります。

 

Scenario 2

リフレクションの話。拡張性を求めるためにリフレクションを使用することがありますが、使いすぎはだめですよという話題でした。

J2SE 1.4 でリフレクションはパフォーマンス向上しました。しかし、はじめにリフレクションでメソッドをコールされるときは Native Code によるもらしくそれほどパフォーマンス向上はしません。何度もコールするとそれがバイトコード化されるらしくパフォーマンス向上するようです。たぶん、HotSpot がそう判断するのでしょう。

問題はバイトコード化したときにそれをまたロードするのでメモリが消費されることにあります。紹介された事例でもそのバイトコードのロードで Out of Memory になってしまっていました。

 

Scenario 3

EJB のトランザクション境界とトランザクションの長さの問題。

Web Tier と EJB Tier が違うマシンで実行される場合、トランザクションが問題になります。同一マシン上であればローカルインタフェースが使用できますが、リモートなのでリモートインタフェースを使用することになります。

しかし、リモートインタフェースを使用すると Data Transfer Object は毎回シリアライズ/デシリアライズされます。それがパフォーマンスダウンになってしまうのです。

また、リモートとの通信が頻繁に行われれば、パフォーマンスダウンしてしまいます。ある程度通信をまとめて行う必要があります。

 

 
 
Java プログラミング言語におけるワイルドカード
Sun Microsystems Neil Gafter
 
 

Neil Gafter は今では Programming Puzzler で有名になってしまいましたが、JSR-14 Generics にもずいぶんコミットしていたようであります。

題名のワイルドカードというのは Generics に出てくるワイルドカードのことです。Generics に関しては虎の穴の Generics の解説 をご覧ください。ワイルドカードについても触れています。

Generics ができてとても便利になったのですが、Generics を使うとオブジェクト指向の抽象化とは会い入れない部分がでてしまいます。

たとえば、List インタフェースと Set インフェースは Collection インタフェースの派生インタフェースですが、List<String> インタフェースと Set<Interface> インタフェースの親インタフェースは何になるのだろうという問題です。

配列的に考えると List<Object> が List<String> と Set<Number> の親クラスになります。しかし、これではタイプセーフではなくなってしまいます。

    List<Number> numbers = ...

    List<Oject> things = numbers;

 

    thigs.add("Seven");    // <-- Runtime Exception が起きてしまう

 

また、List インタフェースを List<Number> と List<String> の親インタフェースにするという考えもあります。しかし、これもタイプセーフでなくなってしまいます。

    List<Number> numbers = ...

    List things = numbers;

 

    thigs.add("Seven");    // <-- Runtime Exception が起きてしまう

そこで Generics が導入したのがワイルドカードです。ようするに List<?> インタフェースを List<Number> インタフェースと List<String> インタフェースの親クラスにしてしまうという考えです。? がワイルドカードになります。

この方法だとタイプセーフで、コンパイル時にチェックを行うことができます。

    List<Number> numbers = ...

    List<?> things = numbers;

 

    thigs.add("Seven");    // <-- Compile エラー

この延長線上に List<? extends Number> インタフェースとか List<? super Integer> インタフェースなど、extends と super が使えるようになっています。

たとえば、List<? extends Numb er> の派生インターフェースとしては List<Integer> インタフェースなどが当てはまります。また、List<? super Integer> の方は List<Number> インタフェースなどが当てはまります。

これらのワイルドカードを使用した例として Collections クラスの fill, copy, addAll, removeAll などがあります。

最後にコードの中でワイルドカードをどのように扱うかについて説明がありました。? なのでなにが来るのか分からないのですが、それをキャプチャーすることによって型を特定することができます。たとえば、Collections#reverse(List<?> list) メソッドは次のように定義されています (実際の Collections クラスのソースとは違うようです)。

    public static void reverse(List<?> list) {
rev(list); // <-- これがキャプチャ } public static <T> rev(List<T> list) { ... }

 

 
  Night for Java Technology  
 

Night for Java Technology の会場を待っている間、Duke と Oracle の Wendy の記念撮影会。結構珍しいと思うのですが、Duke の Wendy の 2 ショットの写真です ^^;;

前回の Night for Java Technology で特別審査委員だった James Gosling がコメントとしていったこと 「次回はぜひ Iron Chef のように」 がなんと実際に実現してしまいました。会場もキッチンスタジアムを模したような感じになっています。

鉄人スタイルということで、2 人づつの対戦ということになりました。それぞれ再度にキッチンのような場所を作り、そこでデモを行うようになっています。また、そこで対戦する方も鉄人スタイルで登場します。

エントリーは 10 人。メニュー仕立てで前菜対決からデザート対決まで勝者を決めます。対戦表もメニュー仕立て。審査員には Tim Lindholm と、Mark Hapner も加わっています。

Duke & Wendy Kitchen Stadium
Duke と Wendy Kitchen Stadium
Menu 鉄人
Menu 鉄人登場

まずは前菜対決

〜〜 前菜 hors d' oeuvre 〜〜
JFractal 林田 茂夫 vs. Morse Code Music Composer 芝尾 幸一郎

JFractal はフラクタルを表示したり、それを音楽として表現するためのソフト群。電子音だと無機的に聞こえるものも、波の音や UFO の音、演歌、沖縄民謡などいかにもそれらしくきくことができます。携帯電話でも実行させたり、着メロとして利用することも可能です。

デモで想定していた画面に切り替わらないなどアクシデントがあり、十分に伝えきれなかったのが残念。

対する、Morse Code Music Composer はモールス信号がリズムになりえるというコンセプトから作られた作品。複数のトラックに分かれており、それぞれに音が割り付けられ、そこに文字を入力するとそれに対応するモールス信号がリズムになる。トン・ツーだけで奏でられる音楽というのもふしぎな感じ。

この作品は以前 NHK のデジスタで紹介されたことがあり、立花ハジメ氏のコメントが以下の URL で読むことができます。

http://www.nhk.or.jp/digista/review/031206_review.html#no2

勝者 芝尾 幸一郎

 

〜〜 スープ soup 〜〜
Supremo Streaming System 西本 圭祐 vs. WhiteDog System and WhiteDog Studio 中口 孝雄

 

WhiteDog
(wmv 2.8MB)
WhiteDog System

西本さんは 3 回連続出場で、前回人工知能をコンポーネント化してしまうというシステムで参加されていた方です。今日はそれとはぜんぜん趣が変わっていたのではじめ気がつきませんでした。

Supremo Streaming System は文字通りストリーミングシステムです。あまりストリーミングに Java は使われていないようですが (JMF はストリーミングをサポートしていますが、それは置いといて)、Pure Java でストリーミングを行ったそうです。デモでは、Linux Zaurus をサーバにして USB カメラで会場を移してみせるというものでしたが、カメラの接続が悪く最後にちょっと映っただけでした。

もうすこし見れたらインパクトがあったと思います。

WhiteDog System はアスペクト指向を使用してアプリケーションを同期させてしまうシステムです。共有したいオブジェクトに対しメソッドコールがあったら、それをリモートのオブジェクトに対しても同じ引数でメソッドコールすることで同期を行うことができます。アスペクト指向を利用して、メソッドに対し後付で機能を付け加えることで、大本のソースには手を入れずに同期することができます。

また、部分的に同期を行うこともでき、デモでは 3 次元のキューブの中にある Canvas オブジェクトと、お絵かきソフトの Canvas オブジェクトを同期させていました。

こんな動画を公開するのも著作権的にはやばそうですが、もっともインパクトのあるプレゼンだったので許してください。

# 近いうちに、WMV だけでなく QT も作る予定です。

 

勝者 中口 孝雄

 

〜〜 魚 fish 〜〜
コンポーネント指向電子メーラ COMET 青木 宣明 vs. DataSpider Mapper 久納 孝治

COMET はコンポーネントを用いて拡張を行うことができるメーラです。通常はメールの表示部分でコンポーネントを実行することができます。また、このコンポーネント間の通信にメールを使用することができます。サーバを使用せずにメールで ORB を実現しているわけです。

デモではメーラでリバーシを行うものでした。メールをやりあうことでリバーシの対戦を行うことができます。なんかはがきを出しあって将棋をするような感じを受けました。

ちなみに COMET のページはまだないようです。

Data Spider Mapper の久納氏は前回 GameBoy Simulator で参加していました。

Data Spider Mapper はドキュメント指向でアプリケーションを表現するためのシステムでした。あるドキュメントから他のドキュメントを生成するには XSLT を使用するのですが、XSLT は前面に出てこず、GUI 上でグラフィカルに対応する情報を結びつけることで動的にスタイルシートを生成し、変換を行っています。

内容的にはとても面白いと思ったのですが、デモ的にはちょっとインパクトが弱かったのがおしい。

 

勝者 青木 宣明

 

〜〜 肉 meat 〜〜
Silhouet - シルエット 園田 修司 vs. ガンダムバトルシューティング 佐藤 類

Silhouet は Web のリンクをたどるというとを、ゲームのコンテンツとして利用してしまおうというものです。リンクをたどって、コンテンツを収集しそれをそのままゲームに応用してしまっています。

デモはダンジョンゲーム。それぞれの部屋がある Web の URL に対応しており、部屋を移動することがリンクをたどっていくことに対応しています。画面も綺麗でなかなかインパクトがありました。また、ネタもちゃんと仕込んであり、BSE や鳥インフルエンザなどの時事ネタも使うなど、かなり手が込んだものでした。

なお、Silhouet は IPA の未踏開発ソフトウェアに採択されています。

http://www.ipa.go.jp/software/esp/15mito/gaiyo/3-17.html

一方の佐藤さんは 3 会連続出場。GetAmped、TaQQ につづく今回のゲームはガンダムでした。TaQQ と同じようにタッチパネルで動作させるゲームです。ターン制をとり、攻撃を防御を繰り返すタイプのゲームです。

それにしても、3D で描き出される世界はすごいですね。Java でもここまでできるというのを見せつけられるようです。

ちなみに、サイバーステップの Web サイトにはまだガンダムバトルシューティングのページはないようです。

 

勝者 佐藤 類

 

〜〜 デザート dessert 〜〜
Bagrom 神田 浩之 vs. Scatter Search 福田 善文

Bagrom はマーケッティングのためのアプリケーションで、展示会や雑誌の付録などの CD-ROM から動作させるものらしいです。ユーザは仮想空間を動いて商品紹介などを見ることができるようです。また、このソフトを利用してマーケティングデータを収集することも可能なようです。

Java 3D を使用して仮想空間を構築しているのですが、デモでは思ったような動作がなかなかできずに苦戦していました。

一方の Scatter Search はテキストのよさをもう一度見直すようなアプリケーションです。検索を行うためのアプリケーションなのですが、検索結果は 3D 空間上にテキストとして配置されます。絞込みを行って結果の件数が少なくなってくるとまとまって見えるようになります。

コンセプト的には面白いとは思うのですが、デモ的にはインパクトが弱い。また、コントラストがおさえたような感じの画面なので、はじめは何をしているのかぜんぜん分かりませんでした。

 

勝者 神田 浩之

 

本来ならばこれでおしまいなのですが、飛び入りで Sun Microsystems の川原さんが Looking Glass のデモを行いました。また、そこに対戦相手としてあらわれたのがニューオータニのパティシエ 道場さん。なんと Duke のケーキが作品です。

 

〜〜 番外編 〜〜
Duke Cake 道場 ユウスケ vs. Looking Glass 川原 英哉

 

Duke Cake
Duke Cake 道場さん

道場さんのお名前が分からないので、申し訳ありませんがカタカナで表記させていただきます。もし、ご存知の方がいらっしゃいましたら櫻庭までメールください。

Looking Glass は今日 3 回目。でも、やっぱりインパクトがあります。

対する Duke Cake は... Duke Cake を作る時の苦労話などをお話していただけました。苦労したのは色。食品としてみた場合あまりビビッドな色というのは難しいそうです。ちなみに黒い部分はイカ墨だそうです。

また、土台のケーキも普通のままだと Duke が重くて沈んでしまうので、普段は乳脂肪分の低い植物性の生クリームを使用されているらしいのですが、これには乳脂肪分の高い生クリームを使うなどの工夫がなされているらしいです。

でも、これを本当に理解している人は数少ないと思うぞ。

製作には設計で 1 日、作成 12 時間、乾燥で 1 日とかなり時間がかかっているようです。

 

勝者 道場 ユウスケ

 

最後に表彰式がありましたが、Tim Lindholm がやってくれました。なぜか鉄人の格好。着てみたかったんでしょうね ^^;;

5 分の持ち時間の中でデモがうまく行かなかったり、画面の切り替えがうまく行かなかったりというところもありましたが、やっぱりおもしろいですね。毎回、趣向を凝らしているので、次回が楽しみです。

Tim Lindholm Mark Hapner
おちゃめな Tim Mark Hapner

 

 
  さいごに  
 

前回の JavaOne のキーノートは会場が広すぎたせいで閑散とした雰囲気でしたが、今日のキーノートは会場が狭くなったせいで立ち見状態。人数的には少なくなったと思いますが、感覚的には盛況という変な感じです。会場によってこんなに感じが変わるなんて思ってもみませんでした。

それにしてもキーノートはずいぶん時間がおしていたようで、後半のゲストスピーチはみんな早口。NEC の伊久美さんのスピーチでは予定していたデモを取りやめてしまいました。

あとで NEC の岸上さんに聞いたところ、携帯電話で買い物するときのクーポンを扱えるといったデモの予定だったらしいです。おもしろそうだったのに、残念。

それにしても日本人はスピーチが下手ですね。と、毎年いっていますが、今年もあいかわらず下手でした。どうにかならないのかなぁ。スピーチも下手だけど、資料作りもひどい。PowerPoint そのままなんて。一般の社員だったらいいですが、キーノートで喋るぐらいなんだから工夫しなくては。あまりにも安易過ぎます。

もう 1 つ、キーノートに関して。キーノートのスピーカは皆さん Logitech の Bluetooth マウスらしきものを持っていました。私もこれがほしくてしょうがないのですが、プレゼン用と思うとちょっと高い。

これがあるとページを代えるときにいちいち PC のそばまで行かなくてすむので、とてもいいです。PC のところに歩むことは動きとしてはとても無駄なんです。その時間があるのだったら聞いている方にアイコンタクトする方がよっぽどいいです。

ところで、今年も会場で新聞が配られています。去年は JavaOne Today でしたが、今年は JTC Today。実をいうとそこに私が Tiger に関してコラムを書いています。もし、機会がありましたらごらんになってください。

(Feb. 2004)

 
 
Go to Contents Go to Java Page