金曜日 12 05, 2008

Sun Tech Days - Java SE 6 Update 10 セッションの資料

昨日までの Sun Tech Days が終わって、ほっと一息つきたいところですが、GlassFish v2.1 の仕事がーー。あと、Java FX 1.0 も試したい。

遅くなってしまったのですが、1 日目の 13:00 から「Java SE 6 Update 10 and Deployment」と題してご紹介した際のプレゼン資料を公開します。

実は、これ話す前に Update 11 が予定通りでるか確認できてなかったので特に触れなかったのですが、終わってみればきちんと出ていたので、なんか間抜けです。あと、ドラガブルアプレットのデモは午前のキーノートで既にやられていましたよ、とさくらばさんが教えてくれました。そりゃ、反応ありませんね。さらに間抜けです。それはともかく、ですので今から試そうというみなさん、Update 11 使ってください。既に Update 10 をお使いの方も、patch-in-place と呼ばれる上書きインストールの便利さを実感するチャンスですので、やっぱり Update 11 を使ってみてください。JRE はデフォルトで jre6 というディレクトリにインストールされるようになりました。あと、OpenSolaris が正式にサポートされています。インストールは java.com から。もしくは JDK が必要であれば、java.sun.com から。

それにしても 1.0 がリリースされて新しくなった Java FX のページ、かっこいいです。用意されているデモもかなりかっこいいので、ぜひ動かしてみてください。もちろん、最新の JRE で。

jfx10_page

金曜日 11 28, 2008

Sun Tech Days - Java 6 Update 10 の大幅な機能拡張、ご存じですか?

u10names

この画像と似たものを貼った以前のエントリに、岡崎さんが他の名前もあった、とコメントをくれたので、作り直しました。これは、先月リリースされた最新の Java が Update 10 という名前に決まるまでの変遷です。 来週の Sun Tech Days では、下記セッションでこの Java SE 6 Update 10 の新機能、特に新しくなった Java Plug-In による配備に焦点をあてご紹介します。ご興味ある方はぜひお立ち寄り下さい。

このブログにも Update 10 に関するエントリをいくつか書いているので、ご参考まで。

Sun Tech Days - コミュニティキャラ診断、とりあえずできた

来週の Sun Tech Days の Globalization ブースで使う、コミュニティキャラ診断 (コンセプト)、とりあえず完成。こんな感じ。

kyarashindan

以前お断りしたとおり、診断内容はデタラメですが、ご興味あれば、どうぞお試しあれ。

<script src="http://java.com/js/deployJava.js"></script> <script> var url = "http://blogs.sun.com/ogino/resource/kyarashindan/launch.jnlp"; deployJava.createWebStartLaunchButton(url, '1.6.0'); </script>

ちにみに、このオレンジのボタンは、Java SE 6 の Deployment Toolkit のスクリプトを使って書いているのですが、ここら辺についてご興味ある方は、12/02 13:00 からの Java SE 6 Update 10 and Deployment というセッションで私が紹介することになっていますので、こちらもよろしくお願いします。

火曜日 11 04, 2008

OpenJDK 6 系図

これは複雑だ。Joe さんわかりやすい図とブログありがとう。

金曜日 10 31, 2008

Java SE 6 Update 10 の次世代 Java Plug-in

Java SE 6 Update 10 シリーズ第 2 弾。と題し、新たに書き直された Java Plug-in についてまとめたいところですが、ボリュームがありすぎてどうも無理そうです。なので、アプレット開発者の方は、ぜひリリースノートにポインタが載っている Java Plug-in 関係のドキュメント 4 つが目を通してください。Deployment Toolkit も含めて、必ず役立つ変更があると思います。

詳細はこれらドキュメントを見てもらうということで、今回は新しいアーキテクチャに注目する事とします。

JavaOne 2008 のセッション、TS-6290 Applets Reloaded: Introducing the Next-Generation Java Plug-In Technology は上のドキュメントの量にひるんだ場合、より手っ取り早く概要をつかむのに役立つかも知れません。プレゼン資料中にはアーキテクチャの概要として下記の絵があります。

TS6290_p6

これを見ると、ブラウザプロセスとは別のプロセスでアプレットを動かすようになったことがわかります。これはいいことずくめです。結果として、

  • とても安心になった。ブラウザはタブの機能が追加されて以来、多くの人にとって様々なタスクを並行して処理するプラットフォームになっています。仮にアプレットに障害があった際、ブラウザプロセスを道連れにして逝ってしまっては困ります。その点、アプレットが別プロセスで動いていれば安心です。
  • ヒープサイズを確保する上で、ブラウザプロセスの制約がなくなった。従来は例えばヒープを 512MB 確保しようとすると JVM が落ちてしまいましたが、これからはそのようなリソースを必要とするアプレットも実行できます。
  • 同じくブラウザの制約としては、Vista で署名されたアプレットが完全な権限で実行できないという問題が解決した。これは Visa でセキュリティの制約からブラウザが完全な権限で実行されていない以上、その中で動いているアプレットも制限されてしまう、という問題でした。
  • アプレット毎に JVM を起動することもできるので、先のヒープサイズや種々 VM 引数をアプレット毎に指定できるようになった。
  • Java Web Start と一貫性のあるアプリケーション開発ができる。アプレットも JNLP を使って配備することができるようになります。また、セキュリティ面でも Java Web Start と同等なコントロールができるようになります。
  • ....

他にも色々なことが先の資料に書いてあるわけですが、JavaOne でのデモが反響を呼んだ、ブラウザからデスクトップへ実行中のアプレットをドラグ&ドロップできる、というようなこともこのアーキテクチャだからこそ実現しています。

dragndrop

火曜日 10 28, 2008

Java SE 6 Update 10 の Java Kernel

Java SE 6 Update 10 の新機能の中でも、Java Kernel って響き的に興味がわいてしまうものの 1 つではないでしょうか。それなのに、まだあまり情報が整理されていないように思えるのでまとめてみます。

背景

JRE インストーラのサイズは増加の一途。現時点で 15+MB。例えば Java がインストールされていないクライアントで、1MB に満たないようなアプレットを実行させたい、というような場合にその前にこの 15MB をダウンロード、インストールしてもらうのは、なかなか恐縮です。(下記グラフは SDN 記事「Introducing Java SE 6 Update 10」より)

この敷居を下げるべく導入されたのが Kernel インストーラです。

概要

従来のオフラインインストーラ、オンラインインストーラに加え、Kernel インストーラが導入されました。インストーラのサイズとしては 200KB 程度で、オンラインインストーラの 1/3 程度。オンラインインストーラも一応十分小さいので、注目すべきはそのサイズではなく、Kernel インストーラでインストールされた Java が、全てをダウンロードするのを待たずに、アプリが必要とするファイルをダウンロードしつつそのアプリを実行できる点です。オンラインインストーラでは全てのファイルをインストーラがダウンロードするまでインストーラが完了しませんが、Kernel インストーラの場合はインストーラはすぐに完了し、Java プログラムを実行できる状態にしつつ、バックグラウンドでインストールを継続するわけです。結果的に 3-4MB 程のダウンロードサイズでほとんどのアプリを実行することができるようになります。

少し詳細

しかしながら、いったいどんな仕掛けなのでしょう。理解しておきたいポイントは 2 つです。ライブラリがモジュラー化されていることと、それが一時的であることです。実際に Kernel インストーラを実行してみてみます。

  1. kernel インストーラを起動。いくつかの選択肢に答え、ダウンロード/インストール開始。インストールはすぐに完了します。
    kernel_installer_complete
  2. この時点で Java を実行可能です。下のようにカーネルモードで動くことが確認できます。アプリ側から特にカーネルモードであることを意識する必要はなく、仮にアプリが未インストールのクラスをロードしようとした際にはアプリはしばらく待たされることになりますが、ランタイムがこっそりダウンロードしてきます。
    kernel_vm
  3. 引き続きバックグラウンドでダウンロード/インストールは進んでいます。
    kernel_installer_additional_components
  4. <JRE>/lib/bundles ディレクトリにモジュール化されたライブラリがダウンロードされていきます。
    bundles
  5. このカーネルモードの間、rt.jar は 7 MB 程のサイズです。
    rt_kernel
  6. 全てのライブラリのダウンロードが完了している状態で Java を再度起動すると、オン/オフラインインストーラでインストールした場合と同一の JRE ファイル (rt.jar, resources.jar, JVM など) を再構築します。bundles ディレクトリはなくなり、rt.jar も 40MB ほどの見慣れたものになります。
    rt_complete
  7. もうカーネルモードではなく、フツーの JRE になってしまいました。
    client_vm
この一連の出来事はブロードバンドの環境だと一瞬の出来事だったりします。上のスクリーンショットを撮るのに 3 回もインストールしましたので。つまり、Java Kernel というものは最初のアプリケーションを素早く実行するためだけに用意された、かなり儚いものなんです。

まとめ

新しいカーネルインストーラを実行する様子を結構詳しくみてきましたが、実はこのインストーラは単体で実行しても、ふーん、というかあまり面白いものではないです。とても有効なケースとしては、(必要なバージョンの) Java がインストールされていないマシンでアプレットが埋め込まれている web ページを開く、というようなもので、これまた Update 10 で新しく入った Deployment Toolkit と組み合わせると、驚くほど素早く Java をインストール、アプレットを起動することができます。ここらへんは 9 月のホットトピックセミナーでのデモをブログでも少し触れているので、こちらも参考にしてみて下さい。

木曜日 10 23, 2008

Java SE 6 Update 10 リリース

6u10

ついに発表。

一昨年の JavaOne で「Consumer JRE」という名前で発表されたものがようやくリリースできました。個人的には何度かセミナーなどで紹介 (資料はこちらからダウンロード) したこともあり、とても思い入れのあるリリースです。名前は「Consumer JRE」 -> 「Java SE 6 Update N」 -> 「Java SE 6 Update 10」という変遷を経ているので混乱しやすいですが、どれも今回出たもののことです。名前は結局とてもフツーなものに落ち着きましたが、通常のアップデートとは異なり、クライアントアプリ向けの新機能や大きな改善が盛り込まれています。プレスリリースにあるように主なところでは次のような変更が入っています。

  • 次世代 Java Plug-in。新しい設計で完全に書き直されています。
  • Java Kernel。新たに必要な API から順次ダウンロード、インストールしてゆく Kernel インストーラが追加されています。
  • Deployment Toolkit。アプレット、Java Web Start アプリケーションの配備の悩みを解決。
  • Direct 3D サポート。
  • Swing に追加された Nimbus ルック&フィール
もう少しだけ自分で説明を付け加えるとしたら、
  • もう、Update 10, Update 11, ... と沢山の JRE が Windows にインストールされてしまうことはありません。デフォルトで、一つの Java 6 が上書きインストールされてゆきます。ほとんどの人は複数バージョンを必要としないので、便利です。
  • 新しい Java Plug-in はアプレット関係者は特に注目。実験的に入っているブラウザからデスクトップにアプレットをドラグ&ドロップできる機能を始め、従来 Java Web Start アプリを配備する際に使用していた JNLP をアプレット配備にも使えるようになっていたり、とにかく良い変更が沢山入っています。

リリースにこれだけの変更があるため、ドキュメントにも変更が加わっています。日本語翻訳は少し後に出ると思いますが、ざっと見ると例えば次のようなページが追加されているようです。

水曜日 9 24, 2008

ホットトピックセミナの Java SE 6 Update 10 デモ補足

先週水曜の Java ホットトピックセミナ 9 月号にご参加下さったみなさま、どうもありがとうございました。私は Java SE Update 10 の紹介をさせてもらいましたが、頂いたアンケートを拝見すると以外にもデモに関してのコメントが多く、またメールで質問頂いた方もいたので、ここに補足してみます。当日の配布資料はエバンジェリストのブログからダウンロードできますのでそちらもご参照下さい。

  1. アプレットのデスクトップへのドラグ&ドロップデモ

    セミナーの時には SDN の記事のものをそのままお見せしましたが、自分で用意するのも全く難しくありません。例えば JavaFX のデモで下記のようなアプレットがあります。

    FX タイマーデモアプレット

    これは別にドラグ&ドロップを想定して作ってあるものではありません (ただ、jnlp を使って配備されており、Update 10 の新しい Java Plug-in は必要とします)。これをアプレットは無論、jnlp ファイルもそのまま使わせてもらって、例えば下記のような HTML を書くとドラグ&ドロップできるアプレットを載せたページができあがります。

    <HTML>
    <HEAD>
        <TITLE>JavaFX Timer Applet</TITLE>
    </HEAD>
    <BODY>
        <H1>JavaFX Timer Applet</H1>
        <APPLET CODEBASE="http://download.java.net/javadesktop/plugin2/javafx-applet/"
            WIDTH="250" HEIGHT="280">
            <PARAM NAME="jnlp_href" VALUE="TimerApplet.jnlp">
            <PARAM NAME="draggable" VALUE="true">
        </APPLET>
    </BODY>
    </HTML>
    
    ぜひ、ご自身のアプレットで試して知り合いをびっくりさせて下さい。

  2. Deployment Toolkit を使って kernel インストーラをキックするデモ

    これもアプレットは公開されているものをそのまま使わせてもらいました。参考までにこれも HTML を載せます。deployJava.js の setInstallerType を使って kernel インストーラを指定しておくことで、指定した 1.6.0_10 がシステムに無い場合はオンラインで kernel インストーラがダウンロードされ、起動される様子をご覧頂きました。

    <HTML>
    <HEAD>
    <TITLE>
    DT, Kernel, & Plugin 2 Demo
    </TITLE>
    </HEAD>
    <BODY>
    <SCRIPT src="http://java.com/js/deployJava.js"></SCRIPT>
    <SCRIPT>
            var attributes = {codebase:'http://java.sun.com/products/plugin/1.5.0/demos/jfc/Java2D',
                    code:'java2d.Java2DemoApplet.class',
                    archive:'Java2Demo.jar',
                    width:710, height:540};
            var version = '1.6.0_10';
            deployJava.setInstallerType('kernel');
            deployJava.runApplet(attributes, parameters, version);
    </SCRIPT>
    </BODY>
    </HTML>
    
  3. 一つのページ内で 3 つの違うバージョンの Java を使用するデモ

    これも一応掲載します。java_version の指定に関しては当日質問もありましたが、例えば下記の様に 3 種類の指定が可能です。

    • 1.6.0_07 -- 特定バージョン
    • 1.6\* -- 1.6 ファミリの中で最新
    • 1.6+ -- 1.6 以降で最新

    <HTML>
    <HEAD>
    <TITLE>
    2D Demo Applet in 3 jvm versions
    </TITLE>
    </HEAD>
    <BODY>
    <SCRIPT src="http://java.com/js/deployJava.js"></SCRIPT>
    <p>JRE1.6.0_10</p>
    <SCRIPT>
            var attributes = {codebase:'http://java.sun.com/products/plugin/1.5.0/demos/jfc/Java2D',
                    code:'java2d.Java2DemoApplet.class',
                    archive:'Java2Demo.jar',
                    width:710, height:540};
            var parameters = {java_version:'1.6.0_10'};
            var version = null;
            deployJava.runApplet(attributes, parameters, version);
    </SCRIPT>
    <hr>
    <p>JRE1.6.0_05</p>
    <SCRIPT>
            var attributes = {codebase:'http://java.sun.com/products/plugin/1.5.0/demos/jfc/Java2D',
                    code:'java2d.Java2DemoApplet.class',
                    archive:'Java2Demo.jar',
                    width:710, height:540};
            var parameters = {java_version:'1.6.0_05'};
            var version = null;
            deployJava.runApplet(attributes, parameters, version);
    </SCRIPT>
    <hr>
    <p>JRE1.5.0_15</p>
    <SCRIPT>
            var attributes = {codebase:'http://java.sun.com/products/plugin/1.5.0/demos/jfc/Java2D',
                    code:'java2d.Java2DemoApplet.class',
                    archive:'Java2Demo.jar',
                    width:710, height:540};
            var parameters = {java_version:'1.5\*'};
            var version = null;
            deployJava.runApplet(attributes, parameters, version);
    </SCRIPT>
    </BODY>
    </HTML>
    

最後に、お試しの際には下記をお忘れなく。

  • 1.6.0_10 を使用する。
  • IE 6/7 もしくは Firefox 3 以降を使用する。

About

ogino

Search

Categories
Archives
« 4月 2014
  
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
   
       
Today