A comunicao entre processos o corao de um Sistema Distribudo. Isto definir como se realizaro os processos de troca de informaes em as diferentes mquinas. Na comunicao entre processos desejvel obter modelos onde a complexidade da comunicao seja transparente para o desenvolvedor, ou seja, o desenvolvedor no deve se preocupar em como a comunicao se d e sim no seu resultado. Outro aspecto importante da comunicao a nomeao, utilizado para que um processo possa identificar outro na rede.
2. COMUNICAO
2.1. Modelo Cliente-Servidor
Neste modelo os servidores implementam um servio especfico, os clientes solicitam ao servidor um determinado servio e espera pela resposta.
Figura 1 - Comportamento requisio-resposta
SISTEMAS DISTRIBUDOS Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com.br
2
2.2. Protocolos em Camadas
Figura 2 - Camada, interface e protocolos do RM OSI - Camada Fsica: Camada responsvel pelo envio de bits. Trata da padronizao das interfaces eltrica, mecnica e de sinalizao. Seus protocolos so dependentes do meio de transmisso do link. - Camada de Enlace: Camada responsvel pelo envio de frames entre os links. Nela um datagrama pode ser manipulado por diferentes tipos de protocolos da camada de enlace: Ethernet (CSMA/CD), PPP. Cada protocolo diferente pode ou no implementar um conjunto de servios. Ex.: Entrega confivel da informao. - Camada de Rede: Redes de longa distncia so constitudas de muitos ns com diferentes caminhos entre eles. Para definir como definir um caminho entre um par origem-destino utilizado o roteamento, que a principal tarefa da camada de rede. Nesta camada tambm est o Internet Protocol, protocolo sem conexo, onde pacotes so roteados de forma independente - best-effort service. - Camada de Transporte: Camada responsvel pela comunicao lgica entre diferentes processos sendo executados em diferentes hosts (fim-a-fim). Os protocolos da camada de transporte no esto implementados nos roteadores. Esta camada pode fornecer os seguintes servios: multiplexing/demultiplexing, transmisso confivel, garantias de banda, retardo, etc. Esta camada apresenta dois protocolo de transporte na Internet: TCP e UDP. O primeiro orientado a Conexo, confivel, porm lento. O segundo sem conexo, rpido, porm no confivel. - Camada de Aplicao: Esta camada define os protocolos que do suporte a uma aplicao para redes. Ex.: Aplicao WEB (HTTP), Aplicao e-mail (SMTP). Os protocolos definem os tipos de mensagens trocadas e sua sintaxe. - Camada de Middleware: Camada de software que situada logicamente entre uma camada de nvel mais alto, composta de usurios e aplicaes e uma camada subjacente, que consiste de facilidades bsicas de comunicao. O funcionamento do middleware depende de autenticao, comprometimento e comunicao de alto nvel.
SISTEMAS DISTRIBUDOS Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com.br
3
Figura 3 - Modelo de referencia adaptado para comunicao em rede
2.3. Sockets
Os sockets so responsveis por possibilitar a troca de informaes entre processos operando em hosts diferentes. o ponto final de uma comunicao full-duplex entre dois processos. O socket a porta entre o processo da aplicao e o protocolo de transporte. Na pilha de protocolos TCP/IP as mensagens so enviadas atravs da utilizao de sockets.
Figura 4 - Sockets
2.3.1. SOCKETS JAVA
Para comunicao distribuda linguagem Java fornece trs tipos diferentes de Sockets:
SISTEMAS DISTRIBUDOS Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com.br
4
- Sockets orientados a conexo (TCP): Implementados com a Classe Socket - Sockets sem Conexo (UDP): Implementados com a classe DatagramSocket - Sockets sem Conexo Multicast: Implementado com a classe MulticastSocket
Neste processo de comunicao as informaes so strings de bytes, sem significado aparente. (Vide implementao de um socket em Java no endereo http://www.javaworld.com/javaworld/jw-12-1996/jw-12-sockets.html).
Na comunicao no existe a transparncia de distribuio. Toda comunicao est explcita, atravs de procedimentos send e receive. As funes mais sofisticadas devem ser feitas na camada de aplicao. Diante deste contexto necessrio oferecer uma comunicao de mais alto nvel denominado Middlware de comunicao, que independe da aplicao.
2.4. Middleware de Comunicao
Middlewares so softwares que em sistemas distribudos ajudam a prover: - Portabilidade - Habilitam a mudana de um sistema ou componente de um ambiente (incluindo hardware e software) para outro sem alterar o sistema ou componente que est sendo transferido -Transparncia - Interoperabilidade
Eles fornecem interfaces de programao padronizadas para habilitar comunicao interprocessos entre computadores remotos. Estas interfaces proporcionam portabilidade e transparncia. Os middleware de comunicao podem ser de trs tipos: - Chamadas de Procedimento Remoto - Comunicao orientada a Mensagens - Comunicao orientada a fluxo
2.4.1. TIPOS DE COMUNICAO (MIDDLEWARE)
2.4.1.1. Quanto a Persistncia
- Persistente: Mensagem armazenada pelo middleware de comunicao durante o tempo que for necessrio para entreg-la ao receptor. - Transiente: Mensagem armazenada somente durante o tempo em que a aplicao remetente e a aplicao receptora estiverem executando.
2.4.1.2. Quanto a Sincronizao
- Assncrona: O remetente continua sua execuo imediatamente aps ter apresentado sua mensagem para transmisso SISTEMAS DISTRIBUDOS Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com.br
5
- Sncrona: O remetente bloqueado at saber que sua requisio foi aceita. Durante a comunicao o middleware avisa que se encarregar da transmisso. O bloqueio permanece at que a requisio seja entregue ao receptor e o receptor retorne uma resposta.
2.4.1.3. Quanto a Granularidade
- Discreta: Partes se comunicam por mensagens e cada mensagem forma uma unidade de informao completa. - Fluxo: Vrias mensagens, sendo que as mensagens esto relacionadas uma com as outras pela ordem ou pela relao temporal.
2.5. Chamada de Procedimento Remoto (RPC)
A comunicao usando sockets considerada uma forma de comunicao de baixo nvel entre processos ou threads distribudos. Um dos motivos que os sockets s permitem a troca de um fluxo no estruturado de bytes entre os threads. de responsabilidade da aplicao cliente ou servidor impor uma estrutura aos dados. Um mtodo alternativo aos sockets a chamada de procedimento remota, RPC. O RPC permite a processos chamar procedimentos localizados em outros hosts. O desenvolvedor no precisa se preocupar mais com detalhes de implementao de rede, ou seja, no mais necessria a utilizao de sockets. A vantagem de RPC ao Sockets que RPC gerencia o canal de comunicao, por isso os programas podem ser escritos de modo que a localizao de um procedimento seja transparente; Em tese tudo muito simples, contudo este modelo implementa algumas complicaes, tais como: - Arquiteturas de duas mquinas podem ser diferentes - Espaos de endereamentos diversos - Passagem de parmetros
A idia bsica por trs do RPC fazer com que uma chamada de procedimento remoto parea com uma chamada local. Isto representa o princpio da transparncia. Esta transparncia alcanada por meio do uso de stubs. O stub do cliente responsvel por empacotar os parmetros em uma mensagem e enviar a mensagem para a mquina do servidor. Quando a resposta chega, o resultado copiado para o cliente, e controle volta para o servidor. - O stub do servidor responsvel por desempacotar parmetros, chamar o procedimento do servidor e retornar resposta para mquina do cliente.
SISTEMAS DISTRIBUDOS Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com.br
6
Figura 5 - Funcionamento do Stub 2.5.1. ETAPAS DO FUNCIONAMENTO DO RPC
- Um processo do cliente chama um procedimento local conhecido como stub cliente; - O stub do cliente empacota as informaes, constri uma mensagem (marshaling) e chama o Sistema Operacional; - O Sistema Operacional envia a mensagem para Sistema Operacional remoto; - O Sistema Operacional remoto repassa a mensagem para o stub do servidor; - O stub do servidor desempacota parmetros e chama procedimento servidor; - O procedimento do servidor executa e retorna o resultado desejado; - O stub do servidor empacota resultado em uma mensagem e chama o Sistema Operacional; - O Sistema Operacional remoto envia mensagem para Sistema Operacional da mquina cliente; - O Sistema Operacional do cliente passa a mensagem para stub cliente; - O stub cliente desempacota resultado, repassando-o para o cliente.
A funo do stub do cliente pegar seus parmetros, empacot-los em uma mensagem e envi-los ao stub do servidor (montagem de parmetros - parameter marshaling). Em todo este processo os stubs interagem com o kernel dos sistemas operacionais na qual esto hospedados os processos clientes.
Transporte de mensagens na rede SISTEMAS DISTRIBUDOS Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com.br
7
Figura 6 - RPC entre um cliente e servidor
O conceito de chamada de Procedimento Remoto esconde todos os detalhes do cdigo de rede dentro dos procedimentos STUB. Isso facilita aos programas de aplicaes, cliente e servidor, e principalmente ao programador, no precisar conhecer os detalhes de rede como: sockets, ordem de byte na rede, dentre outros. Facilmente permite a construo de aplicaes distribudas. RPC encontra-se entre a camada de aplicao e apresentao do modelo OSI.
2.5.2. PROBLEMAS
- O RPC trabalha com TCP ou UDP, logo diferentes nveis de confiabilidade. - Como o processo de emisso da RPC e de seu correspondente Stub cliente reside em diferentes espaos de endereamento de memria a passagem de ponteiros como parmetros dificultada, logo limitando a transparncia e a capacidade da RPC. - O desempenho e segurana levam ao desenvolvimento de protocolos adicionais, logo no uma boa soluo para comunicao distribuda.
Em suma o RPC permite a um cliente o acesso a um servio remoto por meio de uma simples chamada a um procedimento local, possibilitando que programas clientes sejam escritos de modo simples. Estes podem localizar automaticamente o servidor e estabelece a comunicao entre software cliente e software servidor.
SISTEMAS DISTRIBUDOS Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com.br
8
3. NOMEAO
O processo de nomeao o principal responsvel pela transparncia nas comunicaes entre os ns de um sistema distribudo, uma vez que cada n constitui uma entidade.
3.1. Nomes, Identificadores e Endereos
Em sistemas distribudos entidades pode ser qualquer coisa, sejam elas mquinas, impressoras, processos, usurios, pginas web, mensagens, etc.
3.1.1. ENDEREO
O acesso a uma entidade se d atravs de um ponto de acesso, ou simplesmente, endereo. Exemplo: Servidor e seu nmero IP
Um endereo pode ser utilizado como uma maneira de nomear, identificar uma entidade. O problema que uma entidade pode facilmente mudar seu ponto de acesso. Dessa forma, para nomear entidades, sem utilizar especificamente seu endereo, ou seja, nome-las independentemente da sua posio fsica (localizao) deve usar identificadores ou nomes amigveis a seres humanos. comum estabelecer nomes de pases, de jogadores de futebol do passado ou de deuses mitolgicos. mais fcil ao usurio entender que Afrodite no est disponvel do que XPTO001X est indisponvel.
3.1.2. IDENTIFICADORES
Os identificadores so cadeias aleatrias de bits, com algumas propriedades: - Um identificador referencia, no mximo, 01(uma) entidade; - Cada entidade referenciada por, no mximo, um identificador; - Um identificador sempre referencia a mesma entidade, isto , nunca reutilizado. Exemplo: Identificadores de entidades em sistemas P2P baseados no sistema Chord.
3.1.3. NOMES AMIGVEIS
So nomes representados por uma cadeia de caracteres, como pathnames, domnios de Internet, nmeros de processos, etc.
SISTEMAS DISTRIBUDOS Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com.br
9
Exemplo: http://www.ricardobarcelar.com.br
Diante desses conceitos necessrio resolver a questo dos nomes e identificadores para endereos. Soluo para isto a utilizao de um Sistema de Nomeao.
3.2. Sistema de Nomeao
Um sistema de nomeao, em princpio mantm uma vinculao nome-endereo que na forma mais simples uma tabela de pares (nome, endereo). Contudo, em sistemas que abrangem redes de grande porte, uma tabela centralizada no vai funcionar devido aos muitos recursos a nomear. Existem trs classes diferentes de nomeao: - Nomeao Simples - Nomeao Estruturada - Nomeao Baseada em Atributo
3.2.1. NOMEAO SIMPLES
A nomeao simples aplicada a identificadores. So representados por cadeias aleatrias de bits, conhecidos como nomes simples. Estes nomes no contm sequer uma informao sobre como localizar o ponto de acesso de uma entidade associada, tornando-se um problema na localizao do ponto de acesso (endereo). Para localizar uma entidade quando se tem somente o nomes simples em redes locais possvel utilizar solues como: - Broadcasting e multicasting - Localizao Nativa - Tabelas de Hash Distribudas (DHT)
3.2.1.1. Broacasting e multicasting
So aplicveis somente a redes locais. Seu funcionamento consiste em enviar uma mensagem broadcast que contm o identificador da entidade. Mquinas com ponto de acesso para a entidade enviam uma mensagem que contm o endereo procurado. Essa estratgia ineficiente quando a rede cresce, visto que largura de banda da rede desperdiada, e com grande nmero de mensagens de requisio aumenta a probabilidade de colises de mensagens, diminuindo o throughput do sistema. O multicast tambm pode ser utilizado para localizar entidades em uma rede ponto-a- ponto, na qual somente um grupo restrito de mquinas recebe a requisio como, por exemplo, em um banco de dados replicado. Um endereo multicast pode tambm estar associado a uma entidade replicada, na qual para cada requisio para o endereo multicast, a rplica responde com seu endereo IP. SISTEMAS DISTRIBUDOS Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com.br
10
Figura 7 - Multicast
3.2.1.2. Localizao Nativa
Outra soluo a localizao nativa, que consiste em uma abordagem para suportar entidades mveis em redes de grande escala. Nesta soluo monitorada a localizao corrente de uma entidade. Um exemplo em que a abordagem da localizao nativa usada em Mobile IP. Nesta abordagem cada host mvel usa um endereo fixo e toda a comunicao dirigida inicialmente ao agente nativo do host mvel (situado na rede local do endereo do host). Ao mudar de rede, o host recebe um endereo externo (care-of-adress) e registra no agente nativo. Quando o agente nativo recebe um pacote para o host mvel ele consulta a localizao corrente do hospedeiro. Se estiver na rede local o pacote repassado, seno o pacote envida por um tnel at a localizao corrente do hospedeiro. SISTEMAS DISTRIBUDOS Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com.br
11
Figura 8 Princpio do Mobile IP As desvantagens dessa estratgia que para se comunicar com uma entidade mvel, em primeiro lugar um cliente tem que contatar a localizao nativa, que pode estar em um lugar completamente diferente gerando grande latncia de comunicao.
3.2.1.3. Tabelas de hash distribudas (DHT)
Esta outra forma de resolver um identificador para o endereo da entidade associada. Este modelo bem representado pelo sistema Chord, na qual existem ns organizados logicamente em um anel. O sistema Chord extremamente simples no que se refere funcionalidade que prov. A nica funo que oferece mapear chaves e seus respectivos objetos em ns do sistema. O sistema Chord usa um espao de identificadores de m 1 bits para designar ns e entidades especficas (arquivos, processos). Assim, uma entidade com chave k cai sob a jurisdio do n que tenha o menor identificador id >= k. Esse n denominado sucessor de k e denotado por succ(k). Para resolver com eficincia uma chave k para o endereo de succ(k) utiliza-se uma das abordagens abaixo: - Abordagem linear: Cada n p monitora o sucessor succ(p+1) e o predecessor pred(p). Ao receber uma requisio para a chave k, p repassa a requisio para os seus vizinhos, a menos que pred(p) < k <= p, caso em que o n p retorna o prprio endereo. Esta uma estratgia no escalvel.
1 Nmero m bits usualmente 128 ou 160 SISTEMAS DISTRIBUDOS Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com.br
12
Caso 1) Suponhamos que p = 4 receba uma requisio para k = 7 succ(p+1) repassa a requisio ao n = 9. Caso 2) Suponhamos que p = 4 receba uma requisio para k = 3 como pred(4) = 1< 3<=4 retorna o prprio endereo.
Figura 9 Sistema Chord
- Tabela de Derivao (Finger Table): Diferente da abordagem linear para a consulta de chaves, cada n Chord mantm uma tabela de derivao de no mximo, m entradas. Denotando a tabela de derivao de p por Ft p, temos: Ft p [i]=succ(p+2 i -1 ), ou seja, a i- sima entrada aponta para o primeiro n que sucede p por no mnimo 2 i -1 . Para encontrar uma entidade k, as referncias na tabela de derivao so usadas como atalhos para ns existentes no espao de identificadores. A distncia do atalho em relao ao n p aumenta exponencialmente medida que o ndice na tabela de derivao cresce. Para consultar uma chave k, o n p repassar a requisio ao n q com ndice j na tabela de derivao de p, ou seja, q = Ft p [ j ] <= k <= Ft p [j+1] Exemplo:
Considere a resoluo de k=26, a partir do n 1.
1) N 1 consultar k=26 verifica que o valor maior do que FT1[5]. 2) Requisio ser repassada para o n 18. SISTEMAS DISTRIBUDOS Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com.br
13
3) O n 18 selecionar o n 20, porque FT18[2] < k<= FT18[3]. 4) Por fim, requisio repassada do n 20 para o n 21 e deste para 28
O problema dessa soluo que a organizao lgica dos ns em uma rede de sobreposio (orvelay) pode levar a uma escolha errada no roteamento de mensagens, portanto k e succ(k+1) podem estar muito longe fisicamente. Existem trs soluo para este problema, a saber: - Identificar ns com base na topologia, de modo que dois ns prximos tenham identificadores que tambm estejam prximos um do outro. - Roteamento por proximidade que consiste em manter mais de um sucessor e repassar a requisio para o mais prximo. - Seleo de vizinho por proximidade. Ao escolher um vizinho (no em Chord), pegue o mais prximo.
3.2.2. NOMEAO ESTRUTURADA
Nomes simples so bons para mquinas, mas no so convenientes para a utilizao de seres humanos. Como alternativa os sistemas de nomeao comumente suportam nomes estruturados. Exemplo: Nomeao de arquivos, hosts na Internet
Nomes so organizados em um espao de nomes que podem ser representados como um grafo dirigido, com dois tipos de ns: - N-folha: contm informaes da entidade - N de diretrio: entidade que se refere a outros ns
Cada n de diretrio possui uma tabela de diretrio<nome aresta, nome n>.
Figura 10 Grfico de nomeao geral com um nico n-raiz Sistemas de nomeao possuem, na maioria, um n raiz, onde cada caminho no grafo de nomeao pode ser referenciado pela sequncia dos labels nas arestas.
N:<label1, label2, ..., labeln>
SISTEMAS DISTRIBUDOS Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com.br
14
Onde N se refere ao primeiro n do caminho. Tal sequncia denominado nome de caminho, que pode ser: - Nome de caminho absoluto: primeiro n no caminho a raiz - Nome de caminho relativo: primeiro n pode ser qualquer n.
3.2.2.1. Resoluo de nomes
Os espaos de nomes oferecem um mecanismo para armazenar e recuperar informaes sobre entidades por meio de nomes. Dado um nome de caminho, deve ser possvel consultar qualquer informao armazenada no n referenciado por aquele nome. O problema que para resolver um nome, precisa-se de um n de diretrio inicial. Para isso existem algumas solues: - Mecanismo de fechamento: Trata da seleo do n inicial em um espao de nomes a partir do qual a resoluo de nomes deve comear. Exemplo: - www.ricardobarcelar.com.br: incio da resoluo feito atravs do servidor de nome DNS - /home/publico/arquivos: incio da resoluo ocorre no servidor local NFS
Vide Figura 10 Grfico de nomeao geral com um nico n-raiz
3.2.2.2. Alias (Apelidos)
Define outro nome para a mesma entidade, ou seja, vrios nomes absolutos para o mesmo n (hard link). Exemplo: O nome de caminho /home/steen/Keys, que referencia um n que contm o nome de caminho absoluto /Keys. Vide Figura 10 Grfico de nomeao geral com um nico n-raiz
3.2.2.3. Implementao de um Espao de Nomes
Este um servio que permite que usurios e processo adicionem, removam e consultem nomes. Um servio de nomeao implementado por servidores de nomes e devem prover: - Escalabilidade - Manuteno descentralizada - Tolerncia a falhas, robustez - Escopo global: Nomes possuem o mesmo significado em todos os lugares
Um espao de nomes, em geral, organizado em hierarquia de trs camadas: - Camada global (Raiz e seus filhos) - Camada administrativa (Ns de diretrios) - Camada gerencial (Mantido por administradores e usurios finais)
SISTEMAS DISTRIBUDOS Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com.br
15
Figura 11 - Repartio do espao de nomes DNS A resoluo de nomes pode ser: - Resoluo Iterativa: servidor responde somente o que sabe: o nome do prximo servidor que deve ser buscado. O cliente procura iterativamente os outros servidores.
- Resoluo Recursiva: servidor passa o resultado para o prximo servidor que encontrar. Para o cliente, existe somente uma mensagem de retorno: o endereo do nome ou 'no encontrado'.
Figura 12 Comparao entre resoluo recursiva e iterativa de nomes 3.2.2.3. Domain Name System (DNS)
O DNS usado para realizar o mapeamento entre nome e endereo IP. Para isso ele utiliza uma base de dados distribuda implementada na hierarquia de muitos servidores de SISTEMAS DISTRIBUDOS Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com.br
16
nomes. O protocolo da camada de aplicao permite que hospedeiros, roteadores, servidores de nomes e comuniquem para resolver nomes (traduo endereo/nome). A razo de no se centralizar o DNS no impor um ponto nico de falha, diminuir o volume de trfego, evitar base de dados centralizada e distante e proporcionar uma melhor manuteno da base de dados, alm do que possibilita uma estrutura escalvel.
Figura 13 Base de dados Hierrquica e distribuda
Se procurado no servidor local no for possvel resolver o nome, a requisio dever ser remetida ao servidor raiz. Este responsvel por: - procurar o servidor oficial se o mapeamento for desconhecido - obter a traduo - devolver o mapeamento ao servidor local
So 13 os servidores raiz espalhados pelo mundo.
Figura 14 Servidores raiz
SISTEMAS DISTRIBUDOS Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com.br
17
3.2.3. NOMEAO BASEADA EM ATRIBUTO
Este modelo descreve uma entidade em termos de pares <atributo, valor>. A premissa que uma entidade tem um conjunto associado de atributos. Quando um usurio especifica quais valores um determinado atributo deve ter, ele restringe o conjunto de entidades nas quais est interessado. Cabe ao sistema de nomeao retornar uma ou mais entidades que atendam descrio do usurio. Sistemas de nomeao baseado em atributos tambm so conhecidos como servios de diretrios. Uma abordagem comum para tratar servios distribudos de diretrios combinar nomeao estruturada com nomeao baseada em atributos. Esta abordagem tem sido adotada no servio Active Diretory da Microsoft. Muitos desses sistemas usam, ou dependem, do protocolo leve de acesso a diretrio (Lightwight Diretory Access Protocol LDAP).
3.2.3.1. LDAP
O LDAP um protocolo padro IETF, projetado para operar em Internet. Sua definio considera o LDAP como um gateway para os servidores de diretrio X.500. Pelo fato de utilizar a pilha TCP/IP, em lugar da mais complexa pilha OSI, permite uma implementao mais eficiente e simplificada de forma a poder executar em mquinas de diferentes portes, tais como PCs, PDAs, equipamentos Wireless, entre outros. O LDAP torna possvel gerenciar usurios, grupos, dispositivos, e outros objetos, evitando a necessidade de gerenciar aplicaes de diretrios especficos (tais como de correio eletrnico). um padro suportado por diferentes plataformas que torna a aplicao independente de fabricantes ou plataformas especficas de sistema operacional ou rede. Reduz o custo pelo fato de diminuir o nmero de diretrios distintos a serem gerenciados e economiza tempo de desenvolvimento pelo fato de no ser necessrio construir bases de dados especficas para gerenciamento de usurios e grupos. O LDAP cria 4 (quatro) modelos: - Modelo de informao: define os tipos de dados que podem ser colocados no diretrio. - Modelo de nomes: define como os dados do diretrio so organizados e referenciados. - Modelo funcional: define como acessar e atualizar as informaes no diretrio. - Modelo de segurana: define como as informaes no diretrio so protegidas de acessos no autorizados.
Este modelo ainda define uma forma de referenciarmos as informaes, assim, uma entrada possui somente um nico nome dado por um DN (Distinguished names). Um DN uma concatenao de RDN (Relative Distinguished names), por exemplo, um DN poderia ser expresso como: OU = Recursos, Ou = Servidores, Cn = Web Server. Um RDN para o DN acima poderia ser Ou = Recursos ou Cn = Web Server. Eis uma srie de chaves geralmente utilizadas: - uid (userid): identificador nico obrigatrio - cn (common name): apelido da pessoa - givenname: nome - Sn (surname): apelido da pessoa SISTEMAS DISTRIBUDOS Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com.br
18
- o (organization): empresa da pessoa - u (organizational unit): servio da empresa na qual a pessoa trabalha - mail: endereo de correio eletrnico da pessoa