Génération de plug-in dynamiques eXtreme Scale

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.

Avant de commencer

Cette rubrique suppose que vous avez créé le plug-in approprié. Pour plus d'informations sur le développement de plug-in eXtreme Scale, voir la rubrique API système et plug-in.

Pourquoi et quand exécuter cette tâche

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.

Vous améliorerez les ensembles en utilisant les méthodes de cycle de vie ou les programmes d'écoute dans les tâches communes suivantes :
  • Démarrage et arrêt des ressources, telles que les unités d'exécution ou les abonnés de messagerie.
  • Indication qu'une notification se produit lorsque des plug-in homologues ont été mis à jour, ce qui permet d'accéder directement au plug-in et de détecter les modifications.

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.

Procédure

Résultats

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.