Comunicao interprocessos Sistemas distribudos Prof Diovani Milhorim Comunicao
Comunicação interprocessos Sistemas distribuídos Prof. Diovani Milhorim
Comunicação interprocessos Contextualização
Comunicação interprocessos Introdução n Sistemas distribuídos implicam em comunicação entre processos: Compartilhamento de memória (sistema realmente distribuído) ¨ Troca de mensagens ¨ n n Cópia de dados de um espaço de memória a outro. Passagem de mensagem Conjunto de primitivas para comunicação entre processos baseada em um protocolo de troca de mensagens. ¨ Esconde detalhes de protocolos de comunicação ¨ Tratamento de heterogeneidade ¨ Exemplos: sockets, java RMI, etc. . . ¨
Comunicação interprocessos Características desejáveis: n n Simplicidade e clareza de uso. Semântica uniforme ¨ n processos locais e remotos utilizam a mesma interface de comunicação. Eficiência ¨ Baixo custo de processamento n n n Minimizar custo de estabelecimento/manutenção de conexão Uso de piggybacking para eliminar mensagens adicionais. Confiabilidade ¨ ¨ ¨ Garantir entrega das mensagens em presença de falhas. Eliminar(tratar) replicação de mensagens. Ordenamento de mensagens
Comunicação interprocessos Características desejáveis: (continuação) n Correção ¨ ¨ atomicidade: todos ou nenhum recebem. Entrega ordenada: n ¨ n Nem todas as aplicações tem as mesmas necessidades. Segurança: ¨ ¨ n Garantia de entrega. Flexibilidade ¨ n mensagens chegam na mesma ordem a todos os processos. Autenticação dos pares Codificação das mensagens Portabilidade ¨ Aplicações e das bibliotecas (heterogeneidade)
Comunicação interprocessos Modelos de comunicação: n Duas primitivas básicas : Send e Receive ¨ n Envio de mensagens: (send) ¨ n Duas semânticas: Bloqueante e não bloqueante Inclusão de mensagem em uma fila remota Recepção da mensagem: (receive) ¨ Retirada da mensagem de uma fila local.
Comunicação interprocessos Comunicação síncrona vs. Assíncrona n Comunicação: Síncrona: Processos usam versão bloqueante da primitiva. ¨ Assíncrona: Processos usam versões não bloqueantes da primitiva. ¨ n Desvantagens da comunicação síncrona. Limitação da concorrência ¨ Possibilidade de deadlock. ¨ n Vantagens da comunicação síncrona. ¨ n Programação simples. Vantagens e desvantagens da Assíncrona são “dual” da síncrona.
Comunicação interprocessos Semântica de sincronicação send/receive n Semântica do send: Bloqueante: O processo do send espera a execução do receive correspondente. ¨ Não bloqueante: O processo fonte prossegue com a execução tão logo a mensagem seja recebida (bufferizada). ¨ n Semântica do receive Bloqueante: processo destino é bloqueado até que a mensagem seja recebida. ¨ Não bloqueante ¨ n n Processo de destino retorna da chamada tão logo seja reservada uma área de memória para recepção da mensagem. Necessidade de saber se a mensagem chegou ¨ ¨ Pooling: primitiva do tipo teste Interrupção (signal)
Comunicação interprocessos Estudo de caso: Protocolos Internet e API Socket n n TCP e UDP usam a abstração de socket. Define um ponto de comunicação (ip e porta) Uma porta não pode ser compartilhada por vários processos. ¨ Vários processos podem enviar para uma mesma porta ¨
Comunicação interprocessos Comunicação por datagrama UDP n n n Baseada em uma unidade de transmissão: datagrama Transmitido do remetente ao destino sem confirmação ou tentativa de reenvio. ¨ Mensagens podem não chegar. Aspectos a serem considerados. ¨ Tamanho da mensagem. ¨ Bloqueio ¨ Time-out ¨ Recepção anônima
Comunicação interprocessos Aspectos da comunicação UDP: n Tamanho da mensagem: ¨ Necessidade de especificar o tamanho da área de recepção. n n Bloqueio ¨ ¨ n Geralmente Send é não bloqueante e Receive é bloqueante. Recomendável uso de threads. Time-out ¨ ¨ n Se menor que o necessário – mensagem truncada Limitar tempo de espera do receive Problema: dimensionar o time-out Recepção anônima ¨ Receive não especifica uma origem, porem é possível identificar a fonte.
Comunicação interprocessos Modelo de falhas UDP. n Comunicação confiável implica em duas Propriedades: Validade: Qualquer mensagem é entregue a seu destino. ¨ Integridades: Mensagens não podem ser corrompidas nem duplicadas. ¨ n Datagramas UDP falham por: Falhas por omissão: Mensagens podem ser perdidas ou descartadas ¨ Ordenamento: Mensagens podem ser entregues fora de ordem. ¨ n Responsabilidade dos aplicativos tratarem com as falhas
Comunicação interprocessos Comunicação por fluxo TCP n Define a abstração de fluxo (stream) ¨ n Dados podem ser lidos e escritos. Características de um fluxo TCP ¨ ¨ ¨ Não define limite de tamanho para mensagens. Efetua controle de erro. Regula controle de fluxo (regula a taxa de leitura e escrita no fluxo para prevenir overflow) Garante entrega ordenada e não duplicação dos dandos. Define a abstração de conexão como identificadores de processo origem e destino.
Comunicação interprocessos Comunicação por fluxo TCP n Define a abstração de fluxo (stream) ¨ n Dados podem ser lidos e escritos. Características de um fluxo TCP ¨ ¨ ¨ Não define limite de tamanho para mensagens. Efetua controle de erro. Regula controle de fluxo (regula a taxa de leitura e escrita no fluxo para prevenir overflow) Garante entrega ordenada e não duplicação dos dandos. Define a abstração de conexão como identificadores de processo origem e destino.
Comunicação interprocessos Aspectos na comunicação TCP n Correspondência entre itens de dados ¨ Processos devem concordar quanto ao conteúdo dos dados transmitidos. n n Bloqueio ¨ Dados enviados em um fluxo são mantidos até serem lidos. n n n Se um enviar n bytes como sendo inteiro o outro deve concordar Processo destino é bloqueado se tentar ler dados não disponíveis. Processo remetente é bloqueado pelo fluxo TCP se não há espaço disponível no destinatário para recepção. Threads ¨ Recomendável para simplificar programação sem bloqueio ( várias threads = vários fluxos = maiores buffers)
Comunicação interprocessos Modelo de falhas do TCP n Funcionamento do TCP: ¨ Validade: Usa timeout e retransmissões para tratar perda de mensagens. ¨ Integridade: Uso de checksum e número de seqüência para garantir mensagens não corrompidas nem duplicadas. n Não totalmente confiáveis: ¨ Conexões TCP podem ser desfeitas: n Processo não distinguem entre falha de rede e falha de processo n Processos não sabem identificar ser mensagens enviadas recentemente foram recebidas ou não
Comunicação interprocessos Representação externa de dados: n Informação (dados) é representada em uma estrutura de dados. ¨ Na comunicação informação é igual a uma seqüência de bytes. n n Problema: ¨ ¨ n Necessidade de conversão estrutura de dados <> seqüência de bytes. Diferentes sistemas = diferentes estruturas de dados. Ex. Cod ASC versus Unicode, pontos flutuantes, etc. . . Solução: Conversão para um formato de dados acordado (external data representation) ¨ Enviar no formato do emissor e incluir informação sobre o formato empregado. ¨
Comunicação interprocessos Princípio da representação externa de dados:
Comunicação interprocessos Marshalling: n Processo de converter uma coleção de dados e organizá -los em um formato próprio para transmissão. ¨ n Idéia é que seja feito sem envolvimento explicito da aplicação. ¨ n Unmarshalling é o processo contrário. Responsabilidade do midleware. Duas técnicas básicas Conversão de dados para um formato binário ¨ Conversão de dados para um formato texto (ASCII) ¨ n Exemplos: Corba, serialização Java e XML
Comunicação interprocessos Corba: n n n Define 15 tipos básicos de dados e 6 construtores para os tipos mais complexos. ¨ Básicos: short, long, unsigned, float, double, etc. . ¨ Complexos: string, array, struct, etc. . . Dados são escritos atráves dos tipos e o midlleware executa o (un)marshalling via sua IDL (Interface definition language) Baseado na representação para um formato binário.
Comunicação interprocessos Serialização de objetos java n Transformação de um objeto em uma seqüência de bytes. ¨ ¨ n Comunicação de objetos via socket (RMI) Armazenamento em disco Como é disponibilizado ao usuário. Object. Output. Stream e Object. Input. Stream + métodos write. Object / read. Object. ¨ Classe do objeto implementa a interface serializable ¨ n n Métodos Default. Write. Object e Default. Read. Object. Formato binário ¨ ¨ ¨ Nome da classe Assinatura da classe Instância das variáveis.
Comunicação interprocessos e. Xtensible Markup Language (XML) n n Codificação textual para descrever estrutura e aparência Baseada em marcas tag ¨ Descrevem a estrutura lógica ¨ Associação por atributo-valor dos dados
Comunicação interprocessos Leitura recomendada: Coulouris – capitulo 4
- Slides: 23