conceitos fundamentais sobre sistemas distribuidos
TRANSCRIPT
5/16/2018 Conceitos Fundamentais Sobre Sistemas Distribuidos - slidepdf.com
http://slidepdf.com/reader/full/conceitos-fundamentais-sobre-sistemas-distribuidos 1/39
Conceitos Fundamentais sobreSistemas DistribuídosProfessor: Edmilson D. VeronaDisciplina: Programação
Distribuída
5/16/2018 Conceitos Fundamentais Sobre Sistemas Distribuidos - slidepdf.com
http://slidepdf.com/reader/full/conceitos-fundamentais-sobre-sistemas-distribuidos 2/39
Todo Sistema Distribuído deve ter:• Transparência• Flexibilidade• Confiabilidade• Disponibilidade• Tolerância a Falhas
• Escalabilidade
5/16/2018 Conceitos Fundamentais Sobre Sistemas Distribuidos - slidepdf.com
http://slidepdf.com/reader/full/conceitos-fundamentais-sobre-sistemas-distribuidos 3/39
Transparência• De localização:
▫ Os usuários não precisam saber onde os recursos estãolocalizados.
• De migração:▫ Os recursos podem se mover sem alterar seus nomes.
• De replicação:▫ Pode ter mais de uma cópia dos recursos disponíveis.
• De concorrência:
▫ Múltiplos usuários podem compartilhar um recursoautomaticamente.• De paralelismo:
▫ Atividades podem ocorrer em paralelo sem que o usuário saiba.• De acesso:
▫ Acessos a recursos devem ser idênticos para objetos locais e
remotos.
5/16/2018 Conceitos Fundamentais Sobre Sistemas Distribuidos - slidepdf.com
http://slidepdf.com/reader/full/conceitos-fundamentais-sobre-sistemas-distribuidos 4/39
Flexibilidade• Sistemas distribuídos são mais flexíveis do que
um sistema centralizado.• Permite mudanças no futuro com mais
facilidade:▫ Nível de segurança implantado.
▫ Redundâncias criadas.• Manutenção.• Modificações.• Aumento de Desempenho.
5/16/2018 Conceitos Fundamentais Sobre Sistemas Distribuidos - slidepdf.com
http://slidepdf.com/reader/full/conceitos-fundamentais-sobre-sistemas-distribuidos 5/39
Confiabilidade• Disponibilidade:
▫ Relação ao tempo que o sistema fica disponível.• Tolerância a Falhas:
▫ Sistemas distribuídos devem ter a capacidade de mascarar falhaspara os usuários do sistema.
• Respostas certas:▫ É possível confiar nas respostas recebidas?▫ Sistemas Distribuídos podem ser compostos de diversas partes de
fornecedores diferentes.• Autenticação:
▫ Garantir que as partes realmente são quem dizem ser.• Autorização:
▫ Garantir que a requisição pode ser executada para o requisitante.
5/16/2018 Conceitos Fundamentais Sobre Sistemas Distribuidos - slidepdf.com
http://slidepdf.com/reader/full/conceitos-fundamentais-sobre-sistemas-distribuidos 6/39
Segurança• Necessidade de proteger os recursos e informação
gerida num sistema distribuído.
• Diversos aspectos envolvidos:▫ Autenticação dos utilizadores.▫ Autenticação dos servidores.
• Prevenção de ataques do tipo “negação de serviço”
(denial of service attacks).• Criptografia▫ Utilizada para fornecer a segurança entre as
mensagens de computadores.• Segurança na presença de código móvel.
5/16/2018 Conceitos Fundamentais Sobre Sistemas Distribuidos - slidepdf.com
http://slidepdf.com/reader/full/conceitos-fundamentais-sobre-sistemas-distribuidos 7/39
Disponibilidade• Os serviços do sistema devem se manter
funcionando o maior tempo possível.• As falhas são inevitáveis.• Técnicas que garantem a disponibilidade do
serviço, mesmo na presença de falhas.
▫ Mecanismos de tolerância à falhas.▫ Redundância.
Componentes chaves de hardware e software devemser replicados, de modo que se um deles falhar, os
outros estarão aptos a tomar conta da tarefa.
5/16/2018 Conceitos Fundamentais Sobre Sistemas Distribuidos - slidepdf.com
http://slidepdf.com/reader/full/conceitos-fundamentais-sobre-sistemas-distribuidos 8/39
Tratamento das falhas• Num sistema distribuídos, as falhas podem ocorrer
de forma independente.
• Alguns componentes continuam a funcionarenquanto outros falham.• Falha de um componente não deve levar o sistema a
comportamentos incorretos.
• Um sistema tolerante a falha deve continuar afuncionar de acordo com o esperado mesmo quandoalgum dos componentes falhar.▫ Caching.▫ Replicação.
5/16/2018 Conceitos Fundamentais Sobre Sistemas Distribuidos - slidepdf.com
http://slidepdf.com/reader/full/conceitos-fundamentais-sobre-sistemas-distribuidos 9/39
Modelo de Falhas• No Desenvolvimento:
▫ Prevenção de Falhas:
Metodologia de desenvolvimento. Verificação.
▫ Eliminação de Falhas: Testes. Verificação.
• Em Operação:▫ Tolerância a Falhas
Mecanismos (software e/ou hardware) que permitemdetecção e tratamento de falhas.
5/16/2018 Conceitos Fundamentais Sobre Sistemas Distribuidos - slidepdf.com
http://slidepdf.com/reader/full/conceitos-fundamentais-sobre-sistemas-distribuidos 10/39
Tipos de falhas normalmenteconsideradas:• Falha e pára (fail-stop)
▫ Componente pára totalmente ao ocorrer uma falha.
• Omissão▫ Componente causa “perda” de algumas mensagens.
• Performance▫ Componente faz com que mensagem chegue depois
(ou antes) do esperado.• Maliciosa
▫ Tudo pode acontecer.
5/16/2018 Conceitos Fundamentais Sobre Sistemas Distribuidos - slidepdf.com
http://slidepdf.com/reader/full/conceitos-fundamentais-sobre-sistemas-distribuidos 11/39
Exercícios• Quais as características de um sistema
distribuído aberto?• O que é um sistema escalável?
5/16/2018 Conceitos Fundamentais Sobre Sistemas Distribuidos - slidepdf.com
http://slidepdf.com/reader/full/conceitos-fundamentais-sobre-sistemas-distribuidos 12/39
Sistema Distribuído Aberto• Oferece serviços de acordo com as regras que definem o
formato, conteúdo e significado das mensagens.▫ Especificados através de interfaces.
• Interoperabilidade▫ Caracteriza até que ponto duas implementações de sistemas ou
componentes de fornecedores diferentes devem coexistir etrabalhar em conjunto, especificados por um padrão comum.
• Portabilidade▫ Caracteriza até que ponto uma aplicação desenvolvida para um
sistema distribuído A pode ser executada, sem modificação, emum sistema B;• Extensibilidade
▫ Define a capacidade de se adicionar novos componentes ousubstituir componentes existentes sem afetar os que continuamno mesmo lugar.
5/16/2018 Conceitos Fundamentais Sobre Sistemas Distribuidos - slidepdf.com
http://slidepdf.com/reader/full/conceitos-fundamentais-sobre-sistemas-distribuidos 13/39
Escalabilidade• Capacidade de se adaptar conforme o aumento da demanda.• Um sistema escalável permanece eficiente quando há um
aumento significativo no número de recursos e no número de
usuários.• Evitar perda de desempenho computacional.• Evitar gargalos.• Escalabilidade em três níveis:
▫ Relação ao tamanho Podem-se acrescentar mais usuários e recursos ao sistema.
▫ Relação à distância geográfica Acesso a distâncias maiores, distribuição geográfica dos recursos
pela rede.▫ Relação à facilidade de administração
Mesmo com inclusão muitas organizações independentes aindacontinua fácil a administração.
5/16/2018 Conceitos Fundamentais Sobre Sistemas Distribuidos - slidepdf.com
http://slidepdf.com/reader/full/conceitos-fundamentais-sobre-sistemas-distribuidos 14/39
Sistemas baseados em redes ad-hoc• Redes ad-hoc são ligações que se estabelecem de forma
espontânea entre vários dispositivos móveis.• Permitir a vários utilizadores trocarem informação
quando se encontram.• Todos os dispositivos da rede funcionam como se fossem
um roteador, encaminhando comunitariamenteinformações que vêm de dispositivos vizinhos.
• Exemplo:▫ Carros podem comunicar entre si para propagar
informação sobre as condições das estradas.• Não há topologia predeterminada.• Não há controle centralizado.• Auto-organização.
5/16/2018 Conceitos Fundamentais Sobre Sistemas Distribuidos - slidepdf.com
http://slidepdf.com/reader/full/conceitos-fundamentais-sobre-sistemas-distribuidos 15/39
Redes ad-hoc
5/16/2018 Conceitos Fundamentais Sobre Sistemas Distribuidos - slidepdf.com
http://slidepdf.com/reader/full/conceitos-fundamentais-sobre-sistemas-distribuidos 16/39
RFIDs (Radio frequency identification)
• Dispositivo que pode guardar informação eemiti-la quando necessário.
• RFIDs passivos▫ Sem alimentação própria: o leitor produz uma
ação (campo magnético) sobre o RFID de forma aque este produza a energia e responda.
• RFIDs ativos▫ Incluem alimentação própria e podem emitir
sinais ativamente.
5/16/2018 Conceitos Fundamentais Sobre Sistemas Distribuidos - slidepdf.com
http://slidepdf.com/reader/full/conceitos-fundamentais-sobre-sistemas-distribuidos 17/39
RFIDs (Radio frequency identification)• Utilização de RFIDs
▫ Média escala
Identificação de animais domésticos. VeriChip É implantado nas pessoas para tratamento médico. Localizador.
Cartões de identificação. Distribuição. Logística.
▫ Grande escala Identificação de produtos (substituindo código de
barras). Permite identificação individual dos produto.
5/16/2018 Conceitos Fundamentais Sobre Sistemas Distribuidos - slidepdf.com
http://slidepdf.com/reader/full/conceitos-fundamentais-sobre-sistemas-distribuidos 18/39
RFIDs
5/16/2018 Conceitos Fundamentais Sobre Sistemas Distribuidos - slidepdf.com
http://slidepdf.com/reader/full/conceitos-fundamentais-sobre-sistemas-distribuidos 19/39
Redes de sensores• Variação das redes Ad hoc.• Sistemas distribuídos compostos por um número elevado de
pequenos sistemas computacionais (nós) com:▫ Fonte de alimentação própria (em geral, uma bateria).▫ Pequeno microprocessador.▫ Emissor/receptor de rádio.▫ Sensor.▫ Nós têm preço reduzido.▫ Quando a bateria acaba, o nó deixa de funcionar.
• Alguns desafios▫ Organização de número elevado de sensores.▫ Minimizar consumo energético.▫ Segurança.
5/16/2018 Conceitos Fundamentais Sobre Sistemas Distribuidos - slidepdf.com
http://slidepdf.com/reader/full/conceitos-fundamentais-sobre-sistemas-distribuidos 20/39
Redes de sensores• Aplicações:
▫ Monitorar o espaço e coisas.▫ Valores relacionados com o ambiente
(temperatura, humidade, etc.).▫ Sistemas de vigilâncias.▫ Aviões.
• Monitorar interação entre as coisas e o espaço.• Interações entre animais.• Monitorar eventos naturais.
5/16/2018 Conceitos Fundamentais Sobre Sistemas Distribuidos - slidepdf.com
http://slidepdf.com/reader/full/conceitos-fundamentais-sobre-sistemas-distribuidos 21/39
Redes de Sensores
5/16/2018 Conceitos Fundamentais Sobre Sistemas Distribuidos - slidepdf.com
http://slidepdf.com/reader/full/conceitos-fundamentais-sobre-sistemas-distribuidos 22/39
Sistemas Fortemente Acoplados• Forte dependência de recursos.• Os processadores compartilham uma única m
emória principal e são controlados por umúnico sistema operacional.▫ Ex: Elementos de processamento compartilham o
mesmo conjunto de circuitos de memória.
5/16/2018 Conceitos Fundamentais Sobre Sistemas Distribuidos - slidepdf.com
http://slidepdf.com/reader/full/conceitos-fundamentais-sobre-sistemas-distribuidos 23/39
Sistemas Fracamente Acoplados• Fraca dependência de recursos.• Os módulos de hardware/software são fundament
almente independentes uns dos outros.• Um grupo de computadores pessoais ligados a umarede local tendo:▫ Seus próprios processadores.▫ Suas próprias memórias.
▫ Seus próprios discos rígidos.▫ Seus próprios Sistemas Operacionais.• Compartilham recursos tais como uma impressora o
u uma base de dados.▫ Ex: Clusters
5/16/2018 Conceitos Fundamentais Sobre Sistemas Distribuidos - slidepdf.com
http://slidepdf.com/reader/full/conceitos-fundamentais-sobre-sistemas-distribuidos 24/39
Concorrência• Uma característica padrão de um SD, em que os processos disputam
pelos recursos compartilhados.• Garantir que processos operem corretamente em ambientes
concorrentes.• Trabalha sobre a possibilidade que vários clientes possam acessarum recurso compartilhado ao mesmo tempo.▫ A presença de múltiplos usuários é uma fonte de pedidos concorrentes
para seus recursos.▫ Em ambiente concorrente, cada recurso deve ser projetado para manter
sempre a consistência.• Mais de um processo em execução a cada instante:
▫ Atividades separadas de usuários.▫ Independência de recursos.▫ Localização de processos servidores em computadores distintos.
• Acesso concorrente a recursos compartilhados requer sincronização.
5/16/2018 Conceitos Fundamentais Sobre Sistemas Distribuidos - slidepdf.com
http://slidepdf.com/reader/full/conceitos-fundamentais-sobre-sistemas-distribuidos 25/39
Método de comunicação entreprocessos (IPC)• Memória compartilhada.• Mensagem ponto a ponto.
▫ Bloqueante (síncrona)▫ Não bloqueante (assíncrona)
• Execução remota de chamada de procedimento
(RPC)
5/16/2018 Conceitos Fundamentais Sobre Sistemas Distribuidos - slidepdf.com
http://slidepdf.com/reader/full/conceitos-fundamentais-sobre-sistemas-distribuidos 26/39
Comunicação Síncrona• Componentes progridem em passos
simultâneos, em rounds síncronos.▫ Mais simples de descrever.▫ Programar.▫ Raciocinar.
• É possível que sistemas reais simulem umsistema síncrono.▫ Maioria das vezes isto é impossível ou ineficiente.
5/16/2018 Conceitos Fundamentais Sobre Sistemas Distribuidos - slidepdf.com
http://slidepdf.com/reader/full/conceitos-fundamentais-sobre-sistemas-distribuidos 27/39
Comunicação Assíncrona• Componentes progridem em passos
independentes, em ordem arbitrária, com
velocidade arbitrária.▫ Mais difícil de programar.▫ Algoritmos são mais gerais e portáveis.
• As vezes não tem poder suficiente para resolverproblemas de maneira eficiente (ou mesmo pararesolver o problema).
5/16/2018 Conceitos Fundamentais Sobre Sistemas Distribuidos - slidepdf.com
http://slidepdf.com/reader/full/conceitos-fundamentais-sobre-sistemas-distribuidos 28/39
Comunicaçãoparcialmente síncrona• Assumimos algumas restrições na ordem
relativa dos eventos.• Não tão rígida como no modelo síncrono.• Mais realista.• Mais difícil de programar e raciocinar.
• Algoritmos são eficientes, mas não secomportam de maneira correta se consideraçõessobre o tempo forem violadas.
5/16/2018 Conceitos Fundamentais Sobre Sistemas Distribuidos - slidepdf.com
http://slidepdf.com/reader/full/conceitos-fundamentais-sobre-sistemas-distribuidos 29/39
Desempenho• O problema da performance é muito influenciada pela comunicação.• Sistemas Distribuídos devem melhorar o desempenho em relação a
sistemas centralizados.
• Concentrarmos a atenção no conjunto de máquinas queefetivamente executa certos processamentos de forma isolada doprocessamento dos usuários.
• Os usuários esperam ter suas respostas o mais rápido possível comose o sistema estivesse executando localmente, em suas própriasmáquinas.
• Monitorar os recursos físicos e de software que compõe o sistemadistribuído a fim de garantir níveis de serviço ao usuário.• 4 Métricas de desempenho:
▫ Tempo de resposta.▫ Throughput (tarefas / tempo).▫ Utilização do sistema.▫ Quantidade consumida da capacidade da rede.
5/16/2018 Conceitos Fundamentais Sobre Sistemas Distribuidos - slidepdf.com
http://slidepdf.com/reader/full/conceitos-fundamentais-sobre-sistemas-distribuidos 30/39
Métricas para análise de algoritmosdistribuído• Tempo necessário para completar a execução das tarefas.• Número de bits transmitidos pela rede.
• Número de mensagens transmitidas.• Tamanho das mensagens transmitidas.• Espaço de memória necessário em cada nó.• Justiça
▫ Todo participante deve ter oportunidade de executar suatarefa. Falta de justiça causa starvation.
▫ Podemos distinguir graus de justiça Todos tem a mesma oportunidade? Participante consegue “eventualmente” executar tarefa
(eventualmente == em algum momento no futuro)?
5/16/2018 Conceitos Fundamentais Sobre Sistemas Distribuidos - slidepdf.com
http://slidepdf.com/reader/full/conceitos-fundamentais-sobre-sistemas-distribuidos 31/39
Middleware• Camada de software que fornece uma abstração de
programação
• Os protocolos de comunicação mascaram adiferença entre as redes e o middleware pode cuidasdas outras diferenças.
• Software que providencia um modelo deprogramação por blocos de processos pela passagem
de mensagem.• Alguns middleware permitem que os processossejam implementados em diferentes linguagem deprogramação.▫ CORBA.
5/16/2018 Conceitos Fundamentais Sobre Sistemas Distribuidos - slidepdf.com
http://slidepdf.com/reader/full/conceitos-fundamentais-sobre-sistemas-distribuidos 32/39
Middleware
5/16/2018 Conceitos Fundamentais Sobre Sistemas Distribuidos - slidepdf.com
http://slidepdf.com/reader/full/conceitos-fundamentais-sobre-sistemas-distribuidos 33/39
Exercício• O que é computação Ubíqua? Qual o conceito?
5/16/2018 Conceitos Fundamentais Sobre Sistemas Distribuidos - slidepdf.com
http://slidepdf.com/reader/full/conceitos-fundamentais-sobre-sistemas-distribuidos 34/39
Computação ubíqua• O termo computação ubíqua foi primeiramente
sugerido por Mark Weiser em 1988.
• O conceito é de tornar os computadoresonipresentes e invisíveis.• Integrar a informática com as ações e
comportamentos naturais das pessoas.
• Sistemas inteligentes que estariam conectados ouprocurando conexão o tempo todo.• Tirar o computador do caminho entre o usuário e
seu trabalho, sua rotina. Utilizar computadores deforma natural.
5/16/2018 Conceitos Fundamentais Sobre Sistemas Distribuidos - slidepdf.com
http://slidepdf.com/reader/full/conceitos-fundamentais-sobre-sistemas-distribuidos 35/39
Computação pervasiva• Conceito define que os meios de computação estarão
distribuídos no ambiente de trabalho dos usuáriosde forma perceptível ou imperceptível.
• Computador estaria distribuído no ambiente, e nãoseria apenas uma máquina em cima da mesa.
• Detectar e extrair dados e variações do ambiente,gerando automaticamente modelos computacionais
controlando, configurando e ajustando aplicaçõesconforme as necessidades dos usuários e dos demaisdispositivos.
• Interagir automaticamente entre eles construindoum contexto inteligente para sua melhor utilização.
5/16/2018 Conceitos Fundamentais Sobre Sistemas Distribuidos - slidepdf.com
http://slidepdf.com/reader/full/conceitos-fundamentais-sobre-sistemas-distribuidos 36/39
Integração com Sistemas Legados• Integração é necessária pois:
▫ Empresas não substituem todos os seus sistemas
de uma vez só.▫ Novos sistemas muitas vezes precisam interagir
com sistemas legados.▫ Sistemas de diferentes empresas precisam ser
integrados quando estas passam a trabalhar juntas.
▫ Processos de aquisição e junção de empresasexigem a integração de seus sistemas.
5/16/2018 Conceitos Fundamentais Sobre Sistemas Distribuidos - slidepdf.com
http://slidepdf.com/reader/full/conceitos-fundamentais-sobre-sistemas-distribuidos 37/39
Integração com Sistemas Legados• Ocorrem dificuldades ao integrar
▫ Sistemas escritos em linguagens diferentes e
rodando em plataformas diferentes.• Tecnologias de Integração de Sistemas:
▫ CORBA: Permite a integração de software desenvolvido em
diferentes linguagens e plataformas.▫ Web Services: integram software utilizando
padrões da Web, como XML e HTTP.
5/16/2018 Conceitos Fundamentais Sobre Sistemas Distribuidos - slidepdf.com
http://slidepdf.com/reader/full/conceitos-fundamentais-sobre-sistemas-distribuidos 38/39
Integração com Sistemas Legados▫ ODBC (Open DataBase Connectivity)
API usada por aplicações cliente para contatar
servidores de banco de dados. O SGBD deve fornecer um driver ODBC; através das
rotinas da API. O cliente envia comandos SQL ao servidor, que os
executa e retorna resultado.▫ Integração de sistemas com a arquitetura Java
JDBC: interconexão com bancos de dados. Conectores Java: integração com outros sistemas.