Javaコラム Javaエンジニアのためのお役立ちコラム

IT

組み込み系にJavaを採用する理由とは?メリットやデメリット

 
SE
組み込み系とはどのようなシステムのことなのでしょうか。
PM
ハードウエアにソフトウエアを組み込んだシステムです。

組み込み系とは?


組み込み系とは、ハードウエアにソフトウエアを組み込んだシステムです。実は組み込み系のシステムは、私たちの身近に存在しています。例えば、スマートフォンや携帯電話、家電製品、自動車、工場の機械などは、すべて組み込み系システムです。

近年の通信技術の発達により、組込み系システムの中でもインターネットと接続し遠隔操作などが可能なものも出てきました。今後さらに組み込み系システムの需要が増えていくと考えられます。

組み込み系で使われる言語は?


組み込み系システムで使われる言語は、C、C++、C#、Java、アセンブラなどがあります。この中で主流なのがCとC++になります。CとC++は、シビアなタイミング制御や少ないメモリを効率よく使うといったことが得意なので、組み込み系システムで広く使われています。

しかし現在ではハードウエアのCPU性能の向上やメモリの大容量化に伴い、シビアな制御が不要になり、開発しやすいJavaが組み込み系システムで採用されてきています。

Javaとは?


Javaは1990年代にアメリカのSun Microsystems社がCやC++をベースにして開発した言語です。現在ではGoogleの3大開発言語の中にも含まれています。(Googleの3大開発言語:Java、C++、Python)

Javaは基本的にはどんな環境でも使用できるところが特徴です。Web開発やアプリケーション開発、組み込み系開発など、さまざまな開発環境で使用することができます。

Javaの起動方法


Javaを起動する大まかな流れは次の通りです。

1.ソースプログラム作成
2.コンパイルしてクラスファイルを作成
3.クラスファイルの実行(Javaプログラムが起動する)

Javaのコンパイラやクラスファイルを実行する際に必要なjavaコマンドは、JDK(java Development Kit)をインストールすると使用することができます。

1.ソースプログラム作成

Javaのソースプログラムの拡張子は「java」です。例えば、”Test.java”というファイルを作成し、ファイルにプログラムを記入してプログラミングします。

簡単なプログラムを例にすると、「Why not」と表示されるプログラムは以下の通りです。

2.コンパイルしてクラスファイルを作成

プログラミングした”Test.java”をJava仮想マシンで実行できる内容に変換するのがコンパイルという行為です。コンパイルはコマンドプロンプトで”Test.java”のある場所に移動し、「javac」コマンドを入力することで実行できます。

例えば、”Test.java”をコンパイルする場合のコマンドは以下のようにします。

3.クラスファイルの実行

コンパイルが正常完了すると、”Test.class”が生成されています。この”Test.class”のことをクラスファイルと言います。クラスファイルの実行は「java」コマンドを使用します。

例えば、”Test.class”を実行する場合のコマンドは以下のとおりです。

「java」コマンドでは拡張子(.javaや.class)は指定せず、”Test”のみになることに注意してください。

組み込み系システムにJavaを採用する


当初はJavaは組み込み系システム開発には不向きと言われていました。なぜなら、Javaは動作速度が遅くメモリ消費が大きいためです。組み込み系システムはシビアなタイミング制御や少ないメモリで効率よく動作させる必要があります。

しかし、ハードウエアのCPU性能向上やメモリ容量の増大により、Javaが使用できる環境が整ってくると、Javaの特徴である高いセキュリティやマルチプラットフォームが利用できるため、Javaが採用されるようになってきました。

その特徴を次に説明します。

高いセキュリティ

Javaは元々セキュリティを考慮した仕様となっており、第三者が作成したアプリケーションを安全に実行することができます。

Javaは仮想マシンでアプリケーションを実行するため、システム内のアクセスしてはいけないメモリ領域にアクセスできないような仕組みになっています。したがって、意図的にシステムダウンを引き起こしたり、重要データを読み出したりすることができないようになっています。

マルチプラットフォーム

マルチプラットフォームとは、ある1つのアプリケーションを複数の異なる機種やOSで同じように動作させられることです。

Javaで作成したアプリケーションはマルチプラットフォームです。さまざまなハードウエアやOSが使用されている組込み系システムで、同一のアプリケーションを動作させることができます。そのため、アプリケーション開発の低コスト化、短納期化が実現できるようになります。

開発時の生産性が高い

Javaにはソフトウエア開発の生産性を向上させるため、さまざまな工夫がなされています。例えば、CやC++で使うポインタの仕様が排除されていたり、ガーベージコレクタでメモリ解放を自動化していたり、Missの少ない生産性の高いプログラミングができるようになっています。

Javaが急速に普及した理由は、この「開発時の生産性が高い」という特徴のためです。

Javaを採用するメリットとデメリット


組み込み系システムのCPU性能の向上やメモリ容量の増大により、組み込み系システムでJavaが採用されるようになってきていますが、「動作速度が遅い」、「メモリ消費が大きい」などのデメリットが解消されたわけではありません。

ここでは、Javaを採用するメリットとデメリットについて説明します。

Javaを採用するメリット

Javaを採用するメリットは先ほどご紹介した「高いセキュリティ」、「マルチプラットフォーム」、「開発時の生産性が高い」という点です。

Javaは生産性を考慮して設計された言語なので、再利用性が高いアプリケーションを作成するのに適しています。企業情報システム分野でJavaがよく利用されているのは、この生産性の高さが理由です。

Javaを採用するデメリット

Javaを採用するデメリットは、やはり「動作速度が遅い」、「メモリ消費が大きい」という点です。ただ、Java登場時と比べると、JIT(Just In Time)コンパイラなど、高速化技術が取り入れられ、技術的な課題が解消されつつあります。

この高速化技術とハードウエアの性能向上より、現在ではJavaのデメリットは薄れてきています。

Javaの懸念事項

デメリットではないですが、組み込み系システムにJavaを採用する場合、懸念事項があります。それは「Java APIの標準化」が進んでいないということです。Java APIとは、ハードウエアとアプリケーションのインターフェース部分を担うプログラムのことです。

現在では特定の分野、例えば、携帯電話やカメラなどは、Java APIの標準化は進んでいますが、その他の分野では、ハードウエアごとに作成しているので、「Java APIの標準化」が今後の課題となります。

Javaの組み込み系システム事例


Javaが組み込み系システムに使われるようになってきましたが、どのような事例があるのかご紹介します。

1つ目の事例は、Blu-rayプレーヤーです。Javaは「Blu-ray Disk ROM」を再生するBlu-rayプレーヤーに使われています。「Blu-ray Disk ROM」の中には映像だけでなく、Javaアプリケーションも記録されています。

2つ目の事例は、NTTドコモの携帯電話です。携帯電話にJavaを使用することで、アプリケーションをダウンロードするという方法が生まれました。

SE
組み込み系にJavaを採用する理由やメリットやデメリットがよく分かりました。
PM
将来は組み込み系システムの需要が高くなると予想されています。この機会にぜひ組み込み系システムへの理解を深めておきましょう。

Javaの組み込み系システムの将来性は?


「IoT(=Internet of Things)」という言葉が指すように、今後は身の回りのあらゆるモノがインターネットにつながるようになってきます。そうなると、組み込み系システムの需要が高まり、ますます生産性の高さが重要になってきます。

そのため、組み込み系システム開発にJavaの採用がどんどん広がってくるので、この機会に組み込み系Javaへの理解を深めておきましょう。


Javaでのキャリアアップをお考えの方は、現在募集中の求人情報をご覧ください。

また、直接のエントリーも受け付けております。

エントリー(応募フォーム)

Search

Popular

recommended

Categories

Tags