すでに半月程過ぎてしまいましたが、JavaOne Tokyoのフォローをかねて、久々にブログを書いています。今回のJavaOne Tokyoでは、Java ME側では、いくつかのセッションと発表をしました。Java ME Technology Update という内容のセッションとBOFを担当しましたが、会場には結構たくさんの人達に来て頂きました。しかし、BOFともなれば通常はディスカッション中心ですが、残念ながら、ほとんど質問や意見も出ませんでした。(若干、Aplixの小林さんに、発言していただいたくらいで・・・)
今回のアップデートでは、最適化実装について中心的に話をしました。HotSpotコンパイラに関する話、新しい所では、アプリの高速起動のためのIPE(In-place execution)の話、Multitasking VMのアプローチに関してが、主な要素でしたでしょうか。
IPEは、BREWなどの登場により求められるJavaアプリの高速起動の実現についての1つのソリューションですが、簡単にいうと、ダウンロードしたJARをメモリの実行形式のフォーマットに変換し、NANDに保管しておきます。この変換時には、静的なデータ構造のみをNAND Memoryに置いておきます。アプリの実行は、RAMにコピーするのではなく、NANDから直接起動することで、コピーやローディングといった時間を短縮するのが狙いです。
MVMのアプローチでは、CLDC/CDCで方法が異なります。CLDCでは、多くのRTOSがマルチタスクに対応していない状況もあり、1つのVMタスク上に複数のMIDletを動作させるといった方法を取ります。CDCのMVMでは、通常のUNIXのfork()のようにアプリごとにVMのプロセスが分かれます。システム内には、master VMとその他の派生されたVMのプロセスが常駐します。CLDCとCDCでは、そのアプローチの違いにより、ハードウェアの資源を管理する方法も当然異なります。
JavaMEに関しては、OSもPCの世界とは異なり、さまざまなものが採用されています。そのため、上記のアーキテクチャが全てのConsumer OSに有効であるとは思えません。JavaME自体の技術が、まだ成長期にあり、今後も様々な拡張や修正を行っていく予定です。それらの内容は、今後のJavaOneやblogでもフォローしていきたいと思います。
Trackback URL: http://blogs.sun.com/monma/entry/javaone_follow_up_1