Universidade do Vale do Rio dos Sinos
UniInfo 2003
Introdução à Programação
Distribuída em Java
(módulo 1)
por
Jorge Luis Victória Barbosa
[email protected]
São Leopoldo, novembro de 2003
1
Sockets
1
Arquiteturas Distribuídas
Módulo 1
2
Sockets
1
2
Arquiteturas Distribuídas
Conceito de sockets
Módulo 1
3
Conceito de Sockets
• 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
Módulo 1
4
Sockets
1
2
3
Arquiteturas Distribuídas
Conceito de sockets
Sockets em Java
• Sockets em JAVA
– classes no pacote java.net
– Possibilita implementar os protocolos TCP/IP (orientado
à conexão) ou UDP (sem conexão)
Módulo 1
5
Sockets em Java
Servidor
Cliente
ServerSocket (núm. da porta)
Socket (host, núm. da porta)
ServerSocket.accept ()
(tentativa de conexão)
Socket()
OutputStream
OutputStream
InputStream
InputStream
Socket.close()
Socket.close()
Módulo 1
6
RMI (Remote Method Invocation)
1
História: RPC (Remote Procedure Call)
Módulo 1
7
RMI (Remote Method Invocation)
1
2
História: RPC (Remote Procedure Call)
Conceito de RMI (RPC evoluiu para RMI)
Módulo 1
8
RMI (Remote Method Invocation)
1
2
3
História: RPC (Remote Procedure Call)
Conceito de RMI (RPC evoluiu para RMI)
RMI em Java
Módulo 1
9
RMI (Remote Method Invocation)
1
2
3
História: RPC (Remote Procedure Call)
Conceito de RMI (RPC evoluiu para RMI)
RMI em Java
Objeto Remoto
Objeto 1
JVM
Objeto 2
JVM
Módulo 1
10
RMI (Remote Method Invocation)
1
2
3
História: RPC (Remote Procedure Call)
Conceito de RMI (RPC evoluiu para RMI)
RMI em Java
Objeto Remoto
Objeto 1
JVM
Objeto 2
RMI
JVM
Módulo 1
11
RMI (Remote Method Invocation)
1
2
3
História: RPC (Remote Procedure Call)
Conceito de RMI (RPC evoluiu para RMI)
RMI em Java
Exemplo Produtor - Consumidor
MessageQueueImpl
Buffer
Módulo 1
12
RMI (Remote Method Invocation)
1
2
3
História: RPC (Remote Procedure Call)
Conceito de RMI (RPC evoluiu para RMI)
RMI em Java
Exemplo Produtor - Consumidor
MessageQueueImpl
Producer
Buffer
Consumer
Módulo 1
13
Download

Introdução à Programação Distribuída em Java