WebSphere eXtreme Scale inclut les plug-in ObjectGrid et BackingMap. Ces plug-in sont implémentés dans Java et configurés en utilisant le fichier XML descripteur ObjectGrid. Pour créer un plug-in dynamique qui peut être mis à niveau dynamiquement, il doit connaître les événements de cycle de vie ObjectGrid et BackingMap, car il peut être nécessaire qu'il exécute des actions lors d'une mise à jour. L'amélioration d'un module d'extension avec des méthodes de rappel de cycle de vie, des programmes d'écoute d'événements ou les deux permet aux plug-in d'effectuer ces actions au moment opportun.
Tous les plug-in eXtreme Scale s'appliquent à une instance BackingMap ou ObjectGrid. De nombreux plug-in interagissent également avec d'autres plug-in. Par exemple, un chargeur et un plug-in TransactionCallback fonctionnent ensemble pour interagir correctement avec une transaction de base de données et les divers appels JDBC de base de données. Certains modules d'extension peut également s'avérer nécessaires pour mettre en mémoire cache les données de configuration des autres plug-in pour améliorer les performances.
Les plug-in BackingMapLifecycleListener et ObjectGridLifecycleListener fournissent des opérations de cycle de vie pour les instances BackingMap et ObjectGrid correspondantes. Ce processus permet aux plug-in d'être avertis lorsque le parent BackingMap ou ObjectGrid et ses plug-in correspondants peuvent être modifiés. Les plug-in BackingMap implémentent l'interface BackingMapLifecyleListener et les plug-in ObjectGrid implémentent l'interface ObjectGridLifecycleListener. Ces plug-in sont appelés automatiquement lorsque le cycle de vie du parent BackingMap ou ObjectGrid change. Pour plus d'informations sur les plug-in de cycle de vie, voir la rubrique Gestion des cycles de vie du plug-in.
Lorsque vous accédez directement à un autre plug-in, accédez-y via le conteneur OSGi pour que tous les composants du système fassent référence au plug-in correct. Si, par exemple, un composant dans l'application fait directement référence, ou met en mémoire cache, une instance d'un plug-in, il conserve sa référence à cette version du plug-in, même lorsque le plug-in est mis à jour dynamiquement. Ce comportement peut causer des problèmes liés à l'application ainsi que des fuites de mémoire. Par conséquent, écrivez le code qui dépend des plug-in dynamiques qui obtient sa référence en utilisant OSGi, la sémantique getService(). Si l'application doit mettre en cache un ou plusieurs plug-in, elle écoute les événements de cycle de vie en utilisant les interfaces ObjectGridLifecycleListener et BackingMapLifecycleListener. L'application doit pouvoir également régénérer sa mémoire cache lorsque cela est nécessaire en sécurisant les unités d'exécution.
Tous les plug-in eXtreme Scale utilisés avec OSGi doivent également implémenter l'interface BackingMapPlugin ou ObjectGridPlugin correspondante. Les nouveaux plug-in, tels que l'interface MapSerializerPlugin, appliquent cette pratique. Ces interfaces fournissent à l'environnement d'exécution eXtreme Scale et OSGi une interface cohérente pour injecter l'état dans le plug-in et contrôler son cycle de vie.
Utilisez cette tâche pour spécifier qu'une notification se produit lorsque des plug-in homologues sont mis à jour. Vous pouvez créez une fabrique d'écoute qui produit une instance de programme d'écouter.
En implémentant l'interface ObjectGridPlugin ou BackingMapPlugin, eXtreme Scale peut contrôler le cycle de vie du plug-in au moment opportun.
En implémentant l'interface ObjectGridLifecycleListener ou BackingMapLifecycleListener, le plug-in est enregistré automatiquement comme programme d'écoute des événements de cycle de vie ObjectGrid ou BackingMap associés. L'événement INITIALIZING permet de signaler que tous les plug-in ObjectGrid et BackingMap ont été initialisés et peuvent être recherchés et utilisés. L'événement ONLINE est utilisé pour signaler que ObjectGrid est en ligne et prêt à commencer le traitement des événements.