A hierarquia do gerenciador de membro virtual foi projetada para facilitar a
integração com diretórios LDAP, particularmente diretórios com dados existentes.
Cada diretório LDAP tem uma Directory Information Tree (DIT), que é uma estrutura
hierárquica de entradas no servidor LDAP. Cada entrada em um servidor LDAP ocupa um local
na DIT e o nome distinto (DN) de uma entrada LDAP identifica o local da entrada na DIT.
Como o gerenciador de membro virtual precisa usar diretórios LDAP existentes (ler e
gravar neles), a hierarquia do gerenciador de membro virtual é uma estrutura hierárquica
de entidades. Essa estrutura hierárquica, tanto quanto possível, reflete a estrutura da
DIT do LDAP. Isso permite que o gerenciador de membro virtual use várias operações, como
criar, para colocar uma entrada em um diretório LDAP e respeitar a estrutura DIT
existente que já está no lugar.
A estrutura hierárquica do gerenciador de membro virtual também fornece ao
gerenciador de membro virtual um namespace hierárquico. Adotando ideias dos diretórios
LDAP, cada nome no namespace hierárquico do gerenciador de membro virtual segue o mesmo
formato de um DN LDAP. No gerenciador de membro virtual, os DNs são referidos como uniqueNames. Cada
uniqueName identifica exclusivamente uma entidade no gerenciador de membro virtual,
mas um uniqueName não é estático (pode ser alterado) e pode ser reutilizado. Como
resultado, um uniqueName só identifica exclusivamente uma entrada em um ponto no tempo,
não ao longo do tempo.
Quando o gerenciador de membro virtual é usado com diversos repositórios
simultaneamente, a hierarquia do gerenciador de membro virtual é dividida entre os
diversos repositórios para que os uniqueNames dos diferentes repositórios não colidam.
Como exemplo, o gerenciador de membro virtual é configurado com três repositórios,
dois dos quais são LDAP e um é um banco de dados. Os diretórios LDAP têm as estruturas DIT
mostradas no diagrama. A hierarquia correspondente do gerenciador de membro virtual
também é exibida no diagrama:
Figura 1. Hierarquia do Gerenciador de Membro Virtual
O topo da hierarquia do gerenciador de membro virtual é uma raiz imaginária, que não é
ilustrada. As entradas sob a raiz são mapeadas para um ou mais repositórios principais.
Nota: Um
repositório de extensão de propriedade não é considerado um repositório principal.
As
entradas de um repositório principal residem sob as correspondentes entradas
designadas ao repositório.
Se um repositório não tiver uma estrutura explícita (como a
DIT do LDAP), será responsabilidade do adaptador de repositório fazer qualquer transformação
necessária. Por exemplo, o repositório de banco de dados no diagrama pode ter um
namespace simples (por exemplo, suas entradas têm chaves primárias de 1 a 100). O
adaptador de repositório de banco de dados é responsável por converter um uniqueName do
gerenciador de membro virtual em uma chave primária que o banco de dados possa entender.
O gerenciador de membro virtual fornece uma construção chamada região que consiste em
todas ou um subconjunto das entradas de um repositório principal em uma partição da
hierarquia do gerenciador de membro virtual. Usando o exemplo anterior, dc=comA,dc=com é considerado um domínio.
Quando uma entrada será criada pelo gerenciador de membro virtual, o responsável
pela chamada pode opcionamente especificar uma entrada pai na hierarquia do
gerenciador de membro virtual sob a qual a nova entrada é criada. Se uma entrada pai não
for especificada, um pai padrão (configurável para cada região) será usado. No
gerenciador de membro virtual, uma entrada pai padrão pode ser configurada para cada tipo
de entidade em cada região.
As entradas na hierarquia do gerenciador de membro virtual sob a raiz imaginária
podem ser definidas durante o tempo de configuração e também podem ser criadas
programaticamente em tempo de execução.
Nota: As entradas podem não corresponder às
entradas reais nos repositórios de perfis. Por exemplo, a entrada o=comC na hierarquia
pode não corresponder a uma entrada real no repositório de perfil para company C.
O esquema ilustrado significa que se diversos repositórios tiverem entradas com o
mesmo nome (por exemplo, dois diretórios LDAP diferentes, cada um com uma entrada
denominada o=USdiv) e o cliente quiser configurar essas entradas diretamente sob a raiz
na hierarquia do gerenciador de membro virtual, essas entradas deverão ser alteradas
para terem nomes exclusivos. Por exemplo, um dos diretórios LDAP com a entrada o=USdiv
pode mapear essa entrada para a entrada o=USdiv na hierarquia do gerenciador de membro
virtual.
Mas o outro diretório com a entrada o=USdiv deve ser mapeado para uma entrada
com um nome como o=USdivision na hierarquia do gerenciador de membro virtual.
Nota: o=USdivision
é um uniqueName configurado no gerenciador de membro virtual, não armazenado no
diretório LDAP como uma entrada real.
Se o gerenciador de membro virtual estiver configurado com apenas um repositório, esse
repositório ocupará a hierarquia inteira do gerenciador de membro virtual.
Para aproveitar a vantagem da natureza globalmente exclusiva em potencial dos DNs LDAP
(para aqueles que seguem o RFC 2247, fazendo uso de Nomes de Domínio da Internet), o
gerenciador de membro virtual suporta dc=com como parte de um uniqueName do gerenciador
de membro virtual (mesmo que dc=com não identifique uma entrada no gerenciador de membro
virtual).
A hierarquia do gerenciador de membro virtual é para o gerenciador de membro virtual o
que a DIT é para o LDAP. Entretanto, alguns pontos importantes a serem lembrados são:
- A hierarquia do gerenciador de membro virtual pode parecer exatamente igual a uma
DIT do LDAP, mas não é a DIT do LDAP. Ela é mapeada para a DIT do LDAP e, como o uniqueName
no gerenciador de membro virtual, embora pareça muito semelhante a um DN LDAP, não é um DN
LDAP. O uniqueName do gerenciador de membro virtual não é garantido que seja igual ao DN
LDAP, mesmo que aconteça de os dois terem o mesmo valor em algumas implementações do
gerenciador de membro virtual.
- A hierarquia do gerenciador de membro virtual afeta o local de uma entrada quando é
armazenada, ou seja, que repositório é usado, se diversos repositórios principais
estiverem configurados no gerenciador de membro virtual. Afeta também o local real da
entrada no repositório (como determinado pelo adaptador de repositório).
- A hierarquia do gerenciador de membro virtual não pretende refletir uma estrutura
organizacional significativa, mesmo que assim o pareça em algumas implementações. Pode
haver realmente várias estruturas organizacionais diferentes em uma implementação do
gerenciador de membro virtual. Por exemplo, uma empresa pode organizar suas entidades de
acordo com uma estrutura de relatório funcional, e pode também organizá-las de acordo com
uma estrutura de relatório regional. Outra pode organizar as entidades com o
propósito de executar administração delegada. Por causa da necessidade de diferentes
estruturas organizacionais, a hierarquia do gerenciador de membro virtual só pode
ser uma estrutura organizacional significativa para uma única estrutura
organizacional. Com diversos repositórios e estruturas, o gerenciador de membro virtual
não pode representar uma estrutura organizacional significa.
- A hierarquia do gerenciador de membro virtual pode não ser uniforme. As entradas
colocadas na hierarquia do gerenciador de membro virtual podem não seguir uma
abordagem uniforme em termos de seu posicionamento. A hierarquia do gerenciador de
membro virtual pode colocar entradas de acordo com seus tipos em uma parte da hierarquia,
e colocar entradas de acordo com a organização à qual elas pertencem em outra parte da
hierarquia.
- As entradas na hierarquia do gerenciador de membro virtual e na DIT do LDAP
não precisam ser mapeadas uma para a outra. É possível a um adaptador de repositório
fazer a transformação de modo que diversas entradas em um repositório subjacente sejam
combinadas para se tornarem uma única entrada exibida pelo gerenciador de membro
virtual, ou uma entrada em um repositório subjacente separada em diversas entradas
exibidas pelo gerenciador de membro virtual.
- As referências de pai e filho na Entidade se referem à entrada pai e às entradas
filhas na hierarquia do gerenciador de membro virtual, não na hierarquia do repositório
subjacente. O gerenciador de membro virtual delega a maior parte do trabalho da resolução
das entradas parent e children ao adaptador de repositório apropriado.
- O LDAP suporta muitas estruturas DIT diferentes, enquanto o gerenciador de membro
virtual suporta apenas estruturas DIT representativas.