Sistemas Distribuídos
|
|
|
- Luiz Felipe Fontes Chagas
- 8 Há anos
- Visualizações:
Transcrição
1 Sistemas Distribuídos PROF. MARCIAL PORTO FERNANDEZ PROF. ANDRÉ RIBEIRO CARDOSO 1
2 3. Comunicação em Sistemas Distribuídos 2
3 Sumário Comunicação em SD RPC RMI 3
4 Sumário Comunicação em SD RPC RMI 4
5 Contextualização Aplicação, serviços distribuídos RMI e RPC Protocolo requisição-resposta marshalling/unmarshalling e representação externa de dados Middleware UDP e TCP 5
6 Introdução Comunicação entre processos: Compartilhamento de memória Cópia de dados de um espaço de memória em outro Aplicável apenas em máquinas únicas (multiprocessadas) Passagem de mensagem Conjunto de primitivas para comunicação entre processos baseado em um protocolo de troca de mensagens Exemplos: Sockets, RPC, RMI etc. Pode ser usado em máquinas únicas ou máquinas distintas Utilizada em Sistemas Distribuídos 6
7 Características desejáveis (1) Simplicidade e clareza de uso Semântica simples Atende tanto a chamadas locais como remotas Necessidade de empacotamento/desempacotamento (Marshalling/Unmarshalling) Eficiência Busca de baixo custo de processamento Minimizar custos de estabelecimento/manutenção de conexões Uso do piggybacking para reduzir mensagens adicionais 7
8 Características desejáveis (2) Confiabilidade Garantir a entrega das mensagens em presença de falhas Eliminar (tratar) replicação de mensagens Ordenamento de mensagens Correção (associado a comunicação em grupo) Atomicidade: todos ou nenhum recebem Entrega ordenada: mensagens chegam na mesma ordem a todos os processos Garantia de entrega 8
9 Características desejáveis (3) Flexibilidade Nem todas as aplicações tem as mesmas necessidades Ex. Certas aplicações suportam perda de pacotes Segurança Autenticação de pares Codificação de mensagens Portabilidade Das aplicações e da própria biblioteca (heterogeneidade) 9
10 Comunicação de Processos Endereço IP e porta local definem destino da mensagem (Socket) Socket é descrito por uma API API para UDP estabelece a forma mais simples de comunicação entre processos: datagramas API para TCP estabelece uma conexão entre um par de processos definido como fluxo O par de sockets estabelece a conexão entre dois pontos finais 10
11 Modelos de comunicação Duas primitivas básicas: send e receive Duas semânticas: bloqueante e não bloqueante Envio de mensagem (send) Inclusão da mensagem em uma fila Recepção de mensagem (receive) Retirada da mensagem de uma fila Máquina 1 Máquina 2 Processo 01 Comunicação Síncrona ou Assíncrona Fila Processo 02 11
12 Comunicação entre Processos A comunicação entre processos pode ser Síncrona Assíncrona As primitivas de serviço podem ser do tipo Bloqueantes Não bloqueantes A comunicação segue dois modelos Persistente Transientes 12
13 Comunicação entre Processos Comunicação síncrona Os processos atendem a uma semântica de sincronização. O processo transmissor da mensagem estabelece uma conexão e aguarda a resposta do processo remoto depois de enviada a solicitação. Comunicação assíncrona O processo transmissor não aguarda a resposta do servidor. Depois de bufferizada a mensagem para posterior envio, o processo segue, sem aguardar a resposta do processo remoto. 13
14 Comunicação entre Processos Técnicas para o processo remoto detectar a chegada de uma mensagem: Polling: Uma primitiva test permite ao receptor verificar se alguma mensagem chegou antes de chamar a primitiva receive Interrupt: Uma interrupção de software é usada para notificar o processo receptor quando chega uma mensagem e esta é armazenada no buffer 14
15 Comunicação Síncrona vs Assíncrona Comunicação Síncrona: sincronização entre processos Primitivas send e receive bloqueantes Vantagens Simplicidade de programação Desvantagens Limitação de concorrência Possibilidade de deadlocks 15
16 Comunicação Síncrona vs Assíncrona Comunicação Assíncrona: inexistência de sincronização Primitiva send não bloqueante Processo remetente prossegue após a mensagem ser copiada no buffer local Transmissão ocorre paralelamente ao processo remetente Primitiva receive apresenta duas variantes Com bloqueio Sem bloqueio 16
17 Semântica de sincronização send e receive Semântica do send Bloqueante: o processo do send espera a execução do receive correspondente (síncrono) Não bloqueante: o processo do send prossegue com a execução tão logo a mensagem seja bufferizada localmente e enviada (assíncrono) 17
18 Semântica de sincronização send e receive Semântica do receive Bloqueante: o processo destino é bloqueado até que a mensagem seja recebida ou até um time-out (síncrono) Processos que suportam multithreads não apresentam desvantagens. Outras threads permanecem ativas com sincronização individual Não bloqueante (implementação complexa): Processo destino prossegue execução após bufferização da mensagem (passa para o núcleo o ponteiro e retorna antes da mensagem ser enviada) Necessidade de notificação de chegada da mensagem no buffer por meio do polling ou interrupção 18
19 Comunicação entre Processos Comunicação persistente A mensagem submetida à transmissão é armazenada nos sistemas de comunicação e assim que possível é entregue ao seu destino, não sendo necessário que os processos send e receive estejam executando Comunicação transiente A mensagem submetida à transmissão é armazenada nos sistemas de comunicação, se e somente se, os processos send e receive estirem executando 19
20 Representação Externa de Dados Constatação Informações armazenadas em processos são representados como estruturas de dados Informações presentes nas mensagens são sequências de bits Estruturas de dados devem ser convertidas em sequencias de bytes, transmitidas e reconstruídas na chegada Dados primitivos (ex. Inteiros) não são armazenados na mesma ordem em diferentes arquiteturas (little-endian e big-endian) Codificação de caracteres (ex. ASC II 1 B/char, Unicode 2B/char) 20
21 Representação Externa de Dados Solução Conversão de valores para um formato externo, acordado antes da transmissão e convertido para a forma local na recepção (se computadores são do mesmo tipo, conversão desnecessária) Valores transmitidos no formato do remetente, junto com indicação do formato usado, e destinatário converte valores quando necessário Representação externa de Dados (XDR) padrão para representação de estruturas de dados e valores primitivos 21
22 Princípio da representação externa de dados Dados Formato para transmissão Marshalling Unmarshalling Formato para transmissão Dados 22
23 Marshalling (Empacotamento) Processo de converter uma coleção de dados e organizá-los em um formato próprio para transmissão Unmarshalling (Desempacotamento) é o processo oposto Ideal não haver o envolvimento explícito da aplicação (transparência - responsabilidade do middleware) Duas técnicas básicas Conversão dos dados para um formato binário (Serialização Java) Conversão dos dados para um formato texto (XML) 23
24 Serialização Java Objetos (instância de uma classe Java) e valores de dados primitivos podem ser passados como argumentos e resultados de invocações de método Ex: struct Person 24
25 Indicação da Forma Serializada Java Serialized values Explanation Person 8-byte version number h0 class name, version number 3 int year java.lang.string name: java.lang.string place: number, type and name of instance variables Smith 6 London h1 values of instance variables A verdadeira forma serializada contém identificadores de tipo adicionais; h0 e h1 são marcadores 25
26 extensible Markup Language (XML) Codificação textual para descrever estrutura e aparência Baseada em tags Descrevem a estrutura lógica dos dados Associação por atributo-valor 26
27 Comunicação cliente-servidor Interação mais comum Síncrona Envolve uma mensagem de requisição e uma de resposta Processo cliente bloqueia até receber resposta do servidor Confiável Resposta é a confirmação de que requisição chegou no servidor 27
28 Comunicação cliente-servidor Interação alternativa Invocações concorrentes Chamadas bloqueantes com múltiplas threads (Ex. Navegador Web) Invocações assíncronas Chamadas não bloqueantes (Ex. CORBA) Invocações assíncronas persistentes Chamadas tentam indefinidamente realizar uma invocação até obter êxito ou falha (Ex. RPC) 28
29 Comunicação cliente-servidor Operações send/receive Java Confirmações são redundantes Estabelecimento de conexão envolve mensagens extras, além da requisição/resposta Controle de fluxo é redundante Envio de pequenos argumentos e resultados 29
30 Protocolo requisição-resposta (1) Baseado em três primitivas dooperation getrequest sendreply dooperation.. (espera).. (continuação) Cliente Mensagem de requisição Mensagem de resposta getrequest seleciona objeto executa método sendreply Servidor 30
31 Protocolo requisição-resposta (2) Operações do protocolo request-reply public byte[] dooperation (RemoteObjectRef o, int methodid, byte[] arguments); Envia uma mensagem de requisição ao objeto remoto e retorna a resposta Os argumentos especificam o objeto remoto, o método a ser invocado e os argumentos desse método public byte[] getrequest (); Lê uma requisição de cliente por meio de porta do servidor public void sendreply (byte[] reply, InetAddress clienthost, int clientport); Envia a mensagem de resposta ao cliente em seu endereço IP e porta 31
32 Protocolo requisição-resposta (3) Definição de uma mensagem (supondo RMI) Tipo de mensagem ID Requisição (requestid) Referência Objeto ID método (methodid) Argumentos int (0=Request 1=Reply) Int (Id msg + Id proc) RemoteObjectRef int ou Method // array de bytes Campos da Referência ao Objeto 32 bits 32 bits 32 bits 32 bits Internet address port number time object number interface of remote object 32
33 Modelo de falhas (1) Se implementadas sobre UDP: omissão e ordenamento Podem sofrer de falhas nos processos Tratamento de falhas Timeout: reenvio da requisição em caso de não recebimento da resposta Foi perdida a requisição ou a resposta? 33
34 Modelo de falhas (2) Perda de mensagens de requisição e de resposta Reenvio da mensagem de requisição Re-execução (se possível) da ação para reenviar a resposta (operações idempotentes) Histórico Armazenamento das respostas enviadas anteriormente Problema: dimensionamento do histórico 34
35 Protocolos de troca Name R Request Messages sent by Client Server Client RR Request Reply RRA Request Reply Acknowledge reply 35
36 Sumário Comunicação em SD RPC RMI 36
37 Contextualização Aplicação, serviços RPC, RMI e eventos Protocolo requisição-resposta e representação externa de dados Middleware UDP e TCP / SO 37
38 Chamada de Procedimento Local fd: int arquivo buf:vetor de caracteres nbytes: int nr de bytes a serem lidos Chamada de procedimento count = read(fd, buf, nbytes) Variáveis locais do programa Ponteiro da pilha Variáveis locais do programa nbytes buf fd end. retorno variáveis locais de read Procedimento end. retorno em Registrador é removido da pilha Ponteiro da pilha Passagem de parâmetros em uma chamada local A pilha antes e depois do procedimentos 38
39 Chamada de Procedimento Local Por valor (fd ou nbytes): Parâmetro copiado para a pilha. Mudanças no valor não afetam quem chamou o procedimento. Por referência (buf): Referência ao parâmetro copiada para a pilha, isto é, um ponteiro (endereço de memória) da variável. Alterações no valor no procedimento chamado afetam quem o chamou. Call-by-copy/restore: Parâmetro copiado para a pilha e depois da chamada copiado de volta, sobrescrevendo o valor original. Possui a mesma semântica da cópia por referência exceto em situações com mesmo parâmetro sendo enviado mais de uma vez 39
40 Introdução a chamadas remotas Idéia fundamental de RPC é fazer com que uma chamada de procedimento remoto pareça o mais possível com uma chamada local (RPC transparente) Necessidade de desenvolver aplicações distribuídas de forma simples Solução: estender modelos de programação convencionais 40
41 Introdução a chamadas remotas Três modelos Procedural Remote Procedure Call (RPC) Orientado a objetos Remote Method Invocation (RMI) Baseado em eventos Chamada a eventos remotos (CORBA) Provido através do middleware Software que fornece um modelo de programação acima dos blocos de construção básicos e de processos e de passagem de mensagens Oferece abstração de processos, comunicação e serviços Ex: RPC/RMI são baseados no protocolo request-reply 41
42 Apectos importantes do middleware Transparência de localização Procedimento/método/evento são chamados e apresentam mesmo comportamento (sintaxe e semântica) independente de serem locais ou remotos Protocolo de comunicação Independente do protocolo de transporte Independência de plataforma (hardware e SO) Uso de representação externa de dados (marshalling e unmarshalling) Primitivas para criação de unidades de execução, sincronização etc. independentes dos Sos Uso de linguagens de programação Permitir ou não o emprego de várias linguagens no desenvolvimento da aplicação distribuída 42
43 Remote Procedure Call (RPC) Princípio de RPC entre um programa cliente e um programa servidor Cliente Espera pelo resultado Chamada de procedimento remoto Servidor Requisição Resposta Chamada de procedimento local e remoto de resultados Retorno da chamada Tempo 43
44 Implementação de chamada RPC - Resumo 1. O procedimento cliente chama localmente o stub cliente 2. O stub cliente constrói a mensagem e chama o SO local 3. O SO local envia a mensagem ao SO remoto 4. O SO remoto entrega a mensagem ao stub servidor 5. O stub servidor desempacota os parâmetros e chama o procedimento servidor 6. O servidor realiza o trabalho retornando o resultado ao stub 7. O stub servidor empacota o resultado em uma mensagem e chama o SO local 8. O SO do servidor envia a mensagem ao SO do cliente 9. O SO do cliente entrega a mensagem ao stub cliente 10. O stub cliente desempacota o resultado e o retorna ao cliente 44
45 Remote Procedure Call (RPC) Computador Cliente Processo Cliente Computador Servidor Processo Servidor Chamada Local Retorno Local Cliente Empacotar Argumentos Desempacotar resultados Stub Cliente Enviar request Receber reply Módulo de comunicação Receber request Enviar reply Módulo de comunicação Desempacotar Argumentos Selecionar Procedimento Empacotar resultados Stub Servidor Executar Procedimentos Retornar Procedim Servidor Dispatcher 45
46 Implementação do RPC Geração de stubs Manualmente: responsabilidade do desenvolvedor construir stubs e parâmetros Automaticamente: baseado em um compilador IDL para gerar códigos a serem integrados aos códigos do desenvolvedor ex: rpcgen compila a interface date.x 46
47 Implementação do RPC Desenvolvimento de Aplicações cliente/servidor RPC 1. Identificar quais funcionalidades devem estar no programa principal e quais sub-rotinas serão acionadas no servidor. (por convenção é salvo em um arquivo date.x ) identificação do programa chamado identificação da versão do procedimento identificação do procedimento tipo dos dados enviados (argumentos) tipo dos dados retornados pelo procedimento 47
48 Implementação do RPC Desenvolvimento de Aplicações RPC (cont) 2. Aplicar o utilitário de geração dos módulos cliente e servidor no arquivo IDF gerado - Compilar o arquivo de protocolo com o utilitário rpcgen módulos produzidos pelo rpcgen: arquivo de cabeçalho com definições comuns do cliente e servidor (date.h) conjunto de rotinas XDR que traduzem os tipos definidos no arquivo de cabeçalho programa stub servidor RPC programa stub cliente com as chamadas RPC 48
49 Implementação do RPC Desenvolvimento de Aplicações RPC (cont) 3. Modificar os arquivos do cliente e do servidor para que atendam o objetivo desejado para a aplicação. Desenvolver a aplicação servidor Desenvolver a aplicação cliente. 4. Compilar os códigos alterados e colocá-los em hosts cliente e servidor 49
50 Implementação RPC 50
51 Stubs (Esqueleto) Implementações dos procedimentos executados remotamente Stub cliente Executa o marshalling dos argumentos Envio da mensagem (request) ao processo servidor Bloqueia até receber mensagem (reply) Executa o unmarshalling e repassa à aplicação 51
52 Stubs Stub servidor Espera pelos requests Executa o unmarshalling dos argumentos Chama o procedimento associado (chamada local) Dispatcher Executa o marshalling do resultado Envia o reply ao processo cliente 52
53 Interfaces Descrição de procedimentos e de variáveis podendo ser acessadas por outros módulos Nome Parâmetros de entrada e saída (inclui tipos) Passagem de parâmetros por valor e/ou referência 53
54 Transparência: Localização de serviços Problemas Sun RPC não posui um serviço de ligação para uma network-wide Cada procedimento remoto é identificado de forma única: No do programa, No da versão, No do procedimento Ele provê um serviço local chamado de portmapper executado em todos computadores O cliente precisa especificar o nome do servidor assim como o número e versão do programa 54
55 O Serviço de Portmapper Localização da porta do servidor pelo cliente protocolos de transporte não provêem este serviço é preciso estabelecer um serviço para mapear portas este serviço é chamado de portmapper o portmapper é implementado e executado no lado servidor 55
56 O Serviço de Portmapper Ele fará o mapeamento de um número de programa para uma porta TCP/IP ou UDP/IP Quando o cliente fizer uma chamada RPC: 1- É feita uma chamada ao portmapper do servidor para obter a porta em que o serviço está executando 2- A chamada RPC é realizada diretamente para a porta obtida 56
57 Agente de binding Broadcasting Cliente faz um broadcast para saber quem oferece o serviço Emprego de um servidor de nomes (agente de binding) Fornece a localização de determinado serviço (portmapper) Mantém uma tabela serviço versus máquina (servidor) 57
58 Agente de binding 58
59 Agente de binding Agente de binding oferece três primitivas básicas register. servidor registra serviços que executa deregister. servidor cancela serviço que executa lookup. cliente emprega para consultar quem presta determinado serviço Como encontrar o agente de binding? Endereço fixo conhecido por todos clientes versus broadcasting 59
60 Quando o binding é realizado? Tempo de compilação Os nomes de serviços e servidores são hard-coded no cliente e servidor Tempo de ligação Cliente consulta agente binding no momento de sua inicialização Tempo de execução Cliente consulta agente de binding na primeira chamada do serviço 60
61 Mais questões sobre transparência RPC possui transparência sintática, porém difícil de ser obtida semanticamente Impossibilidade de uso de variáveis globais Passagem de parâmetros por referência (há formas de contornar) Como RPC trabalha diante da vulnerabilidade a falhas Problemas possíveis Mensagens (request/reply) podem ser perdidas Cliente não localiza servidor Servidor Falha após receber request Cliente falha após enviar request 61
62 Mais questões sobre transparência Cliente Temporiza requests Percebe falta de resposta e retransmite Como RPC trabalha diante da vulnerabilidade a falhas Recebe e processa a primeira request Recebe novamente a request Retransmite o reply, sem repetir o processamento Latência na execução Tempo de execução é sensível a atrasos na rede 62
63 Falha de colapso do servidor O servidor falhou antes ou depois de ter executado a requisição??? Semânticas da execução Exatamente uma vez (exactly once) semântica local Talvez (may be) Pelo menos uma vez (at least once) No máximo uma vez (at most once) 63
64 Semântica may be Cliente não sabe se o procedimento foi executado ou não Ocorre quando não há medidas de tolerância a falhas Falhas de omissão: perda de request ou reply Falhas de servidor: crash - colapso 64
65 Semântica at least once Cliente recebe um resultado ou uma execução Erro normalmente provoca retransmissão da requisição Mascara a falha por omisão Falhas Colapso do servidor Arbitrária (bizantina): a retransmissão do request pode fazer com que procedimento não idempotente seja executado mais de uma vez provocando resultados errados Semântica empregada pela SUN RPC 65
66 Semântica at most once Cliente recebe um resultado ou uma execução Ao não receber o resultado O procedimento foi executado uma vez, ou O procedimento não foi executado Implica em tratamento para garantir que o procedimento seja executado apenas uma vez Solução: histórico de requisições 66
67 Falha de colapso do cliente Cliente envia uma request e entra em colapso Conseqüência: computação orfã Problemas com computações orfãs Desperdício de CPU no servidor, locks realizados no cliente e não liberados, confusão com a resposta que chega (quem fez?), problemas de seqüência etc. Soluções possíveis Extermínio Reencarnação Expiração 67
68 Extermínio, reencarnação e expiração Extermínio Cliente loga requisições, no reboot as pendentes são canceladas e refeitas Problema é o tamanho do log em disco e computações disparadas pelos orfãos Reencarnação A cada boot o cliente envia uma época (data) para o servidor Computações da época -1 são canceladas 68
69 Extermínio, reencarnação e expiração Expiração Baseado no fato que o cliente confirma a recepção do resultado (commit) Se o servidor não recebe o commit dentro de um tempo, a operação é desfeita O tempo (timeout) pode ser negociado 69
70 Sumário Comunicação em SD RPC RMI 70
71 Contextualização Aplicação, serviços RPC, RMI e eventos Protocolo requisição-resposta e representação externa de dados Middleware Sistema Operacional 71
72 Comunicação entre objetos distribuídos por meio do RMI Modelo de objeto Objetos distribuídos Modelo de objetos distribuídos Problemas de projeto Implementação Coleta de Lixo 72
73 Modelo de objeto Programa: conjunto de objetos interagindo Objeto: conjunto de dados e métodos Interação de objetos: invocação de métodos e passagem de argumentos com recebimento de resultados Objetos (variáveis do tipo objeto) Objetos podem encapsular seus dados e o código de seus métodos 73
74 Modelo de objeto Referências de objetos são diferentes de ponteiros Objetos são acessados por meio de referências Ex: uma variável que parece conter um objeto, na verdade contém uma referência ao objeto (invocação do método: refobjeto.método() Interface Fornece a definição das assinaturas de um método (tipos de seus argumentos, valores de retorno e exceções) Objeto A Dados Métodos 74
75 Modelo de objeto Ação Resultado da execução de um objeto invocando um método em outro objeto Uma invocação pode incluir argumentos para executar o método O objeto receptor executa o método e retorna o controle para o objeto que fez a invocação, as vezes fornecendo o resultado A ativação de um método conduz a três efeitos O estado do objeto receptor pode ser alterado (estado = variáveis) Um novo objeto pode ser instanciado pelo uso de um construtor (Java ou C++) Podem haver outras invocações em métodos de outros objetos 75
76 Modelo de objeto Exceções Cada método descreve as condições de erro que ele pode encontrar e fazer com que usuários as tratem adequadamente Duas primitivas: throw (sinalizar evento) e catch (capturar evento) Garbage collection Limpeza automática de áreas de dados não mais usadas (objetos) 76
77 Objetos distribuídos Estado de um objeto consiste nos valores de suas variáveis de instância Sistemas de objetos distribuídos adotam arquitetura cliente-servidor Objetos gerenciados pelos servidores Clientes invocam seus métodos usando invocação a método remoto (RMI) Podem adotar outros modelos arquiteturais Objetos replicados para usufruir da tolerância a falhas e do melhor desempenho 77
78 Objetos distribuídos Vantagens Reforça o conceito de encapsulamento (objetos clientes e servidores em diferentes processos/computadores) O estado do objeto só é modificado através de seus métodos Acesso a objeto via método Reflexo em heterogeneidade (diferentes formatos de dados podem ser usados em diferentes instalações) 78
79 Modelo de objeto distribuído Pontos fundamentais Invocação local de métodos passa a ser remota: RMI Invocação de um método entre objetos localizados em diferentes processos podendo estar na mesma máquina ou não Objetos remotos: objetos que podem receber invocações remotas 79
80 Modelo de objeto distribuído Pontos fundamentais Fazer referência a objetos em outros espaços de endereçamento (processos) Referência de objeto remoto ( A precisa conter uma referência de objeto remoto para o objeto B ) Especificar quais métodos podem ser invocados remotamente Interface remota ( A deve saber o que, e como chamar de B ) A remote invocation B local C invocation local E invocation local invocation D remote invocation F 80
81 Modelo de objeto distribuído Referência a objeto Cada processo contém um conjunto de objetos que recebem invocações Locais Remotas End IP Porta Hora No Objeto Interface Obj Remoto 81
82 Modelo de objetos distribuídos Outros objetos podem invocar métodos de um objeto remoto somente se tiverem acesso a sua referência deste objeto remoto Identificador único do objeto do sistema Pode ser utilizado como parâmetro ou resultado de uma invocação de método remoto A remote invocation B local C invocation local E invocation local invocation D remote invocation F 82
83 Modelo de objetos distribuídos Interface remota Todo objeto remoto possui uma interface remota que especifica quais métodos podem ser invocados remotamente (proxy) Implementada pela classe objeto remoto Adquirem a capacidade de interfaces remotas estendendo-a como Remote (disparam exceções RemoteException) O objeto remoto possui a interface especificada em uma IDL remoteobject remote interface Data { m1 m2 implementation m3 of methods m4 m5 m6 83
84 Modelo de objeto distribuído Ações em um sistema distribuído Ação: resultado da execução de um método sobre um objeto Na instanciação de um novo objeto, o objeto fica dentro do processo onde a instanciação é feita onde o construtor foi usado Se objeto tiver interface remota, ele será um objeto remoto com uma referência de objeto remoto 84
85 Modelo de objeto distribuído Em SDs, objetos envolvidos podem estar em processos diferentes (ou em computadores diferentes) Uso da RMI é usada e a referência ao objeto remoto deve estar disponível para o invocador 85
86 Problemas de projeto para RMI Semântica No protocolo request-reply a operação dooperation pode ser implementada Re-tentativa de msg de requisição até receber uma resposta ou servidor falhar Filtragem de duplicatas quando retransmissões eliminam requisições replicadas Retransmissão de resultados a fim de permitir que os resultados perdidos sejam retransmitidos sem uma execução das operações no servidor (operações não idempotentes) 86
87 Problemas de projeto para RMI Semântica Combinações dessas escolhas levam a semântica do RMI Semântica de invocação talvez Semântica de invocação pelo menos uma vez (RPC) Semântica de invocação no máximo uma vez (RMI) 87
88 Problemas de projeto para RMI Semântica Fault tolerance measures Invocation semantics Retransmit request message Duplicate filtering Re-execute procedure or retransmit reply No Not applicable Not applicable Maybe Yes No Re-execute procedure At-least-once Yes Yes Retransmit reply At-most-once 88
89 Problemas de projeto para RMI Transparência A latência de uma chamada local é bem inferior a de uma chamada remota Chamadas remotas são mais vulneráveis a falhas do que chamadas locais As invocações de métodos remotos são iguais as invocações de métodos locais, porém, as diferenças entre os métodos remotos e locais devem estar expressos em suas interfaces (classes de objetos remotos em Java implementam a interface Remote) 89
90 Problemas de projeto para RMI Comunicação em um sistema de objetos distribuídos Invocação de método para objetos que estão localizados em diferentes processos Coleta de lixo de objetos remotos Se a linguagem possuir coleta de lixo locais para objetos locais, então o mesmo deve valer para objetos remotos Exceções A invocação remota de um método pode causar uma exceção levantada pelo método ou devido a problemas decorrentes da distribuição (crash de um objeto, problema no canal de comunicação - timeouts) 90
91 Implementação RMI Módulo de comunicação { Tipo da mensagem int (0=Request, 1=Reply) Identificador da requisição (RequestID) int Referência do Objeto (RemoteObjectRef) Identificador de método (methodid) int ou Method Argumentos // array de bytes } RMI 91
92 Implementação RMI Módulo de Comunicação: Protocolo Request-Reply Dois módulos cooperam para executar o protocolo request-reply para transmitir msgs entre cliente-servidor Módulo de comunicação: 3 primeiras camadas Tipo de msg, requestid e RemoteObjectRef Software RMI: 2 outras camadas methodid e todo empacotamento/desempacotamento Seleciona o despachante para a classe do objeto a ser invocado, passando a referência local obtida no módulo de referência remota através do RemoteObjectRef (msg request) 92
93 Implementação RMI Módulo de Referência Remota Realiza a tradução entre referências de objetos remotos e locais e cria referências de objetos remotos Usa tabela para associar objetos remotos e locais Uma entrada para todos objetos remotos mantidos pelo processo Uma entrada para cada proxy local 93
94 Implementação RMI Cliente Servidor Obj A Proxy p/ B request reply Esqueleto e despachante para classe B Obj Remoto B Módulo de referência remota Módulo de comunicação Módulo de comunicação Módulo de referência remota Servente 94
95 Software RMI Baseado em três componentes que interagem com o módulo de comunicação e com o de referência a objetos Proxy, despachante e stub Geração das classes para proxies, despachantes e esqueletos usados na RMI é automática (realizada por um compilador de interface) 95
96 Implementação RMI Proxy Torna invocação do método remoto transparente para o cliente Tem uma entrada numa tabela para cada objeto remoto Versão local do objeto remoto Implementa stubs ou métodos que o objeto remoto implementa 96
97 Implementação RMI Funções Empacotamento de parâmetros Constrói mensagem Encaminha uma mensagem para um objeto remoto Espera resultado Desempacotamento de resultados Existe um Proxy, um despachante e um stub para cada classe que representa um objeto remoto 97
98 Implementação RMI Despachante Um servidor possui um despachante e um esqueleto (stub) para cada classe que representa um objeto remoto Recebe requisição do módulo de comunicação e utiliza methodid para selecionar o método apropriado no esqueleto, repassando a msg de requisição e invoca o método correspondente Espera que a invocação termine e empacota o resultado em uma msg resposta para o proxy 98
99 Implementação RMI Stub (Esqueleto) Implementa métodos da interface remota do objeto Desempacota os parâmetros e invoca o método no servente Empacota o resultado (mensagem de reply) e envia ao solicitante Existe um Proxy, um despachante e um stub para cada classe que representa um objeto remoto 99
100 Servente Funções Instância de uma classe, fornece o corpo do objeto remoto Trata as requisições remotas passadas pelo esqueleto correspondente. Criados quando os objetos são instanciados e excluídos quando não mais necessários Threads do servidor Para cada invocação remota é disparada uma thread no servidor (concorrência) 100
101 Implementação RMI Binder Problema: como um cliente obtém a referência a um objeto remoto? Mapear o nome simbólico do objeto para sua referência Binder é o serviço que executa esse mapeamento Servidores registram objetos no binder Clientes consultam o binder Serviço de localização Mapeamento de um nome simbólico à sua localização física (computador) Ex: RMI registry (Java) 101
102 Implementação RMI Ativação de objetos remotos Objetos passivos: consistem nas implementações de seus métodos e em seu estado na forma empacotada Utilizados para evitar o desperdício de recursos Atividade do objeto é por demanda Ativação consiste em criar um objeto ativo a partir do objeto passivo criando uma nova instância de sua classe e inicializando suas variáveis com o estado armazenado: fica disponível para invocação dentro de um processo em execução 102
103 Implementação RMI Um ativador é responsável (1 para cada servidor) Registro de objetos passivos disponíveis p/ativação (registro dos nomes dos servidores com os URLs ou nomes de arquivo dos objetos passivos correspondentes) Início dos processos servidores, identificando-os e ativando seus objetos remotos Controle da localização dos servidores de objetos remotos que já tenham sido ativados 103
104 Implementação RMI Localização de objetos Serviços de localização Auxilia clientes a localizarem os objetos remotos a partir das suas referências Base de dados para referências aos objetos remotos possíveis aos locais onde possam estar Se objeto não está no lugar indicado, então utiliza-se uma mensagem de broadcast para encontrar o objeto 104
105 Java RMI rmiregistry (Binder) Deve ser executado em toda máquina que hospeda objetos remotos Mantém tabela para mapeamento da representação textual dos objetos aos objetos localizados na máquina Representação textual rmi://computername:port/objectname Carregamento automático de classes de objetos na JVM Acessado pelos métodos da classe Naming 105
106 Java RMI Passagem de parâmetros e resultados Objetos remotos: referência do objeto remoto Objetos não remotos: cópia do objeto (classe deve estender a classe Serializable) 106
107 Desenvolvimento usando Java RMI Passos Projetar e implementar os componentes da aplicação distribuída Definição das interfaces remotas Implementação dos objetos remotos Implementação do servidor e clientes Compilação dos códigos-fontes e geração dos stubs Geração das classes do servidor e cliente (javac) Criação dos stubs Iniciar aplicação Iniciar o binder para guardar os objetos remotos (rmiregistry) Iniciar servidor e cliente(s) 107
108 Exemplo de IDL public interface Calculator extends java.rmi.remote { public long add(long a, long b) throws java.rmi.remoteexception public long sub(long a, long b) throws java.rmi.remoteexception public long mul(long a, long b) throws java.rmi.remoteexception public long div(long a, long b) throws java.rmi.remoteexception } 108
109 Exemplo Objeto remoto import java.rmi.remoteexception; import java.rmi.server.unicastremoteobject; public interface CalculatorImpl extends UnicastRemoteObject implements Calculator { public CalculatorImpl () throws RemoteException { super(); } public long add(long a, long b) throws java.rmi.remoteexception { return a + b; } public long sub(long a, long b) throws java.rmi.remoteexception { return a - b; } public long mul(long a, long b) throws java.rmi.remoteexception { return a * b; } public long div(long a, long b) throws java.rmi.remoteexception { return a / b; } 109
110 Exemplo - compilação Compilando a implementação do objeto remoto javac CalculatorImpl.java Geração dos stubs rmic CalculatorImpl Gera os arquivos CalculatorImpl_Skel.class ClaculatorImpl_Stub.class 110
111 Exemplo servidor import java.rmi.naming; public class CalculatorServer { public CalculatorServer () { try { Calculator c = new CalculatorImpl(); Naming.rebind( rmi//localhost:1099/calculatorservice, c); } catch (Exception e) { System.out.println( Trouble: + e); } } public static void main (String args[]) { new CalculatorServer(); } } 111
112 Exemplo cliente import java.rmi.*; public class CalculatorClient { public static void main (String[] args) { try { Calculator c = (Calculator)Naming.lookup ( rmi//localhost/calculatorservice ); System.out.println( c.sub(4, 3) ); System.out.println( c.add(4, 5) ); System.out.println( c.mul(3, 6) ); System.out.println( c.div(9, 3) ); } catch (Exception e) { } System.out.println(e); } } 112
113 Exemplo - execução Compilando servidor e cliente executando a aplicação $rmiregistry & $javac CalculatorServer.java & [1] 1022 $ java CaculatorServer & [2] 1034 $ java CalculatorClient hostname num1 num2 113
INTRODUÇÃO. RPC x RMI
1 INTRODUÇÃO RPC x RMI 2 INTRODUÇÃO RPC Remote procedure call Este termo é utilizado para aplicativos clientes que fazem normalmente chamadas a procedimentos remotos que estão em outro processo e hosts.
Protocolo Request-Reply
n n n n Protocolo Request-Reply Modelo de Objeto Remoto Semânticas de Invocação Remota Arquitetura de Invocação Remota Prof a Ana Cristina B. Kochem Vendramin DAINF / UTFPR Introdução Características de
Sistemas Distribuídos: Conceitos e Projeto RPC e RMI
Sistemas Distribuídos: Conceitos e Projeto RPC e RMI Francisco José da Silva e Silva Laboratório de Sistemas Distribuídos (LSD) Departamento de Informática / UFMA http://www.lsd.deinf.ufma.br 15 de abril
Comunicação entre Processos
Comunicação entre Processos Prof. Leonardo Barreto Campos http://sites.google.com/sitew/leonardobcampos 1/29 Sumário Introdução Comunicação entre Processos: Soquetes Comunicação por datagrama UDP Comunicação
RPC e RMI. Sistemas Distribuídos. Mauro Lopes Carvalho Silva. Professor EBTT DAI Departamento de Informática Campus Monte Castelo
Sistemas Distribuídos Mauro Lopes Carvalho Silva Professor EBTT DAI Departamento de Informática Campus Monte Castelo Instituto Federal de Educação Ciência e Tecnologia do Maranhão Objetivos Nesta aula
Comunicação. Carlos A. G. Ferraz 25/6/2003. Sistemas Distribuídos 1. Tópicos. Camadas. Transmissão de dados. Marshalling/Unmarshalling.
Tópicos Comunicação Carlos Ferraz [email protected] Elementos básicos de comunicação Transmissão de dados Endereçamento Sincronismo Enfileiramento (Bufferização) Confiabilidade Portas e sockets UDP RPC:
Sistemas Distribuídos
Sistemas Distribuídos LICENCIATURA EM COMPUTAÇÃO Prof. Adriano Avelar Site: www.adrianoavelar.com Email: [email protected] 1. Que são sistemas abertos? É um sistema que oferece serviços de acordo com
Java RMI. RMI Remote Method Invocation. Chamadas Remotas de Procedimentos (RPC) RPC - Implementação
Java Remote Method Invocation Java Remote Method Invocation () é um protocolo Java para comunicação entre processos Permite objetos Java invocar transparentemente métodos de outros objetos (que podem estar
15/4/15. Processamento Paralelo Middleware Orientado a Objetos. Sistema operacional é a única infraestrutura para interação. Middleware é adicionado
Aplicações distribuídas: interação entre partes Processamento Paralelo Middleware Orientado a Objetos Prof. João Paulo A. Almeida ([email protected]) Rede A Rede B Rede C 2015/01 - INF02799 Sistema
Sistemas Distribuídos Aula 10
Sistemas Distribuídos Aula 10 Aula passada Arquitetura P2P Bittorrent Distributed Hash Table (DHT) Aula de hoje Modelo computação distribuída RPC Marshalling e stubs Semântica operacional RMI Computação
Invocação Remota. Prof. Leonardo Barreto Campos. 1/29
Invocação Remota Prof. Leonardo Barreto Campos 1/29 Sumário Introdução Chamada de Procedimento Remoto Invocação a Método Remoto Leitura Complementar Bibliografia 2/29 Introdução Essa aula trata como os
Principais conceitos de CORBA
Principais conceitos de CORBA Tecgraf PUC-Rio fevereiro de 2011 Common Object Request Broker Architecture Uma arquitetura aberta para o desenvolvimento de aplicações distribuídas em um ambiente multilinguagem
Java RMI. Sistemas Distribuídos. Mauro Lopes Carvalho Silva. Professor EBTT DAI Departamento de Informática Campus Monte Castelo
Sistemas Distribuídos Mauro Lopes Carvalho Silva Professor EBTT DAI Departamento de Informática Campus Monte Castelo Instituto Federal de Educação Ciência e Tecnologia do Maranhão Objetivos Nesta aula
Processos em Sistemas Distribuídos e Comunicação entre Processos
Processos em Sistemas Distribuídos e Comunicação entre Processos Sistemas Distribuídos Mauro Lopes Carvalho Silva Professor EBTT DAI Departamento de Informática Campus Monte Castelo Instituto Federal de
Programando sistemas distribuídos com objetos distribuídos na rede TCP/IP. Prof. Me. Sérgio Carlos Portari Júnior
Programando sistemas distribuídos com objetos distribuídos na rede TCP/IP Prof. Me. Sérgio Carlos Portari Júnior Conteúdo Programático Contextualizando: Aula anterior Camada Middleware Programar para SD
COMUNICAÇÃO ENTRE PROCESSOS
Comunicação entre processos Memória Compartilhada: os processo compartilham variáveis e trocam informações através do uso dessas variáveis compartilhadas COMUNICAÇÃO ENTRE PROCESSOS P1 Sem Memória Compartilhada:
Comunicação entre processos COMUNICAÇÃO ENTRE PROCESSOS. Comunicação entre processos - troca de mensagens
Comunicação entre processos Memória Compartilhada: os processo compartilham variáveis e trocam informações através do uso dessas variáveis compartilhadas COMUNICAÇÃO ENTRE PROCESSOS P1 Sem Memória Compartilhada:
Vamos fazer um pequeno experimento
1 Vamos fazer um pequeno experimento Dividam-se em dois grupos: Mestre Escravo Projeto de Sistemas Distribuídos Comunicação entre Processos Prof. Msc. Marcelo Iury de Sousa Oliveira [email protected]
Num sistema de objectos distribuídos, dois conceitos são fundamentais.
Folha 9-1 Java RMI - Remote Method Invocation No modelo de programação orientada a objectos, vimos que um programa consiste numa colecção de objectos que comunicam entre si através da invocação dos seus
Roteiro... Sistemas Distribuídos Aula 4. Troca de mensagens. Comunicação entre processos. Conceitos de SD, vantagens e desvantagens
Roteiro... Conceitos de SD, vantagens e desvantagens Infra-estrutura de um SD Considerações de projeto Sistemas Distribuídos Aula 4 Karine de Pinho Peralta Modelos de Comunicação - comunicação entre processos
OBJETOS DISTRIBUÍDOS E INVOCAÇÃO REMOTA
OBJETOS DISTRIBUÍDOS E INVOCAÇÃO REMOTA SUMÁRIO Introdução Comunicação entre objetos distribuídos Eventos e Notificações 1.INTRODUÇÃO Middleware oferece: Transparência de localização Independência de protocolos
Dados em programas são estruturados, enquanto que mensagens carregam informação seqüencial: Linearização x Restauração de dados Requisição
6LVWHPDV'LVWULEXtGV 0GHO&OLHQWH6HUYLGU &PXQLFDom 6XPiUL Introdução Elementos Básicos de Comunicação Comunicação Cliente-Servidor Comunicação em Grupo Chamada emota de Procedimento (PC) Prof a. Cristina
Sistemas Distribuídos RPC x RMI. Edeyson Andrade Gomes www.edeyson.com.br
Sistemas Distribuídos RPC x RMI Edeyson Andrade Gomes www.edeyson.com.br Roteiro da Aula Chamada Remota a Procedimento Definição Passagem de Parâmetros STUBS Semântica de Falhas 2 RPC Chamada Remota a
Sistemas Distribuídos
Introdução: Comunicação, e Coordenação março de 2015 Comunicação entre Processos troca de mensagens é sempre a primitiva básica sobre essa primitiva podemos construir outras visões da comunicação Mensagens
UNIVERSIDADE. Sistemas Distribuídos
UNIVERSIDADE Sistemas Distribuídos Ciência da Computação Prof. Jesus José de Oliveira Neto Comunicação Inter-Processos Sockets e Portas Introdução Sistemas distribuídos consistem da comunicação entre processos
Chamadas Remotas de Procedimentos (RPC) O Conceito de Procedimentos. RPC: Programa Distribuído. RPC: Modelo de Execução
Chamadas Remotas de Chamada Remota de Procedimento (RPC) ou Chamada de Função ou Chamada de Subrotina Método de transferência de controle de parte de um processo para outra parte Procedimentos => permite
Processos em Sistemas Distribuídos: Comunicação entre Processos, Nomeação e Sincronização
Processos em Sistemas Distribuídos: Comunicação entre Processos, Nomeação e Sincronização Sistemas Distribuídos Mauro Lopes Carvalho Silva Professor EBTT DAI Departamento de Informática Campus Monte Castelo
REDES DE COMPUTADORES
REDES DE COMPUTADORES Prof. Esp. Fabiano Taguchi [email protected] http://fabianotaguchi.wordpress.com BENEFÍCIOS MODELO OSI Menor complexidade; Interfaces padronizadas; Interoperabilidade entre
Objetos e Componentes Distribuídos: EJB e CORBA
: EJB e CORBA Sistemas Distribuídos Mauro Lopes Carvalho Silva Professor EBTT DAI Departamento de Informática Campus Monte Castelo Instituto Federal de Educação Ciência e Tecnologia do Maranhão Objetivos
Objetos Distribuídos - Programação Distribuída Orientado a Objetos. Luiz Affonso Guedes
Objetos Distribuídos - Programação Distribuída Orientado a Objetos Luiz Affonso Guedes Introdução Conceitos básicos programação distribuída + programação orientada a objetos = Objetos distribuídos Motivação
Capítulo V Sistemas de Objectos Distribuídos
From: Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edition 3, Addison-Wesley 2001 From: Wolfgang Emmerich Engineering Distributed Objects John Wiley & Sons, Ltd 2000 1 O modelo
Java RMI - Remote Method Invocation. Programação com Objetos Distribuídos (C. Geyer) Java-RMI 1
Java RMI - Remote Method Invocation Programação com Objetos Distribuídos (C. Geyer) Java-RMI 1 ! Autores Autoria " Cláudio Geyer " Marcelo Castiglia Pereira! Local " Instituto de Informática " UFRGS "
Exemplo de Aplicação Distribuída Serviço de Nomes Gerente de Segurança. Callbacks. Prof a Ana Cristina B. Kochem Vendramin DAINF / UTFPR
n n n n Exemplo de Aplicação Distribuída Serviço de Nomes Gerente de Segurança Callbacks Prof a Ana Cristina B. Kochem Vendramin DAINF / UTFPR Introdução Estende o modelo de objeto Java para fornecer suporte
Invocação de Métodos Remotos
Invocação de Métodos Remotos Java RMI (Remote Method Invocation) Tópicos Tecnologia RMI Introdução Modelo de camadas do RMI Arquitetura Fluxo de operação do RMI Passos para implementação Estudo de caso
Sockets e Threads em Java
Sockets e Threads em Java U N I V E R S I D A D E T E C N O L Ó G I C A F E D E R A L D O P A R A N Á D E P A R T A M E N T O A C A D Ê M I C O D E E L E T R Ô N I C A P R O F. V I T O R Y A N O Comunicação
Sistemas Distribuídos Capítulo 4 - Aula 5
Sistemas Distribuídos Capítulo 4 - Aula 5 Aula Passada Clusters de Servidores Migração de Código Comunicação (Cap. 4) Aula de hoje Chamada de Procedimento Remoto - RPC Fundamentos 1 Chamada de Procedimento
MIDDLEWARE Aplicativos RMI, RPC e eventos Camadas Protocolo Requesição-Respostal Middleware Representação Externa dos Dados Sistemas Operacionais
RMI JAVA MIDDLEWARE Aplicativos RMI, RPC e eventos Protocolo Requesição-Respostal Camadas Middleware Representação Externa dos Dados Sistemas Operacionais RMI REMOTE METHOD INVOCATION Invocação remota
SISTEMAS DISTRIBUÍDOS
SISTEMAS DISTRIBUÍDOS CUP Disk Memoey CUP Memoey Disk Network CUP Memoey Disk Introdução aos Sistemas Distribuídos 1 Sumário Evolução Problema/Contexto O que é um Sistema Distribuído? Vantagens e Desvantagens
Capítulo IV Comunicação entre processos
From: Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edition 3, Addison-Wesley 2001 Applications, services RMI and RPC request-reply protocol marshalling and external data representation
FUNDAMENTOS DE REDES DE COMPUTADORES Unidade 5 Camada de Transporte e Aplicação. Luiz Leão
Unidade 5 Camada de Transporte e Aplicação Luiz Leão [email protected] http://www.luizleao.com Conteúdo Programático 5.1 Protocolo UDP 5.2 Protocolo TCP 5.3 Principias Protocolos de Aplicação 5.3.1 SMTP
Processos ca 3 pítulo
Processos capítulo 3 Introdução: Threads Para executar um programa, o sistema operacional cria um determinado números de processos virtuais. O sistema operacional mantém uma tabela de processos que contém
Sistemas de Troca de Mensagens
Universidade Federal do Rio de Janeiro Programa de Pós-Graduação em Informática DCC/IM - NCE/UFRJ Arquitetura de Sistemas Paralelos Sistemas de Troca de Mensagens Sistemas de Comunicação O Sistema de Comunicação
Sockets - Conceitos Básicos. COMUNICAÇÃO ENTRE PROCESSOS Sockets. Conceitos Básicos. Tipos de Sockets
Sockets - Conceitos Básicos COMUNICAÇÃO ENTRE PROCESSOS Sockets! Sockets são uma forma de IPC (InterProcess Communication ) fornecida pela 4.3 BSD que fornecem comunicação entre processos residentes em
Prof. Me. Sérgio Carlos Portari Júnior
Prof. Me. Sérgio Carlos Portari Júnior Ambientes que visam desenvolver aplicações que precisam de um processamento paralelo e distribuído deverão saber lidar com algumas dificuldades. Isto decorre da heterogeneidade
User Datagram Protocol
User Datagram Protocol UDP: Protocolo utiliza para distinguir para qual usuário ou aplicativo deve ser encaminhado um datagrama destinado a uma máquina que esteja executando mais de um processo. Problemas:
Direto ou Indireto Monolítico ou Estruturado Simétrico ou Assimétrico Padronizado ou Não-Padronizado
PROTOCOLOS Características dos Protocolos Funcionalidade dos Protocolos Protocolos OSI Protocolos TCP/IP Características dos Protocolos As principais caraterísticas de um protocolo são: Direto ou Indireto
Invocação de Métodos Remotos RMI (Remote Method Invocation)
Invocação de Métodos Remotos RMI (Remote Method Invocation) Programação com Objetos Distribuídos Um sistema de objetos distribuídos permite a operação com objetos remotos A partir de uma aplicação cliente
Fundamentos de Sistemas Operacionais
Fundamentos de Sistemas Operacionais Aula 6: Monitores, Troca de Mensagens e Deadlock Diego Passos Última Aulas Mecanismos de Exclusão Mútua Operações atômicas. Protocolos de controle de acesso. Spin-locks.
Redes de Computadores
Redes de Computadores Camada de Transporte Antonio Alfredo Ferreira Loureiro [email protected] Departamento de Ciência da Computação Universidade Federal de Minas Gerais UFMG/DCC Redes de Computadores
Características de Sistemas Distribuídos
Tópicos O conceito de Características de Carlos Ferraz [email protected] Infra-estrutura básica Exemplos Vantagens e desvantagens Convergência digital Características 2002-2003 Carlos A. G. Ferraz 2 O Conceito
Sistemas Distribuídos Capítulo 8 - Aula 14
Sistemas Distribuídos Capítulo 8 - Aula 14 Aula Passada Tolerância a Falhas Conceitos básicos Modelos de falha Redundância Resiliência de Processo Aula de hoje Comunicação Confiável Cliente-Servidor Comunicação
Sistemas Distribuídos. Professora: Ana Paula Couto DCC 064
Sistemas Distribuídos Professora: Ana Paula Couto DCC 064 Comunicação- Protocolos, Tipos, RPC Capítulo 4 Agenda Protocolos em Camadas Pilhas de Protocolos em Sistemas Distribuídos Tipos de Comunicação
Comunicação. Parte II
Comunicação Parte II Carlos Ferraz 2002 Tópicos Comunicação Cliente-Servidor RPC Comunicação de objetos distribuídos Comunicação em Grupo Transações Atômicas Comunicação Stream 2 Comunicação cliente-servidor
Processos e Threads e em sistemas distribuídos. Prof. Me. Hélio Esperidião
Processos e Threads e em sistemas distribuídos. Prof. Me. Hélio Esperidião Processos Sistemas operacionais modernos criam vários processadores virtuais, cada um para executar um programa. Para monitorar
O que é um sistema distribuído?
O que é um sistema distribuído? Conjunto de computadores ligados em rede, com software que permita a partilha de recursos e a coordenação de actividades, oferecendo idealmente um sistema integrado. Características:
Canais de Comunicação
Canais de Comunicação February 24, 2010 Sumário Comunicação via Mensagens Propriedades dum Canal de Comunicação Protocolos da Internet UDP TCP Aplicação Distribuída O que é? É uma aplicação que consiste
Sistemas Distribuídos. Coulouris Capítulo 4
Sistemas Distribuídos Coulouris Capítulo 4 Mensagens Para comunicar-se com outros processos, um processo envia uma MENSAGEM para um DESTINO; um outro processo nesse destino recebe a mensagem. As operações
Sistemas Distribuídos Comunicação entre Processos em Sistemas Distribuídos: Middleware de comunicação Aula II Prof. Rosemary Silveira F. Melo Comunicação em sistemas distribuídos é um ponto fundamental
Java RMI Remote Method Invocation
Java RMI Remote Method Invocation Prof. Tiago Garcia de Senna Carneiro Sistemas Distribuídos - 2006 Conteúdo Passos para implementar um aplicação RMI Executando e compilando uma aplicação RMI Exemplo:
Comunicação orientada a mensagens
Comunicação orientada a mensagens STD29006 Engenharia de Telecomunicações Prof. Emerson Ribeiro de Mello http://docente.ifsc.edu.br/mello/std 31 DE AGOSTO DE 2018 Revisão das aulas anteriores Alguns pontos
Comunicação de Dados II
Comunicação de Dados II Tecnologia em Redes de Computadores IFSULDEMINAS Campus Inconfidentes Prof. Kleber Rezende [email protected] Interligação em Redes Acomoda distintas tecnologias
COMUNICAÇÃO INTER-PROCESSOS JAVA RMI e RPC. Prof. Cesar Augusto Tacla http://www.dainf.ct.utfpr.edu.br/~tacla
PR UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ COMUNICAÇÃO INTER-PROCESSOS JAVA RMI e RPC Prof. Cesar Augusto Tacla http://www.dainf.ct.utfpr.edu.br/~tacla 1 1. Conceitos Básicos a. Invocação remota (RPC/RMI)
AULA 3 - REDES. Prof. Pedro Braconnot Velloso
AULA 3 - REDES Prof. Pedro Braconnot Velloso Resumo da última aula Começo da Internet Princípios básicos Comutação pacotes x circuitos Protocolos Arquitetura em camadas Arquitetura TCP/IP APLICAÇÃO TRANSPORTE
Rede de computadores Protocolos UDP. Professor Carlos Muniz
Rede de computadores Professor Carlos Muniz User Datagram Protocol O User Datagram Protocol (UDP) é um protocolo simples da camada de transporte. Ele é descrito na RFC 768 [1] e permite que a aplicação
Desenvolvimento de Aplicações Distribuídas
Desafios e Características Pontifícia Universidade Católica de Minas Gerais Instituto de Ciências Exatas e Informática DAD (2019/01) Tópicos Apresentação da disciplina Introdução Desafios e características
SISTEMAS DISTRIBUÍDOS
SISTEMAS DISTRIBUÍDOS CUP Disk Memoey CUP Memoey Disk Network CUP Memoey Disk Remote Method Invocation (RMI) Introdução Solução JAVA para Objetos Distribuídos Um objeto existe em uma máquina É possível
