組み込み用途のJava規格

組み込み用途のJava規格

このように、組み込みシステムの世界でも、Javaが広がりつつあります。しかし、組み込みシステムにおいては、エンタープライズ分野で一般的に使われているJava規格ではなく、組み込み向けに作られたJava規格を使います。

組み込み向けのJavaとは、一体どのような性質を持つのでしょうか。ここでは、一般的なJavaと組み込み向けのJavaの違いをまとめます。ひとくちにJavaといっても、適用するプラットフォームに応じて、大きく3つに分かれています。

  1. Java Enterprise Edition(Java EE)
  2. Java Standard Edition(Java SE)
  3. Java Micro Edition(Java ME)

このうち、最後のJava MEが、組み込みシステム向けの仕様です。Java MEの特長としては、「低リソースでも動作する」ことはもちろんですが、これ以外に「ハードウエア環境に合わせて仕様を選択できる」という点を挙げることができます。

組み込みシステムといっても、用途やスペックは様々です。このため、2つのコンフィグレーションと複数のプロファイルを用意し、これらを組み合わせることで、ハードウエアに適したJavaを用意できるようになっています。

コンフィグレーションは、Java VMと基本ライブラリを定義しています。一方、プロファイルは、用途別のライブラリを定義しています。このうえでさらに、限定的な機能を提供するライブラリとして、オプション・パッケージを追加することも可能です。

図2: Java ME の構成

  • 2つのコンフィグレーション
    1. Connected Limited Device Configuration(CLDC)
    2. Connected Device Configuration(CDC)
  • 主なプロファイル
    • Doja
    • Mobile Information Device Profile(MIDP)
    • Foundation Profile(FP)
    • Personal Basis Profile(PBP)
    • Personal Profile(PP)

広く携帯電話で使用されているJavaの場合、2種類あるコンフィグレーションのうち、CLDCを選択するのが一般的でした。ただし、CLDCは、名前に"Limited"とある通り、低リソースで動作するようにJava言語仕様の一部に制限をかけた仕様になっています。

これに対して、CDCは、CLDCよりも多くのリソースを必要とするものの、標準のJava言語仕様に準拠しています。つまり、CDCのVMとJava SEのVMは、VMとしては同じように動作します。この2者の違いの多くは、ライブラリの違いによる、API(Application Programming Interface)の種類の差です。

最近では、リソースを考慮する立場よりも、Java SEとの互換性を重視する傾向があります。このスタンスから、CLDCではなく、CDCを採用するケースが増えています。例えば、Blu-ray Discプレーヤで採用されているコンフィグレーションは、CDCです。

少ないリソースで動きつつ、Java SEとの互換性をそこそこ保っている例が、Android OSのVMであるDalvik VMです。

Dalvik VMは、Java VMをベースに、Android用に開発されたVMです。しかし、CLDC同様、少ないリソースで動作するように改変されています。このため、JavaアプリケーションをそのままDalvik VM上で動かすことはできません。

ただし、Dalvik VMの基本的なAPIは、CDCのものとおおむね同じです。このため、CDC用に開発したJavaアプリケーションは、比較的容易にDalvik VMに移植することができます。

人気記事トップ10

人気記事ランキングをもっと見る

企画広告も役立つ情報バッチリ! Sponsored

ClickHouse Cloudが実現した広告運用SaaS「ATOM」のデータ基盤革新、パフォーマンスを向上しながら、運用負荷とコストを削減 11月11日 6:20 AIで開発が加速する時代、品質保証はどう変わる? Tricentisが示すAIエージェント活用の実像 11月9日 6:45 悪用までの猶予が「1分」に迫るフロンティアAI時代に開発と本番を貫く脆弱性管理が必要 10月29日 8:30 欧州CRA対応とSBOM運用。AI生成コードのOSS混入問題の対策とは ――スニペット単位で検出する「FossID」「Insignary Clarity」によるSBOM運用 9月16日 6:40 PostgreSQLからTiDBへ、稼働中SaaSで進める段階的DB移行の実践と再設計への展望 9月7日 6:30 機能安全開発におけるGoogleTestの活用を支援!「Parasoft C/C++test CT」で実現する効率化&AI連携 4月14日 6:30 【CNDW2025】Grafanaが明かす「オブザーバビリティの哲学」ー最小限の労力で実用的なインサイトを得るには 1月23日 6:30 【CNDW2025】プロダクト急増に備える基盤刷新 ーウェルスナビがECSからEKSへの移行で得た知見とは 1月15日 6:30 【CNDW2025】250環境を5人で運用、構築時間は30分に ーKINTOテクノロジーズが語るインフラ基盤組織の作り方 2025年12月18日 6:30 新たな自動化で熱視線! AIエージェントの「推論能力」を支える2つのコンポーネントとは? 2025年11月28日 6:30