Sistemas Distribuídos



Documentos relacionados
Chamadas Remotas de Procedimentos (RPC) O Conceito de Procedimentos. RPC: Programa Distribuído. RPC: Modelo de Execução

Sistemas Distribuídos. Professora: Ana Paula Couto DCC 064

Sistemas Distribuídos: Conceitos e Projeto Java RMI

OBJETOS DISTRIBUÍDOS E INVOCAÇÃO REMOTA

Sistemas Distribuídos RPC x RMI. Edeyson Andrade Gomes

Adriano Reine Bueno Rafael Barros Silva

Comunicação. Parte II

Objetos Distribuídos - Programação Distribuída Orientado a Objetos. Luiz Affonso Guedes

Invocação de Métodos Remotos RMI (Remote Method Invocation)

3. Comunicação em Sistemas Distribuídos

MIDDLEWARE Aplicativos RMI, RPC e eventos Camadas Protocolo Requesição-Respostal Middleware Representação Externa dos Dados Sistemas Operacionais

SISTEMAS DISTRIBUÍDOS

Sistemas Distribuídos

RMI: Uma Visão Conceitual

SISTEMAS DISTRIBUÍDOS

Sistemas Distribuídos

Invocação Remota MC704

Invocação de Métodos Remotos

UNIVERSIDADE. Sistemas Distribuídos

Sistemas Paralelos e Distribuídos /2004 Curso: Matemática /Informática Sistemas Distribuídos /2004 Curso: Ensino da Informática

Sistemas Distribuídos

Serviços Web: Introdução

Distributed Systems Principles and Paradigms

Grupo I [6v] Considere o seguinte extracto de um programa de definição de uma calculadora apenas com a função soma de dois valores reais

RPC e RMI. Sistemas Distribuídos. Mauro Lopes Carvalho Silva. Professor EBTT DAI Departamento de Informática Campus Monte Castelo

Sistemas Distribuídos

Sistemas Distribuídos


Sistemas distribuídos:comunicação

Sistemas Distribuídos Capítulos 3 e 4 - Aula 4

Java 2 Standard Edition. Fundamentos de. Objetos Remotos. Helder da Rocha

Sistemas Distribuídos. Professora: Ana Paula Couto DCC 064

Num sistema de objectos distribuídos, dois conceitos são fundamentais.

Sistemas Distribuídos Métodos de Invocação Remota II. Prof. MSc. Hugo Souza

Sistemas Distribuídos

Princípios de Sistemas Distribuídos. Tecnologias utilizadas em sistemas distribuídos Aula 5

SISTEMAS DISTRIBUIDOS

Exemplos práticos do uso de RMI em sistemas distribuídos

3 SCS: Sistema de Componentes de Software

Grupo I [7v] 1. [1,0] Apresente o conteúdo do IDL relativo a este programa. Assuma PROGRAM=62015 e VERSION=1.

Desenvolvimento Cliente-Servidor 1

INE Sistemas Distribuídos

Paradigma Cliente/Servidor

Sistemas Distribuídos Aula 2

SISTEMAS DISTRIBUÍDOS

COMUNICAÇÃO INTER-PROCESSOS JAVA RMI e RPC. Prof. Cesar Augusto Tacla

Sistemas Distribuídos

UFG - Instituto de Informática

1 a. Sumário. 1. Conceitos Básicos a. Invocação remota (RPC/RMI) b. Semântica de invocação remota c. Invocação remota de métodos (RMI)

Sistemas Distribuídos

Sistemas Distribuídos

Técnicas de Programação Avançada TCC Profs.: Anselmo Montenegro Conteúdo: Introdução à Orientação a Objetos

Slide 1 Deitel/Deitel, 8e. Java Como programar Copyright 2010 Pearson Education

Departamento de Informática

FBV - Linguagem de Programação II. Um pouco sobre Java

UFG - Instituto de Informática

Comunicação em Sistemas Distribuídos

Padrões Arquiteturais. Sistemas Distribuídos: Broker

Sistemas Distribuídos e Redes de Sensores

5 Mecanismo de seleção de componentes

Prof. Marcelo de Sá Barbosa SISTEMAS DISTRIBUIDOS

Sistemas Distribuídos

Implementando uma Classe e Criando Objetos a partir dela

Modelos de Arquiteturas. Prof. Andrêza Leite

UNIVERSIDADE. Sistemas Distribuídos

Camada de Aplicação. DNS Domain Name System. Redes de Computadores Prof. Leandro C. Pykosz

Prática em Laboratório N.01 Criando um Serviço Web via Console

Prof. Luiz Fernando Bittencourt MC714. Sistemas Distribuídos 2 semestre, 2013

Grupo I [6,6v] Responda com os valores que se observam depois da chamada acontecer. 1 Falta na mensagem de resposta. Valor retornado na chamada

Arquitetura de Redes: Camadas de Protocolos (Parte I) Prof. Eduardo

Sistemas Operacionais

Sistemas Distribuídos. Ricardo Ribeiro dos Santos

Sistemas Distribuídos. Aleardo Manacero Jr.

PARANÁ GOVERNO DO ESTADO

Uma Introdução à Arquitetura CORBA. O Object Request Broker (ORB)

Roteiro. Arquitetura. Tipos de Arquitetura. Questionário. Centralizado Descentralizado Hibrido

Capítulo 2. Charm++ 16

Sistemas Distribuídos

IMPLEMENTAÇÃO DE SOCKETS E THREADS NO DESENVOLVIMENTO DE SISTEMAS CLIENTE / SERVIDOR: UM ESTUDO EM VB.NET

Especificação do 3º Trabalho

Orientação a Objetos

Introdução à Camada de Aplicação. Prof. Eduardo

Curso Tecnológico de Redes de Computadores 5º período Disciplina: Tecnologia WEB Professor: José Maurício S. Pinheiro V

FAÇA FÁCIL: DRIVER IGS PARA COMUNICAÇÃO DE PROTOCOLOS PROPRIETÁRIOS INTRODUÇÃO

UNIVERSIDADE. Sistemas Distribuídos

Informática UFRGS. Programação com Objetos Distribuídos (C. Geyer) C# Remote V0 1

Arquiteturas de Sistemas Distribuídos

Orientação a Objetos com Java

} Monolíticas Aplicações em um computador centralizado. } Em Rede Aplicações com comunicação em rede. } Distribuídas Comunicação e cooperação em rede

Capítulo VI CORBA. Common Object Request Broker Architecture. [Cardoso2008] Programação de Sistemas Distribuídos em Java, Jorge Cardoso, FCA, 2008.

Analista de Sistemas Ambiente GRID para física experimental de altas energias

Configuração manual.ost Microsoft Office 365

Sistemas Distribuídos RPC

Guia do Usuário do Aplicativo Desktop Client

Sistemas Distribuídos Métodos de Invocação Remota IV. Prof. MSc. Hugo Souza

Transcrição:

Sistemas Distribuídos Comunicação Remota Gustavo Reis gustavo.reis@ifsudestemg.edu.br 1

Comunicação entre processos está no coração de todo sistema distribuído. Não tem sentido estudar sistemas distribuídos sem examinar cuidadosamente os modos pelos quais processos em máquinas diferentes podem trocar informações. A comunicação em sistemas distribuídos é sempre baseada em troca de mensagens de baixo nível como a oferecida pela rede subjacente. Sistemas distribuídos modernos frequentemente consistem em milhares ou até milhões de processos espalhados por uma rede cuja comunicação não é confiável, como a Internet. Existem três modelos de comunicação de ampla utilização: Chamada de procedimento remoto (Remote Procedure Call - RPC) Middleware orientado a mensagem (Message-Oriented Middleware - MOM) Fluxo de dados. 2

Chamada de procedimento remoto Muitos sistemas são baseados em troca explícita de mensagens entre processos. Contudo, os procedimentos send e receive não escondem absolutamente nada da comunicação, o que é importante para obter transparência de acesso em sistemas distribuídos. Proposta diferente de manipular comunicação por Birrell e Nelson (1984). 3

Chamada de procedimento remoto A sugestão é permitir que programas chamassem procedimentos localizados em outras máquinas. Quando um processo na máquina A chama um procedimento na máquina B, o processo chamador A é suspenso, e a execução do procedimento chamado ocorre em B. Informações podem ser transportadas do chamador para quem foi chamado nos parâmetros e podem voltar no resultado do procedimento (a semântica de uma chamada remota deve ser idêntica à de uma chamada local: passa parâmetros e retorna resultados). 4

Chamada de procedimento remoto A sugestão é permitir que programas chamassem procedimentos localizados em outras máquinas. Quando um processo na máquina A chama um procedimento na máquina B, o processo chamador A é suspenso, e a execução do procedimento chamado ocorre em B. Informações podem ser transportadas do chamador para quem foi chamado nos parâmetros e podem voltar no resultado do procedimento (a semântica de uma chamada remota deve ser idêntica à de uma chamada local: passa parâmetros e retorna resultados). 5

Chamada de procedimento remoto 6

Chamada de procedimento remoto O cliente que acessa um serviço inclui um procedimento stub para cada procedimento da interface de serviço. A função de um procedimento stub é semelhante à de um método proxy. Ele se comporta como um procedimento local para o cliente, mas em vez de executar a chamada, ela empacota o identificador de procedimento e os argumentos em uma mensagem de requisição e a envia para o servidor por meio de seu módulo de comunicação. 7

Chamada de procedimento remoto Quando a mensagem de resposta chega, ela desempacota os resultados. O processo servidor contém um despachante junto com um procedimento stub de servidor e um procedimento de serviço, para cada procedimento na interface de serviço. O despachante seleciona um dos procedimentos stub de servidor, de acordo com o identificador de procedimento presente na mensagem de requisição. 8

Chamada de procedimento remoto Um procedimento stub de servidor é como um método esqueleto, pois ele desempacota os argumentos presentes na mensagem de requisição, chama o procedimento de serviço correspondente e empacota os valores de retorno para a mensagem de resposta. Os procedimentos de serviço implementam os procedimentos da interface de serviço. 9

RMI Java A RMI Java estende o modelo de objeto Java para dar suporte para objetos distribuídos na linguagem Java. Em particular, ela permite que os objetos invoquem métodos em objetos remotos usando a mesma sintaxe das invocações locais. Além disso, a verificação de tipo se aplica igualmente às invocações remotas e às locais. Entretanto, um objeto que faz uma invocação remota sabe que seu destino é remoto, pois precisa tratar exceções RemoteException; e o implementador de um objeto remoto sabe que é remoto porque precisa implementar a interface Remote. 10

RMI Java Interface remota 11

RMI Java Implementação da Interface 12

RMI Java Passagem de parâmetros e resultados Na RMI Java, supõe-se que os parâmetros de um método são parâmetros de entrada e o resultado de um método é um único parâmetro de saída. Qualquer objeto que seja serializável isto é, que implemente a interface Serializable pode ser passado como argumento ou ser resultado na RMI Java. Todos os tipos primitivos e objetos remotos são serializáveis. As classes de argumentos e valores de resultado são carregadas por download no destino pelo sistem RMI, quando necessário. 13

RMI Java Classe serializada 14

RMI Java Download de classes A linguagem Java é projetada para permitir que as classes sejam carregadas por download de uma máquina virtual a outra. Isso é particularmente relevante para objetos distribuídos que se comunicam por meio de invocação remota. Se o destino ainda não possuir a classe de um objeto passado por valor, seu código será carregado por download automaticamente. 15

RMI Java RMIregistry O RMIregistry é o vinculador da RMI Java. Uma instância de RMIregistry deve ser executada em cada computador servidor que contenha objetos remotos. Ele mantém uma tabela mapeando nomes textuais no estilo dos URLs, em referências para objetos remotos contidos nesse computador. Ele é acessado por métodos da classe Naming, cujos métodos recebem como argumento uma string no formato como URL, na forma: //nomecomputador:porta/nomeobjeto 16

RMI Java Classe Naming 17

RMI Java Classe serializada 18