Ein Plug-in von WebSphere eXtreme Scale ist eine Komponente, die
einen bestimmten Typ von Funktion für die Plug-in-Komponenten bereitstellt, zu denen
ObjectGrid und BackingMap gehören. WebSphere eXtreme Scale stellt
mehrere Plug-in-Punkte bereit, über die Anwendungen und Cache-Provider in
verschiedene Datenspeicher und alternative Client-APIs integriert werden können und die Gesamtleistung des Caches verbessert werden kann.
Im Lieferumfang des Produkts sind mehrere vordefinierte Plug-ins enthalten, aber Sie können auch eigene
Plug-ins für die Anwendung erstellen.
Alle Plug-ins sind konkrete Klassen, die ein oder mehrere Plug-in-Schnittstellen von
eXtreme Scale implementieren.
Diese Klassen werden anschließend von ObjectGrid zur entsprechenden Zeit instanziiert und aufgerufen.
Bei ObjectGrid und BackingMap können jeweils angepasste Plug-ins registriert werden.
ObjectGrid-Plug-ins
Die folgenden Plug-ins sind für eine ObjectGrid-Instanz verfügbar.
Wenn das Plug-in nur serverseitig verfügbar ist, werden die Plug-ins in den clientseitigen
ObjectGrid- und BackingMap-Instanzen entfernt.
Die ObjectGrid- und BackingMap-Instanzen sind nur auf dem Server vorhanden.
- TransactionCallback: Ein TransactionCallback-Plug-in stellt Transaktionslebenszyklusereignisse bereit.
Wenn das TransactionCallback-Plug-in die integrierte
JPATxCallback-Klassenimplementierung (com.ibm.websphere.objectgrid.jpa.JPATxCallback)
ist, ist das Plug-in nur serverseitig verfügbar. Die Unterklassen der Klasse
JPATxCallback sind jedoch nicht nur serverseitig verfügbar.
- ObjectGridEventListener: Ein ObjectGridEventListener-Plug-in stellt ObjectGrid-Lebenszyklusereignisse für das ObjectGrid, Shards und Transaktionen bereit.
- ObjectGridLifecycleListener: Ein ObjectGridLifecycleListener-Plug-in stellt
ObjectGrid-Lebenszyklusereignisse für die ObjectGrid-Instanz bereit.
Das ObjectGridLifecycleListener-Plug-in kann als optionale
Mix-in-Schnittstelle für alle anderen ObjectGrid-Plug-ins verwendet werden.
- ObjectGridPlugin:
Ein ObjectGridPlugin ist eine optionale Mix-in-Schnittstelle, die erweiterte
Lebenszyklusverwaltungsereignisse für alle anderen ObjectGrid-Plug-ins bereitstellt.
- SubjectSource, ObjectGridAuthorization, SubjectValidation: eXtreme Scale bietet
mehrere Sicherheitsendpunkte, an denen angepasste Authentifizierungsverfahren mit
eXtreme Scale integriert werden können. (nur Serverseite)
Allgemeine Voraussetzungen für ObjectGrid-Plug-ins
Das
ObjectGrid instanziiert und initialisiert Plug-in-Instanzen unter Verwendung von JavaBeans-Konventionen.
Für alle Implementierungen der zuvor aufgeführten Plug-ins gelten die folgenden Voraussetzungen:
- Die Plug-in-Klasse muss eine öffentliche Ausgangsklasse sein.
- Die Plug-in-Klasse muss einen öffentlichen Konstruktor ohne Argumente haben.
- Die Plug-in-Klasse muss (gegebenenfalls) im Klassenpfad für Server und Clients verfügbar sein.
- Attribute müssen über JavaBeans-Eigenschaftenmethoden gesetzt werden.
- Plug-ins werden, sofern nicht anders angegeben, vor der Initialisierung des ObjectGrids initialisiert und können nach der Initialisierung des
ObjectGrids nicht mehr geändert werden.
BackingMap-Plug-ins
Die folgenden Plug-ins sind für eine BackingMap verfügbar:
- Evictor: Ein Evictor-Plug-in (Bereinigungsprogramm) ist ein Standardmechanismus für das Entfernen von Cacheeinträgen und ein Plug-in für das Erstellen angepasster Evictor.
ObjectTransformer: Mit einem ObjectTransformer-Plug-in können Sie Objekte im Cache serialisieren, entserialisieren und kopieren.
Die Schnittstelle ObjectTransformer
wurde durch die DataSerializer-Plug-ins ersetzt, die
Sie verwenden können, um beliebige Daten effizient in
WebSphere eXtreme Scale speichern können, so dass vorhandene Produkt-APIs
effizient mit Ihren Daten interagieren können.
OptimisticCallback: Mit einem OptimisticCallback-Plug-in können Sie Versionssteuerungs- und Vergleichsoperationen für Cacheobjekte
anpassen, wenn Sie die optimistische Sperrstrategie verwenden. Das Plug-in "OptimisticCallback" wurde
druch die Schnittstelle ValueDataSerializer.Versionable ersetzt, die Sie implementieren können, wenn Sie das
DataSerializer-Plug-in mit dem Kopiermodus "COPY_TO_BYTES" oder die Annotation "@Version" mit der API
EntityManager verwenden.
- MapEventListener: Ein MapEventListener-Plug-in unterstützt Callback-Benachrichtigungen und signifikante
Cachestatusänderungen für eine BackingMap.
- BackingMapLifecycleListener: Ein BackingMapLifecycleListener-Plug-in stellt
BackingMap-Lebenszyklusereignisse für die BackingMap-Instanz bereit.
Das BackingMapLifecycleListener-Plug-in kann als optionale
Mix-in-Schnittstelle für alle anderen BackingMap-Plug-ins verwendet werden.
- BackingMapPlugin:
Ein BackingMapPlugin ist eine optionale Mix-in-Schnittstelle, die erweiterte
Lebenszyklusverwaltungsereignisse für alle anderen BackingMap-Plug-ins bereitstellt.
- Indexing: Verwenden Sie das Indexierungsfeature, das vom MapIndexPlugin-Plug-in dargestellt wird, um einen Index oder mehrere Indizes für eine BackingMap
zu erstellen, damit Datenzugriffe ohne Schlüssel unterstützt werden.
- Loader: Ein Loader-Plug-in in einer ObjectGrid-Map dient als Speichercache für Daten, die gewöhnlich in einem persistenten Speicher auf demselben System oder einem anderen System
gespeichert werden.
(nur Serverseite)
- MapSerializerPlugin: Ein MapSerializerPlugin ermgöglicht Ihnen,
Java-Objekte und Nicht-Java-Daten im Cache zu serialisieren und zu deserialisieren.
Das Plug-in wird mit den DataSerializer-Mix-in-Schnittstellen verwendet und bietet stabile und flexible
Optionen für Hochleistungsanwendungen.