Go to Contents Go to Java Page

JavaOne 2002 in SF Report

 
 

3/25 第 1 日

 
 

今日から JavaOne が開催されました。本日のレポートをお届けしたいと思います。

まずは昨日の訂正から。昨日のレポートでは 11 月に日本、3 月に SF と書いたのですが、来年からはまた従来通り SF での JavaOne は 6 月になるそうです。また、日本は 9 月に行われます。

ということは、次回の SF の JavaOne までは 1 年以上のブランクになってしまいます。

今回のレポートでは J2EE に関して、筆者は興味があまりないので、どうしても J2SE や J2ME に偏ってしまいます。また、J2EE に関しては、他のメディアなどで取り上げられることが多いので、私がレポートしなくてもいいかなと思っていることも確かです。そういうことなので、独断と偏見をもって、これからもレポートするつもりです ^^;;

さて、本題に入って今日のレポートです。

 

 
 

Keynote Session

 
 

去年から、初日の Keynote は普通の Keynote と Technical Keynote に分かれましたが、今年も同じような感じです。Keynote の内容に関しては Impress Watch などのメディアで報道されるので、私は違った観点からレポートしたいと思います。

去年の Keynote はちょっとお祭り騒ぎすぎたような感じがしていたのですが、今年は少し落ち着いた感じに戻りました。

去年は太鼓道場という日本の太鼓のパフォーマンスから始まったのですが、司会の John Gage がその後に「ドージョー」と連呼していたのがかなりダメダメだったのです。おまけに入れ替わり立ち代りさまざまな企業のスピーカが登場して、どうしても短いスピーチを繰り返すので、どうしてもあわただしい雰囲気になってしまっていました。

ことしは、去年と打って変って落ち着いた雰囲気です。

やはり、幕開けはパフォーマンスから始まります。これも恒例になってしまいました。今年のパフォーマンスは 2m ぐらいの棒を 2 本手に持った、ダンス (?) のパフォーマンスでした。

その後に John Gage が出てくるのですが、いつもと同じ黒のポロシャツとチノバンといういでたちです。何度も JavaOne に参加していますが、いつも John Gage は同じ格好をしています。ステージだけなのかと思っていたのですが、昨日 Pavillion にいたときもまったく同じ格好でした ^^;;

Dance Perfomance
ダンスのパフォーマンス
John Gage
John Gage

 

Rich Green
Rich Green

今年の Keynote のスピーカは Scott McNealy が戻ってきたのですが、反対に Bill Joy がいなくなってしまいました。Bill Joy のファンの私としては少しだけ寂しいです。

さて、今日は Pat Schults と Rich Grenn, James Gosling がスピーカです。Pat はちゃんとしたスピーチではなく、John Gage とのやり取りだけでした。

Rich Green もいつもの格好です。黒の T-shirt にツィードのようなジャケットといういでたちです。James Gosling もいつものように T-shirt にジーンズです。Sun の人が皆いつも同じ格好をしているわけではないと思いますが...

James Gosling は恒例の T-Shirts 配布があるので、それと同じ格好をしているのは毎年のお決まりです。今年はおととしのスリングが復活しました。去年のバズーガ砲は不評だったのでしょうか。

午後からは、Techinical Keynote ということで、Java の現在と将来の Roadmap に関するスピーチです。技術に関することだけで、ビジネス的な話はまったくありません。こちらのほうが Developer Conference である JavaOne にはあっているような気がします。今年は特に J2ME に力を入れて説明していました。

J2EE は v1.3、J2SE は v1.4 に関してですたが、すでにリリースされているものなので、それほど新しいことは盛り込まれていませんでした。J2SE v1.4 に関してはセッションの方でもうちょっと詳しくレポートします。

James Gosling
James Gosling
T-Shirts Throwing
T-shirts 投げ?

 

 
 

Technical Session

 
 

今日、聴講したのは

  • TS-1756 The Java 2 Platform, Standard Edition (J2SE) 1.4 Release and Beyond
  • TS-3027 What's New with "Project JXTA"
  • TS-2995 Mobile Information Device Next Generation (MIDP 2.0, JSR-118) UI, Games, and Sound

です。JXTA はまた違う機会にレポートするとして、今日は J2SE v1.4 と MIDP 2.0 に関して書きます。個人的には JXTA は非常に興味を持っている、かつ、いろいろと試しているので、ぜひ今後紹介したいと思っています。

TS-1756 The Java 2 Platform, Standard Edition (J2SE) 1.4 Release and Beyond

v1.4 の紹介と今後の Roadmap に関するセッションなのですが、v1.4 のところは私の Web サイトを見ていただくとして、Roadmap に関してです。

今後、v1.4 に関しては Bug Fix を主体としたリリースが 2 つあります。

Version (Code Name) Release Contents
v1.4.1 (Hopper) Early Fall 2002
  • Bug Fix
  • Itanium Support (Windows & Linux)
  • Improved Java Plug-in
  • Perfomance Works
    • JVM Sharing
    • Concurrent Mark & Sweep GC
v1.4.2 (Mantis) Early 2003
  • Buf Fix
  • Some Performance Works

 

v1.5 はコードネームが Tiger といいます。Tiger のリリースは Second Harf 2003 を目指しているそうです。

v1.5 に盛り込む機能はまだ検討を続けているそうなので、今回発表されたもの以外にもあると思いますし、また、外れてしまうものもあるかもしれません。

主だったものをあげてみます。ただし、筆者の英語力はたいしたことがないので、もしかしたら間違っているかもしれません。

機能 内容
Generics C++ のテンプレートのようなもの
Autoboxing of Primitive Type プリミティブをコレクションに入れられるように、自動的にたとえば int -> Integer といった変換をすることのようです
Support for Importing Constants public static final な定数をもっと簡単にインポートする機能のようです
Meta Data  
JMX Management API Monitoring の API です。CIM/WBEM や SNMP をサポートしているそうです
JVM Monitoring & Management API Local の JVM だけでなく、JMX を使用してリモートの JVM もモニタできるそうです
New JVM Profiling API 現在の Profiling API を置きかえるものです
New File Syste Interface File のアトリビュートなどをより扱いやすくするらしいです
Simple Formatted I/O C の printf のような、簡単なフォーマッティングを行うものです
Asynchronous I/O 非同期の I/O です。
Bigger Heap Support v1.4 では 200GB のヒープまでテストしているそうなので、それ以上なのでしょう
Unicode 3.1  
IPv6 QoS や IPsec もサポートするそうです
Java Isolation API Isolated な環境での Java のタスクを行う API なのらしいですが、よくわかりません
API for javac Compiler javac をアプリケーションの中から呼び出して、制御できるようになります
Disconnected JDBC RowSet  

また、XML に関しては JAXP の他にバンドルされる JAX ファミリーが増えます。

  • JAXB
  • JAX-RPC
  • JAXM

TS-2995 Mobile Information Device Next Generation (MIDP 2.0, JSR-118) UI, Games, and Sound

MIDP 2.0 の新機能として

  • セキュリティモデル Sandbox だけでなく、Signed MIDlet が使用可能
  • HTTPS, Serial Port, Socket, Server Socket, Datagram をサポート
  • Push Architecture

また、グラフィックに関しては次に示すような機能が強化されるようです。

  • Custom Item : コンポーネントのカスタマイズが行えるようになります
  • Layout Control : Preferred Width & Height などが使えるようになり、コンポーネントの拡大・縮小に対応できるようになります
  • Transparent Image :透明や半透明色
  • Image Transformation : 回転や反転などができるようになりました。ただし、セッションでは 90度単位の回転しか示されなかったので、もしかしたら任意の角度の回転はできないかもしれません
  • get/draw region of RGB values : これがほしかった人も多いのではないでしょうか
  • Fill Triangles

MIDP のコア以外に Game API と Sound API に関しても説明がありました。

Game API では

  • Sprite
  • TilledLayer
  • GameCanvas

などのクラスが導入されています。TiledLayer はゲームの背景をイメージのタイリングで描画するときに使えそうです。GameCanvas が実際のゲーム画面になります。Sprite や TiledLayer を重ねて、描画する範囲を決めることができます。このため、スクロールが簡単にできそうです。

他にも Off-Screen Buffer が使える、複数キーの同時入力のサポートなどの機能があるようです。

サウンドに関しては

  • Tone Generation
  • Sampled Sounds (such as .wav file)
  • MIDI

がサポートされるそうですが、Sampled Sounds と MIDI はオプショナルだそうです。

 

 
 

Birds of a Feather (BOF) Session

 
 

普通のセッションの後に BOF が行われます。

今日は 7:30 p.m. から開始されましたが、なんと最後の BOF セッションは 12:20 p.m. まで行われます。それでも、結構聴講する人がいるから驚きです。

今日は次のセッションを聴講しました。

  • BOF-1408 Refactoring for Scalability and Performance
  • BOF-1448 Getting Started with the Java API for XML-Based RPC (JAX-RPC) 1.0 RI
  • BOF-3121 "Project JXTA" Community Meeting

ここでは JAX-RPC に関してレポートします。

BOF-1448 Getting Started with the Java API for XML-Based RPC (JAX-RPC) 1.0 RI

JAX-RPC は SOAP を使用するための API です。Server Side と Client Side の両方をサポートしています。Apache の Axis (以前は Apache SOAP といっていたもの) と同じような位置付けの API です。

Java では XML Messaging を行うための API として JAXM という API があります。JAXM では SOAP のメッセージングと ebXML のメッセージングをサポートしています。

JAX-RPC はこの JAXM の上で動作するものです。JAXM は、メッセージングのための API なので、SOAP を使うにはちょっと面倒なのですが、JAX-RPC を使えば簡単に SOAP を使うことができます。

まずは Server Side の SOAP で呼び出されるメソッドを記述します。呼び出されるメソッドは RMI と同じように Remote インタフェースをインプリメントしたインタフェースで記述します。

実装はこのインタフェースと javax.xml.rpc.server.ServiceLifecycle インタフェースをインプリメントします。

実装したら xrpcc ツールで、スタブと WSDL ファイルを生成します。WSDL は SOAP のサービスを定義するための言語で XML で記述されているものです。

SOAP サーバーは Servlet で実装されているの、最後にこれらのクラスや WSDL などを war ファイルにまとめます。

ただ、スタブなどを生成する xrpcc ツールが設定ファイルを書かなくては行けないのでちょっと面倒です。

Client Side はスタブもしくは WSDL ファイルから、xrpcc ツールを用いてスケルトンを生成します。

これを呼び出すようなソースを書けば、出来上がりです。

JAX-RPC と Apache Axis を比べると、Axis の方が簡単に使えそうです。どうも xrpcc が使いにくそうな感じを受けました。わざわざ xrpcc のために設定ファイルを書かなくては行けないのが、面倒です。

ただ、XML Schema で定義されているデータタイプ以外にも、xrpcc が勝手にデータ (オブジェクトを含む) のマーシャリング/アンマーシャリングをやってくれそうなので、この点は楽かもしれません。

まだ、使ったことがないので、実際のことはなにもいえないのですが、これを機会に日本に帰ったらちょっと遊んでみようと思います。

 

 
 

おまけ

 
 

今日の朝、Keynote に並ぼうと思って、Keynote の Waiting Line を探していたら、妙に長い列を見つけました。ただ、それは Keynote の会場とは全然違う方向なのです。まだ、朝 7:30 なのにです。

なんだろうと思って聞いてみると、Sharp の Linux Zaurus を買うための列だったのです。Zaurus と 802.11b のカードで $299 です。あまりにも長い列に恐れをなして、今日は購入しなかったのですが、明日は物欲に負けてしまうかもしれません ^^;;

もし、買ってしまったら、レポートします。

(2002.3.25)

 
 
Go to Contents Go to Java Page