WebSphere® eXtreme
Scale プラグインは、プラグ可能なコンポーネント (ObjectGrid および BackingMap も含む) に、ある特定のタイプの機能を提供するコンポーネントです。 WebSphere eXtreme
Scale には、
いくつかのプラグ・ポイントが用意されていて、アプリケーションおよびキャッシュのプロバイダーは、それらを使用して、
さまざまなデータ・ストアや代替クライアント API と統合することができ、キャッシュの全体的なパフォーマンスを
向上させることができます。この製品には事前にビルド済みのデフォルトのプラグインがいくつか付属していますが、ユーザーはアプリケーションを使用してカスタム・プラグインをビルドすることもできます。
すべてのプラグインは、1 つ以上の eXtreme Scale プラグイン・インターフェース
を実装する具象クラスです。これらのクラスは、適切なタイミングで ObjectGrid によってインスタンス化され、呼び出されます。ObjectGrid および BackingMap では、それぞれカスタム・プラグインの登録が可能です。
ObjectGrid プラグイン
ObjectGrid インスタンスでは以下のプラグインが使用可能です。プラグインがサーバー・サイドのみである場合、そのプラグインはクライアント ObjectGrid および BackingMap インスタンスで削除されます。ObjectGrid および BackingMap インスタンスは、サーバー上のみです。
- TransactionCallback: TransactionCallback プラグインは、トランザクション・ライフサイクル・イベントを提供します。TransactionCallback プラグインが組み込み JPATxCallback (com.ibm.websphere.objectgrid.jpa.JPATxCallback) クラスの実装である場合、そのプラグインはサーバー・サイドのみになります。ただし、JPATxCallback クラスのサブクラスは、サーバー・サイドのみではありません。
- ObjectGridEventListener: ObjectGridEventListener プラグインは、ObjectGrid、断片、およびトランザクションに対して ObjectGrid ライフサイクル・イベントを提供します。
- ObjectGridLifecycleListener: ObjectGridLifecycleListener
プラグインは、ObjectGrid インスタンスに対して ObjectGrid ライフサイクル・イベントを提供します。
ObjectGridLifecycleListener プラグインは、他のすべての ObjectGrid プラグインでオプションのミックスイン・インターフェースとして使用できます。
- ObjectGridPlugin:
ObjectGridPlugin は、他のすべての ObjectGrid プラグインに拡張ライフサイクル管理イベントを提供するオプションのミックスイン・インターフェースです。
- SubjectSource、ObjectGridAuthorization、SubjectValidation: eXtreme Scaleは、カスタム認証メカニズムを eXtreme Scale と統合することを可能にするいくつかのセキュリティー・エンドポイントを提供します。(サーバー・サイドのみ)
共通 ObjectGrid プラグイン要件
ObjectGrid は、JavaBeans 規則を使用し、プラグイン・インスタンスをインスタンス化して初期化します。前述のすべてのプラグインの実装には以下の要件があります。
- プラグイン・クラスは最上位レベルのパブリック・クラスでなければなりません。
- プラグイン・クラスは、引数を取らない public コンストラクターを提供する必要があります。
- プラグイン・クラスは、サーバーおよびクライアント (必要に応じて) の両方のクラスパスで使用可能でなければなりません。
- 属性は、JavaBeans スタイル・プロパティー・メソッドを使用して設定する必要があります。
- プラグインは、特に記述のない限り ObjectGrid の初期化より前に登録され、ObjectGrid が初期化された後は変更できません。
BackingMap プラグイン
BackingMap では、以下のプラグインが使用可能です。
- Evictor: デフォルトのキャッシュ・エントリー除去メカニズムと、カスタム・エビクターを作成するためのプラグインが提供されています。
ObjectTransformer: ObjectTransformer プラグインを使用すると、キャッシュ内のオブジェクトをシリアライズ、デシリアライズ、およびコピーすることができます。ObjectTransformer インターフェースは、DataSerializer プラグインで置換されました。これを使用して、既存の製品 API がデータと効率的に対話できるように WebSphere eXtreme
Scale 内の任意のデータを効率的に格納できます。
OptimisticCallback: OptimisticCallback プラグインは、オプティミスティック・ロック・ストラテジーを使用している場合に、キャッシュ・オブジェクトのバージョン管理および比較操作のカスタマイズを可能にします。OptimisticCallback プラグインは、ValueDataSerializer.Versionable インターフェースに取り替えられました。このインターフェースは、COPY_TO_BYTES コピー・モードで DataSerializer プラグインを使用するとき、または EntityManager API で @Version アノテーションを使用するときに実装できます。
- MapEventListener: MapEventListener プラグインは、BackingMap について発生するコールバック通知および重要なキャッシュ状態変更を提供します。
- BackingMapLifecycleListener: BackingMapLifecycleListener プラグインは、BackingMap インスタンスに BackingMap ライフサイクル・イベントを提供します。
BackingMapLifecycleListener プラグインは、他のすべての BackingMap プラグインでオプションのミックスイン・インターフェースとして使用できます。
- BackingMapPlugin:
BackingMapPlugin は、他のすべての BackingMap プラグインに拡張ライフサイクル管理イベントを提供するオプションのミックスイン・インターフェースです。
- Indexing: MapIndexplug-in プラグインで表される索引付け機能を使用して、1 つ以上の索引を BackingMap マップにビルドし、非キー・データ・アクセスをサポートできます。
- Loader: ObjectGrid マップ上の Loader プラグインは、通常は同じシステムまたは他のシステム上のパーシスタント・ストアに保管されるデータ用のメモリー・キャッシュのような働きをします。(サーバー・サイドのみ)
- MapSerializerPlugin: MapSerializerPlugin により、キャッシュ内の Java オブジェクトおよび非 Java データをシリアライズしてインフレートすることができます。
このプラグインは DataSerializer ミックスイン・インターフェースと一緒に使用され、高性能アプリケーション用の堅固かつ柔軟なオプションを許可します。