アーキテクチャー
Liberty は、柔軟に組み合わせ可能な動的ランタイム環境です。OSGi サービスを使用して、コンポーネント・ライフサイクル、依存関係の注入、および構成を管理します。 サーバー・プロセスは、単一の JVM、Liberty カーネル、および任意の数のオプション・フィーチャーから構成されます。 フィーチャー・コードと大部分のカーネル・コードは、OSGi フレームワーク内の OSGi バンドルとして実行されます。 フィーチャーでは、アプリケーションに必要なプログラミング・モデルとサービスが提供されます。

カーネル・ランチャーがシステムをブートストラップして、OSGi フレームワークを開始します。 構成が解析され、構成されているフィーチャーがフィーチャー・マネージャーによってロードされます。 カーネルは、OSGi サービスを広範囲に利用して非常に動的なランタイム環境を実現します。 OSGi Configuration Admin Service でシステム構成を管理し、OSGi Declarative Services コンポーネントでシステム・サービスのライフサイクルを管理します。 ファイル・モニター・サービスはアプリケーションと構成ファイルの変更を検出し、ロギング・サービスはメッセージとデバッグ情報をローカル・ファイル・システムに書き込みます。

フィーチャーは、システム構成ファイル (server.xml ファイルとその他の組み込まれたファイル) で指定されます。 サーバー構成ファイルから OSGi Configuration Admin Service に情報を取り込み、このサービスがフィーチャー構成をフィーチャー・マネージャー・サービスに注入します。 フィーチャー・マネージャーは各フィーチャー名を、そのフィーチャーを提供するバンドルのリストにマップします。 バンドルが OSGi フレームワークにインストールされ、開始されます。フィーチャー・マネージャーは、 サーバー稼働中にフィーチャーを動的に追加および削除して、構成変更に対応します。

ランタイム・サービスには、指定が必要な構成を最小限にするために、構成デフォルト設定が用意されています。 必要なフィーチャーと、システム・デフォルト設定に対する追加やオーバーライドを server.xml ファイルに指定します。 異なる複数のファイルに構成を構築して、「include」構文で親の server.xml ファイルにリンクすることもできます。 サーバー始動時、またはユーザー構成ファイルの変更時に、カーネルの構成管理は構成を解析し、システム・デフォルト設定の上にそれを適用します。 構成が更新されるたびに、各サービスの構成プロパティー・セットがサービスに注入されます。

OSGi Declarative Services コンポーネントを使用して、個別のサービスに機能を分解し、それらのサービスを必要なときだけアクティブにするようにします。 この動作により、ランタイム環境が「late (ランタイム・エレメントを必要時のみにロード) および lazy (最小数のエレメントをロード)」になり、占有スペースを小さくし、起動を速くすることができます。 OSGi サービス・レジストリーに宣言型サービスが追加され、実装クラスをロードせずに、サービス間の依存関係を解決できます。 サービスのアクティベーションは、サービスが使用されるとき (サービス参照が解決されるとき) まで遅延させることができます。 各サービスの構成は、サービスをアクティブ化する際に注入され、その後、構成が変更されると再注入されます。