conceitos fundamentais sobre sistemas distribuidos

39
 Conceitos Fundamentais sobre Sistemas Distribuídos Professor: Edmilson D. Verona Disciplina: Programação Distribuída

Upload: gislaine-matos

Post on 18-Jul-2015

128 views

Category:

Documents


0 download

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.

 

5/16/2018 Conceitos Fundamentais Sobre Sistemas Distribuidos - slidepdf.com

http://slidepdf.com/reader/full/conceitos-fundamentais-sobre-sistemas-distribuidos 39/39

Discussão• Facilidade de desenvolvimento?• Desempenho?• Transparência?• Escalabilidade?• Flexibilidade?