Javaは組み込みに“不向き”は本当か?

【特集】Javaは組み込みに“不向き”は本当か?

組み込みJavaのいま
−携帯電話、Blu-rayに続くモノ−

日立ソフトウェアエンジニアリング 一瀬 成広
日立製作所 中央研究所 中野 正樹  2009/08/24

動作が遅い、メモリを多く消費するなどの理由から『組み込み分野では不向き』、そういわれ続けてきたJava……。実は近年、携帯電話やBlu-ray Discプレーヤなどの分野でその利用は着実に広がりつつある。本当にJavaは組み込みに不向きなのか? あらためて『組み込みJavaの可能性』を考えてみよう。(編集部)

- PR -

 「Java」が世の中に登場したのは1995年のこと。あれから10年以上の月日が経過していますが、その活用の場は主にエンタープライズ・サーバ分野での利用が中心です。恐らく、@IT MONOistの読者の皆さんが特に興味を持たれている組み込み分野では、携帯電話を除き、「まだまだ、Javaは使われていない」というのが率直な印象ではないでしょうか?

 ご存じのとおり、Javaは“動的なWebページを実現する技術”として、Webブラウザに搭載されたことをきっかけに急速に普及しました。

 しかし、当初Javaがターゲットとして視野に入れていたのは、ほかならぬ『組み込みシステム』、具体的には「情報家電」の分野だったのです。そう、実はJavaには“組み込みシステムに適した特徴”が備えられているのです。本稿では、組み込みシステムでのJava利用について、その可能性を詳しく解説していきたいと思います。

今回の主な内容
Javaは「携帯電話」「Blu-rayプレーヤ」で利用されている!
組み込みシステムで有効なJavaの特徴
Javaの技術課題は解消?
ホームゲートウェイへのJava搭載

Javaは「携帯電話」「Blu-rayプレーヤ」で利用されている!

 Javaを搭載した代表的な組み込みシステムとして真っ先に思い付くのは、携帯電話でしょう。2001年にJava搭載の携帯電話が登場してから2009年現在まで、何と全世界で約26億台もの携帯電話にJavaが搭載されています。

関連リンク:
Java: Change (Y)our World
http://java.sun.com/javaone/2009/articles/gen_tuesday.jsp

 Javaをブラウザに搭載して動的なWebページを実現したように、携帯電話にJavaを搭載することで、“携帯電話にアプリケーションをダウンロードして利用する”という新たな使い方をユーザーに提供しました。また、携帯電話用Javaアプリケーションを有料で提供するという“コンテンツ市場”も形成されました。皆さんも一度は利用したことがあるのではないでしょうか?

 もう1つ、Javaを搭載している代表的な組み込みシステムとして、Blu-ray Discプレーヤがあります。Blu-ray Disc ROM(BD-ROM)を再生できるすべてのBlu-ray Discプレーヤは必ずJavaが搭載されています。BD-ROMには、映像データだけでなくJavaアプリケーションも記録できます。Javaアプリケーションが記録されたBD-ROMをBlu-ray Discプレーヤで再生すると、Javaアプリケーションがロードされ、映像とともにJavaアプリケーションによるインタラクティブ・コンテンツが表示されます。

図1 Blu-ray DiscプレーヤでのJava利用

 また、Blu-ray Discプレーヤに内蔵されているローカル・ストレージは、オプションでネットワーク接続が可能です。Javaアプリケーションが、こうした機能を活用することで、実にさまざまなコンテンツを作成できます。その一例が、オンラインゲームや最新映画の予告編をダウンロードするJavaアプリケーションなどです。

 これらの代表例が示すとおり、組み込みシステムにJavaを搭載することで、ユーザーは製品を購入した後も新たな価値・サービスを享受できるのです。

組み込みシステムで有効なJavaの特徴

 それでは、なぜ携帯電話やBlu-ray DiscプレーヤでJavaが採用されるようになったのでしょうか?

 それは、Javaの特徴といえる

(1)高いセキュリティ
(2)プラットフォーム非依存

の2点が採用の大きな理由といえます。

 Webブラウザを含め、携帯電話、Blu-ray Discプレーヤの共通点は、『第三者が作成したJavaアプリケーションを実行する』という点です。

高いセキュリティ

 Javaは最初からセキュリティを考慮した設計となっており、第三者が作成したJavaアプリケーションを安全に実行することが可能です。Javaアプリケーションは仮想マシンにより実行され、任意のメモリにはアクセスできず、システムを意図的にダウンさせたり、重要なデータを読み出したりすることができないようになっています。

 また、Javaコードの事前検証機能により仮想マシンを破壊するようなコードの実装を防止したり、ネットワーク、ファイルといったリソースへのアクセスを制御したりする機構もあります。

図2 組み込みシステムで有効なJava

プラットフォーム非依存

 Javaは、第三者が開発したJavaアプリケーションをプラットフォーム非依存で動かすことができます。異なるプラットフォーム、つまり、さまざまな種類のCPUOSが利用されている組み込みシステムで、同一のJavaアプリケーションを動かすことができるため、アプリケーションを比較的低コストで開発できます。また、Javaの実行環境は互換性確認テストにパスしなくてはならないという規則があるため、異なるプラットフォーム間での互換性が比較的高いという特徴もあります。

 このような特徴を生かして、第三者が開発したアプリケーションを組み込みシステム上で動作させるシステムを実現しています。

 また、第三者が開発したアプリケーションを動作させるという目的がない場合でも、組み込みシステムでJavaを利用するメリットがあります。

 Javaには、ソフトウェアの開発生産性を高くするさまざまな工夫がなされています。例えば、Java言語にはポインタがない、ガーベージコレクタによるメモリ開放自動化などにより、バグの少ないソフトウェアを開発できます。実際、エンタープライズ分野のサーバでJavaの利用が急速に広まった理由は“開発生産性が高い”という特徴のためです。

>>Javaの技術課題は解消したのか?

  • 全記事インデックス
  • 組み込み開発トップ
  • MONOistトップ

スキルアップ/キャリアアップ(JOB@IT)

スポンサーからのお知らせ

- PR -
@IT Sepcial

震災関連・復興支援情報

震災関連・復興支援情報
@IT MONOist/EE Times Japan/環境メディアの製造業技術者向け3メディアを中心に、震災関連/復興支援情報を集めました

次世代エンベデッドコーナー

次世代エンベデッド
“次世代”の組み込み機器を開発するエンジニアを支援するコーナー。新潮流・新技術をインタビューやコラム、解説記事で分かりやすく紹介!

Windows Embeddedコーナー

Windows Embedded
Windows Embedded専門コーナー。Windows Embedded StandardやWindows Embedded CEをはじめとする「Windows Embedded」ファミリの最新動向や技術情報をお届けします!!

Androidコーナー

Android
Android専門コーナー。組み込みデバイスへの適用からアプリケーション開発、イベントレポート、ニュースなどAndroidに関するさまざまな技術情報がここに集結!!

@IT MONOist 求人情報

- PR -