Modelo dinámico: adición de nuevas propiedades a entidades de virtual member manager durante la ejecución

Virtual member manager se ha configurado para utilizar el modelo dinámico. Puede crear nuevos tipos de propiedad y añadirlos dinámicamente a los tipos de entidad incorporados existentes de virtual member manager durante la ejecución.

Acerca de esta tarea

Necesita invocar la API createSchema de virtual member manager para crear nuevos tipos de propiedad y añadirlos a tipos de entidad incorporados existentes de virtual member manager durante la ejecución sin reiniciar virtual member manager. De forma predeterminada, tanto el adaptador LDAP como el adaptador de BD soportan este tipo de procedimiento. En este ejemplo desea crear un nuevo tipo de propiedad llamado postOfficeBox y añadirlo al tipo de entidad incorporado de virtual member manager, PersonAccount. En este ejemplo se utiliza el adaptador LDAP.

Realice lo siguiente:

Procedimiento

  1. Si los adaptadores subyacentes incluyen el adaptador LDAP, asegúrese de que el esquema de atributo LDAP correspondiente del nuevo tipo de propiedad esté definido en el servidor LDAP e incluido en las clases de objetos LDAP del tipo de entidad. Virtual member manager no proporciona funciones para crear y actualizar el esquema LDAP en el servidor LDAP. En este ejemplo, la clase de objeto inetOrgPerson del tipo de entidad PersonAccount ya contiene el atributo LDAP postOfficeBox

    Si los adaptadores subyacentes incluyen el adaptador de BD, no es necesaria ninguna preparación adicional.

  2. En el lado del cliente, construya un gráfico de datos para crear el nuevo tipo de propiedad. El objeto de datos PropertySchema se utiliza para crear un nuevo tipo de propiedad. Se utilizan atributos como propertyName, dataType y multiValued para especificar los metadatos del nuevo tipo de propiedad. Los tipos de entidad aplicables se definen en el elemento applicableEntityTypeNames. Se pueden especificar varios tipos de entidad. Puede definir el nombre de atributo de depósito correspondiente añadiendo una configuración de atributo LDAP y especificando el nombre del nombre de propiedad correspondiente de virtual member manager. Para obtener información sobre cómo configurarlo utilizando la interfaz de línea de mandatos, lea sobre el mandato addIdMgrLDAPAttr en Grupo de mandatos IdMgrRepositoryConfig para el objeto AdminTask, en el Information Center de WebSphere Application Server.
    Nota: Para obtener más información sobre el uso de los objetos de datos propertySchema y extensionPropertySchema, consulte el apartado Ampliación del esquema de propiedad en el tema Requisitos previos de programación. Consulte además Configuración de repositorios de extensiones de propiedades en configuraciones de repositorios de federados en el Information Center de WebSphere Application Server.
    A continuación se muestra el gráfico de datos de ejemplo. El nuevo tipo de propiedad que se creará se llama postOfficeBox y se añadirá al tipo de entidad PersonAccount. Debido a que el nombre de atributo LDAP correspondiente postOfficeBox es igual que el nombre de propiedad, no es necesario añadir una configuración LDAP para este nombre de propiedad.
    <?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>

Resultados

En el lado del cliente, la aplicación de virtual member manager en uso invoca la API createSchema de virtual member manager a través del Proveedor local de servicios. El Proveedor local de servicios detecta que esta llamada cambia el esquema y actualiza el esquema local (ECore) después de que finalice la llamada de la API createSchema.

En el lado del servidor, el Gestor de esquemas recibe la llamada de la API del cliente. El Gestor de esquemas primero comprueba si los nuevos tipos de propiedad ya existen y emite una excepción en caso de que así sea. A continuación, el Gestor de esquemas actualiza el modelo ECore en la memoria para añadir nuevos tipos de entidad a los tipos de entidad existentes. En este ejemplo, a la EClass de PersonAccount se le añade un nuevo EAttribute llamado postOfficeBox.

El Gestor de esquemas añade el esquema de los nuevos tipos de propiedad al archivo wimxmlextension.xml. A continuación se proporciona el contenido de ejemplo del archivo wimxmlextension.xml después de finalizar esta actualización.
<wim:propertySchema nsURI="http://www.yourco.com/wim/yourext"
    dataType="STRING" multiValued="true" propertyName="postOfficeBox">
      <wim:applicableEntityTypeNames>PersonAccount</wim:applicableEntityTypeNames>
    </wim:propertySchema>
El Gestor de esquemas llama al Gestor de depósitos que a su vez llama al método de SPI createSchema de todos los adaptadores.
Los adaptadores que dan soporte a la creación del esquema, a continuación realizan las operaciones necesarias para dar soporte al nuevo esquema. A modo de ejemplo, el Adaptador LDAP renueva la memoria caché para reflejar los cambios en el esquema y en la configuración. El Adaptador de BD crea el esquema de la nueva entidad y la propiedad en la base de datos y renueva las memorias caché.
Nota: Los adaptadores que no dan soporte a la creación del esquema, por ejemplo, el Adaptador de archivos que no da soporte a la creación de nuevos tipos en la ejecución, emiten una excepción OperationNotSupportedException.

Si al menos un adaptador de depósito da soporte a la creación de nuevas entidades y no emite la excepción OperationNotSupportedException, virtual member manager devuelve los ID de depósito de estos depósitos en el gráfico de datos de salida.

En el lado del cliente, después del retorno de la llamada de la API createSchema API, el Proveedor local de servicios invoca la API getEPackages para recuperar los últimos esquemas. El Proveedor local de servicios vuelve a registrar los esquemas en la JVM del cliente. Las aplicaciones en uso pueden invocar la API de creación de virtual member manager para crear una nueva entidad de tipo PersonAccount con la propiedad postOfficeBox. No es necesario reiniciar virtual member manager para que se active el cambio en el esquema.

Ejemplo

Para gráficos de datos y código de ejemplo, consulte Creación de un nuevo tipo de propiedad y adición a un tipo de entidad existente.


Condiciones de uso | Comentarios