OSGi 環境の動的機能を使用する必要がない場合でも、OSGi フレームワークが提供する密結合、宣言的パッケージ化、およびサービス依存関係を活用することができます。
動的プラグインがあれば、グリッドを停止することなくプラグインをアップグレードすることができます。 この機能を使用するためには、元のプラグインと新しいプラグインが互換でなければなりません。 プラグインを更新する必要がない場合や、プラグインをアップグレードするためにグリッドを停止しても問題がない場合は、複雑な動的プラグインを必要としないことがあります。 しかし、それでも、eXtreme Scale アプリケーションを OSGi 環境で実行するだけの十分な理由があります。 その理由は、密結合、宣言的パッケージ、サービス依存関係その他にあります。
動的プラグインを使用することなく (より具体的には、OSGi サービスを使用してプラグインを宣言することなく) OSGi 環境でグリッドやクライアントをホストすることには 1 つ問題があります。それは、eXtreme Scale バンドルがどのようにしてプラグイン・クラスをロードするかということです。 eXtreme Scale バンドルはプラグイン・クラスのロードを OSGi サービスに依存します。そのため、このバンドルは他のバンドル内のクラスでオブジェクト・メソッドを呼び出すことができ、その際、それらのクラスのパッケージを直接インポートする必要がありません。
プラグインが OSGi サービスを介して使用可能にならないときは、eXtreme Scale バンドルがプラグイン・クラスを直接ロードできなければなりません。 ユーザー・クラスとパッケージをインポートするように eXtreme Scale バンドルのマニフェストを変更するのではなく、必要なパッケージ・インポートを追加するバンドル・フラグメントを作成してください。 このフラグメントは、他の非プラグイン・ユーザー・クラス (データ・オブジェクトやエージェント・クラスなど) のために必要なクラスをインポートすることもできます。