IT資格用語解説基本情報技術者試験・コンポーネントウェア
OSGi
更新日:
用語解説
OSGiは、Javaアプリケーションをバンドルというモジュールに分割し、実行中でも導入、開始、停止、更新、削除できる動的モジュールシステムとサービス基盤です。モジュール、ライフサイクル、サービスの各層で構成されます。
■ 試験で押さえるポイント
バンドルはクラスや資源とメタデータを含むJARで、マニフェストに公開・要求するパッケージと版を記述し、クラスローダ分離で内部実装を隠します。
ライフサイクル層はinstall、start、stop、update、uninstallなどの状態遷移を管理し、システム全体を停止せず部品を入れ替えられるようにします。
サービス層ではJavaオブジェクトをインタフェース名などでサービスレジストリへ登録し、利用側が検索・結合します。登録や離脱の通知にも対応します。
動的に依存先が現れたり消えたりするため、利用側はサービス不在や版の変化を扱う必要があります。単なるJAR配布規約ではなく、実行時の動的管理が重要です。
■ 選択肢での判断ポイント
『Java』『バンドル』『動的な導入・更新』『サービスレジストリ』の組合せならOSGiです。OSのカーネル機能や、静的な依存関係だけを解決するパッケージ管理と区別します。
例: 稼働中のゲートウェイへ新しい機器ドライバのバンドルを導入して開始し、サービスレジストリへ公開すると、監視機能がそのサービスを検出して利用します。