Innovating@Sun コミュニティ ご購入について (0120-33-9096) マイ・アカウント 日本 [Change] 日本語
Sun Inner Circle for information technology leaders

小型組み込みデバイス開発の救世主、
『Squawk Virtual Machine』登場!
~いままでの苦労はなんだったのか?~

小型化と高性能化が進むマイクロデバイス市場における機会が増大しつつあります。1995年にJavaテクノロジーが発表されて以来、コンピュータ・プラットフォームの定義が進化してきたことがその主な理由です。いまやコンピューティング・デバイスの大部分を占めているのは、デスクトップPCでも、ノートPCでも、サーバでも、メインフレームでもなく、私たちが日常的に使う携帯端末やポータブル機器など、リソースの限られた小型のデバイスです。

このような小型組み込みデバイスには、医療機器やMP3プレイヤ、スマート・カード、自動車のブレーキ・システム、RFIDタグなどがあります。これらの機器は、特定の機能を果たすとともに、「Internet of Things(あらゆるものがつながるインターネット)」とも呼ばれる広範なネットワークの一部を構成して、人々の間の接続、通信、データ共有を可能にします。

従来見られたようなデバイスとメディアとの間の境界が希薄化するにつれ、開発者にとっては、小型組み込みの世界が新たなフロンティアとなるでしょう。

小型デバイスは、プロセッサ、メモリ、及びストレージを備えており、通常バッテリー電源で動作します。しかし、これらのデバイスの開発には、様々なツール、言語、ライブラリ、及びAPIが必要になることから、技術革新が難しく、製品の市場投入も遅くなりがちです。このため、小型組み込みデバイスの開発には、標準的な言語、API、及びツールを備えたJavaテクノロジーが魅力的なツールとなります。

Javaテクノロジーを、小型デバイスの開発者にとって大きな魅力あるテクノロジーとするためには、開発者の選択したデバイスまたはターゲット向けにJavaテクノロジーをイネーブルまたは移植する作業を行う必要があります。仮想マシン(VM)の移植、デバッグ、及び保守は多くの開発者にとって煩雑な作業であり、組み込みデバイス市場の技術革新と成長を妨げる大きな障害となっていました。

しかし、Eric Arseneau(エリック・アーセノー)とDerek White(デレク・ホワイト)が率いるSun Labs研究者チームの努力を通じて、開発者は、小型デバイス向けに最適化されたJava言語のための仮想マシンを利用することが可能になりました。Squawk VMと呼ばれるこの仮想マシンにより、Javaテクノロジーはさらに多様なデバイスへとその対象領域を拡大しました。現在のような携帯電話やMP3プレイヤだけでなく、今後は電子シェーバーやトースターなどもその対象に含まれるようになります。

Squawk VMは、Java Micro Edition Information Module Profile(CLDC 1.1 IMP 1.0)上で動作することが保証されています。開発者はSquawk VMを採用することにより、Javaという標準化された言語の利点として、広く認知されたJavaのツール、ライブラリ、APIを利用することができるようになります。SquawkとJavaツールを使用すると、従来の組み込み開発の問題点の多くが解消されます。Squawkを利用した場合、わずかな知識を習得するだけで、シンプルなJavaでアプリケーションを作成することも、またターゲットとなる小型組み込みプラットフォームや必要となるアプリケーション・サービスに合わせたカスタム・バイナリ・パッケージを提供することも可能です。

アーセノーは次のように述べています。「このテクノロジーは、組み込み開発の世界にJava特有の利点、特に技術革新とスケーラビリティをもたらします。現在、組み込み分野の開発者は、習得して使いこなすことの難しいプロプライエタリなツールの制約を我慢している状況です。私たちは、シンプルで、効率的で、広く知られているというJavaの利点を組み込み開発の領域にも提供し、プログラマがすでに有しているJavaのツールと知識を有効に活用できるようにしたいと考えています。」

Squawk VMはもともと、Smalltalkで記述されたVM環境Squeakプロジェクトに触発されて生まれたVMで、そのほとんど全てがJavaテクノロジーそのもので記述されています。そのため、Java VMベースの研究の基盤としても興味深いプラットフォームとなりました。しかし、時が進むにつれて、サンの研究者たちは、Javaの実装にJavaを使用することが、Javaを新たなプラットフォームに移植する方法をVM開発者ではない開発者たちにも理解してもらうためのシンプルなメカニズムとなることに気づきました。

小型組み込みデバイスは従来のコンピュータ・ハードウェアとは異なる特性を持っており、Squawkもいくつかの点で従来のJava仮想マシンとは異なっています。もっとも重要な違いの1つは、Squawkを使用すると、VMのコア・コンポーネントやその他のJavaコンポーネント、及びバイトコードをAhead of Time(AOT)でコンパイルし、最適化できるという点です。さらに、SquawkはバイトコードのJust-in-Time(JIT)コンパイルも行います。

Squawk VMは、開発者が複数のアプリケーションを1つの仮想マシン上で実行しながら、実行中のアプリケーションを別のデバイスに移動させることもできるように設計されています。

「Squawkは、小さな占有領域でJava準拠を実現できるVMです。アプリケーションをCPU上で直接実行できるため、土台となるオペレーティング・システムが不要です」とアーセノーは説明します。小型デバイスには汎用オペレーティング・システムをサポートするためのリソースを追加する必要がなくなるため、開発者は、ネットワーキング・プロトコルなど、通常はオペレーティング・システムの内部に埋没している低層のサービスを、実験的に様々な形で実装することができます。その結果、オーバーヘッドが減少し、アプリケーションのパフォーマンスが向上します。

ページ先頭へ

Squawk VMは、開発者が複数のアプリケーションを1つの仮想マシン上で実行しながら、実行中のアプリケーションを別のデバイスに移動させることもできるように設計されています。このため、アプリケーションは、新しいデバイスの上でも中断した時点から処理を再開することができます。Squawk VMでは、1つの仮想マシン上で複数のアプリケーションを実行することにより、またクラス・ファイルの表示をコンパクトにすることにより、小型デバイスの限られたリソースをより有効に活用できます。

実行中のアプリケーションを移動できるこの機能の興味深い実例の1つとして、稼働中のデバイスが、デバイスのバッテリー残量が少なくなってきたと判断した場合に、エネルギー残量の多いデバイスが近くにないかを調べ、バッテリーが切れる前に実行中のプログラムをそのデバイスへと移動させることも可能です。

これらの機能は、Squawk VMが初めて商用レベルで実装された、Sun Labs開発のSun SPOT(Small Programmable Object Technology)無線トランスデューサ・デバイスにおいて実証されました。Sun SPOTのハードウェア・プラットフォームは、バッテリー駆動型の小型無線デバイスで、プログラミングの言語とツールを必要とします。Squawk VMは、オペレーティング・システムとソフトウェア・アプリケーションの両方のプラットフォームを提供することができました。

Squawk VMは一般に普及している全てのデスクトップ・プラットフォーム上で実行できることから、開発者にエミュレータを提供するメカニズムとなります。Squawkでは、開発者の生産性をいっそう向上させるためにエミュレーションがサポートされています。デスクトップ上でSquawkを実行できるため、開発者はデバイス・エミュレータをすばやく作成して、展開前のアプリケーションのテストを実施することができます。

研究者たちがSun SPOTハードウェアを使用して進める作業の例としてアーセノーは次のような例を挙げます。「デスクトップ上で仮想のSPOTを実行することにより、ハードウェアに一切アクセスすることなく、物を移動させたり、スイッチを入れたりすることができます。こうした柔軟性を通じて、開発者は市場投入期間を短縮でき、私たちは開発者のエクスペリエンスを向上させることができます。」

小型組み込みデバイスには通常、クラス・ファイルをデバイス上にロードできるだけのメモリが搭載されていないため、Squawkでは分割VMのアーキテクチャが実装されています。そこでは、下記のように、クラス・ファイルはデスクトップ上でロードされ、デバイス上で実行されます。

分割VMのアプローチでは、デバイスの電源を投入するたびあるいはデバイスを起動するたびにではなく、開発者のデスクトップ・マシンで事前に1度だけ実行させる作業をできるだけ増やすことにより、デバイス上でJavaを実行するために必要となるリソースの量を減らすことができます。Javaテクノロジーには遵守すべき厳格なセキュリティ・モデルが定められていますが、そのために多大なリソースが必要となる場合があります。また、開発者がデスクトップ上で操作を実行できるようになるという付随的な利点もあります。

分割VMのアーキテクチャとは、デスクトップ上で1回限りのコードを実行することができるため、バイナリ・バンドルがデバイスに送信された時点でオブジェクトの計算が済んでいるようにすることを意味します。このアーキテクチャは、デバイスが利用可能なリソースで実行する作業の効率を可能な限り高めるために有効です。このような効率性の向上は、開発者がより小型で高性能なハイテク機器を設計するためにも役立つ、とアーセノーは指摘します。

アーセノーが率いるチームは、Javaテクノロジーが使用できるデバイスをさらに増やすため、Squawkをさらに小さなデバイスで実行できるように改良に取り組んでいます。現時点でSquawkは512Kのフラッシュ・メモリを必要としますが、チームでは、わずか16Kのフラッシュ・メモリで実行することを目標に作業を進めています。

アーセノーは次のように述べています。「私たちはこのほかにいくつかのリアルタイム機能も追加する予定です。これは、デバイスがリアルタイムの入力に対してより正確に応答できるようになり、自動車のサーボなどのような重要な用途におけるタイミングの条件に対応できるようにすることを意味します。自動車のアンチロック・ブレーキ・システムなどのデバイスでは、この種の機能がきわめて重要です。」

また別の例として、Squawkをレゴ・マインドストームNXT向けに移植することが計画されています。レゴ・マインドストームNXTは、子どもたちがロボットを設計・構築して、様々な作業を行うようにプログラミングができる教育用のプラットフォームです。Squawkプロジェクトのメンバーは、Lego社とマサチューセッツ工科大学(MIT)のMedia Laboratoryのパートナーシップで形成されたレゴ・マインドストームNXTチームと協力してこの作業を進めています。このプロジェクトは、レゴのプログラミング機能の簡素化と増強を通じて、あらゆる年齢の子どもたちの想像性を解き放つことを究極の目標としています。

サンは、小型組み込みデバイス分野におけるJavaテクノロジーの普及をサポートする取り組みを続けています。その取り組みの一環として、開発者はSquawk VMのソース・コード全体にアクセスして、Java、CLDC、及びIMP標準を使用して迅速にJava VMを構築できるようになっています。アーセノーは、Squawkのオープン・ソース化を通じて、開発者によりSquawkとJavaが様々なプラットフォームへと移植される機会が増えるものと期待しています(サイドバーを参照)。

「Squawkをオープン・ソース化したことにより、可能な限り多様な小型組み込みデバイスに対応してJavaの世界を拡大しようとするサンの戦略はさらに推進されるでしょう。」
Sun Labs、エリック・アーセノー

サンは昨年Java Micro Editionをオープン・ソース化する際に、すでにほかのデバイスとの連携動作が実証されているコードをSquawkのようなプロジェクトで利用することを認めました。その結果、Squawkでは速やかにJava準拠が実現しました。しかし、サンがJavaプログラミング言語として認定する条件として、約11,000ものテストの実施を義務づけていることを考えれば、これは並大抵の仕事ではありません。

アーセノーは、次のように述べています。「Squawkをオープン・ソース化したことにより、可能な限り多様な小型組み込みデバイスに対応してJavaの世界を拡大しようとするサンの戦略はさらに推進されるでしょう。プロトタイプや少量しか生産されないデバイスの開発に充実する開発者も、以前には考えもつかなかったような用途でSquawkを使用することができます。Javaは、驚くような技術革新のバックボーンとして、開発者にとって次なる大きなチャンスをもたらすでしょう。」

Javaテクノロジーが広く普及することによって革新的な用途への扉が開かれるだけでなく、Squawk VMを利用することによって開発者が新たな可能性を模索・探求することが容易になり、このことが新製品の市場投入期間を短縮することにつながります。Javaテクノロジーはすでに10億台を超える携帯電話に導入されています。

しかし、アーセノーは、モバイル機器は小型デバイス市場のごくわずかな一部分に過ぎないと見ています。「携帯電話の場合、1人あたり1台という暗黙の限界があります。人々が日常的に利用する全ての小型機器を対象にできれば、可能性は限界がなくなり、測り知れないものになります」とアーセノーは指摘します。

組み込み分野では今後2、3年のうちに膨大な数の新しいデバイスが開発・提供されるとアーセノーは予測しています。「例えば、眼鏡にセンサーを組み込んで、ホコリがついたらこれを検知して取り払う、あるいはオートバイのヘルメットにデバイスを組み込んで、事故に遭った時は緊急電話をかけるといった、画期的な開発を進めている人々ともすでに私たち接触を始めています。Javaテクノロジーは、汎用コンピューティングの成長を後押ししてきたのと同じように、小型組み込みアプリケーションを前進させるテクノロジーであると考えています」とアーセノーは述べています。

トピックス一覧 ≫

Reader Survey
この記事は参考になりましたか?
     

コメントがございましたらご記入ください


ページ先頭へ



  サンの自社IT統合プロジェクトのその後・・・・。
  プライバシーを守れ!
  OpenSolaris 2008.5
リリース
  小型組み込みデバイス開発の救世主、『Squawk Virtual Machine』登場!


Sun Inner Circle
業界の最新トレンドがわかる技術情報マガジンSun Inner Circleに今すぐご登録ください!