Sistemas Distribuídos Aula 01 - Introdução Prof. Hélio de Sousa Lima Filho (helio.filho@gmail.com)
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
Sistemas Distribuídos Sumário Definições Exemplos de Sistemas e Aplicações Distribuídas Desafios em Sistemas Distribuídos Vantagens/Desvantagens de Sistemas Distribuídos Sistemas Distribuídos
Sistemas Distribuídos Sumário Definições Exemplos de Sistemas e Aplicações Distribuídas Desafios em Sistemas Distribuídos Vantagens/Desvantagens de Sistemas Distribuídos Sistemas Distribuídos
Sistemas Distribuídos 1945 à1955: O Início Programador tinha que reservar hora para usar o computador! Sistemas Distribuídos
1955 à1965: Processamento Batch Tarefas eram enfileiradas Programas em lotes. Sistemas Distribuídos
Sistemas Distribuídos 1965 à1980: Timesharing Este conceito significa compartilhamento de tempo, ou seja, o tempo ocioso entre os processos são compartilhados com outros processos para dinamizar o sistema. Múltiplos jobs são executados simultaneamente, sendo que a UCP atende a cada job por um pequeno tempo, um a um em seqüência. Os tempos dedicados para cada job são pequenos o suficiente para que os usuários consigam interagir com cada programa sem que percebam que existem outros programas rodando. Este termo surgiu durante a 3 Menor tempo da obtenção da resposta de programas! Sistemas Distribuídos
A partir de 1980 Sistemas Distribuídos Comunicação entre maquinas Independência maior dos usuários Compartilhamento de recursos Sistemas Distribuídos
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
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
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
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
Sistemas Distribuídos Sumário Definições Exemplos de Sistemas e Aplicações Distribuídas Desafios em Sistemas Distribuídos Vantagens/Desvantagens de Sistemas Distribuídos Sistemas Distribuídos
Sistemas Distribuídos 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
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
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
Sistemas Distribuídos 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
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
Computação Móvel e Ubíqua Execução de tarefas enquanto o usuário se movimenta, e se distancia do seu ambiente local Sistemas Distribuídos
Computação Móvel e Ubíqua Acesso em qualquer lugar a qualquer momento Sistemas Distribuídos
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
Computação Móvel e Ubíqua Sistemas Distribuídos
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
Sistemas Distribuídos Sumário Definições Exemplos de Sistemas e Aplicações Distribuídas Desafios em Sistemas Distribuídos Vantagens/Desvantagens de Sistemas Distribuídos Sistemas Distribuídos
Sistemas Distribuídos Desafios em SD´s Heterogeneidade Abertura Segurança Extensabilidade Manipulação de falhas Concorrência e Paralelismo Transparência Sistemas Distribuídos
Sistemas Distribuídos 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
Sistemas Distribuídos 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
Sistemas Distribuídos 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
Sistemas Distribuídos 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
Sistemas Distribuídos 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
Sistemas Distribuídos 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
Sistemas Distribuídos 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
Sistemas Distribuídos 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
Sistemas Distribuídos 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
Sistemas Distribuídos 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
Sistemas Distribuídos 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
Sistemas Distribuídos 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
Sistemas Distribuídos 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
Sistemas Distribuídos Sumário Definições Exemplos de Sistemas e Aplicações Distribuídas Desafios em Sistemas Distribuídos Vantagens/Desvantagens de Sistemas Distribuídos Sistemas Distribuídos
Sistemas Distribuídos 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
Sistemas Distribuídos Desvantagens dos SD´s Sincronização Falhas Suporte a escalabilidade Segurança Pode afetar a consistência, desempenho, disponibilidade e etc. Sistemas Distribuídos
Sistemas Distribuídos 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