sistemas distribuídos introdução a sistemas distribuídos 8/6/[email protected]...
TRANSCRIPT
Sistemas DistribuídosSistemas DistribuídosIn
trodu
ção
a S
iste
mas
Dis
tribu
ídos
Intro
duçã
o a
Sis
tem
as D
istri
buíd
os
27/04/23 [email protected] 1
São Paulo, 2011São Paulo, 2011
Universidade Paulista (UNIP)Universidade Paulista (UNIP)
Java – Remote Method Invocation (RMI)Java – Remote Method Invocation (RMI)
Prof. MSc. Vladimir CameloProf. MSc. Vladimir [email protected]
Sistemas DistribuídosSistemas DistribuídosIn
trodu
ção
a S
iste
mas
Dis
tribu
ídos
Intro
duçã
o a
Sis
tem
as D
istri
buíd
os
27/04/23 [email protected] 2
Sistemas distribuídosSistemas distribuídos::
Neste tipo de sistema existe uma necessidade de comunicação Neste tipo de sistema existe uma necessidade de comunicação
entre sistemas em máquinas distintas.entre sistemas em máquinas distintas.
Sockets como solução?Sockets como solução?
Não oferecem um modelo de programação transparente e flexível Não oferecem um modelo de programação transparente e flexível
tanto para o usuário quanto para o desenvolvedor tanto para o usuário quanto para o desenvolvedor
respectivamente.respectivamente.
IntroduçãoIntrodução
Sistemas DistribuídosSistemas DistribuídosIn
trodu
ção
a S
iste
mas
Dis
tribu
ídos
Intro
duçã
o a
Sis
tem
as D
istri
buíd
os
27/04/23 [email protected] 3
O principal objetivo em sistemas distribuídos é:O principal objetivo em sistemas distribuídos é:
Utilizar objetos ou componentes que estão localizados em outras Utilizar objetos ou componentes que estão localizados em outras
máquinas sem se preocupar com a camada de transporte, ou seja, máquinas sem se preocupar com a camada de transporte, ou seja,
como será realizada essa comunicação entre as máquinas.como será realizada essa comunicação entre as máquinas.
IntroduçãoIntrodução
Sistemas DistribuídosSistemas DistribuídosIn
trodu
ção
a S
iste
mas
Dis
tribu
ídos
Intro
duçã
o a
Sis
tem
as D
istri
buíd
os
27/04/23 [email protected] 4
Sistemas modernos:Sistemas modernos:
Comunicam-se entre máquinas e algumas vezes entre processos Comunicam-se entre máquinas e algumas vezes entre processos
na mesma máquina, por meio do uso de sockets.na mesma máquina, por meio do uso de sockets.
O que é socket?O que é socket?
É um canal de comunicação por meio do qual uma aplicação se É um canal de comunicação por meio do qual uma aplicação se
comunica com outra.comunica com outra.
É referenciado por um número de porta, de maneira que a camada É referenciado por um número de porta, de maneira que a camada
TCP possa identificar a aplicação de destino, ou seja, a aplicação TCP possa identificar a aplicação de destino, ou seja, a aplicação
que realizou esta chamada.que realizou esta chamada.
Programação com sockets em JavaProgramação com sockets em Java
Sistemas DistribuídosSistemas DistribuídosIn
trodu
ção
a S
iste
mas
Dis
tribu
ídos
Intro
duçã
o a
Sis
tem
as D
istri
buíd
os
27/04/23 [email protected] 5
Comunicação mais simples entre aplicativos localizados em máquinas Comunicação mais simples entre aplicativos localizados em máquinas
diferentes, porém pela simplicidade não é bem aplicado na diferentes, porém pela simplicidade não é bem aplicado na
manipulação de tipos de dados ou de aplicações muito complexas, manipulação de tipos de dados ou de aplicações muito complexas,
principalmente quando o componente da aplicação está em máquinas principalmente quando o componente da aplicação está em máquinas
diferentes.diferentes.
Programação com sockets em JavaProgramação com sockets em Java
Sistemas DistribuídosSistemas DistribuídosIn
trodu
ção
a S
iste
mas
Dis
tribu
ídos
Intro
duçã
o a
Sis
tem
as D
istri
buíd
os
27/04/23 [email protected] 6
Existem três tipos de sockets:Existem três tipos de sockets:
Datagram sockets: Envia o pacote sem a confirmação de que o Datagram sockets: Envia o pacote sem a confirmação de que o
servidor recebeu; esta interface é implementada pelo protocolo servidor recebeu; esta interface é implementada pelo protocolo
User Datagram Protocol (UDP).User Datagram Protocol (UDP).
Stream sockets: Envia o pacote com o cuidado de que o servidor Stream sockets: Envia o pacote com o cuidado de que o servidor
receba e que a conexão deva estar ativa no momento da receba e que a conexão deva estar ativa no momento da
comunicação; esta interface é implementada pelo protocolo comunicação; esta interface é implementada pelo protocolo
Transfer Control Protocol (TCP).Transfer Control Protocol (TCP).
Programação com sockets em JavaProgramação com sockets em Java
Sistemas DistribuídosSistemas DistribuídosIn
trodu
ção
a S
iste
mas
Dis
tribu
ídos
Intro
duçã
o a
Sis
tem
as D
istri
buíd
os
27/04/23 [email protected] 7
Existem três tipos de sockets:Existem três tipos de sockets:
Raw sockets: Envia o pacote sem utilizar as camadas de Raw sockets: Envia o pacote sem utilizar as camadas de
transporte, sendo utilizada a camada de rede Internet Protocol (IP) transporte, sendo utilizada a camada de rede Internet Protocol (IP)
e no Internet Control Message Protocol (ICMP).e no Internet Control Message Protocol (ICMP).
Programação com sockets em JavaProgramação com sockets em Java
Sistemas DistribuídosSistemas DistribuídosIn
trodu
ção
a S
iste
mas
Dis
tribu
ídos
Intro
duçã
o a
Sis
tem
as D
istri
buíd
os
27/04/23 [email protected] 8
A biblioteca para sockets:A biblioteca para sockets:
ServerSocket: esta classe possibilita criar um servidor de sockets, ServerSocket: esta classe possibilita criar um servidor de sockets,
sendo deste a obrigação de atender a uma demanda de conexão sendo deste a obrigação de atender a uma demanda de conexão
via a rede.via a rede.
Socket: esta classe possibilita criar um cliente socket que é um Socket: esta classe possibilita criar um cliente socket que é um
ponto final para a comunicação entre dois nós da rede ponto final para a comunicação entre dois nós da rede
(computadores).(computadores).
Programação com sockets em JavaProgramação com sockets em Java
Sistemas DistribuídosSistemas DistribuídosIn
trodu
ção
a S
iste
mas
Dis
tribu
ídos
Intro
duçã
o a
Sis
tem
as D
istri
buíd
os
27/04/23 [email protected] 9
Programação com sockets em Java (Exemplo)Programação com sockets em Java (Exemplo)
Sistemas DistribuídosSistemas DistribuídosIn
trodu
ção
a S
iste
mas
Dis
tribu
ídos
Intro
duçã
o a
Sis
tem
as D
istri
buíd
os
27/04/23 [email protected] 10
Programação com sockets em Java (Exemplo)Programação com sockets em Java (Exemplo)
Sistemas DistribuídosSistemas DistribuídosIn
trodu
ção
a S
iste
mas
Dis
tribu
ídos
Intro
duçã
o a
Sis
tem
as D
istri
buíd
os
27/04/23 [email protected] 11
Programação com sockets em Java (Exemplo)Programação com sockets em Java (Exemplo)
Sistemas DistribuídosSistemas DistribuídosIn
trodu
ção
a S
iste
mas
Dis
tribu
ídos
Intro
duçã
o a
Sis
tem
as D
istri
buíd
os
27/04/23 [email protected] 12
Programação com sockets em Java (Exemplo)Programação com sockets em Java (Exemplo)
Sistemas DistribuídosSistemas DistribuídosIn
trodu
ção
a S
iste
mas
Dis
tribu
ídos
Intro
duçã
o a
Sis
tem
as D
istri
buíd
os
27/04/23 [email protected] 13
Banco de dados: JDBC, SQLJ, JDO;Banco de dados: JDBC, SQLJ, JDO;
Objetos distribuídos: Java RMI, RMI-IIOP, Java IDL, Objetos distribuídos: Java RMI, RMI-IIOP, Java IDL, EnterpriseEnterprise Java Java
Beans (EJB);Beans (EJB);
Serviços distribuídos: JTA, JTS, JAAS, DGC, JNDI;Serviços distribuídos: JTA, JTS, JAAS, DGC, JNDI;
Eventos distribuídos: JMS;Eventos distribuídos: JMS;
Web e Web Services: JAXP, JAXB, JAXM, JAXR, JAX-RPC;Web e Web Services: JAXP, JAXB, JAXM, JAXR, JAX-RPC;
E-mail: JavaMail;E-mail: JavaMail;
Java para sistemas distribuídosJava para sistemas distribuídos
Sistemas DistribuídosSistemas DistribuídosIn
trodu
ção
a S
iste
mas
Dis
tribu
ídos
Intro
duçã
o a
Sis
tem
as D
istri
buíd
os
27/04/23 [email protected] 14
Java RMI (Remote Method Invocation) pode ser implementado usando Java RMI (Remote Method Invocation) pode ser implementado usando
protocolos e infra-estrutura do ambiente de desenvolvimento Java protocolos e infra-estrutura do ambiente de desenvolvimento Java
(JRMP e RMI Registry) ou usando IIOP e ORBs (especificações do (JRMP e RMI Registry) ou usando IIOP e ORBs (especificações do
ambiente CORBA).ambiente CORBA).
Objetos remotos com Java RMIObjetos remotos com Java RMI
Sistemas DistribuídosSistemas DistribuídosIn
trodu
ção
a S
iste
mas
Dis
tribu
ídos
Intro
duçã
o a
Sis
tem
as D
istri
buíd
os
27/04/23 [email protected] 15
JRMP - Java Remote Method Protocol:JRMP - Java Remote Method Protocol:
Pacote Pacote java.rmi java.rmi - RMI básico;- RMI básico;
Ideal para aplicações 100% Java.Ideal para aplicações 100% Java.
Objetos remotos com Java RMIObjetos remotos com Java RMI
Sistemas DistribuídosSistemas DistribuídosIn
trodu
ção
a S
iste
mas
Dis
tribu
ídos
Intro
duçã
o a
Sis
tem
as D
istri
buíd
os
27/04/23 [email protected] 16
IIOP - Internet Inter-ORB Protocol:IIOP - Internet Inter-ORB Protocol:
Pacote Pacote javax.rmi javax.rmi - RMI sobre IIOP;- RMI sobre IIOP;
Ideal para ambientes heterogêneos.Ideal para ambientes heterogêneos.
Objetos remotos com Java RMIObjetos remotos com Java RMI
Sistemas DistribuídosSistemas DistribuídosIn
trodu
ção
a S
iste
mas
Dis
tribu
ídos
Intro
duçã
o a
Sis
tem
as D
istri
buíd
os
27/04/23 [email protected] 17
A forma de desenvolvimento é similar:A forma de desenvolvimento é similar:
Há poucas diferenças para a geração da infra-estrutura (Ex.: Há poucas diferenças para a geração da infra-estrutura (Ex.:
proxies) e para o registro dos objetos remotos alocados no proxies) e para o registro dos objetos remotos alocados no
servidor;servidor;
RMI sobre IIOP possibilita programação Java RMI e comunicação em RMI sobre IIOP possibilita programação Java RMI e comunicação em
ambiente CORBA, viabilizando integração entre o Java e outras ambiente CORBA, viabilizando integração entre o Java e outras
linguagens de programação sem a necessidade de aprender os linguagens de programação sem a necessidade de aprender os
conceitos de implementação do OMG IDLconceitos de implementação do OMG IDL
Objetos remotos com Java RMIObjetos remotos com Java RMI
Sistemas DistribuídosSistemas DistribuídosIn
trodu
ção
a S
iste
mas
Dis
tribu
ídos
Intro
duçã
o a
Sis
tem
as D
istri
buíd
os
27/04/23 [email protected] 18
Interface de programaçãoInterface de programação
Interface de comunicação em redeInterface de comunicação em rede
Sistemas DistribuídosSistemas DistribuídosIn
trodu
ção
a S
iste
mas
Dis
tribu
ídos
Intro
duçã
o a
Sis
tem
as D
istri
buíd
os
27/04/23 [email protected] 19
Possibilita a criação de aplicações Java para ambientes distribuídos;Possibilita a criação de aplicações Java para ambientes distribuídos;
Com a obtenção da referência de um objeto remoto, sua utilização é Com a obtenção da referência de um objeto remoto, sua utilização é
igual a de um objeto local;igual a de um objeto local;
O RMI encapsula a interface com o protocolo de rede (socket);O RMI encapsula a interface com o protocolo de rede (socket);
Java Remote Method InvocationJava Remote Method Invocation
Sistemas DistribuídosSistemas DistribuídosIn
trodu
ção
a S
iste
mas
Dis
tribu
ídos
Intro
duçã
o a
Sis
tem
as D
istri
buíd
os
27/04/23 [email protected] 20
Complexidade de programação e ambiente:Complexidade de programação e ambiente:
É muito simples construir aplicações RMI, comparando-se com É muito simples construir aplicações RMI, comparando-se com
aplicações que utilizam tecnologia RPC e CORBA;aplicações que utilizam tecnologia RPC e CORBA;
Ambiente:Ambiente:
Exige somente suporte TCP/IP e um serviço de nomes de objetos Exige somente suporte TCP/IP e um serviço de nomes de objetos
(rmiregistry), disponibilizado gratuitamente com o JDK/SDK.(rmiregistry), disponibilizado gratuitamente com o JDK/SDK.
Java Remote Method InvocationJava Remote Method Invocation
Sistemas DistribuídosSistemas DistribuídosIn
trodu
ção
a S
iste
mas
Dis
tribu
ídos
Intro
duçã
o a
Sis
tem
as D
istri
buíd
os
27/04/23 [email protected] 21
O Java RMI é uma interface que possibilita a intercomunicação entre O Java RMI é uma interface que possibilita a intercomunicação entre
objetos Java localizados em diferentes hosts;objetos Java localizados em diferentes hosts;
Cada objeto remoto implementa uma interface remota que especifica Cada objeto remoto implementa uma interface remota que especifica
quais de seus métodos podem ser invocados remotamente pelos quais de seus métodos podem ser invocados remotamente pelos
clientes;clientes;
Os clientes invocam tais métodos exatamente como invocam métodos Os clientes invocam tais métodos exatamente como invocam métodos
locais.locais.
Java Remote Method InvocationJava Remote Method Invocation
Sistemas DistribuídosSistemas DistribuídosIn
trodu
ção
a S
iste
mas
Dis
tribu
ídos
Intro
duçã
o a
Sis
tem
as D
istri
buíd
os
27/04/23 [email protected] 22
Uma aplicação distribuída com RMI tem acesso transparente ao objeto Uma aplicação distribuída com RMI tem acesso transparente ao objeto
remoto por meio de sua Interface remota:remoto por meio de sua Interface remota:
A "Interface remota" é uma interface que estende os métodos e A "Interface remota" é uma interface que estende os métodos e
propriedades da API java.rmi.Remote;propriedades da API java.rmi.Remote;
A partir da Interface remota e implementação do objeto remoto o A partir da Interface remota e implementação do objeto remoto o
sistema gera objetos (proxies) que realizam todas as tarefas sistema gera objetos (proxies) que realizam todas as tarefas
necessárias para viabilizar a comunicação em redenecessárias para viabilizar a comunicação em rede
Arquitetura Java RMIArquitetura Java RMI
Sistemas DistribuídosSistemas DistribuídosIn
trodu
ção
a S
iste
mas
Dis
tribu
ídos
Intro
duçã
o a
Sis
tem
as D
istri
buíd
os
27/04/23 [email protected] 23
Arquitetura Java RMIArquitetura Java RMI
Sistemas DistribuídosSistemas DistribuídosIn
trodu
ção
a S
iste
mas
Dis
tribu
ídos
Intro
duçã
o a
Sis
tem
as D
istri
buíd
os
27/04/23 [email protected] 24
Camada de transporte
Stub Skeleton
Aplicação Objeto remoto
Camada de referência remota
JVM “A” JVM “B”
Gerados pelodesenvolvedor
Geradosautomaticamente
Classes que Implementam o RMI(Java.rmi.*)
Arquitetura Java RMIArquitetura Java RMI
Sistemas DistribuídosSistemas DistribuídosIn
trodu
ção
a S
iste
mas
Dis
tribu
ídos
Intro
duçã
o a
Sis
tem
as D
istri
buíd
os
27/04/23 [email protected] 25
Arquitetura Java RMIArquitetura Java RMI
Sistemas DistribuídosSistemas DistribuídosIn
trodu
ção
a S
iste
mas
Dis
tribu
ídos
Intro
duçã
o a
Sis
tem
as D
istri
buíd
os
27/04/23 [email protected] 26
Arquitetura Java RMIArquitetura Java RMI
Sistemas DistribuídosSistemas DistribuídosIn
trodu
ção
a S
iste
mas
Dis
tribu
ídos
Intro
duçã
o a
Sis
tem
as D
istri
buíd
os
27/04/23 [email protected] 27
Arquitetura Java RMIArquitetura Java RMI
Sistemas DistribuídosSistemas DistribuídosIn
trodu
ção
a S
iste
mas
Dis
tribu
ídos
Intro
duçã
o a
Sis
tem
as D
istri
buíd
os
27/04/23 [email protected] 28
Arquitetura Java RMIArquitetura Java RMI
Sistemas DistribuídosSistemas DistribuídosIn
trodu
ção
a S
iste
mas
Dis
tribu
ídos
Intro
duçã
o a
Sis
tem
as D
istri
buíd
os
27/04/23 [email protected] 29
Arquitetura Java RMIArquitetura Java RMI
Sistemas DistribuídosSistemas DistribuídosIn
trodu
ção
a S
iste
mas
Dis
tribu
ídos
Intro
duçã
o a
Sis
tem
as D
istri
buíd
os
27/04/23 [email protected] 30
Arquitetura Java RMIArquitetura Java RMI
Sistemas DistribuídosSistemas DistribuídosIn
trodu
ção
a S
iste
mas
Dis
tribu
ídos
Intro
duçã
o a
Sis
tem
as D
istri
buíd
os
27/04/23 [email protected] 31
Arquitetura Java RMIArquitetura Java RMI
Sistemas DistribuídosSistemas DistribuídosIn
trodu
ção
a S
iste
mas
Dis
tribu
ídos
Intro
duçã
o a
Sis
tem
as D
istri
buíd
os
27/04/23 [email protected] 32
Arquitetura Java RMIArquitetura Java RMI
Sistemas DistribuídosSistemas DistribuídosIn
trodu
ção
a S
iste
mas
Dis
tribu
ídos
Intro
duçã
o a
Sis
tem
as D
istri
buíd
os
27/04/23 [email protected] 33
A implementação RMI é um exemplo do padrão de projeto chamado A implementação RMI é um exemplo do padrão de projeto chamado
Proxy;Proxy;
Proxy é uma solução para situações onde o objeto de interesse está Proxy é uma solução para situações onde o objeto de interesse está
inacessível diretamente, mas o cliente precisa operar em uma inacessível diretamente, mas o cliente precisa operar em uma
interface idêntica para ter acesso a esse objeto;interface idêntica para ter acesso a esse objeto;
A solução via Proxy: criar uma classe que tenha a mesma interface A solução via Proxy: criar uma classe que tenha a mesma interface
que o objeto de interesse e que implemente, em seus métodos, a que o objeto de interesse e que implemente, em seus métodos, a
lógica de comunicação com o objeto inacessível;lógica de comunicação com o objeto inacessível;
Em RMI, o proxy é o Stub são gerados automaticamente pelo Em RMI, o proxy é o Stub são gerados automaticamente pelo
ambiente de desenvolvimento (rmic).ambiente de desenvolvimento (rmic).
ProxyProxy
Sistemas DistribuídosSistemas DistribuídosIn
trodu
ção
a S
iste
mas
Dis
tribu
ídos
Intro
duçã
o a
Sis
tem
as D
istri
buíd
os
27/04/23 [email protected] 34
StubStub
Análogo ao RPCAnálogo ao RPC
Stub é a representação local do objeto remoto localizado no Stub é a representação local do objeto remoto localizado no
cliente;cliente;
É gerado automaticamente por meio do rmicÉ gerado automaticamente por meio do rmic
Ex.: rmic Hello_TimeEx.: rmic Hello_Time
Hello_Time_Stub.classHello_Time_Stub.class
ProxyProxy
Sistemas DistribuídosSistemas DistribuídosIn
trodu
ção
a S
iste
mas
Dis
tribu
ídos
Intro
duçã
o a
Sis
tem
as D
istri
buíd
os
27/04/23 [email protected] 35
Camada de referência remota (RRL):Camada de referência remota (RRL):
Responsável pela parte semântica da ativação remota;Responsável pela parte semântica da ativação remota;
Uma chamada do Stub é repassada a essa camada que faz uso da Uma chamada do Stub é repassada a essa camada que faz uso da
camada de transporte;camada de transporte;
StubStub
Sistemas DistribuídosSistemas DistribuídosIn
trodu
ção
a S
iste
mas
Dis
tribu
ídos
Intro
duçã
o a
Sis
tem
as D
istri
buíd
os
27/04/23 [email protected] 36
Camada de referência remota (RRL):Camada de referência remota (RRL):
Tratamento dos diferentes tipos de referência remota:Tratamento dos diferentes tipos de referência remota:
Unicast: apenas um objetoUnicast: apenas um objeto
Multicast: existe um conjunto de objetos e a RRL é quem faz as Multicast: existe um conjunto de objetos e a RRL é quem faz as
chamadas necessárias a todos eles por meio da camada de chamadas necessárias a todos eles por meio da camada de
transporte.transporte.
Implementa as estratégias para reconectar:Implementa as estratégias para reconectar:
Caso o objeto remoto torna-se inacessível.Caso o objeto remoto torna-se inacessível.
StubStub
Sistemas DistribuídosSistemas DistribuídosIn
trodu
ção
a S
iste
mas
Dis
tribu
ídos
Intro
duçã
o a
Sis
tem
as D
istri
buíd
os
27/04/23 [email protected] 37
Camada de transporte:Camada de transporte:
Trata da criação / manutenção das conexões;Trata da criação / manutenção das conexões;
Efetua os envios / recebimentos de dados entre a máquina cliente Efetua os envios / recebimentos de dados entre a máquina cliente
e servidora;e servidora;
StubStub
Sistemas DistribuídosSistemas DistribuídosIn
trodu
ção
a S
iste
mas
Dis
tribu
ídos
Intro
duçã
o a
Sis
tem
as D
istri
buíd
os
27/04/23 [email protected] 38
Camada de transporte:Camada de transporte:
Padrão é utilizar sockets (java.net.Socket e ServerSocket) que são Padrão é utilizar sockets (java.net.Socket e ServerSocket) que são
obtidos de uma fábrica (java.RMISocketFactory) através do obtidos de uma fábrica (java.RMISocketFactory) através do
métodos:métodos:
CreateSocket;CreateSocket;
CreatServerSocket;CreatServerSocket;
Oferece também um mecanismo via HTTP para solucionar Oferece também um mecanismo via HTTP para solucionar
problemas com firewalls.problemas com firewalls.
StubStub
Sistemas DistribuídosSistemas DistribuídosIn
trodu
ção
a S
iste
mas
Dis
tribu
ídos
Intro
duçã
o a
Sis
tem
as D
istri
buíd
os
27/04/23 [email protected] 39
O cliente, quando invoca remotamente um método, não conversa O cliente, quando invoca remotamente um método, não conversa
diretamente com o objeto remoto, mas com uma implementação da diretamente com o objeto remoto, mas com uma implementação da
interface remota chamada stub, que é enviada ao cliente.interface remota chamada stub, que é enviada ao cliente.
O stub, por sua vez, passa a invocação para a camada de referência O stub, por sua vez, passa a invocação para a camada de referência
remota.remota.
StubStub
Sistemas DistribuídosSistemas DistribuídosIn
trodu
ção
a S
iste
mas
Dis
tribu
ídos
Intro
duçã
o a
Sis
tem
as D
istri
buíd
os
27/04/23 [email protected] 40
O primeiro passo antes de executar o servidor é ativar uma espécie de O primeiro passo antes de executar o servidor é ativar uma espécie de
servidor de nomes de servidores que atendem solicitações de métodos servidor de nomes de servidores que atendem solicitações de métodos
remotos. Isto é feito chamando-se o programa rmiregistry. remotos. Isto é feito chamando-se o programa rmiregistry.
Este programa pode estar ouvindo portas específicas, como por Este programa pode estar ouvindo portas específicas, como por
exemplo: exemplo: % rmiregistry 2048 &% rmiregistry 2048 & e outras e outras;;
Uma vez que este programa está executando, pode-se chamar o Uma vez que este programa está executando, pode-se chamar o
interpretador java para o arquivo servidor.class .interpretador java para o arquivo servidor.class .
Execução no servidorExecução no servidor
Sistemas DistribuídosSistemas DistribuídosIn
trodu
ção
a S
iste
mas
Dis
tribu
ídos
Intro
duçã
o a
Sis
tem
as D
istri
buíd
os
27/04/23 [email protected] 41
unip.br
Registry
Servidor_Stub.class
Servidor..class
cliente
Stub
lookup(.../Servidor)
Servidor está aqui
Solicitação de stub
Stub
sayHello()
“Oi cliente”
Esquema da chamadaEsquema da chamada
Sistemas DistribuídosSistemas DistribuídosIn
trodu
ção
a S
iste
mas
Dis
tribu
ídos
Intro
duçã
o a
Sis
tem
as D
istri
buíd
os
27/04/23 [email protected] 42
O objetivo deste módulo é oferecer apenas uma introdução básica a Java O objetivo deste módulo é oferecer apenas uma introdução básica a Java
RMI. Isto será feito através de um exemplo simples:RMI. Isto será feito através de um exemplo simples:
1.1. Definir a interfaceDefinir a interface
2.2. Implementar os objetos remotosImplementar os objetos remotos
3.3. Implementar um servidor para os objetosImplementar um servidor para os objetos
4.4. Compilar os objetos remotosCompilar os objetos remotos
5.5. Gerar stubs com rmicGerar stubs com rmic
6.6. Escrever, compilar e instalar o(s) cliente(s)Escrever, compilar e instalar o(s) cliente(s)
7.7. Instalar o stub no(s) cliente(s)Instalar o stub no(s) cliente(s)
8.8. Iniciar o RMI Registry no servidorIniciar o RMI Registry no servidor
9.9. Iniciar o servidor de objetosIniciar o servidor de objetos
10.10. Iniciar os clientes informando o endereço do servidor.Iniciar os clientes informando o endereço do servidor.
Como usar RMI em 10 passosComo usar RMI em 10 passos
Sistemas DistribuídosSistemas DistribuídosIn
trodu
ção
a S
iste
mas
Dis
tribu
ídos
Intro
duçã
o a
Sis
tem
as D
istri
buíd
os
27/04/23 [email protected] 43
São Paulo, 2011São Paulo, 2011
Universidade Paulista (UNIP)Universidade Paulista (UNIP)
Java – Remote Method Invocation (RMI)Java – Remote Method Invocation (RMI)
Prof. MSc. Vladimir CameloProf. MSc. Vladimir [email protected]