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

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

Luiz Carlos d´Oleron SJCP Java Sockets Java Avançado.

Apresentações semelhantes


Apresentação em tema: "Luiz Carlos d´Oleron SJCP Java Sockets Java Avançado."— Transcrição da apresentação:

1 Luiz Carlos d´Oleron SJCP Java Sockets Java Avançado

2 Luiz Carlos d´Oleron – Sistemas Distribuídos “Um sistema distribuído é uma coleção de processadores pouco acoplados, interconectados por uma rede de comunicação” Sistemas Operacionais com Java Silberschatz, Galvin e Gagne Principais Vantagens: 1.Compartilhamento de Recursos 2.Aumento da Velocidade de Computação 3.Confiabilidade 4.Comunicação 5....

3 Luiz Carlos d´Oleron – Camadas de Rede Aplicação Transporte Rede Enlace Física Aplicação Transporte Rede Enlace Física

4 Luiz Carlos d´Oleron – Protocolos de Rede Aplicação Transporte Rede Enlace Física Aplicação Transporte Rede Enlace Física HTTP,RMI, etc TCP e UDP IPv4 e IPv6 Ethernet e ATM

5 Luiz Carlos d´Oleron – TCP Principais Características: –Protocolo da camada de transporte –Complexo –Orientado à conexão –Confiável –Multiplexação/Demultiplexação –Detecção de Erros –Controle de Congestionamento –Menos performático do que UDP –Utilizado em diversas aplicações: FTP, , HTTP, RMI, etc...

6 Luiz Carlos d´Oleron – Sockets e Portas TCP usa duas abstrações chamadas Sockets e Portas Portas e Sockets não existem fisicamente Em Java, um socket é um objeto que sabe como enviar e receber dados de (e para) um outro computador através de uma rede Java Sockets usam TCP, apesar que não é necessário saber isso para usar Sockets (encapsulamento)

7 Luiz Carlos d´Oleron – Servidores e Portas Servidores (Servers) são computadores que disponibilizam serviços através de Portas Cada serviço é disponibilizado através de uma porta Quando queremos usar um serviço, usamos TCP, informando o endereço IP da máquina e a Porta do serviço Por exemplo, o serviço de um HTTP server normalmente atende pela porta 80 (default) Entretanto, muitos Application Server (Tomcat por exemplo) são normalmente configurados para atender pela porta 8080

8 Luiz Carlos d´Oleron – Sockets e Portas Exemplos: –http:// / (acesso pela porta 80) –http:// :8080/ (acesso pela porta 8080) –mysql://arcoverde:3306/jornada –rmi://localhost:1099/server

9 Luiz Carlos d´Oleron – Sockets em Java É representado pela classe java.net.Socket Usa TCP, logo herda todas as características dele (principalmente a confiabilidade) Exemplo de Construtor: public Socket(String ipserver, int porta) throws IOException; Após o construtor executar, o socket já estará apto para se comunicar Se o socket não conseguir se comunicar, será lançada uma IOException Permite escrita e leitura através de Input e OutputStream´s

10 Luiz Carlos d´Oleron – Java Sockets e I/O

11 Luiz Carlos d´Oleron – Java Sockets e I/O

12 Luiz Carlos d´Oleron – ServerSocket É representado pela classe java.net.ServerSocket A função principal de um ServerSocket é aguardar pela conexão de um Socket Um dos construtores mais utilizados é: public ServerSocket(int porta) throws IOException; Se o ServerSocket não conseguir se instalar na porta, será lançada uma IOException Diferente do Socket, após o construtor executar, o ServerSocket deverá chamar acept() para aguardar uma conexão acept() retorna um socket. Após acept() retornar, o ServerSocket poderá se comunicar com este socket.

13 Luiz Carlos d´Oleron – ServerSocket

14 Luiz Carlos d´Oleron – Streams e Serialização Objetos são estruturas complexas...Possuem vários atributos...Seus atributos podem ser outros objetos...Que possuem mais atributos...Criando uma estrutura em árvore E olhe que nem falamos dos métodos, atributos de classe, etc... Como enviar via rede um objeto complexo? Com serialização

15 Luiz Carlos d´Oleron – Streams e Serialização Serialização é o processo de transformar uma estrutura de dados complexa, como um objeto, em uma série de bytes A série gerada é “enviada pelo fio” da rede Do outro lado, o objeto é rematerializado Graças ao Java Team, a JVM faz isso para nós Basta que indiquemos que a classe do objeto implementa a interface java.io.Serializable Obs.: os atributos do objeto devem ser Serializable também Isso é o mesmo processo usado para se gravar um objeto em um arquivo

16 Luiz Carlos d´Oleron – UnmarshalException Se você tentar enviar um objeto via rede que não pode ser serializado, será lançada uma UnmarshalException Marshaling e UnMarshaling são outros nomes dados para os processos de Desmaterizalizar e Materializar o objeto Quando ocorrer, observe se o objeto que você está enviando é Serializable (lembre-se dos atributos)

17 Luiz Carlos d´Oleron – Sockets e Threads O normal é que tenhamos vários clientes para poucos servidores Assim, um servidor deve poder atender a vários clientes ao mesmo tempo Isto é feito escalonando Threads no lado do servidor, de forma que cada Thread cuide de um cliente

18 Luiz Carlos d´Oleron – Exercício: Um servidor de arquivos Realizar em dupla Criar um cliente que use um Socket para se conectar a um servidor e enviar automaticamente um arquivo do sistema operacional (Upload) Os primeiros 50 bytes enviados serão usados para enviar o nome do arquivo (só o nome com extensão) Os arquivos podem ser de qualquer tipo Criar um servidor que aguarde conexões. Quando algum socket conectar a ele, automaticamente o servidor irá coletar os bytes enviados e irá criar um arquivo em uma pasta do Sistema Operacional. Nos primeiros 50 bytes recebidos, estará o nome do arquivo enviado. O servidor poderá ser conectado por vários clientes ao mesmo tempo

19 Luiz Carlos d´Oleron – Expansão do Exercício (opcional) Os arquivos enviados pelo cliente ao servidor podem ser enormes, maiores do que 1 Gb O cliente poderá enviar vários arquivos ao mesmo tempo O servidor poderá atender apenas a um número limitado (k <=10) de clientes simultaneamente No final do Upload, o servidor envia uma mensagem de confirmação para o cliente O cliente poderá efetuar além de uploads, downloads de arquivos do servidor


Carregar ppt "Luiz Carlos d´Oleron SJCP Java Sockets Java Avançado."

Apresentações semelhantes


Anúncios Google