Computação Distribuída

Documentos relacionados
Sistemas Distribuídos. Prof. Ricardo Ribeiro dos Santos

Sistemas Distribuídos Capítulos 2 e 3: Modelos, Arquitecturas e Revisão de Redes

Sistemas Distribuídos

Tecnologias Java Sockets e RMI

Capítulo IV Comunicação entre processos

Programação com sockets (em Java)

Implementando comunicação em JAVA via Sockets. Alcides Calsavara - alcides@ppgia.pucpr.br Leonardo R. Nunes - leonardo@sumersoft.

Sistemas Distribuídos

Sistemas Distribuídos. Prof. Marcio Seiji Oyamada

Capítulo IV Comunicação entre processos

Sockets em Java. Leonardo R. Nunes - leonardo@sumersoft.com. 1. Introdução. 2. Sockets TCP/IP

Sistemas Operacionais:

Programação Paralela e Distribuída. Prof. Cidcley T. de Souza

Sockets com Java Parte I

socket Objetivo: aprender a construir aplicações cliente/servidor que se comunicam usando sockets

Caso 1 NetScanner Main

Programação em Rede Baseada em Java. Luiz Affonso Guedes Tópicos em Redes de Computadores Programação Distribuída

Programação de sockets com TCP

UNIVERSIDADE. Sistemas Distribuídos

Programação de Sockets

Programação de Sockets

Comunicação entre processos

Programando sistemas distribuídos com objetos distribuídos na rede TCP/IP. Prof. Me. Sérgio Carlos Portari Júnior

Mecanismos de Comunicação. Sockets em java (

INF01018 Aula Prática 1 Cliente-Servidor e Multicast

UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ SOCKETS UDP, TCP E MULTICAST. Prof. Cesar Augusto Tacla

Resumo das Propriedades de UDP e de TCP

Licenciatura em Engenharia Informática PROVA DE TESTE PRÁTICO Sistemas Distribuídos I 2º Semestre, 2005/2006

Comunicação via Sockets. Prof. Orlando Loques - IC/UFF. versão

Sistemas Distribuídos Java Sockets

Sockets. Introdução. Introdução. Programando para redes em Java. mecanismo de alto nível para acessar recursos na Internet.

Sistemas Distribuídos

Java 2 Standard Edition Fundamentos de

IPTV Televisão sobre a Internet

Redes de Computadores Programação com Sockets

Relatório 1º Laboratório: O Java e os Sockets. Licenciatura: ETI Turma : ETC1 Grupo : rd3_t3_02 Data: 22/02/2010

Redes de Computadores I

Objetos Distribuídos - Programação Distribuída Orientado a Objetos. Luiz Affonso Guedes

Java : Comunicação Cliente-Servidor.

Sistemas Distribuídos. Coulouris Capítulo 4

UNIVERSIDADE. Sistemas Distribuídos

Conexão Socket na MIDP

Um pouco do Java. Prof. Eduardo

Sockets e Threads em Java

Capítulo II Modelos de Programação Distribuída

Disciplina de Sistemas Distribuídos. Comunicação em Sistemas Distribuídos

Cliente-servidor com Sockets TCP

Redes de Computadores II. Programação com Sockets em Python

INF1013 MODELAGEM DE SOFTWARE

Invocação de Métodos Remotos RMI (Remote Method Invocation)

SISTEMAS DISTRIBUIDOS

1 a. Sumário. 1. Conceitos Básicos a. Invocação remota (RPC/RMI) b. Semântica de invocação remota c. Invocação remota de métodos (RMI)

Aula 30 - Sockets em Java

Sistemas Distribuídos

Programação: Sockets em Java

COMUNICAÇÃO INTER-PROCESSOS JAVA RMI e RPC. Prof. Cesar Augusto Tacla

Comunicação entre Processos. Comunicação entre Processos. Comunicação entre Processos. Comunicação entre Processos. Comunicação entre Processos

Conceitos Básicos. Conceitos Básicos. Networking. Programando para redes em Java. empregando os protocolos:

Princípios de Sistemas Distribuídos. Tecnologias utilizadas em sistemas distribuídos Aula 5

sockets interprocess communication Taisy Weber

Aula Prática. Comunicação em SOCKTS. Disciplina: INF01151

Sistemas Distribuídos

UNIVERSIDADE. Sistemas Distribuídos

Comunicação usando soquetes.

Programação II Java Streams. Christopher Burrows

User Datagram Protocol

MIDDLEWARE Aplicativos RMI, RPC e eventos Camadas Protocolo Requesição-Respostal Middleware Representação Externa dos Dados Sistemas Operacionais

FTP FILE F TRANSFER PROTOCOL. Tópicos

15/4/15. Processamento Paralelo Middleware Orientado a Objetos. Sistema operacional é a única infraestrutura para interação. Middleware é adicionado

Sockets. Bruno Guimarães Lucas Rossini

Invocação Remota MC704

Olho por olho, e o mundo acabará cego. Mohandas Gandhi

Distributed Systems Principles and Paradigms

Multithreading. Programação Orientada por Objectos com Java. Ademar Aguiar. MRSC - Programação em Comunicações

Utilização do Appia. Tolerância a Faltas Distribuída 2003/04. Nuno Carvalho nunomrc@di.fc.ul.pt

Programação Orientada por Objectos com Java. Ademar Aguiar. MRSC, Programação em Comunicações

Curso de especialização em Teleinformática Disciplina Sistemas Distribuídos Prof. Tacla

Threads e Sockets em Java. Threads em Java. Programas e Processos

Passagem de Mensagens

Chamadas Remotas de Procedimentos (RPC) O Conceito de Procedimentos. RPC: Programa Distribuído. RPC: Modelo de Execução

Java Básico. Matrícula de Alunos. Marco Antonio, Arquiteto de Software TJDF Novembro/2005

SISTEMAS DISTRIBUÍDOS

Transcrição:

Roteiro da aula Sockets 1. UDP (User Datagram Protocol) 2. TCP ( (Transmission Control Protocol) 3. IP Multicast Invocação de Método M Remoto usando CORBA 1. Introdução 2. Modelo de Objeto 3. Entender a Arquitetura CORBA 4. Implementar uma aplicação cliente/servidor distribuído do com CORBA 1 Middleware layers Applications, services RMI and RPC This chapter request-reply protocol marshalling and external data representation Middleware layers UDP and TCP 2

Sockets e Portas socket any port agreed port socket client Internet address = 138.37.94.248 message other ports server Internet address = 138.37.88.249 3 Cliente UDP Cliente UDP envia uma mensagem ao servidor e recebe resposta public class UDPClient{ public static void main(string args[]) { // args give message contents and server hostname DatagramSocket asocket = null; asocket = new DatagramSocket(); byte [] m = args[0].getbytes(); InetAddress ahost = InetAddress.getByName(args[1]); int serverport = 6789; DatagramPacket request = new DatagramPacket(m, args[0].length(), ahost, serverport); asocket.send(request); byte[] buffer = new byte[1000]; DatagramPacket reply = new DatagramPacket(buffer, buffer.length); asocket.receive(reply); System.out.println("Reply: " + new String(reply.getData())); catch (SocketException e){system.out.println("socket: " + e.getmessage()); catch (IOException e){system.out.println("io: " + e.getmessage()); finally {if(asocket!= null) asocket.close(); 4

Servidor UDP Servidor UDP repetidamente recebe uma requisição e retorna ao cliente public class UDPServer{ public static void main(string args[]) { DatagramSocket asocket = null; asocket = new DatagramSocket(6789); byte[] buffer = new byte[1000]; while(true) { DatagramPacket request = new DatagramPacket(buffer, buffer.length); asocket.receive(request); System.out.println( Request: " + new String(request.getData())); DatagramPacket reply = new DatagramPacket(request.getData(), request.getlength(), request.getaddress(), request.getport()); asocket.send(reply); catch (SocketException e){system.out.println("socket: " + e.getmessage()); catch (IOException e) {System.out.println("IO: " + e.getmessage()); finally {if(asocket!= null) asocket.close(); 5 Cliente TCP Cliente TCP faz conexão com o server, envia a request e recebe a resposta public class TCPClient { public static void main (String args[]) { // arguments supply message and hostname of destination Socket s = null; int serverport = 7896; s = new Socket(args[1], serverport); DataInputStream in = new DataInputStream( s.getinputstream()); DataOutputStream out = new DataOutputStream( s.getoutputstream()); out.writeutf(args[0]); // UTF is a string encoding see Sn 4.3 String data = in.readutf(); System.out.println("Received: "+ data) ; catch (UnknownHostException e){ System.out.println("Sock:"+e.getMessage()); catch (EOFException e){system.out.println("eof:"+e.getmessage()); catch (IOException e){system.out.println("io:"+e.getmessage()); finally {if(s!=null) s.close();catch (IOException e){system.out.println("close:"+e.getmessage()); 6

Servidor TCP public class TCPServer { public static void main (String args[]) { int serverport = 7896; ServerSocket listensocket = new ServerSocket(serverPort); while(true) { Socket clientsocket = listensocket.accept(); Connection c = new Connection(clientSocket); catch(ioexception e) {System.out.println("Listen :"+e.getmessage()); // this figure continues on the next slide Servidor TCP faz uma conexão com cada cliente e então ecoa a mensagem cliente 7 Servidor TCP (continuação) class Connection extends Thread { DataInputStream in; DataOutputStream out; Socket clientsocket; public Connection (Socket aclientsocket) { clientsocket = aclientsocket; in = new DataInputStream( clientsocket.getinputstream()); out =new DataOutputStream( clientsocket.getoutputstream()); this.start(); catch(ioexception e) {System.out.println("Connection:"+e.getMessage()); public void run(){ // an echo server String data = in.readutf(); System.out.println("Received: "+ data) ; out.writeutf(data); catch(eofexception e) {System.out.println("EOF:"+e.getMessage()); catch(ioexception e) {System.out.println("IO:"+e.getMessage()); finally{ clientsocket.close();catch (IOException e){/*close failed*/ 8

Multicast Membro Multicast se junta a um grupo, envia e recebe datagramas public class MulticastPeer{ public static void main(string args[]){ // args give message contents & destination multicast group (e.g. "228.5.6.7") MulticastSocket s =null; InetAddress group = InetAddress.getByName(args[1]); s = new MulticastSocket(6789); s.joingroup(group); byte [] m = args[0].getbytes(); DatagramPacket messageout = new DatagramPacket(m, m.length, group, 6789); s.send(messageout); // continua no próximo slide 9 continuação // get messages from others in group byte[] buffer = new byte[1000]; for(int i=0; i< 3; i++) { DatagramPacket messagein = new DatagramPacket(buffer, buffer.length); s.receive(messagein); System.out.println("Received:" + new String(messageIn.getData())); s.leavegroup(group); catch (SocketException e){system.out.println("socket: " + e.getmessage()); catch (IOException e){system.out.println("io: " + e.getmessage()); finally {if(s!= null) s.close(); 10

Sockets usado para datagramas Enviando uma mensagem Recebendo uma mensagem s = socket(af_inet, SOCK_DGRAM, 0) s = socket(af_inet, SOCK_DGRAM, 0) bind(s, ClientAddress) sendto(s, "message", ServerAddress) bind(s, ServerAddress) amount = recvfrom(s, buffer, from) ServerAddress and ClientAddress são endereços socket 11 Sockets usado para streams Requisitando uma conexão Ouvindo e aceitando uma conexão s = socket(af_inet, SOCK_STREAM,0) connect(s, ServerAddress) write(s, "message", length) s = socket(af_inet, SOCK_STREAM,0) bind(s, ServerAddress); listen(s,5); snew = accept(s, ClientAddress); n = read(snew, buffer, amount) ServerAddress and ClientAddress são endereços socket 12