SlideShare uma empresa Scribd logo
1 de 25
SISTEMAS
DISTRIBUÍDOS
OBJETOS DISTRIBUÍDOS E
INVOCAÇÃO REMOTA
ARTHUR EMANUEL DE OLIVEIRA
CAROSIA
1
INTRODUÇÃO
RPC:
• chamada de procedimento remoto;
• programas clientes chamarem procedimentos de programas
servidores.
RMI:
• invocação de método remoto;
• objetos de diferentes processos se comunicam;
• objeto que está em um processo pode invocar métodos de
um objeto que está em outro processo.
2
INTRODUÇÃO
Middleware
Software que fornece um modelo de programação acima dos
blocos de construção básicos de processos e passagem de
mensagens.
Fornece: invocações a métodos remotos, transparência da
localização e independência dos detalhes dos protocolos de
comunicação, sistemas operacionais e hardware.
3
INTERFACES EM
SISTEMAS DISTRIBUÍDOS
4
INTERFACES EM
SISTEMAS DISTRIBUÍDOS
Para controlar as interações entre módulos em sistemas
distribuídos, são definidas interfaces para cada módulo.
5
INTERFACES EM
SISTEMAS DISTRIBUÍDOS
Interfaces de serviço:
• Cada servidor fornece um conjunto de procedimentos que
estão disponíveis para uso dos clientes.
Interfaces remotas:
• Especifica os métodos de um objeto que estão
disponíveis para invocação por parte dos objetos de outros
processos.
• Podem passar objetos com argumentos e resultados dos
métodos.
6
COMUNICAÇÃO ENTRE
PROCESSOS
DISTRIBUÍDOS
7
COMUNICAÇÃO ENTRE
PROCESSOS
DISTRIBUÍDOS
8
O MODELO DE
OBJETO DISTRIBUÍDO
Cada processo contém um conjunto de objetos, dos quais alguns
podem receber invocações a métodos locais e remotos e outros
somente locais.
Objetos podem invocar métodos de um objeto remoto se tiverem
acesso á sua referência de objeto remoto.
Todo objeto remoto tem uma interface remota especificando quais
métodos podem ser invocados de forma remota.
9
INTERFACES
REMOTAS
A classe de um objeto remoto implementa os métodos de sua
interface remota.
Objetos em outros processos somente invocam métodos
pertencentes à interface remota.
10
IMPLEMENTAÇÃO DE
RMI
11
IMPLEMENTAÇÃO DE
RMI
Software RMI: camada de software – middleware – entre os
objetos do aplicativo e os módulos de comunicação e de
referência remota.
12
IMPLEMENTAÇÃO DE
RMI
• Proxy: torna a invocação do método remoto transparente ao
cliente, comportando-se como um objeto local para o
invocador; mas, em vez de executar uma invocação local, ele
a encaminha em uma mensagem para um objeto remoto.
Existe um proxy para cada objeto remoto que um processo
faz referência.
13
IMPLEMENTAÇÃO DE
RMI
• Despachante: um servidor tem um despachante e um
esqueleto para cada classe que representa o objeto remoto.
O despachante recebe uma mensagem de requisição do
módulo de comunicação e seleciona o método apropriado no
esqueleto, despachando a mensagem de requisição.
14
IMPLEMENTAÇÃO DE
RMI
• Esqueleto: desempacota os argumentos na mensagem de
requisição e invoca o método correspondente no
servente. Depois, espera que a requisição termine e
empacota o resultado em uma mensagem de resposta que é
enviada ao método do proxy que fez a requisição.
15
JAVA RMI
Extensão do modelo de objeto Java para dar suporte para
objetos distribuídos em Java.
Permite que objetos invoquem métodos em objetos remotos
usando a mesma sintaxe de invocações locais.
Mais simples construir aplicações RMI do que aplicações
com RPC ou CORBA.
16
JAVA RMI
Necessita de tratar a exceção Remote Exception e
implementar a interface Remote.
Exige suporte a TCP/IP e um serviço de nomes de objetos
(rmiregistry), que acompanha o JAVA JDK/SDK.
• O serviço de nomes RMI Registry oferece informações sobre
a localização dos objetos remotos.
• Traduz uma tabela de nomes textuais na forma
//nomeComputador:porta/nomeObjeto em objetos remotos
contidos no computador.
17
JAVA RMI
Geração de classes proxies, despachantes e esqueletos: são geradas
automaticamente por um compilador de interface.
O conjunto de métodos oferecidos por um objeto remoto é definido como
uma interface Java implementada do objeto remoto.
O compilador para Java RMI gera as classes de proxy, despachante e
esqueleto a partir da classe do objeto remoto.
18
INTERFACES REMOTAS
NO JAVA RMI
As interfaces remotas são definidas pela ampliação de uma
interface chamada Remote, do pacote java.rmi.
Os métodos disparam a exceção RemoteException, além das
possíveis exceções do aplicativo.
19
INTERFACE REMOTA -
CALCULADORA
20
IMPLEMENTAÇÃO DA INTERFACE –
CALCULADORAIMPL
21
SERVIDOR
22
CLIENTE
23
RODANDO EXEMPLO
Javac *.java
Rmic CalculatorImpl (cria o Stub)
Rmiregistry (levanta o servidor de nomes RMI)
Java CalculatorServer
Java CalculatorClient
24
SISTEMAS
DISTRIBUÍDOS
OBJETOS DISTRIBUÍDOS E INVOCAÇÃO
REMOTA
ARTHUR EMANUEL DE OLIVEIRA
CAROSIA
25

Mais conteúdo relacionado

Mais procurados

Camada fisica-enlace
Camada fisica-enlaceCamada fisica-enlace
Camada fisica-enlace
redesinforma
 
Aula 05 - Exercício de projeto - Projeto de Redes de Computadores
Aula 05 - Exercício de projeto - Projeto de Redes de ComputadoresAula 05 - Exercício de projeto - Projeto de Redes de Computadores
Aula 05 - Exercício de projeto - Projeto de Redes de Computadores
Dalton Martins
 
Sistemas Distribuídos - Comunicação Distribuída - Socket
Sistemas Distribuídos - Comunicação Distribuída - SocketSistemas Distribuídos - Comunicação Distribuída - Socket
Sistemas Distribuídos - Comunicação Distribuída - Socket
Adriano Teixeira de Souza
 

Mais procurados (20)

Voip Ppt
Voip PptVoip Ppt
Voip Ppt
 
TCP/IP
TCP/IPTCP/IP
TCP/IP
 
Sistemas operativos distribuidos
Sistemas operativos distribuidosSistemas operativos distribuidos
Sistemas operativos distribuidos
 
Fibras opticas
Fibras opticasFibras opticas
Fibras opticas
 
Equipamentos de Rede
Equipamentos de RedeEquipamentos de Rede
Equipamentos de Rede
 
SI - Arquiteturas
SI - ArquiteturasSI - Arquiteturas
SI - Arquiteturas
 
Redes aula 1
Redes   aula 1Redes   aula 1
Redes aula 1
 
Redes de-computadores-tipos-de-redes
Redes de-computadores-tipos-de-redesRedes de-computadores-tipos-de-redes
Redes de-computadores-tipos-de-redes
 
Redes de Computadores Capítulo 3 - Camada de Enlace
Redes de Computadores Capítulo 3 - Camada de EnlaceRedes de Computadores Capítulo 3 - Camada de Enlace
Redes de Computadores Capítulo 3 - Camada de Enlace
 
Application Layer
Application LayerApplication Layer
Application Layer
 
Camada fisica-enlace
Camada fisica-enlaceCamada fisica-enlace
Camada fisica-enlace
 
Aula 05 - Exercício de projeto - Projeto de Redes de Computadores
Aula 05 - Exercício de projeto - Projeto de Redes de ComputadoresAula 05 - Exercício de projeto - Projeto de Redes de Computadores
Aula 05 - Exercício de projeto - Projeto de Redes de Computadores
 
Introdução aos Serviços de Rede
Introdução aos Serviços de RedeIntrodução aos Serviços de Rede
Introdução aos Serviços de Rede
 
Dhcp
DhcpDhcp
Dhcp
 
Endereçamento IP
Endereçamento IPEndereçamento IP
Endereçamento IP
 
Sistemas Distribuídos - Comunicação Distribuída - Socket
Sistemas Distribuídos - Comunicação Distribuída - SocketSistemas Distribuídos - Comunicação Distribuída - Socket
Sistemas Distribuídos - Comunicação Distribuída - Socket
 
DHCP Protocol
DHCP ProtocolDHCP Protocol
DHCP Protocol
 
Apipa
ApipaApipa
Apipa
 
Modelo OSI - Camada Física
Modelo OSI - Camada FísicaModelo OSI - Camada Física
Modelo OSI - Camada Física
 
Vulnerabilidades em Redes Wifi
Vulnerabilidades em Redes WifiVulnerabilidades em Redes Wifi
Vulnerabilidades em Redes Wifi
 

Semelhante a Sistemas Distribuídos - Aula 06

Sistemas Distribuídos - Comunicação Distribuída - RMI
Sistemas Distribuídos - Comunicação Distribuída - RMISistemas Distribuídos - Comunicação Distribuída - RMI
Sistemas Distribuídos - Comunicação Distribuída - RMI
Adriano Teixeira de Souza
 
Sistemas distribuídos com RMI
Sistemas distribuídos com RMISistemas distribuídos com RMI
Sistemas distribuídos com RMI
Charleston Anjos
 
JustJava 2005: Web Services em Java com o JWSDP 1.5
JustJava 2005: Web Services em Java com o JWSDP 1.5JustJava 2005: Web Services em Java com o JWSDP 1.5
JustJava 2005: Web Services em Java com o JWSDP 1.5
Helder da Rocha
 
Sistemas Distribuídos - Comunicação Distribuída – CORBA
Sistemas Distribuídos - Comunicação Distribuída – CORBASistemas Distribuídos - Comunicação Distribuída – CORBA
Sistemas Distribuídos - Comunicação Distribuída – CORBA
Adriano Teixeira de Souza
 

Semelhante a Sistemas Distribuídos - Aula 06 (20)

RMI (Remote Method Invocation)
RMI (Remote Method Invocation) RMI (Remote Method Invocation)
RMI (Remote Method Invocation)
 
Sistemas Distribuídos - Comunicação Distribuída - RMI
Sistemas Distribuídos - Comunicação Distribuída - RMISistemas Distribuídos - Comunicação Distribuída - RMI
Sistemas Distribuídos - Comunicação Distribuída - RMI
 
Objetos distribuídos e invocação remota - CORBA
Objetos distribuídos e invocação remota - CORBAObjetos distribuídos e invocação remota - CORBA
Objetos distribuídos e invocação remota - CORBA
 
Funmentos de Objetos Remotos
Funmentos de Objetos RemotosFunmentos de Objetos Remotos
Funmentos de Objetos Remotos
 
Fundamentos de Objetos Remotos
Fundamentos de Objetos RemotosFundamentos de Objetos Remotos
Fundamentos de Objetos Remotos
 
Sistemas distribuídos com RMI
Sistemas distribuídos com RMISistemas distribuídos com RMI
Sistemas distribuídos com RMI
 
JustJava 2005: Web Services em Java com o JWSDP 1.5
JustJava 2005: Web Services em Java com o JWSDP 1.5JustJava 2005: Web Services em Java com o JWSDP 1.5
JustJava 2005: Web Services em Java com o JWSDP 1.5
 
Java RMI
Java RMIJava RMI
Java RMI
 
Computacao distribuida com rmi
Computacao distribuida com rmiComputacao distribuida com rmi
Computacao distribuida com rmi
 
Rmi (remote method invocation)
Rmi (remote method invocation)Rmi (remote method invocation)
Rmi (remote method invocation)
 
6-RMI.pdf
6-RMI.pdf6-RMI.pdf
6-RMI.pdf
 
Sistemas Operacionais em redes
Sistemas Operacionais em redesSistemas Operacionais em redes
Sistemas Operacionais em redes
 
Sistemas Distribuídos - Comunicação Distribuída – CORBA
Sistemas Distribuídos - Comunicação Distribuída – CORBASistemas Distribuídos - Comunicação Distribuída – CORBA
Sistemas Distribuídos - Comunicação Distribuída – CORBA
 
Sistemas Distribuidos, Middleware e RPC
Sistemas Distribuidos, Middleware e RPCSistemas Distribuidos, Middleware e RPC
Sistemas Distribuidos, Middleware e RPC
 
Sistemas Distribuidos, Middleware e RPC
Sistemas Distribuidos, Middleware e RPCSistemas Distribuidos, Middleware e RPC
Sistemas Distribuidos, Middleware e RPC
 
J530 4 rmi
J530 4 rmiJ530 4 rmi
J530 4 rmi
 
Conceitos Básicos de Objetos Distribuidos
Conceitos Básicos de Objetos DistribuidosConceitos Básicos de Objetos Distribuidos
Conceitos Básicos de Objetos Distribuidos
 
Trabalho
TrabalhoTrabalho
Trabalho
 
Apresentação Sistemas Distribuídos - Conceito
Apresentação Sistemas Distribuídos - ConceitoApresentação Sistemas Distribuídos - Conceito
Apresentação Sistemas Distribuídos - Conceito
 
Middleware Reflexivo
Middleware ReflexivoMiddleware Reflexivo
Middleware Reflexivo
 

Mais de Arthur Emanuel

Apresentação - Minicurso de Introdução a Python, Data Science e Machine Learning
Apresentação - Minicurso de Introdução a Python, Data Science e Machine LearningApresentação - Minicurso de Introdução a Python, Data Science e Machine Learning
Apresentação - Minicurso de Introdução a Python, Data Science e Machine Learning
Arthur Emanuel
 

Mais de Arthur Emanuel (20)

Apresentação - Minicurso de Introdução a Python, Data Science e Machine Learning
Apresentação - Minicurso de Introdução a Python, Data Science e Machine LearningApresentação - Minicurso de Introdução a Python, Data Science e Machine Learning
Apresentação - Minicurso de Introdução a Python, Data Science e Machine Learning
 
Exercícios - Herança - Java
Exercícios - Herança - JavaExercícios - Herança - Java
Exercícios - Herança - Java
 
Orientação a Objetos - Introdução - Exercícios
Orientação a Objetos - Introdução - ExercíciosOrientação a Objetos - Introdução - Exercícios
Orientação a Objetos - Introdução - Exercícios
 
Android - Integração com Facebook
Android - Integração com FacebookAndroid - Integração com Facebook
Android - Integração com Facebook
 
Desenvolvimento para Android - Acelerômetro, GPS, Multimidia
Desenvolvimento para Android - Acelerômetro, GPS, MultimidiaDesenvolvimento para Android - Acelerômetro, GPS, Multimidia
Desenvolvimento para Android - Acelerômetro, GPS, Multimidia
 
Aula 06 - Desenvolvimento de Jogos para Android - Física e Menu
Aula 06 - Desenvolvimento de Jogos para Android - Física e MenuAula 06 - Desenvolvimento de Jogos para Android - Física e Menu
Aula 06 - Desenvolvimento de Jogos para Android - Física e Menu
 
Aula 05 - Desenvolvimento de Jogos para Android - Layout e Som
Aula 05 - Desenvolvimento de Jogos para Android - Layout e SomAula 05 - Desenvolvimento de Jogos para Android - Layout e Som
Aula 05 - Desenvolvimento de Jogos para Android - Layout e Som
 
Aula 04 - Desenvolvendo Jogos Para Android - Pontuação e Colisao
Aula 04 - Desenvolvendo Jogos Para Android - Pontuação e ColisaoAula 04 - Desenvolvendo Jogos Para Android - Pontuação e Colisao
Aula 04 - Desenvolvendo Jogos Para Android - Pontuação e Colisao
 
Aula 03 - Desenvolvendo Jogos Para Android - Obstáculos
Aula 03 - Desenvolvendo Jogos Para Android - ObstáculosAula 03 - Desenvolvendo Jogos Para Android - Obstáculos
Aula 03 - Desenvolvendo Jogos Para Android - Obstáculos
 
Aula 02 - Desenvolvendo Jogos Para Android - Controle do Jogo
Aula 02 - Desenvolvendo Jogos Para Android - Controle do JogoAula 02 - Desenvolvendo Jogos Para Android - Controle do Jogo
Aula 02 - Desenvolvendo Jogos Para Android - Controle do Jogo
 
Aula 01 - Desenvolvendo Jogos Para Android - Ambiente do Jogo
Aula 01 - Desenvolvendo Jogos Para Android - Ambiente do JogoAula 01 - Desenvolvendo Jogos Para Android - Ambiente do Jogo
Aula 01 - Desenvolvendo Jogos Para Android - Ambiente do Jogo
 
Desenvolvendo Jogos Para Android - Exercício
Desenvolvendo Jogos Para Android - ExercícioDesenvolvendo Jogos Para Android - Exercício
Desenvolvendo Jogos Para Android - Exercício
 
CSS 3
CSS 3CSS 3
CSS 3
 
CSS
CSSCSS
CSS
 
HTML - Listas, Estilos, Tabelas, Div, Span, Formulário
HTML -  Listas, Estilos, Tabelas, Div, Span, FormulárioHTML -  Listas, Estilos, Tabelas, Div, Span, Formulário
HTML - Listas, Estilos, Tabelas, Div, Span, Formulário
 
HTML - Introducao
HTML - Introducao HTML - Introducao
HTML - Introducao
 
Android - Google Maps
Android - Google MapsAndroid - Google Maps
Android - Google Maps
 
Android - Bluetooth
Android - BluetoothAndroid - Bluetooth
Android - Bluetooth
 
Android - Acelerometro e GPS
Android - Acelerometro e GPSAndroid - Acelerometro e GPS
Android - Acelerometro e GPS
 
Android - Consumindo Webservices
Android - Consumindo WebservicesAndroid - Consumindo Webservices
Android - Consumindo Webservices
 

Último

Assessement Boas Praticas em Kubernetes.pdf
Assessement Boas Praticas em Kubernetes.pdfAssessement Boas Praticas em Kubernetes.pdf
Assessement Boas Praticas em Kubernetes.pdf
Natalia Granato
 

Último (6)

Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object Calisthenics
 
Assessement Boas Praticas em Kubernetes.pdf
Assessement Boas Praticas em Kubernetes.pdfAssessement Boas Praticas em Kubernetes.pdf
Assessement Boas Praticas em Kubernetes.pdf
 
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
 
Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemplo
 
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
 
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
 

Sistemas Distribuídos - Aula 06

  • 1. SISTEMAS DISTRIBUÍDOS OBJETOS DISTRIBUÍDOS E INVOCAÇÃO REMOTA ARTHUR EMANUEL DE OLIVEIRA CAROSIA 1
  • 2. INTRODUÇÃO RPC: • chamada de procedimento remoto; • programas clientes chamarem procedimentos de programas servidores. RMI: • invocação de método remoto; • objetos de diferentes processos se comunicam; • objeto que está em um processo pode invocar métodos de um objeto que está em outro processo. 2
  • 3. INTRODUÇÃO Middleware Software que fornece um modelo de programação acima dos blocos de construção básicos de processos e passagem de mensagens. Fornece: invocações a métodos remotos, transparência da localização e independência dos detalhes dos protocolos de comunicação, sistemas operacionais e hardware. 3
  • 5. INTERFACES EM SISTEMAS DISTRIBUÍDOS Para controlar as interações entre módulos em sistemas distribuídos, são definidas interfaces para cada módulo. 5
  • 6. INTERFACES EM SISTEMAS DISTRIBUÍDOS Interfaces de serviço: • Cada servidor fornece um conjunto de procedimentos que estão disponíveis para uso dos clientes. Interfaces remotas: • Especifica os métodos de um objeto que estão disponíveis para invocação por parte dos objetos de outros processos. • Podem passar objetos com argumentos e resultados dos métodos. 6
  • 9. O MODELO DE OBJETO DISTRIBUÍDO Cada processo contém um conjunto de objetos, dos quais alguns podem receber invocações a métodos locais e remotos e outros somente locais. Objetos podem invocar métodos de um objeto remoto se tiverem acesso á sua referência de objeto remoto. Todo objeto remoto tem uma interface remota especificando quais métodos podem ser invocados de forma remota. 9
  • 10. INTERFACES REMOTAS A classe de um objeto remoto implementa os métodos de sua interface remota. Objetos em outros processos somente invocam métodos pertencentes à interface remota. 10
  • 12. IMPLEMENTAÇÃO DE RMI Software RMI: camada de software – middleware – entre os objetos do aplicativo e os módulos de comunicação e de referência remota. 12
  • 13. IMPLEMENTAÇÃO DE RMI • Proxy: torna a invocação do método remoto transparente ao cliente, comportando-se como um objeto local para o invocador; mas, em vez de executar uma invocação local, ele a encaminha em uma mensagem para um objeto remoto. Existe um proxy para cada objeto remoto que um processo faz referência. 13
  • 14. IMPLEMENTAÇÃO DE RMI • Despachante: um servidor tem um despachante e um esqueleto para cada classe que representa o objeto remoto. O despachante recebe uma mensagem de requisição do módulo de comunicação e seleciona o método apropriado no esqueleto, despachando a mensagem de requisição. 14
  • 15. IMPLEMENTAÇÃO DE RMI • Esqueleto: desempacota os argumentos na mensagem de requisição e invoca o método correspondente no servente. Depois, espera que a requisição termine e empacota o resultado em uma mensagem de resposta que é enviada ao método do proxy que fez a requisição. 15
  • 16. JAVA RMI Extensão do modelo de objeto Java para dar suporte para objetos distribuídos em Java. Permite que objetos invoquem métodos em objetos remotos usando a mesma sintaxe de invocações locais. Mais simples construir aplicações RMI do que aplicações com RPC ou CORBA. 16
  • 17. JAVA RMI Necessita de tratar a exceção Remote Exception e implementar a interface Remote. Exige suporte a TCP/IP e um serviço de nomes de objetos (rmiregistry), que acompanha o JAVA JDK/SDK. • O serviço de nomes RMI Registry oferece informações sobre a localização dos objetos remotos. • Traduz uma tabela de nomes textuais na forma //nomeComputador:porta/nomeObjeto em objetos remotos contidos no computador. 17
  • 18. JAVA RMI Geração de classes proxies, despachantes e esqueletos: são geradas automaticamente por um compilador de interface. O conjunto de métodos oferecidos por um objeto remoto é definido como uma interface Java implementada do objeto remoto. O compilador para Java RMI gera as classes de proxy, despachante e esqueleto a partir da classe do objeto remoto. 18
  • 19. INTERFACES REMOTAS NO JAVA RMI As interfaces remotas são definidas pela ampliação de uma interface chamada Remote, do pacote java.rmi. Os métodos disparam a exceção RemoteException, além das possíveis exceções do aplicativo. 19
  • 21. IMPLEMENTAÇÃO DA INTERFACE – CALCULADORAIMPL 21
  • 24. RODANDO EXEMPLO Javac *.java Rmic CalculatorImpl (cria o Stub) Rmiregistry (levanta o servidor de nomes RMI) Java CalculatorServer Java CalculatorClient 24
  • 25. SISTEMAS DISTRIBUÍDOS OBJETOS DISTRIBUÍDOS E INVOCAÇÃO REMOTA ARTHUR EMANUEL DE OLIVEIRA CAROSIA 25