Modèle dynamique : ajout de nouvelles propriétés aux entités virtual member manager en phase d'exécution

Virtual member manager est configuré pour utiliser le modèle dynamique. Vous pouvez créer de nouveaux types de propriété et les ajouter à des types d'entité intégrée virtual member manager existants de manière dynamique en phase d'exécution.

Pourquoi et quand exécuter cette tâche

Vous devez appeler l'API createSchema pour créer de nouveaux types de propriété et les ajouter aux types d'entité intégrée existants de virtual member manager en phase d'exécution sans le redémarrer. Prêts à l'emploi, les adaptateurs LDAP et BDD prennent en charge ce type de procédure. Dans cet exemple, vous souhaitez créer un nouveau type de propriété appelé postOfficeBox et l'ajouter au type d'entité intégrée virtual member manager "PersonAccount". Cet exemple utilise un adaptateur LDAP.

Procédez comme suit :

Procédure

  1. Si les adaptateurs sous-jacents incluent l'adaptateur LDAP, vérifiez que le schéma de l'attribut LDAP correspondant du nouveau type de propriété est défini sur le serveur LDAP et contenu dans les classes d'objets LDAP du type d'entité. Virtual member manager ne fournit pas la fonction de création et de mise à jour du schéma LDAP sur le serveur LDAP. Dans cet exemple, la classe d'objet inetOrgPerson du type d'entité PersonAccount contient déjà l'attribut LDAP postOfficeBox

    Si les adaptateurs sous-jacents incluent l'adaptateur BDD, aucune préparation supplémentaire n'est nécessaire.

  2. Côté client, vous devez construire un graphique de données pour créer le nouveau type de propriété. L'objet de données PropertySchema permet de créer un nouveau type de propriété. Les attributs tels que propertyName, dataType, multiValued permettent de spécifier les métadonnées du nouveau type de propriété. Les types d'entité applicables sont définis dans l'élément applicableEntityTypeNames. Vous pouvez spécifier plusieurs types d'entité. Vous pouvez définir le nom d'attribut de référentiel correspondant de cette propriété en ajoutant une configuration d'attribut LDAP et en spécifiant le nom de la propriété virtual member manager correspondante. Pour plus d'informations sur la configuration de cette interface de ligne de commande, reportez-vous à la commande addIdMgrLDAPAttr dans la rubrique Groupe de commandes IdMgrRepositoryConfig pour l'objet AdminTask du centre de documentation de WebSphere Application Server.
    Remarque : Pour plus d'informations sur l'utilisation des objets de données propertySchema et extensionPropertySchema, voir la section Schéma de propriété étendu de la rubrique Prérequis pour la programmation. Reportez-vous également à la rubrique Configuration d'un référentiel d'extension de propriété dans une configuration de référentiel fédéré dans le centre de documentation WebSphere Application Server.
    Voici l'exemple de graphique de données. Le nouveau type de propriété à créer est appelé postOfficeBox et est ajouté au type d'entité PersonAccount. Le nom de l'attribut LDAP correspondant postOfficeBox étant identique au nom de la propriété, il n'est pas nécessaire d'ajouter de configuration LDAP pour ce nom de propriété.
    <?xml version="1.0" encoding="UTF-8"?>
    <sdo:datagraph xmlns:sdo="commonj.sdo"
        xmlns:wim="http://www.ibm.com/websphere/wim">
      <wim:schema>
        <wim:propertySchema nsURI="http://www.yourco.com/wim/yourext" 
         dataType="STRING" multiValued="true"
            propertyName="postOfficeBox">
          <wim:applicableEntityTypeNames>PersonAccount</wim:applicableEntityTypeNames>
        </wim:propertySchema>
      </wim:schema>
    </sdo:datagraph>

Résultats

Côté client, l'application d'exploitation virtual member manager appelle l'API createSchema de virtual member manager via le fournisseur de services local. Le fournisseur de services local détecte que cet appel modifie le schéma et met à jour le schéma local (ECore) dès que l'appel de l'API createSchema est terminé.

Côté serveur, le gestionnaire de schémas reçoit l'appel de l'API du client. Il vérifie tout d'abord si les nouveaux types de propriété existent déjà et émet une exception le cas échéant. Puis il met à jour le modèle ECore en mémoire afin d'ajouter les nouveaux types d'entité aux types d'entité existants. Dans cet exemple, l'attribut EClass de l'entité PersonAccount ajoute un nouvel attribut EAttribute appelé postOfficeBox.

Le gestionnaire de schémas ajoute le schéma des nouveaux types de propriété au fichier wimxmlextension.xml. Vous trouverez ci-dessous un exemple de contenu du fichier wimxmlextension.xml après cette mise à jour.
<wim:propertySchema nsURI="http://www.yourco.com/wim/yourext"
    dataType="STRING" multiValued="true" propertyName="postOfficeBox">
      <wim:applicableEntityTypeNames>PersonAccount</wim:applicableEntityTypeNames>
    </wim:propertySchema>
Le gestionnaire de schémas appelle le gestionnaire de référentiels qui, à son tour, appelle la méthode de l'interface SPI createSchema de tous les adaptateurs.
Les adaptateurs qui prennent en charge la création de schéma peuvent exécuter ensuite toutes les opérations nécessaires pour prendre en charge le nouveau schéma. Par exemple, l'adaptateur LDAP actualise la mémoire cache afin de refléter les modifications effectuées dans le schéma et la configuration. L'adaptateur BDD crée le schéma de la nouvelle entité et de la nouvelle propriété dans sa base de données et actualise ses mémoires cache.
Remarque : Les adaptateurs qui ne prennent pas en charge la création de schémas, par exemple l'adaptateur de fichier qui ne permet pas de créer de nouveaux types en phase d'exécution, émettent une exception OperationNotSupportedException.

Si au moins un adaptateur de référentiel prend en charge la création de nouvelles entités et n'émet pas l'exception OperationNotSupportedException, virtual member manager renvoie les ID des référentiels dans le graphique de données de sortie.

Côté client, après le renvoi de l'API createSchema, le fournisseur de services local appelle l'API getEPackages pour extraire les derniers schémas. Il enregistre de nouveau les schémas dans la machine virtuelle Java du client. Les applications d'exploitation peuvent appeler l'interface API de création de virtual member manager afin de créer une nouvelle entité de type PersonAccount avec une propriété postOfficeBox. Il n'est pas nécessaire de redémarrer virtual member manager pour valider les modifications effectuées sur les schémas.

Exemple

Pour des exemples de code et de graphe de données, voir la rubrique Création d'un nouveau type de propriété puis ajout de ce nouvel élément à un type d'entité existant.


Conditions d'utilisation | Commentaires