Post on 01-Jan-2016
description
1
Introdução à Programação Introdução à Programação Distribuída em JavaDistribuída em Java
(módulo 1)(módulo 1)
por
Jorge Luis Victória Barbosa
Universidade do Vale do Rio dos Sinos
UniInfo 2003
São Leopoldo, novembro de 2003
barbosa@exatas.unisinos.br
4
• Modelo Cliente / Servidor
– Uma máquina deve executar um programa que aguarda uma conexão e provê um serviço (servidor);
– Outra máquina, o cliente, envia requisições para o servidor e recebe as respostas;
– Exemplo: FTP, WWW, Mail, etc.
• Endereçamento da Conexão
– Para fazer uma conexão via rede é necessário saber o endereço da máquina remota (IP ou nome da máquina);
– Cada conexão via rede necessita de um número de porta.
• Número da porta
– São números de 16bits (0-65535)
– Portas abaixo de 1024 são reservadas para serviços pré-definidos e não devem ser utilizadas, a não ser para comunicar com um destes serviços
– Exemplos de portas: FTP - 21, WEB - 80, MAIL - 25, etc
– Clientes e servidores devem utilizar a mesma porta para a comunicação
Conceito de Conceito de SocketsSockets
MódulMódulo 1o 1
5
SocketsSockets
MódulMódulo 1o 1
Arquiteturas DistribuídasConceito de socketsSockets em Java
1
2
3
• Sockets em JAVA– classes no pacote java.net
– Possibilita implementar os protocolos TCP/IP (orientado
à conexão) ou UDP (sem conexão)
6
Sockets em JavaSockets em Java
ServidorServerSocket (núm. da porta)
ServerSocket.accept ()
Socket()
OutputStream
InputStream
Socket.close()
ClienteSocket (host, núm. da porta)
(tentativa de conexão)
OutputStream
InputStream
Socket.close()
MódulMódulo 1o 1
7
RMI (Remote Method RMI (Remote Method Invocation)Invocation)
MódulMódulo 1o 1
História: RPC (Remote Procedure Call)1
8
RMI (Remote Method RMI (Remote Method Invocation)Invocation)História: RPC (Remote Procedure Call)
Conceito de RMI (RPC evoluiu para RMI)
1
2
MódulMódulo 1o 1
9
RMI (Remote Method RMI (Remote Method Invocation)Invocation)História: RPC (Remote Procedure Call)
Conceito de RMI (RPC evoluiu para RMI)RMI em Java
1
2
3
MódulMódulo 1o 1
10
RMI (Remote Method RMI (Remote Method Invocation)Invocation)História: RPC (Remote Procedure Call)
Conceito de RMI (RPC evoluiu para RMI)RMI em Java
1
2
3
JVM JVM
Objeto Remoto
Objeto 2Objeto 1
MódulMódulo 1o 1
11
História: RPC (Remote Procedure Call)Conceito de RMI (RPC evoluiu para RMI)RMI em Java
1
2
3
JVM JVM
Objeto Remoto
Objeto 2Objeto 1
RMI (Remote Method RMI (Remote Method Invocation)Invocation)
RMI
MódulMódulo 1o 1
12
RMI (Remote Method RMI (Remote Method Invocation)Invocation)História: RPC (Remote Procedure Call)
Conceito de RMI (RPC evoluiu para RMI)RMI em Java
1
2
3
Exemplo Produtor - ConsumidorMessageQueueImpl
Buffer
MódulMódulo 1o 1