Sistemas Distribuídos

Slides:



Advertisements
Apresentações semelhantes
Sistemas Distribuídos
Advertisements

Sistemas Distribuídos Baseados em Objetos
Introdução aos Sistemas Distribuídos
RMI-IIOP.
Modelos de Comunicação em Sistemas Distribuídos
RPC Remote Procedure Call
Arquiteturas de Sistemas Distribuídos: Modelos de Comunicação
Comunicação Distribuída
Web Services Erika Hmeljevski Estefania Borm Leonardo Malagoli
Comunicação em Sistemas Distribuídos
Interação Cliente Servidor
1 Comunicação Inter-Processos -> RMI -> RPC -> TCP -> UDP (Abstração de passagem de mensagem)
1 Arquitetura CORBA Repositório de Implementação Repositório de Interface cliente programa cliente proxy ORB Core ou invocação dinâmica servidor ORB Core.
1 Comunicação Inter-Processos -> RMI -> RPC -> TCP -> UDP (Abstração de passagem de mensagem)
Comunicação Inter-Processos
Objetos Distribuídos Padrão CORBA
Modelo OSI OSI é um modelo de referência para interligação de sistemas abertos (open systems interconection) Padrão ISO 7498, publicado em 1984 Sistemas.
Mobilidade Cláudia Ribeiro.
Obtenção de IP TCP UDP.
Sistemas Distribuídos
Middleware e Sistemas Distribuídos
Universidade do Vale do Rio dos Sinos - São Leopoldo -
Sistemas e Tecnologias de Middleware TP3. Foco Sistema de comunicação – Sistema de Message Queuing – Abstracção do substracto de comunicação Adaptação.
UNIVERSIDADE FEDERAL DE PERNAMBUCO cin.ufpe.br P2Middleware Equipe:Matheus Garcez Reichow.
Arquitetura CORBA e Objetos Distribuídos
Tópicos em redes e sistemas distribuídos B Carlos Oberdan Rolim Ciência da Computação.
Sistemas Distribuídos
Tópicos em redes e sistemas distribuídos Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação.
Tópicos de Sistemas de Informação A
Web Services Uninorte Semana de Tecnologia da Informação
Marcela Bezerra da Silva Cin - UFPE
Sistemas Distribuídos
Remote Method Invocation RMI
Concorrência e Java RMI
Sistemas Distribuídos Carlos A. G. Ferraz DI/UFPE Aula 05.
Sistemas Distribuídos Introdução. Conceito Coleção de múltiplos processos que executam sobre uma coleção de processadores autônomos interligados em uma.
Redes e Sistemas Distribuídos II – Cód
Tecgraf PUC-Rio maio de 2011 Principais conceitos de CORBA.
TMV Gestão de Redes e de Sistemas Distribuídos ???? Sumário  Arquitectura de Gestão SNMP  Arquitectura de Gestão OSI/TMN  Novas Arquitecturas.
SISTEMAS OPERACIONAIS I
CORBA Apresentação do Padrão CORBA Maurício Maron Mendes Ramiro Pereira de Magalhães
Java RMI João Gabriel (jggxm).
1 Comunicação Inter-Processos -> RMI -> RPC -> TCP -> UDP (Abstração de passagem de mensagem)
RPC and Web Service André Pereira.
Comunicação.
Sistemas Distribuídos Prof. Marcus Rodrigues
Troca de Mensagens Programação concorrente
Objetos Distribuídos para WEB Prof. Paulo Fernando da Silva FURB – Universidade Regional de Blumenau Pós-Graduação em Desenvolvimento WEB.
Arquitetura de Redes de Computadores – Luiz Paulo Maia Camada de Transporte1 Arquitetura de Redes de Computadores Luiz Paulo Maia Camada de Transporte.
Capítulo 4: Processos.
Sistemas Distribuídos Prof. Marcus Rodrigues
Java – Remote Method Invocation (RMI)
Modelos de Comunicação em Sistemas Distribuídos
Modelos de Comunicação em Sistemas Distribuídos
Infra-Estrutura para Computação Distribuída
Conceitos do Cliente Funcionamento Básico do Cliente Como Clientes acessam e usam Objetos Distribúidos.
Redes de computadores: Aplicações Prof. Dr. Amine BERQIA
Trabalho elaborado por: Ana Beatriz nº1
Camada de Aplicação Prof. Horácio. Objetivo Apresentar os detalhes específicos dos tipos de aplicação; Apresentar o modelo cliente-servidor; Apresentar.
Sistemas Distribuídos Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação.
Sistemas Operacionais Distribuídos
Sistemas Distribuídos Nadilma Nunes Aula Inicial – Apresentação da disciplina.
Sistemas Distribuídos
Passagens de Mensagens Prof. Dr. Norian Marranghello
Versão 1 - julho/2013 Tecgraf PUC-Rio Novembro de 2013 Principais conceitos de CORBA.
Versão 1 - julho/2013 Tecgraf PUC-Rio Novembro de 2013 Introdução ao OpenBus.
Sistemas Distribuídos Prof. Marcus Rodrigues
Protocolos de Comunicação e Passagem de Mensagens
Revisão Comunicação; Protocolo; Conceitos e Elementos de uma Rede;
Curso Superior em Redes de Computadores Camada de Aplicação Prof. Sales Filho.
Transcrição da apresentação:

Sistemas Distribuídos Aula 4: Modelos de Comunicação

Relembrando o modelo OSI

Protocolos de Middleware

Middleware É uma camada de software de distribuição que abstrai a complexidade e a heterogeneidade do ambiente distribuído sobre uma rede com diversas tecnologias, arquiteturas de máquinas, sistemas operacionais e linguagens de programação; Possui o objetivo de projetar, programar e gerenciar aplicações distribuídas através do provimento de um simples, consistente e integrado ambiente para programação distribuída; Diferentes plataformas de middleware suportam diferentes modelos de programação.

Middleware Baseado em Objetos Um dos mais populares modelos de middleware; Ambiente de programação Distribuição + orientação a objetos; Utilização de IDL´s; Serviços A comunicação poderá ser síncrona ou assíncrona; Assume a utilização de um transporte confiável  Protocolo TCP.

Transmissão de Dados Dados em programas são estruturados enquanto que mensagens carregam informação seqüencial: Necessidade de linearização/restauração de dados; Heterogeneidade na representação de dados em computadores: Uso de um formato externo comum;

Marshalling/Unmarshalling Linearização de uma coleção de itens de dados estruturados; Unmarshalling: Tradução do formato externo para o local; Restauração dos itens de dados de acordo com sua estrutura.

Comunicação Síncrona Primitiva SEND: Primitiva RECEIVE: Processo cliente aguarda enquanto o núcleo envia a mensagem para o processo servidor bloqueia o cliente; Primitiva RECEIVE: Processo servidor aguarda até que o núcleo receba uma mensagem endereçada para aquele processo;

Comunicação Assíncrona Primitiva SEND: Processo cliente aguarda somente enquanto a mensagem é copiada para o buffer do núcleo  não bloqueia o cliente; Primitiva RECEIVE: Processo servidor aguarda por uma mensagem bloqueia o servidor; Processo servidor apenas comunica ao núcleo que espera receber uma mensagem não bloqueia o servidor;

Comunicação por Sockets Fornece “pontos finais” (endpoints) para a comunicação entre processos (end-to-end); Deve ser ligado a uma porta local; O par de Sockets : (endereço_IP_local:porta_local, endereço_IP_remoto:porta_remota) identifica unicamente uma comunicação

Portas Um destino de mensagem especificado por inteiro pequeno (16 bits); Qualquer processo pode mandar uma mensagem para uma porta; Protocolos usam a combinação endereço_IP:porta; Portas IANA (Internet Assigned Numbers Authority)/ICANN (Internet Corporation for Assigned Names and Numbers): Conhecidas: 1 – 1023 Registradas: 1024 – 49151 Dinâmicas ou privadas: 49152 - 65535

Comunicação em SDs Comunicação Cliente-Servidor RPC Comunicação de Objetos Distribuídos Comunicação em Grupo

Comunicação Cliente-Servidor (1) Núcleo cliente servidor Requisição Resposta Rede

Comunicação Cliente-Servidor (2) Código Tipo De Para Descrição REQ Pedido Cliente Servidor O cliente deseja um serviço REP Resposta Resposta do servidor para o cliente ACK Reconhecimento ------- --------- O pacote anterior chegou AYA Você está vivo? Pergunta se o servidor não parou IAA Eu estou vivo O servidor não parou TA Tente novamente O servidor está lotado AU Endereço desconhecido Nenhum processo está usando aquele endereço

Protocolo Pedido-Resposta Também chamado de Request-Reply (RR) Utilizado na comunicação cliente-servidor; Primitivas: DoOperation - clientes invocam operações remotas GetRequest - servidor adquire os pedidos de Serviços SendReply – envia resposta

Chamada de Procedimentos Remotos(RPC) Comunicação baseada em operações de entrada/saída; Abstração fraca onde vários problemas devem ser tratados pelo programador; RPC objetiva permitir chamada de procedimento remoto como se fosse local, ocultando entrada/saída de mensagens; Utiliza o protocolo de Pedido-Resposta; Integração relativamente transparente com linguagens de programação, que inclui uma notação para definir interfaces (“IDL”);

Funcionamento do RPC Um processo A chama um procedimento p de um processo B, entrando em estado de espera; O processo B passa a executar o procedimento p, e ao seu término faz um reply para o processo A; O processo A volta à sua execução normal após ter recebido o reply;

Implementação do RPC Etapas: Processamento de interface; Manipulação da comunicação; Ligação.

Processamento de Interface (1) Integração dos mecanismos de RPC com os programas cliente e servidor escritos em uma linguagem de programação convencional; Cliente e servidor assinalam o mesmo identificador de procedimento para cada procedimento na interface; Utilização de stubs para comunicação;

Processamento de Interface (2) cliente servidor Requisição Resposta Rede stub

Manipulação da Comunicação Módulo da comunicação usa protocolo pedido-reposta para troca de mensagens entre cliente e servidor; res = srv.Soma(a,b) Cliente res=request(srv,msg) Servidor res = Soma(a,b) reply(clt,res) GetRequest SendReply

Ligação O mecanismo possui um binder para resolução de nomes permitindo ligação dinâmica e transparência de localização.

Procedimentos para Comunicação usando RPC (1) Passo 1: Stub do cliente: 1- Intercepta a chamada; 2- Realiza o marshalling (empacota os parâmetros); 3- Envia mensagem de solicitação (request) ao servidor. Passo 2: Stub do Servidor 4- Recebe a mensagem de request; 5. Realiza o unmarshalling (desempacota os parâmetros); 6. Chama o procedimento, passando os parâmetros; 7. Empacota o resultado; 8. Envia mensagem de reply ao cliente;

Procedimentos para Comunicação usando RPC (2) Passo 3: Stub do cliente: 9. Recebe a mensagem de resposta (reply) 10. Desempacota o resultado 11. Passa o resultado para o cliente

Falhas em RPC O cliente não é capaz de localizar o servidor; A mensagem de request do cliente para o servidor é perdida; A mensagem de reply do servidor para o cliente é perdida; O servidor pára após ter recebido a mensagem de request; O cliente pára após ter enviado a mensagem de request;

Falha do Servidor - RPC Procedimento normal: A falha pode ocorrer: recebe mensagem de request; executa procedimento; envia mensagem de reply; A falha pode ocorrer: após a execução antes da execução

Falha do Cliente - RPC O servidor torna-se um “órfão” Soluções: terminação do servidor pela máquina do cliente reencarnação do cliente: toda computação remota anterior é destruída reencarnação “suave” do cliente: somente as computações remotas referentes àquele cliente são destruídas expiração: servidor estabelece um timeout para confirmação

Exemplo de Produto RPC Produto DCE -> Distributed Computing Evironment Desenvolvido pela OSF (Open Software Foundation) --> The Open Group Inicialmente foi projetado para a plataforma de sistema operacional UNIX e depois portado para a plataforma Windows.

Aplicação Cliente/Servidor usando RPC IDL Compilador IDL Header Sever Stub Client Stub Client Code Server Code #include Compilador C Client.obj StubServer.obj StubClient.obj Servidor.obj Linker Client.exe Server.exe

Comunicação de Objetos Distribuídos Um objeto encapsula dados; Operações são chamadas de métodos; Métodos são disponibilizados através de uma interface; Um objeto pode implementar diversas interfaces;

Comunicação de Objetos Distribuídos 2-16

Comunicação em Grupo Tolerância a falhas baseada na replicação de serviços; Localização de objetos em serviços distribuídos; Melhor desempenho via replicação de dados; Múltipla atualização; Processo Receptor Processo Transmissor

Classificação dos Grupos Com relação á Visibilidade: Aberto: um processo fora do grupo consegue enviar mensagens para o grupo todo Fechado: somente processos do grupo enviam mensagens para o grupo todo Com relação á Organização: Peer: todos os processos tomam decisão Hierárquico: a decisão é centralizada

Endereçamento de Grupo Multicast Um processo envia uma mensagem simultânea para todos os membros do grupo. Broadcast Um processo envia uma mensagem para todas as máquinas e somente as dos membros do grupo a assimila. Unicast Um processo envia uma mensagem para todos os membros do grupo uma por vez.

Controles e Atualizações no Grupo centralizado servidor de grupo descentralizado acordo entre os membros do grupo Operações: Entrada de um membro: atualizar estado Saída de um membro: Se involuntária, como por exemplo, uma parada no sistema, todos os membros restantes devem notar sua saída

Por onde estudar ? Notas de Aula; Andrew Tanenbaum Sites: Capítulo 2 - Páginas 57 a 98 Sites: http://dsonline.computer.org;