SlideShare una empresa de 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

Más contenido relacionado

La actualidad más candente

Introdução ao Desenvolvimento Android
Introdução ao Desenvolvimento AndroidIntrodução ao Desenvolvimento Android
Introdução ao Desenvolvimento AndroidJosé Alexandre Macedo
 
Sistemas Operacionais Modernos Capítulo 3 Deadlock
Sistemas Operacionais Modernos Capítulo 3 DeadlockSistemas Operacionais Modernos Capítulo 3 Deadlock
Sistemas Operacionais Modernos Capítulo 3 DeadlockWellington Oliveira
 
Arquitetura de software : Cliente-Servidor
Arquitetura de software : Cliente-ServidorArquitetura de software : Cliente-Servidor
Arquitetura de software : Cliente-ServidorAlexsandro Oliveira
 
Aula 01 - Introdução ao curso - Projeto de Redes de Computadores
Aula 01 - Introdução ao curso - Projeto de Redes de ComputadoresAula 01 - Introdução ao curso - Projeto de Redes de Computadores
Aula 01 - Introdução ao curso - Projeto de Redes de ComputadoresDalton Martins
 
Segurança de redes - Conceitos de firewall
Segurança de redes - Conceitos de firewall Segurança de redes - Conceitos de firewall
Segurança de redes - Conceitos de firewall Cleber Ramos
 
Aula 4 - Sistemas Gerenciadores de Banco de Dados
Aula 4 - Sistemas Gerenciadores de Banco de DadosAula 4 - Sistemas Gerenciadores de Banco de Dados
Aula 4 - Sistemas Gerenciadores de Banco de DadosVitor Hugo Melo Araújo
 
Introdução a Arquitetura de Sistemas
Introdução a Arquitetura de SistemasIntrodução a Arquitetura de Sistemas
Introdução a Arquitetura de SistemasIgor Takenami
 
Banco de Dados II Aula 01 - Apresentação
Banco de Dados II Aula 01 - ApresentaçãoBanco de Dados II Aula 01 - Apresentação
Banco de Dados II Aula 01 - ApresentaçãoLeinylson Fontinele
 
Arquitetura cliente servidor
Arquitetura cliente servidorArquitetura cliente servidor
Arquitetura cliente servidorMarcia Abrahim
 
Sistemas Operacionais - Aula 08 (Sincronização e Comunicação entre Processos)
Sistemas Operacionais - Aula 08 (Sincronização e Comunicação entre Processos)Sistemas Operacionais - Aula 08 (Sincronização e Comunicação entre Processos)
Sistemas Operacionais - Aula 08 (Sincronização e Comunicação entre Processos)Leinylson Fontinele
 
Revisão Sobre Programação Orientada a Objetos com Java
Revisão Sobre Programação Orientada a Objetos com Java Revisão Sobre Programação Orientada a Objetos com Java
Revisão Sobre Programação Orientada a Objetos com Java Mario Jorge Pereira
 
Sistemas Distribuídos - Comunicação Distribuída – Middleware
Sistemas Distribuídos - Comunicação Distribuída – MiddlewareSistemas Distribuídos - Comunicação Distribuída – Middleware
Sistemas Distribuídos - Comunicação Distribuída – MiddlewareAdriano Teixeira de Souza
 
Arquitetura Cliente-Servidor
Arquitetura Cliente-ServidorArquitetura Cliente-Servidor
Arquitetura Cliente-ServidorIsrael Messias
 
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 ComputadoresDalton Martins
 
desafios na implementacao de sistemas distribuidos
desafios na implementacao de sistemas distribuidosdesafios na implementacao de sistemas distribuidos
desafios na implementacao de sistemas distribuidosHélio Jovo
 
Sistemas Operacionais - Aula 07 (Thread e Processos)
Sistemas Operacionais - Aula 07 (Thread e Processos)Sistemas Operacionais - Aula 07 (Thread e Processos)
Sistemas Operacionais - Aula 07 (Thread e Processos)Leinylson Fontinele
 

La actualidad más candente (20)

Introdução ao Desenvolvimento Android
Introdução ao Desenvolvimento AndroidIntrodução ao Desenvolvimento Android
Introdução ao Desenvolvimento Android
 
Sistemas Operacionais Modernos Capítulo 3 Deadlock
Sistemas Operacionais Modernos Capítulo 3 DeadlockSistemas Operacionais Modernos Capítulo 3 Deadlock
Sistemas Operacionais Modernos Capítulo 3 Deadlock
 
Projeto de Rede Local (LAN)
Projeto de Rede Local (LAN)Projeto de Rede Local (LAN)
Projeto de Rede Local (LAN)
 
Fundamentos de arquitetura Web
Fundamentos de arquitetura WebFundamentos de arquitetura Web
Fundamentos de arquitetura Web
 
Arquitetura de software : Cliente-Servidor
Arquitetura de software : Cliente-ServidorArquitetura de software : Cliente-Servidor
Arquitetura de software : Cliente-Servidor
 
Aula 01 - Introdução ao curso - Projeto de Redes de Computadores
Aula 01 - Introdução ao curso - Projeto de Redes de ComputadoresAula 01 - Introdução ao curso - Projeto de Redes de Computadores
Aula 01 - Introdução ao curso - Projeto de Redes de Computadores
 
49778140 projeto-de-rede
49778140 projeto-de-rede49778140 projeto-de-rede
49778140 projeto-de-rede
 
Segurança de redes - Conceitos de firewall
Segurança de redes - Conceitos de firewall Segurança de redes - Conceitos de firewall
Segurança de redes - Conceitos de firewall
 
Aula 4 - Sistemas Gerenciadores de Banco de Dados
Aula 4 - Sistemas Gerenciadores de Banco de DadosAula 4 - Sistemas Gerenciadores de Banco de Dados
Aula 4 - Sistemas Gerenciadores de Banco de Dados
 
Introdução a Arquitetura de Sistemas
Introdução a Arquitetura de SistemasIntrodução a Arquitetura de Sistemas
Introdução a Arquitetura de Sistemas
 
Aula 2 - Comandos DDL DML DQL E DCL
Aula 2 - Comandos DDL DML DQL E DCLAula 2 - Comandos DDL DML DQL E DCL
Aula 2 - Comandos DDL DML DQL E DCL
 
Banco de Dados II Aula 01 - Apresentação
Banco de Dados II Aula 01 - ApresentaçãoBanco de Dados II Aula 01 - Apresentação
Banco de Dados II Aula 01 - Apresentação
 
Arquitetura cliente servidor
Arquitetura cliente servidorArquitetura cliente servidor
Arquitetura cliente servidor
 
Sistemas Operacionais - Aula 08 (Sincronização e Comunicação entre Processos)
Sistemas Operacionais - Aula 08 (Sincronização e Comunicação entre Processos)Sistemas Operacionais - Aula 08 (Sincronização e Comunicação entre Processos)
Sistemas Operacionais - Aula 08 (Sincronização e Comunicação entre Processos)
 
Revisão Sobre Programação Orientada a Objetos com Java
Revisão Sobre Programação Orientada a Objetos com Java Revisão Sobre Programação Orientada a Objetos com Java
Revisão Sobre Programação Orientada a Objetos com Java
 
Sistemas Distribuídos - Comunicação Distribuída – Middleware
Sistemas Distribuídos - Comunicação Distribuída – MiddlewareSistemas Distribuídos - Comunicação Distribuída – Middleware
Sistemas Distribuídos - Comunicação Distribuída – Middleware
 
Arquitetura Cliente-Servidor
Arquitetura Cliente-ServidorArquitetura Cliente-Servidor
Arquitetura Cliente-Servidor
 
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
 
desafios na implementacao de sistemas distribuidos
desafios na implementacao de sistemas distribuidosdesafios na implementacao de sistemas distribuidos
desafios na implementacao de sistemas distribuidos
 
Sistemas Operacionais - Aula 07 (Thread e Processos)
Sistemas Operacionais - Aula 07 (Thread e Processos)Sistemas Operacionais - Aula 07 (Thread e Processos)
Sistemas Operacionais - Aula 07 (Thread e Processos)
 

Similar a Sistemas Distribuídos - Aula 06

Sistemas distribuídos com RMI
Sistemas distribuídos com RMISistemas distribuídos com RMI
Sistemas distribuídos com RMICharleston 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.5Helder da Rocha
 
Sistemas Operacionais em redes
Sistemas Operacionais em redesSistemas Operacionais em redes
Sistemas Operacionais em redesDaniel Brandão
 
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 – CORBAAdriano Teixeira de Souza
 
Sistemas Distribuidos, Middleware e RPC
Sistemas Distribuidos, Middleware e RPCSistemas Distribuidos, Middleware e RPC
Sistemas Distribuidos, Middleware e RPClimabezerra
 
Sistemas Distribuidos, Middleware e RPC
Sistemas Distribuidos, Middleware e RPCSistemas Distribuidos, Middleware e RPC
Sistemas Distribuidos, Middleware e RPClimabezerra
 
Apresentação Sistemas Distribuídos - Conceito
Apresentação Sistemas Distribuídos - ConceitoApresentação Sistemas Distribuídos - Conceito
Apresentação Sistemas Distribuídos - ConceitoThiago Marinho
 
Middleware Reflexivo
Middleware ReflexivoMiddleware Reflexivo
Middleware Reflexivoelliando dias
 
Sistemas Distribuidos Java
Sistemas Distribuidos JavaSistemas Distribuidos Java
Sistemas Distribuidos Javalimadavi
 

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

RMI (Remote Method Invocation)
RMI (Remote Method Invocation) RMI (Remote Method Invocation)
RMI (Remote Method Invocation)
 
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
 
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
 
Sistemas Distribuidos Java
Sistemas Distribuidos JavaSistemas Distribuidos Java
Sistemas Distribuidos Java
 
Modelo osi mpcomp
Modelo osi mpcompModelo osi mpcomp
Modelo osi mpcomp
 
Aula06 - postfix
Aula06 -  postfixAula06 -  postfix
Aula06 - postfix
 

Más 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 LearningArthur Emanuel
 
Exercícios - Herança - Java
Exercícios - Herança - JavaExercícios - Herança - Java
Exercícios - Herança - JavaArthur Emanuel
 
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íciosArthur Emanuel
 
Android - Integração com Facebook
Android - Integração com FacebookAndroid - Integração com Facebook
Android - Integração com FacebookArthur Emanuel
 
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, MultimidiaArthur Emanuel
 
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 MenuArthur Emanuel
 
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 SomArthur Emanuel
 
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 ColisaoArthur Emanuel
 
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áculosArthur Emanuel
 
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 JogoArthur Emanuel
 
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 JogoArthur Emanuel
 
Desenvolvendo Jogos Para Android - Exercício
Desenvolvendo Jogos Para Android - ExercícioDesenvolvendo Jogos Para Android - Exercício
Desenvolvendo Jogos Para Android - ExercícioArthur Emanuel
 
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árioArthur Emanuel
 
Android - Acelerometro e GPS
Android - Acelerometro e GPSAndroid - Acelerometro e GPS
Android - Acelerometro e GPSArthur Emanuel
 
Android - Consumindo Webservices
Android - Consumindo WebservicesAndroid - Consumindo Webservices
Android - Consumindo WebservicesArthur Emanuel
 

Más 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
 

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