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