13
1 Introdução à Programação Introdução à Programação Distribuída em Java Distribuí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 [email protected]

Introdução à Programação Distribuída em Java (módulo 1)

Embed Size (px)

DESCRIPTION

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. Sockets. Arquiteturas Distribuídas. 1. Módulo 1. Sockets. - PowerPoint PPT Presentation

Citation preview

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

[email protected]

2

SocketsSockets

MódulMódulo 1o 1

Arquiteturas Distribuídas1

3

SocketsSockets

MódulMódulo 1o 1

Arquiteturas DistribuídasConceito de sockets

1

2

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

13

Exemplo Produtor - Consumidor

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

MessageQueueImpl

Buffer

Producer

Consumer

MódulMódulo 1o 1