aula 4

32
API PARA PROTOCOLOS INTERNET Comunicação entre processos Toda feita com base nas primitivas send e receive Características Comunicação Sincrona ou Assincrona Destinos de mensagem Confiabilidade Ordenamento SISTEMAS DISTRIBUÍDOS Comunicação

Upload: edblack1

Post on 21-Dec-2015

4 views

Category:

Documents


0 download

DESCRIPTION

Sistemas Distribuídos

TRANSCRIPT

API PARA PROTOCOLOS INTERNET

• Comunicação entre processos

• Toda feita com base nas primitivas send e receive

• Características

• Comunicação Sincrona ou Assincrona

• Destinos de mensagem

• Confiabilidade

• Ordenamento

SISTEMAS DISTRIBUÍDOS

Comunicação

• Comunicação Síncrona ou Assíncrona

• Síncrona:

• Remetente e Destino são sincronizados a cada mensagem

• Tanto o Send quanto o Receive são operações

bloqueantes

• Quando é feito um envio o remetente fica bloqueado até

que ele receba a recepção correspondente

• Quando um receive é executado o processo fica

bloqueado até que a mensagem chegue

API PARA PROTOCOLOS INTERNET

SISTEMAS DISTRIBUÍDOS

Comunicação

• Comunicação Síncrona ou Assíncrona

• Síncrona:

• Remetente e Destino são sincronizados a cada mensagem

• Tanto o Send quanto o Receive são operações

bloqueantes

• Quando é feito um envio o remetente fica bloqueado até

que ele receba a recepção correspondente

• Quando um receive é executado o processo fica

bloqueado até que a mensagem chegue

API PARA PROTOCOLOS INTERNET

SISTEMAS DISTRIBUÍDOS

Comunicação

• Comunicação Síncrona ou Assíncrona

• Assíncrona:

• Em ambientes multi-threads não há desvantagens em

utilizar receive bloqueante.

• A programação assíncrona envolve uma série de

complexidades por ter que reagir a informações

recebidas fora do seu fluxo

API PARA PROTOCOLOS INTERNET

SISTEMAS DISTRIBUÍDOS

Comunicação

• Comunicação Síncrona ou Assíncrona

• Assíncrona:

• Send é não bloqueante: Processo é liberado assim que

mensagem é copiada para o buffer

• Receive pode ser ou não bloqueante

• Receive não bloqueante: o processo é liberado logo

após a chamada. O buffer é reservado e o processo

será avisado logo que tiver dados.

API PARA PROTOCOLOS INTERNET

SISTEMAS DISTRIBUÍDOS

Comunicação

Ao trocar mensagens duas ou mais máquinas devemconcordar em, por exemplo:◦ No nível de sinal que será colocado na interface (característicafísica);

◦ Onde começa e onde termina os bits de que compõe a mensagem(característica de enlace de dados);

◦ Onde, quando e como os erros serão detectados;

◦ Como dados primitivos como caracteres, inteiros, números serãorepresentados e com que precisão.

◦ Etc.

Portanto, para torna fácil é necessário que os sistemasobedeçam um padrão de interfaces e regras de comunicação(Sistema Aberto).

SISTEMAS DISTRIBUÍDOS

Comunicação

1. Cenário

2. Depandabilidade

3. Defeito, Erro e Falha

4. Tolerância a Falha

5. Tipos de Falha

6. Técnicas de Dependabilidade

7. Mascaramento

8. Redundância

SISTEMAS DISTRIBUÍDOS

Introdução à tolerância a falha

• Em sistemas críticos a falha de um dos componentes podeimplicar em danos catastróficos: perdas de grandes somasde dinheiro, desastres ambientais, perdas de vidas humanasetc.

SISTEMAS DISTRIBUÍDOS

Introdução à tolerância a falha

Sistemas Críticos

• Sistemas de uma máquina (não-distribuídos) –

uma falha é quase sempre total;

• Sistemas distribuídos – pode ocorrer uma falha

parcial, quando um componente do sistema

falha.

• Objetivo: recuperar automaticamente de falhas

parciais sem afetar seriamente o desempenho global.

SISTEMAS DISTRIBUÍDOS

Introdução à tolerância a falha

• Atribuir confiança no funcionamento do sistema é

fundamental quando se fala em sistemas críticos.

• Dependability (Confiança no Funcionamento)

• Mede a confiança que se pode atribuir ao serviço

entregue pelo sistema.

• O serviço entregue pelo sistema determina o

comportamento do sistema, ou seja, como o

sistema é percebido pelos outros sistemas que

interagem com ele (exemplo, usuários).

SISTEMAS DISTRIBUÍDOS

Introdução à tolerância a falha

Confiança no funcionamento

Figura 1 - Resumo por Taíse 2002 pg.11

SISTEMAS DISTRIBUÍDOS

Dependability

• Tolerância a falhas está fortemente relacionada a

sistemas confiáveis. Confiabilidade é um termo que

abrange uma série de requisitos:

• Disponibilidade – O sistema está pronto para ser

usado imediatamente?

• Confiabilidade – O sistema funciona continuamente

sem falhas?

SISTEMAS DISTRIBUÍDOS

Dependability

• Tolerância a falhas está fortemente relacionada a

sistemas confiáveis. Confiabilidade é um termo que

abrange uma série de requisitos:

• Segurança – Se o sistema deixar de funcionar

corretamente por um certo tempo acontecerá algo

“catastrófico”?

• Capacidade de Manutenção – Um sistema que

falhou pode ser consertado facilmente?

SISTEMAS DISTRIBUÍDOS

Dependability

• Defeito – se um sistema não pode cumprir suas promessas, apresenta defeito. Ex.: Não consegue garantir as consistências prometidas.

• Erro – parte do estado de um sistema que pode levar a um defeito. Ex.: Pacotes danificados.

• Falha – é a causa de um erro. Ex.: Um meio de transmissão errado ou ruim pode danificar pacotes.

SISTEMAS DISTRIBUÍDOS

Defeito, Erro, Falha

• Tolerância a falhas: um sistema pode prover seus serviços mesmo na presença de falhas.

• Tipos de falhas:

• Falha transiente – ocorre uma vez e desaparece.

• Falha intermitente – ocorre, por um período indeterminado, reaparece, e assim por diante.

• Falha permanente – continua a existir até que o componente faltoso seja substituído.

SISTEMAS DISTRIBUÍDOS

Tolerância a falha

• Para melhor identificar as falhas, foram desenvolvidos diversos

esquemas de classificação, entre eles, o quadro abaixo:

SISTEMAS DISTRIBUÍDOS

Tipos de falha

Poderia ser considerado neste grupo a “segurança”, pois

intrusões maliciosas também podem acarretar em falhas

nos sistemas. (Taíse 2002 p. ).

SISTEMAS DISTRIBUÍDOS

Técnicas de Dependabilidade

Classificação em 4 fases de aplicação: detecção, confinamento, recuperação e tratamento.

SISTEMAS DISTRIBUÍDOS

Fases de Aplicação das Técnicas

O mascaramento pode ser considerado com uma técnica a parte e garante ao sistema respostas corretas mesmo na presença de falhas.

SISTEMAS DISTRIBUÍDOS

Mascaramento

• Para o sistema ser tolerante a falhas, as ocorrências destas devem ser ocultas de outros processos e dos usuários.

• A técnica fundamental para mascarar falhas é usar redundância:

• Redundância de informação – bits extras para recuperação de pacotes (Hamming);

• Redundância de tempo – executar novamente uma ação, se for preciso.

• Redundância física – adicionar equipamentos ou processos extras para possibilitar tolerância a perda ou mal funcionamento de alguns componentes.

SISTEMAS DISTRIBUÍDOS

Mascaramento de falha por redundância

Redundância

NOMEAÇÃO1. Nomes, identificadores e endereços

2. Nomeação simples

3. Nomeação estruturada

4. Nomeação baseada em atributo

SISTEMAS DISTRIBUÍDOS

NOMES, IDENTIFICADORES E ENDEREÇOS

•Nome: cadeia de bits ou caracteres usada para referenciar uma entidade.

• Entidade: “praticamente qualquer coisa”: hospedeiros, impressoras, discos, arquivos.

• Ponto de Acesso: um tipo de entidade especial que possibilita acesso para agir sobre uma entidade.

• Endereço: Nome de um ponto de acesso.

SISTEMAS DISTRIBUÍDOS

NOMES, IDENTIFICADORES E ENDEREÇOS

• Um ponto de acesso é fortemente associado a uma entidade;

• Necessário definir um nome que seja independente dos endereços da entidade.• Transparência de localização

• Necessário definir um nome construído para ser usados por seres humanos, normalmente formados por cadeias de caracteres.• nome amigável a seres humanos

SISTEMAS DISTRIBUÍDOS

NOMES, IDENTIFICADORES E ENDEREÇOS

• Como resolvemos nomes e identificadores para

endereços?

• Mantendo uma vinculação nome-endereço.

• Três classes diferentes de sistemas de nomeação:

1. Identificadores resolvidos para endereços (Nomeação

Simples);

2. Nomes amigáveis a seres humanos (Nomeação

Estruturada);

3. Nomes descritivos (Nomeação Descritiva)

SISTEMAS DISTRIBUÍDOS

NOMES, IDENTIFICADORES E ENDEREÇOS

• Identificador: Um nome que tem as seguintes propriedades:

1. Um identificador referencia, no máximo, uma entidade;

2. Cada entidade é referenciada por, no máximo, um identificador;

3. Um identificador sempre referencia a mesma entidade, isto é, nunca é reutilizado.

• Endereço Ethernet: cadeia aleatória de 48 bits;

• Endereços de memória: cadeias de 32 ou 64 bits.

SISTEMAS DISTRIBUÍDOS

NOMEAÇÃO1. Nomes, identificadores e endereços

2. Nomeação simples

3. Nomeação estruturada

4. Nomeação baseada em atributo

SISTEMAS DISTRIBUÍDOS

NOMEAÇÃO SIMPLES

• Identificadores são, em muitos casos, cadeias

aleatórias de bits (nomes não estruturados ou

simples);

• Como nomes simples podem ser resolvidos?

• Soluções simples aplicáveis somente em redes

locais:

• Broadcasting e multicasting

• Ponteiros repassadores

• Possuem problemas de escalabilidade!

SISTEMAS DISTRIBUÍDOS

NOMEAÇÃO ESTRUTURADAESPAÇOS DE NOMES

• Nomeação estruturada é usada para facilitar a interface com humanos.

• Nomes são organizados em espaços de nomes.

• Uso de grafos direcionados rotulados com dois tipos de nós:

• Nó-folha: (entidade nomeada, não tem ramos de saída)

• Nó de diretório: (possui vários ramos de saída, cada um rotulado com um nome.

• Armazena tabelas de diretório que é um par(rótulo do ramo, identificador do nó).

• Particularidade: Um nó que não tem ramos de entrada, apenas de saída, é denominado raiz.

SISTEMAS DISTRIBUÍDOS

NOMEAÇÃO ESTRUTURADAIMPLEMENTAÇÃO/DISTRIBUIÇÃO DE ESPAÇOS DE NOMES

• Para implementar um espaço de nomes, o mesmo deve ser dividido em camadas lógicas (três sugeridas):

1. Camada Global

– Nós do nível mais alto (raiz e nós próximos)

– Caracterizados por sua estabilidade.

2. Camada Administrativa

– Nós de diretório gerenciados por uma organização única.

– Relativamente estáveis (mudanças Adm. ≥ Global)

3. Camada Gerencial

– Podem representar hospedeiros de rede local.

– Caracterizados por mudança periódica

• Necessário estabelecer requisitos de desempenho e disponibilidade.

SISTEMAS DISTRIBUÍDOS

NOMEAÇÃO BASEADA EM ATRIBUTO

• Independência de localização (nomes simples) e ser

amigável a seres humanos (nomes estruturados) é

insuficiente: entra em questão a busca eficiente.

• Necessário, então, fornecer descrições a entidades:

uma das possíveis abordagens é fornecer

descrições a partir de termos de pares (atributo,

valor), o que é denominado nomeação baseada

em atributos.

SISTEMAS DISTRIBUÍDOS

NOMEAÇÃO BASEADA EM ATRIBUTOSERVIÇOS DE DIRETÓRIO

• Serviços de diretório é a denominação de um sistema baseado em atributos, enquanto sistemas que suportam nomeação estruturada são denominados sistemas de nomeação.

• Para sistemas distribuídos, um contexto relevante é a RDF(resource description framework, ou estrutura de descrição de recurso).• Recursos são descritos como triplas (sujeito,predicado,objeto).

Ex.: (Pessoa,nome,Alice)

• O sujeito, o predicado ou o objeto podem ser os recursos propriamente ditos ou referências para os mesmos (URL).

SISTEMAS DISTRIBUÍDOS

Andrew S. Tanenbaum

Maarten Van Steen

INTRODUÇÃO À TOLERÂNCIA A FALHAMASCARAMENTO DE FALHA POR REDUNDÂNCIA