Você está na página 1de 0

SISTEMAS DISTRIBUDOS

Prof. Ricardo Rodrigues Barcelar


http://www.ricardobarcelar.com.br


1

- Aula 6

NOMEAO E COMUNICAO

1. INTRODUO

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


Figura 15 - rvore LDAP

Você também pode gostar