Baixe o app para aproveitar ainda mais
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.
Compartilhar