Buscar

Caracterização de Sistemas Distribuídos

Prévia do material em texto

Caracterização e 
Modelos de Sistemas 
Distribuídos
Sumário
‣ Introdução
‣ Exemplos de Sistemas Distribuídos
‣ Desafios de Projeto
Redes de 
Comunicação
 de Dados
Definição
‣ Um sistema distribuído é aquele no qual 
componentes, localizados em dispositivos 
interligados em rede, se comunicam e 
coordenam suas ações a partir da troca de 
mensagens.
‣ Concorrência
‣ Inexistência de relógio global
‣ Falhas independentes
Objetivo
‣ Comunicação e interatividade
‣ Compartilhamento de recursos
‣ Exemplos de recursos
‣ informações (documentos, vídeos, bases de 
dados, etc.)
‣ serviços (interface de acesso a partir de 
operações bem definidas)
‣ equipamentos
Acesso Remoto
‣ Servidor: processo que aceita requisições 
para realizar algum serviço.
‣ Cliente: processo que requisita um serviço.
‣ As requisições são realizadas por troca de 
mensagens através de uma rede de 
comunicação.
‣ Um mesmo processo pode se comportar 
como cliente e servidor.
Exemplos de Sistemas 
Distribuídos
‣ A Internet
‣ Computação em Nuvem
‣ O serviço DNS
Internet
‣ Sistema aberto (em larga escala) 
implementado a partir de mecanismos de 
comunicação que permitem a interação 
entre elementos heterogêneos
Computação em Nuvem
‣ “Cloud Computing”
‣ paradigma para compartilhamento de recursos 
computacionais como serviços através da 
Internet
Serviço DNS
‣ Base de dados hierárquica e distribuída que 
permite a associação entre nomes e 
endereços na Internet.
Desafios
‣ Heterogeneidade
‣ Sistemas abertos
‣ Segurança
‣ Escalabilidade
‣ Tratamento de falhas
‣ Concorrência
‣ Transparência
Heterogeneidade
‣ A heterogeneidade está presente em vários 
aspectos
‣ tecnologias de rede, sistemas operacionais, 
equipamentos (arquitetura e disponibilidade de 
recursos), linguagens de programação, etc.
‣ migração de código (applets, agentes móveis, 
etc.)
‣ Alternativa de solução: middleware
Middleware
‣ Camada de software que fornece uma 
abstração de programação que mascara as 
características específicas do sistema 
subjacente.
‣ invocação de objetos remota, processamento de 
transações distribuídas, localização de serviços, 
acesso a bancos de dados, notificação de 
eventos, etc.
‣ Exemplos: CORBA, Java RMI
Applications, services
Computer and network hardware
Platform
Operating system 
Middleware
Sistemas Abertos
‣ Um sistema é denominado aberto de 
acordo com o grau e a forma em que ele 
pode ser ampliado
‣ novos usuários e serviços podem ser 
adicionados indiscriminadamente
‣ extensão do sistema pode ser feita sem 
interrupção dos serviços
Sistemas Abertos
‣ Como viabilizar?
‣ disponibilizar interfaces públicas para acesso aos 
serviços; 
‣ especificar padrões (públicos);
‣ projetar arquiteturas adequadas.
‣ Vantagens?
‣ independência de fornecedores específicos
Segurança
‣ A rede de comunicação oferece segurança 
para troca de mensagens?
‣ Propriedades de um SD “seguro”
‣ sigilo e autenticidade
‣ integridade
‣ disponibilidade
Escalabilidade
‣ Um sistema possui alto grau de 
escalabilidade se seu desempenho não é 
comprometido quando há um aumento 
significativo na demanda ou na sua própria 
estrutura.
Escalabilidade
‣ Como desenvolver sistemas escaláveis?
‣ Evitar “gargalos” de desempenho:
‣ arquiteturas decentralizadas e hierárquicas
‣ replicação (exemplo: cache)
Tratamento de Falhas
‣ As falhas sem um sistema distribuído são 
parciais (independentes)
‣ alguns componentes falham, enquanto outros 
continuam funcionando normalmente
‣ Modelos de falhas?
‣ Disponibilidade: medida da proporção do 
tempo em que um sistema está ativo
‣ alto grau de disponibilidade: 99,999%
Técnicas Úteis no 
Tratamento de Falhas
‣ Detecção de falhas
‣ Exemplo: checksum
‣ Como lidar com falhas que não podem ser 
detectadas?
‣ Mascaramento de falhas
‣ Exemplo: retransmissão de mensagem perdida
Técnicas Úteis no 
Tratamento de Falhas
‣ Tolerância a falhas
‣ continuação do serviço mesmo diante de um 
problema
‣ Recuperação de falhas
‣ mecanismos que permitem recuperar o estado 
consistente de um sistema anterior à ocorrência 
da falha
Técnicas Úteis no 
Tratamento de Falhas
‣ Redundância
‣ Exemplos: protocolo de roteamento mantém 
duas rotas diferentes para um mesmo destino; 
replicação de uma base de dados em vários 
servidores.
Concorrência
‣ Mais de um cliente pode tentar obter 
acesso a um recurso compartilhado ao 
mesmo tempo
‣ O sistema pode ser afetado nos seguintes 
aspectos:
‣ consistência dos dados
‣ desempenho dos serviços
Transparência
‣ Transparência é quando o sistema é 
percebido como um todo (apesar de ser 
formado por componentes independentes)
‣ oferecer transparência envolve ocultar do 
programador aspectos da distribuição dos 
processos
‣ permite ao programador se concentrar nas 
funcionaliadades da aplicação, sem se preocupar 
com aspectos particulares da infra-estrutura
Formas de Transparência
‣ Transparência de acesso
‣ uma mesma operação provê acesso a recursos 
locais ou remotos
‣ Transparência de localização
‣ quando é desnecessário conhecer a localização 
física (na rede) de um recurso
‣ Transparência de desempenho
‣ sistema é capaz de se adequar a mudanças na 
demanda ou no ambiente de operação
Tr
an
sp
ar
ên
ci
a 
de
 r
ed
e
Formas de Transparência
‣ Transparência de replicação
‣ quando réplicas de um recurso são usada para 
melhor desempenho, sem que seja necessário 
saber isso para usar o recurso
‣ Transparência de mobilidade
‣ permite a movimentação de recurso e clientes 
sem que a operação dos serviços seja afetada.

Continue navegando