以前、CLDC HIを携帯電話に実装するとアクション系のゲームで、ゲームの最中にGCやコンパイルが多数発生しているようで、動きががくがくしてしまうという問題を指摘されたことがあります。その後、CLDC HIを実装する機会があったのですが、最初にCLDC HIをまず載せてみた所、ゲームコンテンツが似たような動きをしました。そこで、原因を調べてみました。
実際、携帯のJavaでは、VMの他にもJava Application ManagerというnativeシステムとVMの制御をする機構も搭載されているのですが、ゲームの安定しない動作の原因というのは、どちらかと言うと、nativeのイベントハンドラーのJAM制御によるものが大きいと思います。ようするに、nativeシステムからあがってくるイベントの処理を最適にしないとこういった問題に陥るという事です。確かに、コンパイラがパフォーマンスの問題になるケースもあるのですが、そのほとんどは、アプリ起動時の問題で、一旦動作を開始すると(一回目のコンパイルが終了すると)、ほぼ問題はなく、高速に処理されます。あまり具体的な方法は、システムによっても異なるので、ここでは書きませんが、CLDC HIが、そのような問題の原因ではないという事で、多くのメーカーの実装でも今後利用していただけるとうれしいです。
In JavaOne Tokyo, I had the business session about star project. The session was done by Yamada-san of NTT DoCoMo and myself. Also, some update about star project was told by Natsuno-san witin day 1 keynote.
During my session, we introduce the history of DoJa project and JSR standardization, and also pointed out what issues are raised up from existing platform. As for expanding the i-mode device and services in world wide, we believe that content providers are the key player in wireless ECO system, and we must gather huge number of contents for i-mode platform.
In fact, the original DoJa specification was designed by 1999-2000. We already spent 5 years since the first Java enable i-mode unveiled. We believe we need to re-investigate the Java platform according to current technology inovation and hardware cost. This is one of big reason why we reiterate to work in star project. We suppos to provide some deliveables under this project such as:
Performance Improvement
Good User Experience
Ease of Development Platform
Easy to integrate with enterprise application
Flexible security mechanism
Existing i-appli supports
Sun provides the overall architecture, technology license and softwares to DoCoMo and players who are playing in ECO system. Unfortunately, we can't disclose commercial related information at this moment. As Natauno-san mentioned, star project will provide the breathtaker for you. (*)
JavaOne最終日のキーノートで発表したので、すでにご存知の方々もいるかと思いますが、新規参入キャリアであるイー・モバイル様と技術協力で提携をしました。この提携に伴い、サンからはJava技術の導入の検討と技術提供を行う予定です。日本には現在、いくつかの携帯電話事業者が存在しており、ドコモ様、ボーダフォン様、ウィルコム様がJavaのアプリケーションサービスを提供しています。すでに業界では、標準機能になったJavaプラットフォームですが、Felica など今後多様化していくサービスでは、安全性は最も重要な機能であり、言語設計そのものに安全性を取り込んであるJava言語は、今後もコンシューマーサービスに浸透していくものと思われます。そのような状況の中で、イー・モバイル様にもJavaへの賛同を頂き、現在、仕様化などのいろいろな作業を一緒にさせて頂いています。
今回の提携の目的は、もちろん優れた(売れる)端末を開発する事もありますが、共同でECO SYSTEMを構築していくことも、あげられます。Consumerの世界では、「いいものが必ず売れる」とは限りません。テクノロジーだけではなく、それを取り巻く、サービス、ビジネスモデルも重要であり、この提携でも、その辺りを含めたWin-Winの関係が築けることを願っています。
すでに半月程過ぎてしまいましたが、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でもフォローしていきたいと思います。
Per some requests from my friends, I determined to write English article, especially for * Project. As you may have noticed, Sun has announced with NTT DoCoMo about * Project as a networking platform that NTT DoCoMo plans to administer on its next generations of mobile data service. Sun and NTT DoCoMo has been working together since 1999 for DoJa platform development and deployment. We decided to enhance its relatioship and jointly explore common interest and goal for future mobile lifestyle and technologies. 10th years ago, Java technology was appeared with *7 as device. Duke was tumbling and navigating *7 users. In this time, we named this project after *7.
The goal of * Project are to define technology fundation for next generation mobile networking platform, and leverage existing ecosystem around both parties. We are now scoping :
Enable service ecosystems for vertical markets to do business together easily
Make it easier to integrate and develop components into an application seamlessly
Provide platform that supports content providers developing new and innovative services
We hope, * Project increase comfort your life.
なんだか目が冴えてしまい、眠れないので、本日2つ目のblogを書いています。今日のプレスリリースでは、もう一つ、
東芝とサンでVodafone向けV902Tを共同開発したといった内容をリリースしています。Vodafoneが3Gを導入し、VFX環境になった事をトリガーに、とにかく速い携帯Java環境を作るのが目的でした。この携帯をJavaOneでより印象的にデモするためにエイタロウソフトの西島さんにお願いして、MIDP版のLooking Glassを作りました。MIDP版を作ったという事は、じつはi-appli版も既にあります。このまま終わらすのももったいないので、何とか、皆さんへ提供できる場を作りたいと思います。東芝さんとは、昨年からこの携帯の端末を共同で開発し始めて、結構長い道のりでしたが、今月やっとリリースにこぎつけました。とりあえず、高速Java環境は提供できたと思います。東芝のエンジニアの皆さん、いろいろとありがとうございました。今回実装しているSun Java Wireless Clientは、JTWI互換のサンの最適化実装製品です。その環境上に、VSCLやその他のJSRも実装しています。ベースプラットフォームは、CLDC HIを採用しており、EEMBCなどのベンチマークでは、かなりいい数値が出ています。CLDC HIは、コンテンツ実行時に動的にhotspotを見つけて、method単位のコンパイルをする技術です。また、その他にも最適化を行うための様々な工夫を施しました。JavaOne会場やVodafone Shopで見かけたら、ちょっと触ってみてください。
JavaOne初日のMobility General Sessionで発表して、今日プレスリリースしたのに、どこのメディアにもあまり取り上げて頂いていないようなので、ちょっとさびしい気もしますが、自分で書きます。:-) DoCoMoさんと一緒に、次世代の携帯プラットフォームを開発させて頂くことになりました。DoJaを最初に始めたのが、1999年の暮れでしたので、もうかれこれ6年くらいたちます。あの頃から考えると携帯電話の技術的な進化は、かなりのもので、そろそろ次のステップに一歩踏み出す時期に来たようです。当初想定された携帯のハードとは、また異なる環境で開発をするので、かなりの進化を期待してもらえそうです。このプロジェクト名である * Project(スタープロジェクトと呼びます)の名前の由来は、あの最初にJavaを動作させた *7(スターセブン)から名前が付けられています。(*7 自体は、電話のプッシュ番号です。)初心に立ち返り、さらに技術の進化をさせる上で、ちょうどいいプロジェクト名かと思います。この間、このブログにも書きましたが、キーノートの夏野さんのコメントを良く聞くと、この進化を両社でやっていく旨の内容にお気付きになるでしょう。残念だったのは、Mobility General Session は、それほど広い部屋ではなかったので、遅れて来た人たちは、入れなかったと聞いてます。ですので、このブログでも今後、* Project について、フォローしていきたいと考えています。まずは、サンの
プレスリリースを読んで下さい。たぶん、もっと知りたいこともあるでしょう。(あまり、書いてないですから・・・)今日は、もう夜なので、次回にEpisode 2として書きたいと思います。お楽しみに。
JavaOneでも説明されていますが、Java MEの今後の展開について説明します。現在の携帯電話には、ほとんどの場合、CLDC1.1+MIDP2.0をベースとしたJTWI(Java Technology for Wireless Industry)が採用されています。次のステップとしては、MSA(JSR-248)をターゲットにしており、これは CLDC+MIDPに、多くのJSRで定義されたMobile向けのAPIが搭載されます。その次のフェーズとしては、ベースプラットフォームが、CDCベースとなり、セキュリティモデルやJNIのサポートもされる予定です。今回のJavaOneでは、Sneak Previewとして多くのプロトタイプで、CDCベースの端末や、マルチタスクをサポートした端末がデモされています。MSAの主な目的としては、端末間のフラグメンテーションを少なくする事、プラットフォームのトランジションをCLDCからCDCへスムースに行う事、スタンダードベースのコンテンツの互換性の高い端末を増やす事になります。JSR-248では、JTWIの他に、SIP/Bluetooth/SVG/3D/Payment/USIM Access/Web Service/Content Handler/PIM/GPSなどがサポートされます。MSAのもう一つであるJSR-249では、JSR-248への互換性保証、端末プラットフォームをモニター可能な管理方式、拡張性が主なサポート対象の分野です。また、JavaOneでSneak PreviewされたMIDP3.0の機能ですが、待ち受けアプリのサポート、MIDlet間通信、リッチなグラフィックス、Shared Library(Liblet)、セキュアなRMSアクセスなどが考えられています。また、システムレベルでの制御のみ可能とするMIDletもサポートされる可能性があります。また Java Card についてですが、次のコードネーム(Napa)では、非接触型ICカードのサポート、暗号標準化などが主なアップデート対象となり、今までターゲットとしていた接触型ICカードだけではなく、非接触ICカードの分野も視野に入れていくことになります。情報家電での目新しい分野としては、Blu-rayでの採用が決まり、CDCベースの家電製品が、そろそろ発売されていきそうです。Blu-rayの採用は、おそらくDVD再生するプレイヤーの市場にも影響があるでしょう。自宅でDVDを見るためのBlu-rayだけではなく、最近のPCには、DVDの再生機能が標準で付いていますので、今後のプレイヤー市場にも注目です。
今日からJavaOneが始まります。昨日は、サンフランシスコのホテルに着くなり、携帯に電話がかかってきて、結局、夜の9時までいろいろなリハーサルをするはめに・・・9時ともなると、かなり寒くなっていて、会場からホテルに帰る道のりも、とても長く感じました。
さて、JavaOneですが、早朝8時半には、キーノートが始まります。皆さん、眠いとは思いますが、ぜひ参加してください。このために、ここ一ヶ月くらい、とても忙しい思いをしたので、参加して頂けるとうれしいです。それから、その流れを受けて、午後の3時半からのMobility General Sessionにも、どうぞいらしてください。"その流れ"というのは、朝のキーノートに行けば、わかるはずです。;-)
同時時間で、10周年を振り返るパネルもあるので、客足がちょっと心配です。それから、前回の blog にも書きましたが、Tiny版Looking Glassですが、実際にデモすると、結構、評判がいいです。たぶん、その辺のロースペックのPCより、よほど速いと思いますよ。ぜひ、音楽ケータイの新しいインターフェースなんかにも使ってほしいです。 それでは皆さん、会場でお会いしましょう。
川原さんと相談して、lg3d の
サイトにもデモの予告は載せたんですが、JavaOneで、携帯電話上で動くLooking Glassのコンセプトデモをお見せします。実際の操作性や機能は、JavaOneで実際に触れて、その可能性や改善点について、いろいろ考えてみてください。それまでのお楽しみに。
現在の携帯電話は確かに機能が一杯詰まっていて、なんでも出来てしまうようにも思いますが、画面サイズは、これ以上大きくすると端末そのものを大きなサイズにしていくしかなく、PDAとの差別化や携帯電話本質との分離で、なかなか難しい点だと思います。このデモの1つのコンセプトとして、画面サイズが今のままでも、3次元の仮想空間を携帯端末の中に作ってしまえば、メモリコストは増えますが、デザインには影響せずにワークスペースを広く保つことが出来る事をお見せしたいと思ってます。おそらく実際のサービスには、Looking Glassそのもののインターフェースではなく、改善していく点が多々あると思います。まあ、そのような視点からもデモを見て頂ければ、うれしく思います。
ここ数週間は、今月の JavaOne に向けて、多忙な日々を過ごしてます。みなさんの中にも今年の JavaOne に参加される予定の方々も多いのではないかと思います。今年の後半には、日本でも後夜祭的なイベントが企画されているようですが、まずは本祭り。みなさんの期待を良い意味で裏切るよう準備をしておりますので、楽しみにしていてください。
Javaが世の中に発表された頃、デモなんかに良く使われていた端末を皆さんは、ご存知でしょうか?スターセブン(*7)と呼ばれる端末には、最初に Java Virtual Machine(まだOakの時代)が実装され、Duke が端末のナビゲーションをするユーザーインターフェースになっている今見ても楽しい端末でした。実物は結構大きいのですが、Javaが世にお披露目された記念すべき1号機です。当時は、スターセブンの電源を抜こうとする悪役 Fang っていうキャラクターもいました。(第一回JavaOneで配っていたマガジンに掲載)残念な事に、現存している動作可能なスターセブンは、世界中探しても、ほとんどなく、せいぜい1〜2台くらいあるかもという代物になってしまいました。私は、まだスターセブンが生前の頃に、実際に触ってみましたが、どちらかと言うと、インターフェースは、任天堂のGameboy DSに似ていました。10年も前に作られたユーザーインターフェースという事を考えると、非常に感動モノです。個人的には、今年は10周年だし、レプリカモデルでも出してくれないかなぁと思っています。