1.3. OSGi フレームワーク

1.3.1. 概要

OSGi Alliance は、OSGi Service Platform リリース 4 の機能の定義を担当する独立した組織です。OSGi Service Platform は、複雑なソフトウェアアプリケーションのビルド、デプロイ、および管理を簡素化するオープン仕様のセットです。

OSGi テクノロジーは通常、Java の動的モジュールシステムと呼ばれます。OSGi は、バンドルを使用して Java コンポーネントをデプロイし、依存関係、バージョン管理、クラスパス制御、クラ出力ディングを処理する Java のフレームワークです。OSGi のライフサイクル管理により、JVM をシャットダウンせずにバンドルのロード、開始、および停止ができます。

OSGi は、Java に最適なランタイムプラットフォーム、またはサービス用の優れたクラ出力ディングアーキテクチャー、およびレジストリーを提供します。バンドルはサービスをエクスポートしてプロセスを実行し、それらの依存関係を管理できます。各バンドルの要件は OSGi コンテナーで管理できます。

Fuse は Apache Felix をデフォルトの OSGi 実装として使用します。フレームワーク層は、バンドルをインストールするコンテナーを形成します。このフレームワークは、動的でスケーラブルな方法でバンドルのインストールおよび更新を管理し、バンドルとサービス間の依存関係を管理します。

1.3.2. OSGi アーキテクチャー

OSGi フレームワークには、以下が含まれます。

  • バンドル - アプリケーションを設定する論理モジュール。「OSGi バンドル」を参照してください。
  • サービスレイヤー: モジュールおよびその含まれるコンポーネント間の通信を提供します。このレイヤーはライフサイクルレイヤーと密接に統合されています。「OSGi サービス」を参照してください。
  • ライフサイクルレイヤー: ベースとなる OSGi フレームワークへのアクセスを提供します。このレイヤーは個別のバンドルのライフサイクルを処理するため、バンドルの開始や停止などのアプリケーションを動的に管理できます。
  • モジュールレイヤー: バンドルパッケージング、依存関係の解決、クラ出力ディングを管理する API を提供します。
  • 実行環境: JVM の設定。この環境では、バンドルが機能する環境を定義するプロファイルを使用します。
  • セキュリティー レイヤー: Java 2 セキュリティーに基づく任意のレイヤー。さらに制約と機能強化が追加されています。

フレームワークの各レイヤーは、その下の層によって異なります。たとえば、ライフサイクルレイヤーにはモジュールレイヤーが必要です。モジュールレイヤーは、ライフサイクルおよびサービスレイヤーなしで使用できます。