A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Programação Distribuída em Java Aula 05. 2 Na aula passada vimos Domain Name Server –Funcionamento básico O pacote java.net –Sua finalidade A classe InetAddress.

Apresentações semelhantes


Apresentação em tema: "Programação Distribuída em Java Aula 05. 2 Na aula passada vimos Domain Name Server –Funcionamento básico O pacote java.net –Sua finalidade A classe InetAddress."— Transcrição da apresentação:

1 Programação Distribuída em Java Aula 05

2 2 Na aula passada vimos Domain Name Server –Funcionamento básico O pacote java.net –Sua finalidade A classe InetAddress –O que representa –Formas de utilização

3 3 Na aula passada vimos A classe Url –O que representa –Formas de utilização –Recuperação de dados –Acesso a CGI e Servlets A classe UrlConnection –Representação –Possibilidades

4 4 O que você deve ter fixado: Distinguir endereço de hostname; ter noções de DNS Quando usar InetAddress e quando usar URL Recuperar dados de um URL; enviar solicitações a cgi e servlet

5 5 Na aula de hoje veremos: O protocolo UDP A classe DatagramPacket A classe DatagramSocket MultiCastSocket

6 6 Recordando TCP Transmissão confiável de dados Dados perdidos ou danificados são reenviados Pacotes fora de ordem são ordenados Controle de velocidade de recepção de pacotes Custo: baixa velocidade

7 7 UDP – user datagram protocol Conection-less Datagram-based Unreliable Postal-like Prize: high velocity

8 8 Mas por quê usar UDP ? Aplicações de tempo real; multicasting Velocidade crítica versus confiabilidade Possibilidade de controle na camada de aplicação –Domain Name Server DNS –Network File System NFS –Trivial FTP TFTP

9 9 UDP no Java Java implementa UDP através das classes: DatagramPacket –Armazena dados na forma de bytes DatagramSocket –Envia e recebe DatagramPacket Não existe algo como um DatagramServerSocket

10 10 UDP no Java Não existe stream Trabalho com datagramas individuais Um DatagramSocket pode se comunicar com vários hosts

11 11 DatagramPacket Acrescentam pouco aos datagramas de IP Sistema de portas independente do TCP Capacidade máxima 64k –Incluindo 20 bytes de cabeçalho –Incluindo 8 bytes próprios do datagrama de UDP Na prática utilizam-se no máximo 8k

12 12 DatagramPacket Quanto menor melhor (mais seguro) Por segurança usa-se 512k ou menos por datagrama TCP libera o programador desses detalhes

13 DatagramExample.java13 DatagramPacket constructors Usados para receber dados public DatagramSocket (byte[] buffer, int length) public DatagramSocket (byte[] buffer, int offset, int length) Usados para enviar dados public DatagramSocket (byte[] buffer, int length, InetAddress ia, int port) public DatagramSocket (byte[] buffer, int offset, int length, InetAddress ia, int port)

14 14 DatagramPacket Métodos básicos –getPort() –getData() –getAddress() –getLength() –getOffset() Existem os correspondentes setters

15 15 DatagramSocket Envia e recebe datagramas UDP Socket utilizado por cliente ou servidor é idêntico Diferem apenas pelo uso de porta anônima ou notável Cliente só usa anônima; atribuição aleatória Servidor usa atribuição explícita

16 UDPPortScanner.java16 DatagramSocket constructors Enviar dados public DatagramSocket() Receber dados public DatagramSocket(int port) public DatagramSocket(int port, InetAddress interface)

17 17 Enviar e receber datagramas Um DatagramSocket pode fazer ambas as operações Pode receber e enviar para vários host’s ao mesmo tempo! Exceções podem ser geradas ou não.

18 UDPDiscardClient.java and UDPDiscarServer.java 18 Enviar e receber datagramas O método send() envia um packet por vez O método receive(), assim como accept() bloqueia a execução do programa receive() armazena o datagrama que veio da rede em um DatagramSocket local Importante lembrar que o tamanho máximo de um datagrama é 64k

19 19 Conexões UDP ?!? Todo soquete de datagrama pode conversar com qualquer host indiscriminadamente E quando queremos restringir a comunicação? Fazemos uma “conexão”!

20 20 Conexões UDP ?!? public void connect(InetAddress ia, int port) Especifica para onde vai o datagrama Especifica que só recebe datagramas desse mesmo local A chegada de datagramas de outro endereço gera uma IllegalArgumentException Pacotes recebidos de outro endereço ou porta são descartados.

21 21 MulticastSocket Envia dados de um host para vários hosts Dados vão apenas para clientes que expressam interesse Meio termo entre comunicação ponto-a- ponto e difusão

22 QuoteServer.java22 MulticastSocket Pode ser usado no lado servidor Deve ser usado no lado cliente A cada estímulo envia a mesma mensagem a todos do grupo

23 23 Possibilidades de MulticastSocket Games multi-player Sistemas de arquivos distribuídos Computação paralela intensiva Teleconferência Web sites de alto tráfego Entre outras...

24 24 Multicast group Conjunto de hosts “conectados” ao mesmo endereço multicast Endereços multicast são classe D Estão no intervalo 224.0.0.0 a 238.255.255.25 5 Endereços começados em 224 ou 239 são reservados para serviços baixo nível

25 25 MulticastSocket A maioria dos grupos multicast é temporária 248 milhões de endereços nesse intervalo podem ser usados livremente. Roteadores são responsáveis por impedir que dois grupos usem o mesmo endereço

26 26 MulticastSocket Dados multicast usam UDP, logo são três vezes mais rápidos que TCP Requer atenção especial ao TTL O Time to Live é usado para que os pacotes perdidos não inundem a Internet Todos os receptores devem ouvir na mesma porta

27 MulticastListener.java27 MulticastSocket no lado cliente Crie um MulticastSocket e junte-se a um grupo –Usar o método joinGroup (InetAddress groupAddress) Troque informações e deixe o grupo –Usar os métodos: send(), receive e leaveGroup() Na verdade, para enviar uma mensagem a um grupo não é necessário ser parte dele

28 28 O que você precisa saber: Compreender as vantagens e desvantagens do uso de UDP Converter a informação em bytes Compreender as características particulares de soquetes de datagrama Entender quando usar um MulticastSocket

29 29 Na próxima aula veremos: policytool SecurityManager


Carregar ppt "Programação Distribuída em Java Aula 05. 2 Na aula passada vimos Domain Name Server –Funcionamento básico O pacote java.net –Sua finalidade A classe InetAddress."

Apresentações semelhantes


Anúncios Google