組み込み開発を支えるJava技術

2010年8月4日(水)
一瀬 成広

Javaの可能性を広げるOSGi

Javaの関連技術で現在注目されているのが、OSGiと呼ばれる、アプリケーションを管理するためのプラットフォームです。すでに、主要なアプリケーション・サーバーや統合開発環境(IDE)のEclipseなどで採用されています。

OSGiは、今でこそ幅広い分野で使われているプラットフォームですが、もともとは、組み込みシステムやゲートウエイ装置向けに考えられた仕様です。もちろん、組み込みJavaの上でも動作しますし、Android上での動作も確認されています。

OSGiが提供する具体的な機能は、アプリケーションのライフサイクルを管理する機能です。これを実現するために、非常に強力なバージョン管理/依存関係解決の仕組み、アクセス制御機能などを持っています。

図3: OSGiの主な機能

OSGiは、これらの強力なアプリケーション管理機能を備えることから、複雑なアプリケーションを管理する必要のあるアプリケーション・サーバーにおいては、デファクト・スタンダードとなっています。

一方、組み込みの分野においては、主としてアプリケーションの遠隔更新を支援する目的で使われています。複合機やカーナビ、ホーム・ゲートウエイ(HGW)など、複数のアプリケーション機能やモジュールが動作するシステムにおいて、OSGiの採用が進んでいます。

OSGiは、非営利の標準化団体「OSGi Alliance」によって仕様が定められています。通信事業者やITベンダー、電機メーカーを中心に、2010年現在、約120社が参加しています。最新仕様のRelease 4.2は2009年9月に規定されました。2010年秋には、住宅用のResidential仕様がリリースされる予定です。Residential仕様では、HGW(ホーム・ゲートウエイ)を遠隔管理するための仕様が規定されます。

OSGiを使うためには、OSGiの実装を入手する必要があります。仕様自体はOSGi Allianceで公開されているので、その仕様を基に独自に実装することが可能です。実際、オープンソースによる実装も存在します。OSGi Allianceが正式に認定している実装は、以下の5つです。

  1. Makewave Knopflerfish Pro 2.0
  2. ProSyst Software mBedded Server 6.0
  3. Eclipse Equinox 3.2
  4. Samsung OSGi R4 Solution
  5. HitachiSoft SuperJ Engine Framework

国内のベンダーでは、5番目に挙げた、筆者が所属する日立ソフトウェアエンジニアリング(日立ソフト)の「SuperJ Engine Framework」が、OSGiから認定を受けています。同ソフトは、特に組み込み機器に特化した実装になっています。

まとめ

Javaが登場したのは1995年。当初、Javaがターゲットとしていたのは、組み込みシステム、具体的には情報家電でした。Javaが持つ「VM上でアプリケーションを動作させる」という発想は、さまざまなハードウエア・スペックを持つ組み込みシステムだからこそ生まれました。当時の組み込み機器にとっては先進的過ぎたこの技術は、10年以上の歳月を経た今、重要性を増してきています。

Javaの魅力をさらに引き出すのが、OSGiです。今後、OSGiの標準化が進めば、OSGiによってJava VMごとの仕様の違いを吸収できるようになります。組み込みシステムからサーバー機まで、多種多様なハードウエアの上で、同じJavaプログラムを実行できるようになります。

OSGiに準拠したプログラムが増えれば、これらを部品として組み合わせるだけで、目的のサービスを開発することができるようになります。JavaとOSGiの組み合わせは、組み込みシステムだけでなく、広くソフトウエア開発全般において、大きな変化をもたらすかもしれません。

日立ソフトウェアエンジニアリング株式会社

1997年の入社来、組み込みJavaを中心に担当。現在、日立ソフトの組み込みJava製品「SuperJ Engine」組み込み向けOSGi実装「SuperJ Engine Framework」の開発取り纏めを担当している。

連載バックナンバー

Think ITメルマガ会員登録受付中

Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。

Think ITメルマガ会員のサービス内容を見る

他にもこの記事が読まれています