OSGi

更新日:

用語解説

OSGiは、Javaアプリケーションをバンドルというモジュールに分割し、実行中でも導入、開始、停止、更新、削除できる動的モジュールシステムとサービス基盤です。モジュール、ライフサイクル、サービスの各層で構成されます。

■ 試験で押さえるポイント

  • バンドルはクラスや資源とメタデータを含むJARで、マニフェストに公開・要求するパッケージと版を記述し、クラスローダ分離で内部実装を隠します。

  • ライフサイクル層はinstall、start、stop、update、uninstallなどの状態遷移を管理し、システム全体を停止せず部品を入れ替えられるようにします。

  • サービス層ではJavaオブジェクトをインタフェース名などでサービスレジストリへ登録し、利用側が検索・結合します。登録や離脱の通知にも対応します。

  • 動的に依存先が現れたり消えたりするため、利用側はサービス不在や版の変化を扱う必要があります。単なるJAR配布規約ではなく、実行時の動的管理が重要です。

■ 選択肢での判断ポイント

『Java』『バンドル』『動的な導入・更新』『サービスレジストリ』の組合せならOSGiです。OSのカーネル機能や、静的な依存関係だけを解決するパッケージ管理と区別します。

例: 稼働中のゲートウェイへ新しい機器ドライバのバンドルを導入して開始し、サービスレジストリへ公開すると、監視機能がそのサービスを検出して利用します。

音声で聞く

同じ分野の用語