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
- 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.
- 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.
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.