APLICAÇÕES EM SISTEMAS DISTRIBUÍDOS Prof. Ricardo Rodrigues Barcelar

Documentos relacionados
Faculdade Integrada do Ceará FIC Graduação em Redes de Computadores

Arquitetura de sistemas distribuídos

Comunicação de Grupo: Disfusão Confiável e Atômica

Sincronização em Sistemas Distribuídos

Transmissão Multicast Confiável e Experimentos na Internet

Redes P2P. Apresentadora: Luciana Pereira Oliveira. Duração: 40 minutos Data: 20/07/

Sistemas Distribuídos

Dados em programas são estruturados, enquanto que mensagens carregam informação seqüencial: Linearização x Restauração de dados Requisição

(Broadcast - um emissor envia a mensagem para todos os nós do sistema) Multicast um emissor, um grupo de processos como receptores

Sistemas Distribuídos Capítulo 8 - Aula 14

Sistemas Distribuídos Capítulo 8 - Aula 15

Arquitectura de Sistemas Paralelos e Distribuídos Comunicação Multicast

falhas em sistemas distribuídos

Um Algoritmo Probabilista de Recuperação de Erros para Difusão Fiável

Sistemas Distribuídos. Professora: Ana Paula Couto DCC 064

Sistemas Distribuídos. Capítulo 6 - Aula 10

Projeto de Sistemas Distribuídos. Considerações

SISTEMAS DISTRIBUÍDOS

Vamos fazer um pequeno experimento

Sumário. 1 Caracterização de Sistemas Distribuídos 1. 2 Modelos de Sistema Redes de Computadores e Interligação em Rede 81

Sistemas Distribuídos

Comunicação orientada a mensagens

Novas Propostas para Protocolos de Streaming Luiz Eduardo Fontes Mello de Almeida

Comunicação entre Processos

Sistemas Distribuídos. Ricardo Ribeiro dos Santos

Rede de computadores Protocolos UDP. Professor Carlos Muniz

Sistemas Distribuídos

Sistemas Distribuídos. Professora: Ana Paula Couto DCC 064

Sistemas Distribuídos. Professora: Ana Paula Couto DCC 064

AULA 03: PROCESSAMENTO PARALELO: MULTIPROCESSADORES

Programação Distribuída. Metas de um Sistema Distribuído

Definição. São sistemas distribuídos compostos de nós interconectados, aptos a se auto-organizar em topologias de rede, com o intuito de compartilhar

AULA 04 CONCEITOS DA CAMADA 02 PARTE 02

Tolerância a Falhas. especialmente em grades

Consistência. ncia. Sistemas Distribuídos e Tolerância a Falhas. Trabalho realizado por:

falhas em sistemas distribuídos

Redes de Computadores

Projeto de Sistemas Distribuídos. Considerações

Grupo I [7,5v] {H(M)}K1, {K2}K3, {M}K4

Sistemas Distribuídos Capítulo 8 - Aula 13

ARQUITETURA DE SISTEMAS DISTRIBUÍDOS. Aula 1- Introdução aos Sistemas Distribuídos

Formação de DBAs SQL Server 2008

Sistemas Distribuídos. Capítulo 7 - Aula 16

Redes de Computadores.

Universidade Federal do Maranhão

Sincronização em Sistemas Distribuídos

Redes de Computadores. Prof. André Y. Kusumoto

SSC0611 Arquitetura de Computadores

Redes TCP/IP. Prof. M.Sc. Alexandre Fraga de Araújo. INSTITUTO FEDERAL DO ESPÍRITO SANTO Campus Cachoeiro de Itapemirim

Programação Distribuída. Arquiteturas

Sistema Distribuído. Sistema Distribuído. Aplicações Distribuídas. Conceitos Básicos

Relógio Lógico Algoritmo de Lamport. Relógio Lógico Algoritmo de Lamport. Relógio Físico Algoritmo Centralizado. Relógio Físico Algoritmo Centralizado

SIDs: ARQUITETURA DE SISTEMAS DISTRIBUÍDOS

Programação de Sistemas Distribuídos e Concorrência

Sistemas Distribuídos e Redes de Sensores. abril de 2013

Sistemas Distribuídos. Professora: Ana Paula Couto DCC 064

Informática UFRGS. Programação com Objetos Distribuídos (C. Geyer) Java Comunicação 1

SISTEMAS DISTRIBUÍDOS

Sistemas Distribuídos

Caracterização de Sistemas Distribuídos

Sistemas Distribuídos

Canais de Comunicação

Tempos e Estados Globais. ECO036 - Sistemas Paralelos e Distribuídos

Sistemas Distribuídos

Arquiteturas. Capítulo 2

Redes de Computadores

Redes P2P Gnutella e Simuladores

Sistemas Distribuídos. abril de 2015

Arquiteturas para SGBD. Laboratório de Bases de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri

Características de Sistemas Distribuídos

Paradigma. Ponto-a-Ponto. Compartilhamento de serviços e recursos computacionais diretamente entre sistemas. Integração de Dados e Warehousing

CCNA 1 Comutação Ethernet. Kraemer

Desenvolvimento de Aplicações Distribuídas

Nome: Nº de aluno: 2ª Ficha de Avaliação Teórica Data Limite de Entrega 06/11/2015

Introdução a Sistemas Distribuídos

Sistemas Distribuídos Capítulo 6 - Aula 12

Sistemas Distribuídos

Sistemas Distribuídos. Plano de Curso. Plano de Curso 04/03/12 ! EMENTA:

REDES DE COMPUTADORES

1- Replicação de Dados - A replicação de dados permite lidar com falhas ao nível dos nós que impeçam o acesso

Sistemas Distribuídos Grupos

Características de Sistemas Distribuídos

Aplicação de rede. GA-027 Redes de Computadores. Camada de Aplicação. Artur Ziviani LNCC/MCT. Execução nos sistemas finais com comunicação via rede

Tolerância a Falhas com Máquinas de Estado

1- Replicação de Dados - A replicação de dados permite lidar com falhas ao nível dos nós que impeçam o acesso

Sistemas Distribuídos Aula 16

características compartilhamento de recursos sem necessidade de um elemento centralizador ciclos de CPU, armazenamento, banda...

Sistemas de Arquivos Distribuídos. Bruno M. Carvalho Sala: 3F2 Horário: 35M34

Computação Distribuída

Aplicações de Rede DHCP

Ordenação. Sistemas Distribuídos e Tolerância a Falhas. Universidade da Beira Interior 07/08

Bancos de Dados Distribuídos. Lucas Henrique Samuel Queiroz

Comunicação de dados para sistemas escaláveis

Sistemas Distribuídos. 7 Coordenação e Acordo. Coordenação e Acordo. Prof a Ana Cristina B. Kochem Vendramin DAINF / UTFPR

Níkolas Timóteo Paulino da Silva Redes de Computadores I ADS 2ºTermo

Comunicações por transações. Grupo 3. Lisiê Tieko Nakasone Tatiane Fernanda Silva Galinari. Orientador: Profº Norian Marranguello

SISTEMAS DISTRIBUÍDOS E TOLERÂNCIA A FALHAS MESTRADO DE ENGENHARIA INFORMÁTICA 2013/2014 DOCENTE: PROF. DRª. PAULA PRATA

CST em Redes de Computadores

Protocolo de transporte em tempo-real (Real- Time Transport Protocol) Definido na RFC 3350 Normalmente usado sobre o UDP Serviços

Abordagem, Instalação e Realização de benchmarks para LibPaxos2 e RingPaxos

Transcrição:

- Aula 3-1. REVISÃO SOBRE CONCEITOS FUNDAMENTAIS DE SISTEMAS DISTRIBUÍDOS Na segunda parte abordamos o tema tolerância a falhas, assunto este muito relacionado a redes de computadores, mas que nos mostra as fragilidades advindas de uma falta de planejamento e preocupação em aspectos sensíveis de um sistema distribuído. 2. COMUNICAÇÃO 2.1. Princípios Nas comunicações em sistemas distribuídos podemos considerar duas formas de comunicação em grupo: - Multicast Difusão seletiva - Broadcast Difusão total A comunicação é realizada pelo envio de uma mensagem para um endereço de difusão e uma cópia da mensagem é entregue a todos os destinatários. Para isto, em geral, os protocolos são sem conexão, podendo a conexão ser de um para vários ou de vários para vários. Broadcast Multicast A comunicação se dá através de grupos fechados ou grupos abertos. No primeiro caso o emissor deve ser membro do grupo. Esta organização é mais restritiva e conseqüentemente mais segura que os grupos abertos. 1

Grupo Fechado Já no grupo aberto qualquer nó pode enviar mensagens, conforme ilustrado na figura abaixo. Grupo Aberto Estes grupos podem ser simétricos ou assimétricos. Os grupos simétricos são compostos por pares (peers), não havendo um elemento privilegiado. Em comparação com os assimétricos são mais escaláveis, não possuem ponto central de falha, por outro lado a coordenação dos pares é uma tarefa que consome muitos recursos. Grupo Simétrico Nos grupos assimétricos um elemento é o coordenador do grupo, sendo assim é necessário eleger um novo coordenador caso o primeiro falhe. Com essa organização as decisões são mais simples, visto que o coordenador define tudo. Grupo Assimétrico 2

Os grupos podem ser criados, destruídos e processos podem entrar e sair de grupos estática e dinamicamente. Quando este evento se dá na configuração da rede ou do suporte de comunicação, dizemos que é estaticamente. E em tempo de execução, dinamicamente. Os suportes de comunicação de grupo dinâmicos são mais flexíveis, podendo ser configurados através de uma API de comunicação sem ajuda do administrador. 2.2. Implementação A rede pode possuir um esquema de endereçamento de grupo nativo. Nas redes baseadas em difusão todas as mensagens são enviadas por broadcast 1. O suporte de comunicação pode usar várias mensagens unicast para enviar ao grupo. 2.3. Aplicações Aplicações em sistemas distribuídos podem ser empregadas em diversas áreas, a saber: - Difusão de áudio e vídeo - Teleconferências - Trabalho cooperativo - Bancos de dados distribuídos - Sistemas transacionais distribuídos - Memória compartilhada distribuída - Replicação de serviços (Distribuição de carga e tolerância a faltas) 2.4. Confiabilidade Em geral, os protocolos de difusão não são confiáveis. Alguns receptores podem receber uma mensagem e outros não. Isto pode causar inconsistências de estado em sistemas que utilizem replicação. Algumas aplicações exigem que os dados estejam consistentes em todas as réplicas. Exemplo: Um update em réplicas de um banco de dados. Se uma réplica não recebe a instrução de update, esta ficará inconsistente. 2.4.3. DIFUSÃO CONFIÁVEL Protocolo de difusão confiável (Reliable Mulsticast) é capaz de recuperar mensagens corrompidas durante o envio. Mensagens recebidas pelo protocolo só serão entregues para os membros do grupo quando satisfizerem as propriedades: - Integridade: Um membro do grupo recebe uma mensagem no máximo uma vez e apenas se esta foi previamente difundida no grupo. 1 No caso de um unicast, todas as máquinas exceto a destinatária ignoram a mensagem. No caso de um multicast, as máquinas de fora do grupo descartam a mensagem. 3

- Validade: Se um emissor difunde uma mensagem no grupo, esta será entregue em algum momento para os membros do grupo que estiverem funcionando corretamente. - Acordo(Agreement): Se um membro do grupo recebe uma mensagem, então todos os membros do grupo que estiverem funcionando corretamente também a receberão. 2.4.4. FORMAS DE IMPLEMENTAÇÃO - Algoritmo clássico: exige que um membro do grupo, ao receber uma mensagem pela primeira vez a envie aos demais membros do grupo. - Algoritmo usando ACKs: todos devem responder ao emissor se receberam a mensagem, e este pode então recuperar erros. - Algoritmo usando NACKs: receptor solicita reenvio de mensagens que não recebeu e que outros membros do grupo receberam. 2.5. Acordo O acordo é necessário para que os membros de um grupo atuem de forma coordenada. Todos devem ter a mesma visão do sistema, devendo agir de maneira consistente. Acordos precisam ser estabelecidos mesmo que alguns dos membros do grupo apresentem falhas, inclusive maliciosas. Exemplos de aplicação de acordo: - Os computadores de bordo de um avião devem decidir as ações a serem tomadas (posicionar APS, alimentar turbinas, etc.). - Em uma transferência de fundos, os computadores envolvidos na transação devem concordar em efetivá-la ou não. - Em uma eleição, devem entrar em acordo em relação a quem será eleito. - Em um algoritmo de ordenação, devem decidir a ordem de entrega das mensagens. 2.5.1. ALGORITMOS DE ACORDO Em geral exigem um processo de eleição. Cada membro do grupo apresenta sua visão do fato que está sendo analisado (ex.: ordem das mensagens recebidas) enviando mensagens aos demais membros do grupo ou a um coordenador da eleição. A proposta vitoriosa será escolhida com base em alguma regra (ex.: maior número de votos, valor médio/+alto/+baixo das respostas, etc.) 2.6. Ordenação Na ordenação de mensagens diferentes requisitos podem ser impostos na ordem de entrega aos membros de um grupo, em função das necessidades da aplicação, como, por exemplo, nos modos de operação: - Ordem FIFO - Orem Lógica 4

- Ordem Causal - Ordem Temporal - Ordem Total 2.6.1. ORDENAÇÃO FIFO As mensagens enviadas por um membro do grupo são entregues na ordem de envio a qualquer outro membro do grupo que estiver funcionando corretamente. 2.6.2. ORDENAÇÃO CAUSAL Se um membro do grupo responde uma mensagem enviada ao grupo, os membros do grupo que funcionam corretamente receberão a resposta após a mensagem que a originou. 2.6.3. ORDENAÇÃO LÓGICA Uma mensagem M1 precede logicamente M2, e será recebida nesta ordem por todos os membros do grupo que estiverem funcionando corretamente, se e somente se: - M1 foi enviada antes de M2 pelo mesmo membro do grupo. - M1 foi entregue a um membro do grupo antes deste enviar M2. - Existe M3 tal que M1 precede M3 e M3 precede M2. 5

2.6.4. ORDENAÇÃO TEMPORAL Uma mensagem M1 precede temporalmente M2, e será recebida nesta ordem por todos os membros do grupo que estiverem funcionando corretamente, se e somente se M1 foi enviada antes de M2 com uma diferença de tempo maior que um certo t. 2.6.5. ORDENAÇÃO TOTAL As mensagens serão entregues na mesma ordem a todos os membros do grupo que estiverem funcionando corretamente. 2.7. Redes Peer-to-Peer São sistemas distribuídos nos quais os membros da rede são equivalentes em funcionalidade. Não existe qualquer forma de controle centralizado ou de hierarquia entre membros. 2.7.1. CARACTERÍSTICAS - Auto-organização: não há um coordenador do grupo; toda a coordenação é distribuída; - Adaptabilidade: rede se ajusta ao ambiente, mesmo que ocorram falhas; - Escalabilidade: rede cresce em escala facilmente; não há ponto de estrangulamento; - Comunicação direta entre os pares: se opõe ao tradicional modelo cliente-servidor, já que cada nó pode ser cliente e servidor; 6

2.7.2. UTILIZAÇÃO É muito utilizado no compartilhamento de arquivos, imagens, músicas, vídeos, etc, bem como na atualização de sistemas operacionais e de software aplicativo, gerenciamento de redes e sistemas, processamento distribuído, sincronização de bancos de dados, difusão de informações, etc. Exemplo: Napster, Gnutella, e-mule, JXTA,etc Vide artigo sobre JXTA no site.br/artigos.php 7