DataSerializer プラグインを使用して、Java オブジェクトおよびその他のデータをバイナリー形成でグリッドに保管する最適化されたシリアライザーを作成できます。プラグインは、データ・オブジェクト全体のインフレートを必要とせずに、バイナリー・データ内の属性を照会するために使用できるメソッドも提供します。
DataSerializer プラグインには、3 つのメインのプラグインと、いくつかのオプションのミックスイン・インターフェースが含まれます。MapSerializerPlugin プラグインは、マップと他のマップ間のリレーションシップに関するメタデータを含みます。
また、KeySerializerPlugin および ValueSerializerPlugin への参照も含みます。キーおよび値のシリアライザーのプラグインは、マップの個々のキーおよび値データとの対話を担当するメタデータおよびシリアライゼーション・コードを含みます。MapSerializerPlugin
プラグインは、キーおよび値のどちらかのシリアライザーまたは両方のシリアライザーを含む必要があります。
KeySerializerPlugin
プラグインは、キーのシリアライズ、インフレート、およびイントロスペクトのためのメソッドとメタデータを提供します。ValueSerializer
プラグインは、値のシリアライズ、インフレート、およびイントロスペクトのためのメソッドとメタデータを提供します。両方のインターフェースの要件は異なります。DataSerializer
プラグインで使用可能なメソッドについて詳しくは、com.ibm.websphere.objectgrid.plugins.io
パッケージに関する API 資料を参照してください。
- MapSerializerPlugin プラグイン
- MapSerializerPlugin は、BackingMap インターフェースへのメイン・プラグイン・ポイントであり、2 つのネストされたプラグイン (KeySerializerPlugin および ValueSerializerPlugin) を含みます。
eXtreme Scale はネストされたプラグインやワイヤード・プラグインをサポートしないため、BasicMapSerializerPlugin プラグインはこれらのネストされたプラグインに人工的にアクセスします。これらのプラグインを OSGi フレームワークで使用する場合、MapSerializerPlugin プラグインが唯一のプロキシーとなります。
ローダーなど他の従属プラグイン内では、ネストされたすべてのプラグインは、それらのプラグインも BackingMap ライフサイクル・イベントを listen していない限り、キャッシュに入れてはいけません。それらのプラグインへの参照がリフレッシュされ続ける場合があるため、OSGi フレームワークで実行している場合、これは重要になります。
- KeySerializerPlugin プラグイン
- KeySerializerPlugin プラグインは、DataSerializer インターフェースを拡張し、他のミックスイン・インターフェースと、キーを記述しているメタデータを含みます。このプラグインを使用して、キー・データ・オブジェクトおよび属性をシリアライズし、インフレートします。
- ValueSerializerPlugin プラグイン
- ValueSerializerPlugin プラグインは、DataSerializer インターフェースを拡張しますが、追加のメソッドを公開することはありません。このプラグインを使用して、値データ・オブジェクトおよび属性をシリアライズし、インフレートします。
オプションのミックスイン・インターフェース
オプションのミックスイン・インターフェースは、以下を含む追加機能を提供します。
- オプティミスティック・バージョン管理
- Versionable インターフェースは、オプティミスティック・ロックの使用時に、ValueSerializerPlugin
プラグインがバージョン・チェックおよびバージョンの更新を処理できるようにします。Versioning が実装されておらず、オプティミスティック・ロックが有効な場合、バージョンは全体がシリアライズされた形式のデータ・オブジェクト値です。
- Non-hashCode-based ルーティング
- Partitionable インターフェースは、KeySerializerPlugin 実装が要求を明示区画へ経路指定できるようにします。これは、KeySerializerPlugin
なしで ObjectMap API が使用された場合の PartitionableKey インターフェースと同等です。このフィーチャーがない場合、キーは、結果の hashCode に基づく区画に経路指定されます。
- UserReadable (toString) インターフェース
- UserReadable (toString) インターフェースによって、すべての DataSerializer
の実装がログ・ファイルおよびデバッガー内のデータを表示するための代替メソッドを提供することができます。この機能を使用して、パスワードなどの機密データを非表示にできます。DataSerializer 実装がこのインターフェースを実装しなければ、ランタイム環境は、必要に応じて、オブジェクトで toString() を直接呼び出したり、代替表現を含めたりすることがあります。
- 進化サポート
- Mergeable インターフェースを ValueSerializerPlugin プラグイン実装で実装することにより、グリッド内のデータをその存続期間中絶えず更新するさまざまな DataSerializer バージョンが存在するとき、オブジェクトの複数バージョン間のインターオペラビリティーが可能になります。
Mergeable メソッドにより、DataSerializer プラグインは、これ以外の方法では理解しないデータを保持することができます。