2. Conceitos e Modelo

A série de recomendações X.500 define regras para dar nome a objetos, uma base de informações de Diretório lógica para guardar informações sobre esses objetos e as entidades de protocolo que cooperam para prover o serviço de Diretórios. Nessa sessão são discutidos esses conceitos e a maneira como são aplicados no contexto da série X.500.

2.1. Nomes

Qualquer discussão sobre nomeação, é importante distinguir entre três conceitos:

A partir dessas definições informais é fácil ver que um nome pode ser praticamente qualquer coisa. Por exemplo um endereço e um caminho são tipos de nome. Um número serial associado a um computador ou um número de carteira de identidade associado a um cidadão são também nomes. A série X.500 lida com nomes que as pessoas usam para objetos num ambiente de comunicações. Os nomes no contexto X.500 descrevem o que o objeto é com o objetivo de tornar os nomes fáceis para as pessoas lembrarem ou deduzirem.

A X.500 especifica parcialmente regras para a estrutura dos nomes e os valores que estes nomes ou partes deles podem assumir. Os nomes no contexto X.500 têm as seguintes características:

A figura 1 ilustra os principais conceitos de nomeação usados na X.500. Ela mostra como o funcionário trabalha para uma empresa num determinado local tem um pseudônimo ou nome alternativo quando estiver temporariamente alocado para o escritório geral da empresa em outra cidade.

Figura 1: Atribuição de nomes

            O nome distinto que identifica o funcionario e: 
            { Country = Brasil, 
                     Organization = Empresa Geral de Acessorios, 
                     {Division = Auditoria, 
                        Estado = RS}, 
                     NomePessoal = Francisco Guedes}. 
                 O nome distinto que e um pseudonimo para Francisco e: 
            { Country = Brasil, 
                     Estado = SP, 
                     Organization = Empresa Geral de Acessorios 
                     Division = Auditoria, 
                     NomePessoal = Francisco Guedes}. 

2.2. A Base de Informações do Diretório

A Base de Informações do Diretório (BID) é um banco de dados lógico que contém informações que o Diretório necessita para realizar seu trabalho. Cada objeto no Diretório é representado por uma entrada no BID. Toda informação sobre um objeto e armazenada na forma de atributos.

As entradas na BID são organizadas em forma de árvore e esta estrutura é denominada Árvore de Informações do Diretório (AID). Os vértices da árvore representam as entradas. As entradas de mais alta ordem (próximas da raiz) usualmente representam objetos tais como países ou organizações enquanto que entradas de menor ordem representam pessoas ou processos de aplicação.

Uma entrada na BID contém mais do que os atributos que formam um NDR de um objeto. Uma entrada também contém uma indicação da classe de objeto (ou subclasse) a qual o objeto pertence. Todos os objetos na mesma classe tem uma ou mais características similares. Classes e objetos podem ser arbitrariamente subdivididas em subclasses e assim por diante, indefinidamente. Embora seja reconhecido que controle de acessos sobre os atributos individuais é desejável, nenhum mecanismo formal foi estabelecido para isso.

Usar classes e objetos simplifica o processo de dar nome e organizar objetos. Existem regras para formar os nomes dos objetos numa classe ou subclasse. Uma subclasse herda regras da classe superior imediatamente acima, que a contém. As regras especificam que atributos são obrigatórios ou opcionais na entrada de uma classe de objetos. As regras também especificam que classes e objetos podem estar subordinadas a uma dada entrada. Por exemplo, pode-se ter uma classe objeto "país" que seria superior aos objetos da classe "estado" ou da classe "organização" no nível imediatamente inferior da árvore. Este segundo tipo de regra é chamado de regra estrutural. Regras estruturais também especificam que atributos associados com uma dada classe devem aparecer no nome distinto relativo da entrada de nível imediatamente inferior. Regras estruturias são armazenadas em entradas junto com a classe e o nome do objeto.

O conjunto de classes de objetos, regras estruturais, tipos de atributos e sintaxes de atributos formam o esquema do Diretório. As definições no esquema são controladas durante as operações do Diretório.

A Figura 2 resume os elementos do esquema do Diretório e seus relacionamentos:

Figura 2: Visão geral do esquema do Diretório

        

/----------------\ regras para /-----------------\ | Estrutura AID |-------------->| AID | \----------------/ \-----------------/ | ^ usa | |pertence a v | /----------------\ regras para /-----------------\ | Classe de Obj. |-------------->| Entradas | \----------------/ \-----------------/ | ^ usa | |pertence a v | /----------------\ regras para /-----------------\ |Tipo de Atributo|-------------->| Atributos | \----------------/ \-----------------/ | ^ usa | |pertence a v | /----------------\ regras para /-----------------\ |Sintaxe do Atrib|-------------->| Valores | \----------------/ \-----------------/

Em função destas regras, ou esquema do Diretório e possível assegurar que a BID permaneça íntegra quando sofrer modificações que, sem controle, poderiam resultar em entradas inconsistentes, com tipos errados de atributos para a sua classe ou mesmo entradas tendo outras entradas subordinadas a ela mas de classe errada.

O rescimento e a forma da AID, a definição do esquema do diretório e a seleção dos nomes distintos para as entradas, na medida em que elas são adicionadas, e responsabilidade de várias autoridades, cujo relacionamento hierárquico e refletido na forma da árvore. As autoridades devem assegurar, por exemplo, que todas as entradas em sua jurisdição tenham nomes distintos não-ambíguos e isto pode ser conseguido gerenciando cuidadosamente os tipos de atributos e valores que aparecerão em tais nomes. A responsabilidade e passada adiante na árvore, das autoridades superiores para as inferiores e o controle e exercido por meio do esquema.

2.3. Operação Distribuída

O Diretório pode ser implementado de uma forma distribuída. O modelo funcional para o Diretório descreve a distribuição lógica de suas funções, estruturadas como sub-níveis da camada de aplicação, conforme previsto no modelo OSI da ISO, no qual ele se encaixa, tal como especificado mais detalhadamente a seguir.

2.3.1. Modelo Funcional

As funções de Diretório são providas por dois tipos de entidades abstratas [ISOb 88]. Um Agente do Usuário de Diretório (AUD) atua em benefício de um único usuário de Diretório. Quando uma pessoa ou processo quer usar o Diretório interage com seu Agente do Usuário do Diretório. O AUD então desencadeia as ações apropriadas. A interação de um usuário pode ser intermediada por um módulo de interfaceamento que ofereça um interface homem- máquina mais ergonômico. A interação de um processo com um AUD utiliza algum API (Application Program Interface) provido pela particular implementação de AUD, a qual ainda não esta padronizada.

As reais funções de Diretório são efetuadas por um conjunto de Agentes do Serviços de Diretório (ASD) cooperantes. O local lógico que em que essas funções são tornadas acessíveis aos AUD são denominados de pontos de acesso. Um ASD pode prover, zero ou mais pontos de acesso.

A Fig. 3 mostra os relacionamentos entre usuários de Diretório Agentes de Usuários do Diretório e Agentes dos serviços do Diretório.

Figura 3: Modelo Funcional

Figura3: Modelo Funcional

Diferentes porções da BID-Base de Informações do Diretório são distribuídas entre vários ASDs. Não existe mecanismo formal para controlar a replicação das informações, somente está previsto que cópias sejam assinaladas como tal, para indicar que o original está em outro local. Se em alguma implementação de serviço de Diretório for usada a replicação de informações, será problema a resolver naquela implementação a manutenção da consistência das cópias de uma mesma informação.

2.3.2 Modelos e Níveis

Tantos AUDs (Agentes do Usuário de Diretório) quantos os ASDs (Agentes do Sistema de Diretórios) são entidades de protocolo de nível de aplicação. Elas fazem uso dos elementos de serviço da camada de aplicação tais como Elementos de Serviço de Operações Remota (ROSE-Remote Operation Service Elements), para comunicarem-se entre si [CCIc 88].

2.3.3 Procedimentos para Operação

O AUD interage com o Diretório comunicando-se com um ou mais ASDs. Um AUD não precisa estar ligado a nenhum ASD em particular. Ele pode interagir diretamente com vários ASDs para fazer pedidos.

Um ASD pode responder a um pedido de um AUD de diversas maneiras. Se ele pode atender o pedido do AUD por si mesmo, ele toma toda a atitude apropriada fornecendo ao AUD informação de sua BID-Base de Informações de Diretório. Se não tiver a informação solicitada pode ocorrer uma das seguintes situações:

O conhecimento de cada ASD deve ser capaz de permitir que ele descubra qual ASD tem qual parcela da BID (Base de Informações do Diretório). No mínimo, cada ASD deve saber como alcançar certos outros ASDs:

A X.500 assume que nenhum ASD implementará um nodo raiz. Portanto ele requer que todos os ASDs de primeiro nível detenham o conhecimento que o no raiz teria, isto e, como encontrar todos os ASDs de primeiro nível. Logo, cada ASD de primeiro nível deve ter algum meio de encontrar todos os ASDs de primeiro nível pois se assim não fosse, ele não seria capaz de manipular as consultas que lhe aparecem.

Esse conhecimento e inserido e mantido pelos administradores humanos dos ASDs. O conhecimento e armazenado pelos ASDs na forma de referências. Uma referência associa entradas na BID como ASDs que mantem estas entradas. ASD armazenam vários tipos de referências:

Não e esperado que os ASDs compartilhem conhecimentos um com os outros em grande escala. Contudo eles podem solicitar que referências cruzadas sejam retornadas com os resultados de uma operação sobre um dado objeto. ASDs tem uma capacidade limitada de detectar inconsistências nessa informação mas não ha mecanismo padrão para remeter um relato de problema de volta ao ASD que armazena a referência inválida.

A resolução das solicitações feitas pelos Agentes de Usuários de Diretório e executada em três fases. Durante a fase resolução de nomes o pedido e passado de um ASD para outro ate que ele alcance o ASD contendo a entrada apropriada. Durante a fase de avaliação, o pedido e respondido. Finalmente a fase de casamento dos resultados começa quando os resultados da fase de avaliação ficam disponíveis. Os resultados são retornados ao AUD nesta última fase.

A operação de um ASD pode ser muito complexa. Além dos mecanismos de processamento de pedidos, ASDs podem fornecer serviços de assinatura digital para verificar a identidade de uma AUD ou para certificar os resultados retornados a um AUD. O Diretório usa um esquema de criptografia de chave pública para apoiar a autenticação. Os ASDs suportam um sistema de prioridade simples para governar a ordem em que os pedidos são processados. ASDs podem encerrar o processamento de um pedido se o tempo ou o tamanho da solicitação e excedido.

2.4 Administração Distribuída

Muitas diferentes organizações podem cooperar para prover um serviço de Diretório comum. Por exemplo diferentes administrações de telecomunicações (PTT) e concessionárias de serviços poderiam implementar porções do Diretório que guardassem seus próprios assinantes. A porção do Diretório pela qual uma organização e responsável é denominada um Domínio de Gerenciamento de Diretório (DGD). A série de recomendações X.500 distingue entre Domínios de de Gerenciamento de Diretório das Administrações (ADDMD - Administration Directory Management Domains) que são controladas pelas concecionárias de serviços de telecomunicações e PRDMD (Private Directory Management Domains) que são controladas por outras organizações.

A série X.500 faz uma distinção entre Autoridades de nomeação e autoridades administrativas. Autoridades de nomeação determinam a estrutura e a locação dos nomes. Autoridades administrativas operam ASD e mantem a informação nos ASD de acordo com o esquema do Diretório e as decisões das autoridades de nomeação.

Serviços de Diretório