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 セキュリティーに基づく任意のレイヤー。さらに制約と機能強化が追加されています。
フレームワークの各レイヤーは、その下の層によって異なります。たとえば、ライフサイクルレイヤーにはモジュールレイヤーが必要です。モジュールレイヤーは、ライフサイクルおよびサービスレイヤーなしで使用できます。