Modelo Dinâmico: Incluindo Novas Propriedades nas Entidades do Gerenciador de Membro Virtual em Tempo de Execução

O gerenciador de membro virtual é configurado para usar o modelo dinâmico. É possível criar novos tipos de propriedade e incluí-los nos tipos de entidade integrados existentes do gerenciador de membro virtual dinamicamente em tempo de execução.

Sobre Esta Tarefa

É necessário chamar a API createSchema do gerenciador de membro virtual para criar novos tipos de propriedade e incluí-los nos tipos de entidade integrados existentes do gerenciador de membro virtual em tempo de execução sem reiniciar o gerenciador de membro virtual. O Adaptador LDAP e o Adaptador de BD prontos para uso suportam esse tipo de procedimento. Neste exemplo, você deseja criar um novo tipo de propriedade denominado postOfficeBox e incluir esse tipo de propriedade no tipo de entidade integrado do gerenciador de membro virtual, PersonAccount. Esse exemplo usa o Adaptador LDAP.

Execute o seguinte:

Procedimento

  1. Se os adaptadores subjacentes incluírem o Adaptador LDAP, assegure-se de que o esquema de atributo LDAP correspondente do novo tipo de propriedade seja definido no servidor LDAP e contido pelas classes de objeto LDAP do tipo de entidade. O gerenciador de membro virtual não fornece função para criar e atualizar o esquema LDAP no servidor LDAP. Nesse exemplo, a classe de objeto inetOrgPerson do tipo de entidade PersonAccount já contém o atributo LDAP postOfficeBox

    Se os adaptadores subjacentes incluírem o Adaptador de BD, nenhuma preparação adicional será necessária.

  2. No lado do cliente, construa um gráfico de dados para criar o novo tipo de propriedade. O objeto de dados PropertySchema é usado para criar um novo tipo de propriedade. Atributos como propertyName, dataType e multiValued são usados para especificar os metadados do novo tipo de propriedade. Os tipos de entidade aplicáveis são definidos no elemento applicableEntityTypeNames. Vários tipos de entidade podem ser especificados. É possível definir o nome do atributo do repositório correspondente dessa propriedade, incluindo uma configuração de atributo LDAP e especificando o nome da propriedade do gerenciador de membro virtual correspondente. Para obter informações sobre essa configuração usando a interface da linha de comandos, leia sobre o comando addIdMgrLDAPAttr em Grupo de comandos IdMgrRepositoryConfig para o objeto AdminTask no centro de informações do WebSphere Application Server.
    Nota: Para obter mais informações sobre o uso dos objetos de dados propertySchema e extensionPropertySchema, consulte a seção Estendendo o Esquema de Propriedade no tópico Pré-requisitos de Programação. Além disso, leia sobre Configurando um repositório de extensão de propriedade em uma configuração de repositório federado no centro de informações doWebSphere Application Server.
    A seguir, o gráfico de dados de amostra. O novo tipo de propriedade a ser criado é chamado postOfficeBox e incluído no tipo de entidade PersonAccount. Como o nome do atributo LDAP correspondente postOfficeBox é o mesmo nome de propriedade, não é necessário incluir uma configuração LDAP para esse nome de propriedade.
    <?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

No lado do cliente, o aplicativo de exploração do gerenciador de membro virtual chama a API createSchema do gerenciador de membro virtual através do Provedor de Serviços Local. O Provedor de Serviços Local detecta que essa chamada altera o esquema e atualiza o esquema local (ECore) após a finalização da chamada da API createSchema.

No lado do servidor, o Schema Manager recebe a chamada da API do cliente. O Schema Manager primeiro verifica se os novos tipos de propriedade já existem e lança uma exceção caso existam. Em seguida, o Schema Manager atualiza o modelo ECore na memória para incluir novos tipos de entidade nos tipos de entidade existentes. Nessa amostra, a EClass de PersonAccount é incluída em um novo EAttribute chamado postOfficeBox.

O Schema Manager inclui o esquema dos novos tipos de propriedade no arquivo wimxmlextension.xml. A seguir, o conteúdo de amostra do arquivo wimxmlextension.xml após essa atualização ser concluída.
<wim:propertySchema nsURI="http://www.yourco.com/wim/yourext"
    dataType="STRING" multiValued="true" propertyName="postOfficeBox">
      <wim:applicableEntityTypeNames>PersonAccount</wim:applicableEntityTypeNames>
    </wim:propertySchema>
O Schema Manager chama o Gerenciador de Repositório que em seguida chama o método SPI createSchema de todos os adaptadores.
Os adaptadores que suportam a criação do esquema executam as operações necessárias para suportar o novo esquema. Como exemplos, o Adaptador LDAP atualiza o cache para refletir as mudanças no esquema e na configuração. O Adaptador de BD cria o esquema da nova entidade e propriedade em seu banco de dados e atualiza seus caches.
Nota: Os adaptadores que não suportam a criação de esquema, por exemplo, o Adaptador de Arquivo que não suporta a criação de novos tipos em tempo de execução, emitem uma OperationNotSupportedException.

Se pelo menos um adaptador de repositório suportar a criação de novas entidades e não emitir a OperationNotSupportedException, o gerenciador de membro virtual retornará os IDs desses repositórios no gráfico de dados de saída.

No lado do cliente, depois que a chamada da API createSchema é retornada, o Provedor de Serviços Local chama a API getEPackages para recuperar os últimos esquemas. O Provedor de Serviços Local registra novamente os esquemas na JVM cliente. Os aplicativos de exploração podem chamar a API create do gerenciador de membro virtual para criar uma nova entidade do tipo PersonAccount com a propriedade postOfficeBox. O gerenciador de membro virtual não precisa ser reiniciado para que a mudança no esquema se torne ativa.

Exemplo

Para obter gráficos de dados e código de amostra, consulte Criando um Novo Tipo de Propriedade e Incluindo-o em um Tipo de Entidade Existente.


Termos de uso | Feedback