Go to Contents Go to Java Page

JavaOne 2002 in SF Report

 
 

9/25 第 1 日

 
 

今日から横浜のパシフィコ横浜において JavaOne が開催されました。横浜で開催するのは今年で 2 回目です。San Francisco に引き続き、横浜からもレポート (雑記というか、単なる走り書きというぐらいのものですが...) をしていきたいと思います。

それでは、今日のレポートです。

 

 
 

Keynote Session その 1

 
 

今年の Keynote はずいぶん変則的で、初日の今日が朝に通常の Keynote、夜に Technical Keynote が行われます。明日からは午後のはじめのセッションが Keynote になります。まずは朝に行われた通常の Keynote から。

今年の会場は国立大ホールになり、広くなったのですが、参加者はそれほど増えていないようなので逆に空いているような感じがします。ところで、会場のイスにはテーブルが付属しているのですが、だれも使っていないのはなぜなのでしょう ?

司会はいつもの John Gage と Rob Gingell です。やはり John Gage はいつもと同じ黒のポロシャツとチノバン、Rob Gingell もやっぱりいつもと同じブラックジーンズに青のボタンダウンです。彼らに紹介されて登場したのがおなじみの Rich Green。

とりあえず、Rich Green のスピーチはタマちゃんの写真を出して、タマちゃんも JavaOne に参加しに来たという前振りから始めました。

その後は、いつもと同じように Waves of Internet のスライドを使って、ネットワークの発達とそれに応じたデバイスやテクノロジーの発展について語りました。ここで彼が説明したのが Java Ecosystem です。Java のデベロッパーとコンシューマとアプリケーションの 3 者が ecosystem を形成しているというものです。

彼のスピーチでは Java のテクノロジーをひととおり説明しましたが、特に携帯電話と Web Service に関して詳しく説明を加えました。また、セキュリティの重要性を説き、Project Liberty を紹介しました。その後、Liberty と JavaCard と組み合わせたデモを行いました。

 

 
 

Technical Session

 
 

今日、聴講したのは

  • TS-1016 The Java 2 Platform, Standard Edition (J2SE) 1.4 のリリースおよび将来の構想
  • TS-1026 豹の毛皮はなぜ斑点模様になったのか: Jini ネットワーク・テクノロジーの設計原理
  • TS-1027 「プロジェクト JXTA」の現在
  • TS-1021 Java Web Start ソフトウェア - 上級トピック
  • TS-1137 継承に対する考え方

このなかで、J2SE 1.4 は Effective Java の著者の Joshua Bloch なのですが、SF の焼き直しなのでほとんど情報量はありませんでした。また、継承もいまいちだったので、Jini と JXTA と JWS についてレポートします。

 

 
 

TS-1026 豹の毛皮はなぜ斑点模様になったのか: Jini ネットワーク・テクノロジーの設計原理
Michael Warres, Sun Microsystems

 
 

このセッションでは、Jini の 6 個の設計原理を紹介されました。

  1. Simplicity
  2. Single Language
  3. Destributed Objects
  4. Automatic Federation
  5. Type-Based Identification
  6. Time-Based Conventions

だいたいのところは納得でき、特に 6 番目の Time-Based Conventions で示した Lease の概念などはすばらしいと思います。しかし、納得できない部分もあります。たとえば Single Language です。Jini が使われていないのは Single Language にこだわりすぎているのではないかと思うのです。Jini に対抗して Micrososft が提案した Universal Plag & Play が徐々に浸透してきているのに比べ、Jini はかなり分が悪くなっています。

これというのも、Jini では少なくともサービスを探してバインドするまでは Java + RMI が必須になっているからだと思うのです。また、最初のイメージがあまりにもプリンタなどのデバイスを使用するイメージだったこともあるかもしれません。それより、物理的なデバイスに関わらず、単なる情報処理を行うサービスのほうが Jini に適していると思うのは私だけではないような気がします。それだとリッチな環境なので、Java + RMI でも全然 OK ですし。

現に JRun のロードバランスを Jini を用いて行っているなどの応用例が出てきています。

この教訓 (?) から学んだように見えるのが、次の JXTA です。

 

 
 

TS-1027 「プロジェクト JXTA」の現在
Juan Carlos Soto, Sun Microsystems

 
 

JAXTA は P2P アプリケーションを作成するためのオープンソースのフレームワークです。JXTA では P2P のためのプロトコルを定義しています。プロトコルなのでバインディングする言語や、プラットフォームに依存しないという特徴があります。

JXTA を構成する概念のなかで面白いと思うのは Pipe と Advertise です。Pipe は UNIX のパイプと同じような概念です。Peer と Peer の間をパイプというバーチャルなチャネルを用いてコミュニケートしようとするものです。また、Pipe は拡張することが可能で、現在は Bidirectional Pipe と Secure Pipe が提供されています。まぁ、実際に JXTA でプログラミングすると、UNIX のフィルタのように簡単に行くというわけではないのですが...

Advertise は Peer やサービスなどを P2P ネットワークに公開するときに使用します。たとえば、Peer の Advertise は自分が P2P ネットワークの中にいるよということを広告しているわけです。

JXTA はバインディングする言語に依存しないと書きましたが、現状は J2SE, J2ME MIDP および iAppli, C のバージョンが提供されています。また、Python, Perl, Objective-C, Ruby, Smalltalk などが進められているようです。

Current Work として、パフォーマンスの向上が図られているようです。将来的には、新たなサービスを作っていくことや、IETF での標準化などが行われるようです。実際に、前回の横浜で行われた IETF で提案されたようです。

 

 
 

TS-1021 Java Web Start ソフトウェア - 上級トピック
Stanly Ho, Sun Microsystems

 
 

JWS はアプリケーションのデプロイツールで、J2SE v1.4 からは標準で添付されるようになりました。標準添付されたということは、これからどんどん使われていくのではないでしょうか。

普通に JWS を使うだけでなく、もっといろいろな使い方が紹介されました。紹介されたのは

  • JNLPDownloadServlet を使用した JNLP ファイルの置換。
  • 遅延ダウンロード
  • javax.jnlp.DownloadService クラスを使用したダウンロードされた Jar ファイルのクエリ
  • 部分ダウンロード
  • 拡張サンドボックス

JNLP にはコードベースの URL を書かなくては行けないのですが、デプロイするサーバを変えるたびに JNLP を書きかえるのは結構面倒です。JNLPDownloadServlet を使用すれば、自動的に書き換えをしてくれます。

遅延ダウンロードはアプリケーションを立ち上げたときには必要ない Jar ファイルを必要になったらダウンロードするためのものです。必要になった時、その Jar ファイルがすでにダウンロードされているかどうかを調べるのに DownloadService クラスを使用します。

部分ダウンロードはアプリケーションがアップデートしたときに、すべてをダウンロードしなおすのではなく、異なる部分だけをダウンロードするための機能です。

JWS でデプロイされたアプリケーションは通常はアプレットと同様にサンドボックスで動作するのですが、いくつか拡張された部分もあります。たとえばローカルファイルのオープン/セーブ、クリップボード、ダウンロードなどです。これらの実際に使用する時には、確認のためのダウンロードが表示されます。これらの機能はたとえばファイルのオープンであれば javax.jnlp.FileOpenService クラスで提供されます。

J2SE 1.4.1 に添付されている JWS 1.2 ではスプラッシュウィンドウのカスタマイズ、JWS 自身の自動インストール、HTTPS のサポートされました。

 

 
 

Keynote Session その 2 (Technical Keynote)

 
 

今日 2 回目の Keynote は Technical Keynote です。スピーカは Technical Keynote ではおなじみの Tim Lindholm, Mark Hapner です。Tim Lindholm が J2SE, J2ME 担当。Mark Hapner が J2EE 担当です。

やはり Web Service と J2ME に関して詳しく説明が行われました。

Web Service では JAX ファミリー (JAXP, JAXM, JAXR, JAXB, JAX-RPC) とそれをまとめて Tomcat なども一緒にした Java Web Service Developr Pack が紹介されました。

J2ME では MIDP 2.0 や JCP で策定されている J2ME のプロファイルが紹介されました。たとえば、JSR 172 の Connecting Web Services、JSR 177 Security & Trust Services などです。

また、以前は Project Monty と呼ばれていた CLDC HotSpot Inplementation や、Project Orion の CDC HotSpot Inplementation などが紹介されました。

その他には JAAS が Project Liberty に対応することなども紹介されました。

 

 
 

Birds of a Feather (BOF) Session

 
 

今回の BOF は Lunch BOF と通常の BOF の 2 種類あります。Lunch BOF はランチを食べながら参加できる BOF です。でも、あまりいいものではないですね。ディナーショーじゃないんだし...

結構気まずいですよ、スピーカはすぐ前で喋っているのにこちらはランチを食べているのですから。メモも取りにくいし。

なにはともあれ、今日は次のセッションを聴講しました。

  • BOF-1240 Powerful BOF for Server Side Java Technology (Lunch BOF)
  • BOF-1230 言いたい放題 Project JXTA/P2P
  • BOF-1248 XML and Java テクノロジー

ここでは BOF-1240 と BOF-1248 をレポートします。

 

 
 

BOF-1240 Powerful BOF for Server Side Java Technology
藤田 一郎、日本 IBM
原田 洋子、4D ネットワーク
中嶋 睦月、日本 BEA システムズ
小野 和俊、アプレッソ
つ∞たん 佐藤、NG マット

 
 

豪華なスピーカにつられて、聴講してしまいました ^^;; パネルなのでいろいろな話が飛び出たのですが、それらをかいつまんで。

  • J2EE は難しい
  • ツールが無ければ EJB は書けない ?
    • ツールを使っていない人も結構会場にはいる
    • Eclispe - Rose との連携もできるようになっている。Erich Gamma が作っているらしい
  • デバッグはどうする ?
    • System.out/err
    • ログ - 例えば Log4j しかし、ログで必要な情報をすべて出力するのは結構大変
    • Eclipse - WebSpehere と組み合わせたデバッグも可能
  • Rich Client
    • ブロードバンド化して来ている今、機は熟している
    • Usability の向上、Server からのイベントが使用できる
    • Rich Client としての Macromedia Flash
  • 障害検知、対策
    • HTTP Ping を使用した検知
    • Thread Dump は有効

 

 
 

BOF-1248 XML and Java テクノロジー
村田 真、国際大学研究所
浅海 智晴、浅海 智晴事務所

 
 

こちらのスピーカも超有名人です。村田さんは XML のスキーマ言語の Relax を提案された人ですし、浅海さんは Java World などでの連載や Relaxer などの作者としても有名です。

セッションはまず村田さんから XML の 2 つの考え方が示されました。

一方がプログラム言語から見た考え方。もう一方がドキュメントとして見た考え方です。

前者は XML をオブジェクト指向的にとらえ、単なるオブジェクトのシリアライズとして考えるものです。後者は村田さんは文法指向といっていましたが、今までは扱えなかったような情報を表わすことのできるドキュメントとしてのとらえ方です。

どちらか一方が正しいとか、すぐれているというのはないのですが、2 つの側面があることを認識しなくてはなりません。

この 2 つの考え方から、XML Schema がなぜダメなのかが示されました。

  • XML Schema は大統一理論 or ごたまぜ
    • 文法指向という立場を理解せずに作られている
    • オブジェクト指向で貫くのなら、文法指向の機能をすべて捨てるべきだった
    • オブジェクト指向は 1 つではない (例えば、継承)
    • Data Binding ツールとスキーマ言語の役割分担が考えられていない
    • クラス主導なら、スキーマに多くの機能を盛り込む必要はない

Relax や Relax NG は 2 つ考えに中立で、Data Binding は Relaxer に任せてしまっているためシンプルになっているそうです。

次に浅海さんが SAX/DOM を取り上げられた。SAX/DOM は Relaxer などのスキーマコンパイラが出現している今、ほとんど使用する意味は無くなっています。逆に重要になってきているのがスキーマコンパイラです。

最近、浅海さんはモデル化を行うときにオブジェクトモデル、XML モデル、関係モデルの中で XML モデルを中心に行うべきだと主張されています。XML モデルを採用したなら、XML モデルからオブジェクトモデルなどの他のモデルへの変換ができなくてはなりません。そのためには、スキーマとスキーマコンパイラが重要です。

しかし XML Schema はすべて OO で行おうとしているので問題があり、そのため XML Scema をサポートしている JAXB がなかなかうまく動かないという事実があるそうです。

ここで登場するのが Relax と Relaxer です。最後に、浅海さんが最近開発をされている Relaxer Stdio のデモを行いました。Relaxer Stdio は XML や XML Schema をグラフィカルに編集することができ、裏で Relaxer を動作させることで XML ドキュメントからスキーマの生成、スキーマから Java クラスの生成などが行えるそうです。

遅くとも 2003 年の 2 月までには公開されるそうです。

 

 
 

おまけ

 
 
JavaBag

今年の JavaOne のバッグは椅子つきかつ保冷機能つきバッグです。何で保冷機能つきなのかはよく分かりませんが、たぶん Java は生鮮品なのでしょう。

これが結構取りまわしが大変です。イスの部分を広げないと自立しないので、立てるにはとても場所を取ってしまいます。セッション会場ではこれが邪魔なんですよね。

ところで、今年の JavaOne はとても忙しいです。休み時間が今年も 10 分しかありません。特に Keynote とセッションの間が 10 分間しかないのですが、Keynote は建物が違うので移動だけで精一杯です。

ランチ BOF もあるので、落ち着いてランチを取ることもできないし。気を抜くひまがありません。

どうにかしてくれないでしょうか、関係者各位。

(2002.9.25)

 
 
Go to Contents Go to Java Page