Sistemas Distribuídos Aula 01 - Introdução Prof. Hélio de Sousa Lima Filho ([email protected]) Referencial Bibliográfico • Coulouris, George; Dollimore, Jean e Kindberg, Tim. Sistemas Distribuídos: conceitos e projeto. (Capítulo 01). • Tanenbaum, Andrew S., Steen, Maarten V.. Sistemas Distribuidos: principios e paradigmas. (Capítulo 01). Sistemas Distribuídos 2 Sumário 1. Definições 2. Exemplos de Sistemas e Aplicações Distribuídas 3. Desafios em Sistemas Distribuídos 4. Vantagens/Desvantagens de Sistemas Distribuídos Sistemas Distribuídos 3 Sumário 1. Definições 2. Exemplos de Sistemas e Aplicações Distribuídas 3. Desafios em Sistemas Distribuídos 4. Vantagens/Desvantagens de Sistemas Distribuídos Sistemas Distribuídos 4 1945 à1955: O Início • Programador tinha que reservar hora para usar o computador! Sistemas Distribuídos 5 1955 à1965: Processamento Batch • Tarefas eram enfileiradas • Programas em lotes. Sistemas Distribuídos 6 1965 à1980: Timesharing • Menor tempo da obtenção da resposta de programas! Sistemas Distribuídos 7 A partir de 1980 Sistemas Distribuídos • Comunicação entre maquinas • Independência maior dos usuários • Compartilhamento de recursos Sistemas Distribuídos 8 Sistemas Distribuídos • Conceito – “Um sistema distribuído é aquele no qual os componentes localizados em computadores interligados em rede se comunicam e coordenam suas ações apenas passando mensagens.“[Coulouris, 2005] Sistemas Distribuídos 9 Sistemas Distribuídos • Conceito – “Um sistema distribuído é um conjunto de computadores independentes que se apresenta a seus usuários como um sistema unico e coerente.“[Tanenbaum, 2007] Sistemas Distribuídos 10 Sistemas Distribuídos • Conceito – “Um sistema distribuído são vários computadores fazendo algo juntos.“[Mulender, 1993] – “Você sabe que tem um sistema distribuído quando a falha de um computador no qual nunca ouviu falar o impede de fazer qualquer coisa." :) [Mulender, 1993] Sistemas Distribuídos 11 Características de Sistemas Distribuídos • Conjunto de maquinas autônomas • Interconectadas por canais de comunicação • Comunicação por troca de mensagens • Ausência de um estado global • Independência de falhas • Ausência de sincronização de relógios • Estado compartilhado da aplicação Sistemas Distribuídos 12 Sumário 1. Definições 2. Exemplos de Sistemas e Aplicações Distribuídas 3. Desafios em Sistemas Distribuídos 4. Vantagens/Desvantagens de Sistemas Distribuídos Sistemas Distribuídos 13 Unix Distribuído • Extensões do modelo unix para suportar: – Comunicação entre processos – Servidores na rede (servidor de arquivos, impressão e etc.) • Implementações de Unix distribuído: – SUN OS, SOLARIS – Linux (Debian, Fedora, Kurumin, Pux) • Vantagens do Unix distribuído: – NFS (Network File System) – NIS (Network Information System) Sistemas Distribuídos 14 Aplicações Comerciais • Sistema de reserva de passagem aéreas • Sistema de bancos para interconexões entre agências e terminais • Sistemas para controle de estoque, vendas e entrega Sistemas Distribuídos 15 Aplicações Comerciais • Requisitos – Alto grau de confiabilidade – Alto grau de segurança e privacidade de informações – Suportar concorrência de usuários – Garantir tempo de resposta satisfatório – Suportar massiva distribuição – Suportar extensabilidade – Suportar integração entre sistemas operados por diferentes organizações Sistemas Distribuídos 16 Internet e Intranet • Exemplos: – – – – Correio eletrônico Serviço de news WWW (World Wide Web) Transferência de arquivos • Requisitos: – – – – Alta extensabilidade Mecanismo de resolução de nomes Esquema de roteamento e endereçamento Controle de acesso e segurança Sistemas Distribuídos 17 Computação Móvel e Ubíqua • Avanços tecnológicos na miniaturização dos dispositivos + rede sem fio – Integração dos dispositivos de comunicação pequenos e portáveis aos sistemas distribuídos – Usa informações do ambiente para construir modelos computacionais dinamicamente Sistemas Distribuídos 18 Computação Móvel e Ubíqua • Computação móvel – Execução de tarefas enquanto o usuário se movimenta, e se distancia do seu ambiente local Sistemas Distribuídos 19 Computação Móvel e Ubíqua • Acesso em qualquer lugar a qualquer momento Sistemas Distribuídos 20 Computação Móvel e Ubíqua • Computação Pervasiva: – Computador embarcado no ambiente de forma despercebida – Usa informações do ambiente para construir modelos computacionais dinamicamente • Computação Ubíqua: – Computação móvel em larga escala + Pervasiva Sistemas Distribuídos 21 Computação Móvel e Ubíqua Sistemas Distribuídos 22 Computação Móvel e Ubíqua • Requisitos – Suporte transparente à mobilidade – Tratamento de contexto – Otimização de espaço de armazenamento, largura de banda, uso de energia – Formatação, compressão, entrega e apresentação de conteúdo adaptável à largura de banda e recursos do dispositivo Sistemas Distribuídos 23 Sumário 1. Definições 2. Exemplos de Sistemas e Aplicações Distribuídas 3. Desafios em Sistemas Distribuídos 4. Vantagens/Desvantagens de Sistemas Distribuídos Sistemas Distribuídos 24 Desafios em SD´s • • • • • • • Heterogeneidade Abertura Segurança Extensabilidade Manipulação de falhas Concorrência e Paralelismo Transparência Sistemas Distribuídos 25 Desafios em SD´s • Diversas Heterogeneidades – Hardware, Software, Redes, Sistemas Operacionais, Linguagens, Implementações de diferentes fabricantes. • Solução – Uso de Protocolos e padrões comuns • Protocolos da Internet (IP) Sistemas Distribuídos 26 Desafios em SD´s • Abertura – Capacidade de um sistema poder ser estendido (em relação a hardware e software) e ser interoperável com outros sistemas – Abertura resulta da especificação de interfaces, de tornar as especificações publicas e de padronizá-las – Especificações podem vir a serem • padrões estabelecidos por organizações de padronização • padrões estabelecidos pelo uso Sistemas Distribuídos 27 Desafios em SD´s • Abertura – Padronizações existentes: • Modelo de referência OSI • Padronizações de protocolos (RFCs) – Acrônimo de Request of Comments – Série evolutiva de relatórios, proposta e padrões de protocolos que descrevem o funcionamento interno de protocolos da internet • Modelo de referência TCP/IP – Especificações Java Sistemas Distribuídos 28 Desafios em SD´s • Abertura – Padronizações Suportam: • Extensabilidade de hardware: adição de novos computadores ao sistema • Extensabilidade de software: introdução de novos serviços ou versão nova de um sistema • Independência de fabricantes Sistemas Distribuídos 29 Desafios em SD´s • Segurança – Confidencialidade • Proteção contra acesso indevido – Integridade • Proteção contra alteração ou corrupção – Disponibilidade • Proteção contra impedimento de acesso – Desafios • Transmissão/Armazenamento seguro de informações • Impedimento de acesso Sistemas Distribuídos 30 Desafios em SD´s • Paralelismo – Processos executam simultaneamente em processadores diferentes • Concorrência – Processos executam concorrentemente a um mesmo processador e acessam recursos comuns Sistemas Distribuídos 31 Desafios em SD´s • Oportunidade de Concorrência e paralelismo em um SD: – Requisições concorrentes para utilização de um mesmo recurso ou acesso a um mesmo serviço – Servidores executando em mais de uma máquina podem juntos fornecer um serviço – Execução de uma atividade em paralelo pode executar em mais de uma máquina do SD. • Interações concorrentes têm que ser sincronizadas para garantia de consistência do estado da aplicação Sistemas Distribuídos 32 Desafios em SD´s • Extensabilidade – Reflete a capacidade de um sistema suportar aumento da escala sem perda de eficiência • Desafios: – Controlar o custo dos recursos físicos – Controlar perda de desempenho – Evitar gargalos de desempenho – Prevenir escassez de elementos de software: endereços IP´s Sistemas Distribuídos 33 Desafios em SD´s • Técnicas para suportar extensabilidade – Replicação de recursos • Dispositivos, dados, serviços – Caching • Armazenamento de dados recentes próximo ao uso – Estruturação dos serviços visando o crescimento incremental • Hierárquica (DNS), Balanceamento de carga – Evitar centralização de algoritmos, dados e componentes Sistemas Distribuídos 34 Desafios em SD´s • Manipulação de Falhas – Ocorrência de falhas • Produzir resultados incorretos • Causar interrupção de serviços – Mecanismos devem ser desenvolvidos para se garantir o correto funcionamento do sistema, mesmo na ocorrência de falhas – Recuperação de falhas – Tolerância a falhas • Garante a correção e disponibilidade do sistema Sistemas Distribuídos 35 Desafios em SD´s • Transparência – Abstração de aspectos específicos do sistema subjacente – Sistema é visto como um todo e não como uma coleção de partes Sistemas Distribuídos 36 Desafios em SD´s • Tipos de Transparência – Acesso • Usuário não distingue entre o acesso local ou remoto – Localização • Não sabe-se onde o recurso encontra-se – Migração • Oculta que um recurso pode ser movido para uma outra localização – Realocação • Oculta que um recurso pode ser movido para uma outra localização enquanto em uso Sistemas Distribuídos 37 Desafios em SD´s • Tipos de Transparência – Replicação • Oculta que um recurso e replicado – Concorrência • Oculta que um recurso pode ser compartilhado por diversos usuários concorrentes – Falha • Oculta a falha e a recuperação de um recurso Sistemas Distribuídos 38 Sumário 1. Definições 2. Exemplos de Sistemas e Aplicações Distribuídas 3. Desafios em Sistemas Distribuídos 4. Vantagens/Desvantagens de Sistemas Distribuídos Sistemas Distribuídos 39 Vantagens dos SD´s • Pessoas, sistemas, organizações, dados são inerentemente distribuídos • Compartilhamento de recursos • Aumento da confiabilidade • Aumento do desempenho • Crescimento incremental • Flexibilidade Sistemas Distribuídos 40 Desvantagens dos SD´s • • • • Sincronização Falhas Suporte a escalabilidade Segurança – Pode afetar a consistência, desempenho, disponibilidade e etc. Sistemas Distribuídos 41 Exercícios • Dê exemplo de aplicações/sistemas para os seguintes tipos do requisito de transparência: – Acesso, localização, migração, realocação, replicação, concorrência e falha. Sistemas Distribuídos 42