SlideShare uma empresa Scribd logo
1 de 44
Baixar para ler offline
TECNOLOGIA JAVA PARA
SOCKETS
Lucas Coutinho de S. Oliveira
INTER-PROCESS
COMMUNICATION (IPC)
23/07/2014LucasCoutinhodeS.Oliveira
2
INTER-PROCESS COMMUNICATION (IPC)
 O que é?
 “[...] inter-process communication (IPC) is a set
of methods for the exchange of data among multiple
threads in one or more processes. Processes may be
running on one or more computers connected by a
network.” [3]
 “IPC é um conjunto de métodos para troca de
informações entre múltiplas threads em um ou mais
processos. Processos podem estar executando em um
ou mais computadores conectados por um rede.”
(tradução livre)
23/07/2014
3
LucasCoutinhodeS.Oliveira
INTER-PROCESS COMMUNICATION (IPC)
 É considerado, por muitos, o backbone da
computação distribuída;
 Permite que processos separados comuniquem-se
entre si para executar um tarefa comum;
23/07/2014
4
LucasCoutinhodeS.Oliveira
INTER-PROCESS COMMUNICATION (IPC)
 A troca de informações podem ser:
 Simplex
 Duplex
23/07/2014
5
LucasCoutinhodeS.Oliveira
P1 P2
P1 P2
INTER-PROCESS COMMUNICATION (IPC)
 E, ainda podem ser classificadas como:
 Unicast
O processo P1 troca dados com apenas um processo P;
23/07/2014
6
LucasCoutinhodeS.Oliveira
P1 P
INTER-PROCESS COMMUNICATION (IPC)
 E, ainda podem ser classificadas como:
 Multicast
O processo P1 troca dados, simultaneamente com vários
processos¹;
¹ Não são várias comunicações unicasts;
23/07/2014
7
LucasCoutinhodeS.Oliveira
P1
P2
P2
INTER-PROCESS COMMUNICATION (IPC)
 Protocolos
 São um conjunto de regras que precisam ser
respeitadas para que a comunicação aconteça;
23/07/2014
8
LucasCoutinhodeS.Oliveira
INTER-PROCESS COMMUNICATION (IPC)
 Exemplos:
 Pipes (nomeados e unidirecionais);
 Fila de mensagens;
 Memória compartilha;
 RPC (Remote Procedure Call);
 Socket;
23/07/2014
9
LucasCoutinhodeS.Oliveira
SOCKETS
23/07/2014LucasCoutinhodeS.Oliveira
10
SOCKETS
 Foram definidos originalmente no Berkeley Unix
4.x;
 São um elo de comunicação, bidirecional, entre
dois processos em execução distribuídos em uma
rede.[6]
23/07/2014
11
LucasCoutinhodeS.Oliveira
SOCKETS
 Endereçamento:
 Endereço IP + Porta
 Portas
 É um identificador (16 bits) de buffer associado a um
processo;
 65.536 portas possíveis;
23/07/2014
12
LucasCoutinhodeS.Oliveira
SOCKETS
 Protocolos (Camada de transporte):
 TCP (Transmission Control Protocol);
 UDP (User Datagram Protocol);
23/07/2014
13
LucasCoutinhodeS.Oliveira
SOCKETS
 Protocolos (Camada de transporte):
 TCP (Transmission Control Protocol);
 Orientado a conexão (3-way handshake);
 Confiabilidade;
 Full Duplex;
 Entrega ordenada;
 Controle de Fluxo;
23/07/2014
14
LucasCoutinhodeS.Oliveira
SYN
ACK
CLIENTE
SERVIDOR
SOCKETS
 Protocolos (Camada de transporte):
 UDP (User Datagram Protocol);
 Não orientado a conexão;
 Não confiável;
 Multicast; ( 1 → N)
23/07/2014
15
LucasCoutinhodeS.Oliveira
SOCKETS EM JAVA
23/07/2014LucasCoutinhodeS.Oliveira
16
SOCKETS EM JAVA
 Introduzido no JDK 1.0 (1996)
 Primeira versão lançada;
 Desenvolvido pela Sun Microsystems;
 Mantido pela Oracle Corporation (2010);
 O pacote java.net fornece uma API para o uso de
sockets;
 Fornece suporte a transmissão unicast e
multicast;
23/07/2014
17
LucasCoutinhodeS.Oliveira
SOCKETS EM JAVA
 Unicast
 Socket
 API de cliente TCP;
 Utilizada para se conectar a um servidor remoto;
 Envia dados através de um stream;
 ServerSocket
 API de servidor TCP;
 Utilizada para receber conexões de um host remoto
 Recebe os dados através de um stream;
23/07/2014
18
LucasCoutinhodeS.Oliveira
SOCKETS EM JAVA
 Servidor TCP (Exemplo de uso)
23/07/2014
19
LucasCoutinhodeS.Oliveira
SOCKETS EM JAVA
 Cliente TCP (Exemplo de uso)
23/07/2014
20
LucasCoutinhodeS.Oliveira
SOCKETS EM JAVA
 Unicast
 DatagramSocket
 API de cliente/servidor UDP;
 Envia/Recebe dados através de pacotes de datagrama;
23/07/2014
21
LucasCoutinhodeS.Oliveira
SOCKETS EM JAVA
 Servidor UDP (Exemplo de uso)
23/07/2014
22
LucasCoutinhodeS.Oliveira
SOCKETS EM JAVA
 Cliente UDP (Exemplo de uso)
23/07/2014
23
LucasCoutinhodeS.Oliveira
SOCKETS EM JAVA
 Unicast
 DatagramSocket
 API de cliente/servidor UDP;
 Envia/Recebe dados através de pacotes de datagrama;
23/07/2014
24
LucasCoutinhodeS.Oliveira
SOCKETS EM JAVA
 Unicast
 Arquitetura: Cliente-Servidor
23/07/2014
25
LucasCoutinhodeS.Oliveira
SOCKETS EM JAVA
 Multicast
 Útil em aplicações groupware;
 Ex: Vídeo Conferencia;
 Utiliza o conceito de grupos, formados por diversos
processos (multicast group);
 Cada processo no grupo pode enviar mensagem para
todos os outros;
23/07/2014
26
LucasCoutinhodeS.Oliveira
SOCKETS EM JAVA
 Multicast
 Faixa de endereços:
 224.0.0.0 até 239.255.255.255
 Reservas
 224.0.0.0 Base Address (Reserved);
 224.0.0.1 Todos os sistemas (rede IP multicast);
 224.0.0.2 Todos os roteadores (rede IP multicast);
24/07/2014
27
LucasCoutinhodeS.Oliveira
SOCKETS EM JAVA
 Multicast
 A Multicast API suporta algumas operações
primitivas:
 Join – Adiciona um processo, ou um grupo de processos, a
um grupo multicast;
 Leave – Remove um processo do grupo;
 Send – Envia mensagem para todos os processos de um
grupo;
 Receive - Permite ao processo receber mensagens;
23/07/2014
28
LucasCoutinhodeS.Oliveira
SOCKETS EM JAVA
 Multicast
 Classes da Multicast API
 InetAdress
 DatagramPacket
 DatagramSocket
 MulticastSocket (estende DatagramSocket)
23/07/2014
29
LucasCoutinhodeS.Oliveira
SOCKETS EM JAVA
 Receiver Multicast (Exemplo de uso)
23/07/2014
30
LucasCoutinhodeS.Oliveira
SOCKETS EM JAVA
 Sender Multicast (Exemplo de uso)
23/07/2014
31
LucasCoutinhodeS.Oliveira
WEBSOCKET
23/07/2014LucasCoutinhodeS.Oliveira
32
WEBSOCKET
 Introdução:
 Historicamente, a criação de aplicações web que
precisam de comunicação bidirecional entre cliente e
servidor tem exigido um abuso do HTTP efetuando
consultas, para manter as informações
constantemente atualizadas. (Por exemplo, chats e
aplicativos de jogos)
 Esse abuso resulta em uma variedade de problemas.
São eles:
 Necessidade de fazer Polling (sondagem) para manter
atualização;
 Cada mensagem cliente-servidor possui um cabeçalho
HTTP, gerando um overhead;
 Scripts (client-side) precisam manter mapeamento de
conexões de entrada e saída para acompanhar as respostas;
 Etc..
23/07/2014
33
LucasCoutinhodeS.Oliveira
WEBSOCKET
 Introdução
 Uma solução simples, seria utilizar conexões TCP
bidirecionais;
 E é exatamente isso que o Protocolo WebSocket
provê;
24/07/2014
34
LucasCoutinhodeS.Oliveira
WEBSOCKET
24/07/2014
35
LucasCoutinhodeS.Oliveira
WEBSOCKET
 RFC6455
 O protocolo WebSocket foi definido em Dezembro
2011;
 Especificação foi produzida pela Internet Engineering
Task Force (IETF);
 API WebSocket
 Está sendo padronizada pelo World Wide Web
Consortium (W3C);
24/07/2014
36
LucasCoutinhodeS.Oliveira
WEBSOCKET
 Funcionamento
 Estabelecendo a conexão (promoção HTTP → WebSocket)
24/07/2014
37
LucasCoutinhodeS.Oliveira
WEBSOCKET
 Funcionamento
Handshake: promoção HTTP → WebSocket
Cliente → Servidor
24/07/2014
38
LucasCoutinhodeS.Oliveira
WEBSOCKET
 Funcionamento
Handshake: promoção HTTP → WebSocket
Servidor → Cliente
24/07/2014
39
LucasCoutinhodeS.Oliveira
WEBSOCKET
 Java API for WebSocket (JSR 356)
 Está presente no JavaEE 7.0
 Consiste nos pacotes:
 Javax.websocket.server
 Contem annotations, classes e interfaces para criar e
configurar os servers endpoints;
 Java.websocket
 Contem annotations, classes, interfaces e exceptions
comuns a clientes e servidores;
24/07/2014
40
LucasCoutinhodeS.Oliveira
WEBSOCKET
 Java API for WebSocket (JSR 356)
 WebSocket Endpoint
 Programmatic Endpoint
 Annotated Endpoint
24/07/2014
41
LucasCoutinhodeS.Oliveira
WEBSOCKET
 Java API for WebSocket (JSR 356)
 WebSocket Endpoint (Criação)
1. Criar a classe Endpoint;
2. Implementar o métodos do ciclo de vida do
endpoint;
3. Adicionar a lógica de negócios;
4. Deploy da aplicação web;
24/07/2014
42
LucasCoutinhodeS.Oliveira
WEBSOCKET
 Java API for WebSocket (JSR 356)
 WebSocket Endpoint (Ciclo de Vida)
24/07/2014
43
LucasCoutinhodeS.Oliveira
Annotation Evento
@OnOpen Inicio da conexão
@OnMessage Mensagem recebida
@OnErro Erro de conexão
@OnClose Término da conexão
REFERÊNCIAS
[1] http://143.132.8.23/cms/tues/docs/ComputerNetworks/Java-Socket-Programming-Manual.pdf
[2] http://download.java.net/jdk7/archive/b123/docs/api/java/net/DatagramSocket.html
[3] http://en.wikipedia.org/wiki/Interprocess_communication
[4] http://gsd.di.uminho.pt/teaching/misd/2007/od/sockets.pdf
[5] http://pt.wikipedia.org/wiki/Comunica%C3%A7%C3%A3o_entre_processos
[6] http://www.cs.uic.edu/~troy/fall04/cs441/drake/sockets.html
[7] http://www.devmedia.com.br/via-de-mao-dupla-com-websockets-revista-java-magazine-117/28281
[8] http://www.heldervaldez.com/redes-computadores/521-tcp-e-udp-diferencas-entre-protocolos.html
[9] http://www.html5rocks.com/pt/tutorials/websockets/basics/
[10] http://www.inetdaemon.com/tutorials/basic_concepts/communication/index.shtml
24/07/2014
44
LucasCoutinhodeS.Oliveira

Mais conteúdo relacionado

Destaque (20)

Aula 11 pc - unioes
Aula 11   pc - unioesAula 11   pc - unioes
Aula 11 pc - unioes
 
Network programming
Network programmingNetwork programming
Network programming
 
Sockets
SocketsSockets
Sockets
 
Pyhug zmq
Pyhug zmqPyhug zmq
Pyhug zmq
 
Lidando com Erros - Android
Lidando com Erros - AndroidLidando com Erros - Android
Lidando com Erros - Android
 
Aula sockets
Aula socketsAula sockets
Aula sockets
 
Aplicações Web Ricas e Acessíveis
Aplicações Web Ricas e AcessíveisAplicações Web Ricas e Acessíveis
Aplicações Web Ricas e Acessíveis
 
Aulas de Java Avançado 2- Faculdade iDez 2010
Aulas de Java Avançado 2- Faculdade iDez 2010Aulas de Java Avançado 2- Faculdade iDez 2010
Aulas de Java Avançado 2- Faculdade iDez 2010
 
Linguagem PHP
Linguagem PHPLinguagem PHP
Linguagem PHP
 
Linguagem PHP para principiantes
Linguagem PHP para principiantesLinguagem PHP para principiantes
Linguagem PHP para principiantes
 
Módulo-6-7-ip-com-sockets
Módulo-6-7-ip-com-socketsMódulo-6-7-ip-com-sockets
Módulo-6-7-ip-com-sockets
 
Redes 1 - Sockets em C#
Redes 1 - Sockets em C#Redes 1 - Sockets em C#
Redes 1 - Sockets em C#
 
Socket programming with php
Socket programming with phpSocket programming with php
Socket programming with php
 
correção Ficha 4,5,6,e 7
correção Ficha 4,5,6,e 7correção Ficha 4,5,6,e 7
correção Ficha 4,5,6,e 7
 
Programming TCP/IP with Sockets
Programming TCP/IP with SocketsProgramming TCP/IP with Sockets
Programming TCP/IP with Sockets
 
Basic socket programming
Basic socket programmingBasic socket programming
Basic socket programming
 
Hierarquia de memória
Hierarquia de memóriaHierarquia de memória
Hierarquia de memória
 
Socket programming
Socket programmingSocket programming
Socket programming
 
Arquitetura computadores cor_capa_ficha_20110126.pdf
Arquitetura computadores cor_capa_ficha_20110126.pdfArquitetura computadores cor_capa_ficha_20110126.pdf
Arquitetura computadores cor_capa_ficha_20110126.pdf
 
Arquitetura de Hardware
Arquitetura de HardwareArquitetura de Hardware
Arquitetura de Hardware
 

Semelhante a Java sockets e WebSockets

Relatorio Final.PDF
Relatorio Final.PDFRelatorio Final.PDF
Relatorio Final.PDFJorge Matias
 
Multicast on Cisco Network
Multicast on Cisco NetworkMulticast on Cisco Network
Multicast on Cisco Networkhome
 
Internet das coisas - A revolução já começou
Internet das coisas - A revolução já começouInternet das coisas - A revolução já começou
Internet das coisas - A revolução já começouJose Wilker
 
TradeTech Brazil 2011 - O Desafio Da Latencia
TradeTech Brazil 2011 - O Desafio Da LatenciaTradeTech Brazil 2011 - O Desafio Da Latencia
TradeTech Brazil 2011 - O Desafio Da LatenciaJose Ricardo Maia Moraes
 
TDC2018SP | Trilha Blockchain - Criando minha Primeira Blockchain Privada (DL...
TDC2018SP | Trilha Blockchain - Criando minha Primeira Blockchain Privada (DL...TDC2018SP | Trilha Blockchain - Criando minha Primeira Blockchain Privada (DL...
TDC2018SP | Trilha Blockchain - Criando minha Primeira Blockchain Privada (DL...tdc-globalcode
 
TDC 2012 Trilha – Android University
TDC 2012 Trilha – Android UniversityTDC 2012 Trilha – Android University
TDC 2012 Trilha – Android UniversityInael Rodrigues
 
gRPC: Por que você ainda usa REST?
gRPC: Por que você ainda usa REST?gRPC: Por que você ainda usa REST?
gRPC: Por que você ainda usa REST?Yago Tomé
 
Acesso a área de trabalho remota
Acesso a área de trabalho remotaAcesso a área de trabalho remota
Acesso a área de trabalho remotaRafael Requião
 
Banco de Dados - Docker Compose + Bancos Relacionais: descomplicando a montag...
Banco de Dados - Docker Compose + Bancos Relacionais: descomplicando a montag...Banco de Dados - Docker Compose + Bancos Relacionais: descomplicando a montag...
Banco de Dados - Docker Compose + Bancos Relacionais: descomplicando a montag...Renato Groff
 
São Paulo MuleSoft Meetup - Unwired API Led & Custom Polices
São Paulo MuleSoft Meetup - Unwired API Led & Custom PolicesSão Paulo MuleSoft Meetup - Unwired API Led & Custom Polices
São Paulo MuleSoft Meetup - Unwired API Led & Custom PolicesGuilherme Pereira Silva
 

Semelhante a Java sockets e WebSockets (20)

Relatorio Final.PDF
Relatorio Final.PDFRelatorio Final.PDF
Relatorio Final.PDF
 
Ambiente e Infraestrutura
Ambiente e InfraestruturaAmbiente e Infraestrutura
Ambiente e Infraestrutura
 
Redes de computador
Redes de computadorRedes de computador
Redes de computador
 
Multicast on Cisco Network
Multicast on Cisco NetworkMulticast on Cisco Network
Multicast on Cisco Network
 
http
httphttp
http
 
Internet das coisas - A revolução já começou
Internet das coisas - A revolução já começouInternet das coisas - A revolução já começou
Internet das coisas - A revolução já começou
 
TradeTech Brazil 2011 - O Desafio Da Latencia
TradeTech Brazil 2011 - O Desafio Da LatenciaTradeTech Brazil 2011 - O Desafio Da Latencia
TradeTech Brazil 2011 - O Desafio Da Latencia
 
Aula 1
Aula 1Aula 1
Aula 1
 
Modelo osi
Modelo osiModelo osi
Modelo osi
 
TDC2018SP | Trilha Blockchain - Criando minha Primeira Blockchain Privada (DL...
TDC2018SP | Trilha Blockchain - Criando minha Primeira Blockchain Privada (DL...TDC2018SP | Trilha Blockchain - Criando minha Primeira Blockchain Privada (DL...
TDC2018SP | Trilha Blockchain - Criando minha Primeira Blockchain Privada (DL...
 
TDC 2012 Trilha – Android University
TDC 2012 Trilha – Android UniversityTDC 2012 Trilha – Android University
TDC 2012 Trilha – Android University
 
Arquitetura tcp ip - 1
Arquitetura tcp ip - 1Arquitetura tcp ip - 1
Arquitetura tcp ip - 1
 
Conhecendo o mikrotik
Conhecendo o mikrotikConhecendo o mikrotik
Conhecendo o mikrotik
 
gRPC: Por que você ainda usa REST?
gRPC: Por que você ainda usa REST?gRPC: Por que você ainda usa REST?
gRPC: Por que você ainda usa REST?
 
Trabalho camada de transporte
Trabalho camada de transporteTrabalho camada de transporte
Trabalho camada de transporte
 
Acesso a área de trabalho remota
Acesso a área de trabalho remotaAcesso a área de trabalho remota
Acesso a área de trabalho remota
 
Protocolos logicos de_comunicacao
Protocolos logicos de_comunicacaoProtocolos logicos de_comunicacao
Protocolos logicos de_comunicacao
 
Banco de Dados - Docker Compose + Bancos Relacionais: descomplicando a montag...
Banco de Dados - Docker Compose + Bancos Relacionais: descomplicando a montag...Banco de Dados - Docker Compose + Bancos Relacionais: descomplicando a montag...
Banco de Dados - Docker Compose + Bancos Relacionais: descomplicando a montag...
 
Intro_redes.pdf
Intro_redes.pdfIntro_redes.pdf
Intro_redes.pdf
 
São Paulo MuleSoft Meetup - Unwired API Led & Custom Polices
São Paulo MuleSoft Meetup - Unwired API Led & Custom PolicesSão Paulo MuleSoft Meetup - Unwired API Led & Custom Polices
São Paulo MuleSoft Meetup - Unwired API Led & Custom Polices
 

Último

ATIVIDADE AVALIATIVA VOZES VERBAIS 7º ano.pptx
ATIVIDADE AVALIATIVA VOZES VERBAIS 7º ano.pptxATIVIDADE AVALIATIVA VOZES VERBAIS 7º ano.pptx
ATIVIDADE AVALIATIVA VOZES VERBAIS 7º ano.pptxOsnilReis1
 
Música Meu Abrigo - Texto e atividade
Música   Meu   Abrigo  -   Texto e atividadeMúsica   Meu   Abrigo  -   Texto e atividade
Música Meu Abrigo - Texto e atividadeMary Alvarenga
 
Programa de Intervenção com Habilidades Motoras
Programa de Intervenção com Habilidades MotorasPrograma de Intervenção com Habilidades Motoras
Programa de Intervenção com Habilidades MotorasCassio Meira Jr.
 
GÊNERO TEXTUAL - TIRINHAS - Charges - Cartum
GÊNERO TEXTUAL - TIRINHAS - Charges - CartumGÊNERO TEXTUAL - TIRINHAS - Charges - Cartum
GÊNERO TEXTUAL - TIRINHAS - Charges - CartumAugusto Costa
 
Gerenciando a Aprendizagem Organizacional
Gerenciando a Aprendizagem OrganizacionalGerenciando a Aprendizagem Organizacional
Gerenciando a Aprendizagem OrganizacionalJacqueline Cerqueira
 
02. Informática - Windows 10 apostila completa.pdf
02. Informática - Windows 10 apostila completa.pdf02. Informática - Windows 10 apostila completa.pdf
02. Informática - Windows 10 apostila completa.pdfJorge Andrade
 
Bullying - Texto e cruzadinha
Bullying        -     Texto e cruzadinhaBullying        -     Texto e cruzadinha
Bullying - Texto e cruzadinhaMary Alvarenga
 
Slides Lição 4, Betel, Ordenança quanto à contribuição financeira, 2Tr24.pptx
Slides Lição 4, Betel, Ordenança quanto à contribuição financeira, 2Tr24.pptxSlides Lição 4, Betel, Ordenança quanto à contribuição financeira, 2Tr24.pptx
Slides Lição 4, Betel, Ordenança quanto à contribuição financeira, 2Tr24.pptxLuizHenriquedeAlmeid6
 
Manual da CPSA_1_Agir com Autonomia para envio
Manual da CPSA_1_Agir com Autonomia para envioManual da CPSA_1_Agir com Autonomia para envio
Manual da CPSA_1_Agir com Autonomia para envioManuais Formação
 
D9 RECONHECER GENERO DISCURSIVO SPA.pptx
D9 RECONHECER GENERO DISCURSIVO SPA.pptxD9 RECONHECER GENERO DISCURSIVO SPA.pptx
D9 RECONHECER GENERO DISCURSIVO SPA.pptxRonys4
 
ANTIGUIDADE CLÁSSICA - Grécia e Roma Antiga
ANTIGUIDADE CLÁSSICA - Grécia e Roma AntigaANTIGUIDADE CLÁSSICA - Grécia e Roma Antiga
ANTIGUIDADE CLÁSSICA - Grécia e Roma AntigaJúlio Sandes
 
Pedologia- Geografia - Geologia - aula_01.pptx
Pedologia- Geografia - Geologia - aula_01.pptxPedologia- Geografia - Geologia - aula_01.pptx
Pedologia- Geografia - Geologia - aula_01.pptxleandropereira983288
 
Slides Lição 03, Central Gospel, O Arrebatamento, 1Tr24.pptx
Slides Lição 03, Central Gospel, O Arrebatamento, 1Tr24.pptxSlides Lição 03, Central Gospel, O Arrebatamento, 1Tr24.pptx
Slides Lição 03, Central Gospel, O Arrebatamento, 1Tr24.pptxLuizHenriquedeAlmeid6
 
Orações subordinadas substantivas (andamento).pptx
Orações subordinadas substantivas (andamento).pptxOrações subordinadas substantivas (andamento).pptx
Orações subordinadas substantivas (andamento).pptxKtiaOliveira68
 
LEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃO
LEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃOLEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃO
LEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃOColégio Santa Teresinha
 
Grupo Tribalhista - Música Velha Infância (cruzadinha e caça palavras)
Grupo Tribalhista - Música Velha Infância (cruzadinha e caça palavras)Grupo Tribalhista - Música Velha Infância (cruzadinha e caça palavras)
Grupo Tribalhista - Música Velha Infância (cruzadinha e caça palavras)Mary Alvarenga
 
A Arte de Escrever Poemas - Dia das Mães
A Arte de Escrever Poemas - Dia das MãesA Arte de Escrever Poemas - Dia das Mães
A Arte de Escrever Poemas - Dia das MãesMary Alvarenga
 
UFCD_10392_Intervenção em populações de risco_índice .pdf
UFCD_10392_Intervenção em populações de risco_índice .pdfUFCD_10392_Intervenção em populações de risco_índice .pdf
UFCD_10392_Intervenção em populações de risco_índice .pdfManuais Formação
 

Último (20)

ATIVIDADE AVALIATIVA VOZES VERBAIS 7º ano.pptx
ATIVIDADE AVALIATIVA VOZES VERBAIS 7º ano.pptxATIVIDADE AVALIATIVA VOZES VERBAIS 7º ano.pptx
ATIVIDADE AVALIATIVA VOZES VERBAIS 7º ano.pptx
 
Música Meu Abrigo - Texto e atividade
Música   Meu   Abrigo  -   Texto e atividadeMúsica   Meu   Abrigo  -   Texto e atividade
Música Meu Abrigo - Texto e atividade
 
Programa de Intervenção com Habilidades Motoras
Programa de Intervenção com Habilidades MotorasPrograma de Intervenção com Habilidades Motoras
Programa de Intervenção com Habilidades Motoras
 
Bullying, sai pra lá
Bullying,  sai pra láBullying,  sai pra lá
Bullying, sai pra lá
 
GÊNERO TEXTUAL - TIRINHAS - Charges - Cartum
GÊNERO TEXTUAL - TIRINHAS - Charges - CartumGÊNERO TEXTUAL - TIRINHAS - Charges - Cartum
GÊNERO TEXTUAL - TIRINHAS - Charges - Cartum
 
Gerenciando a Aprendizagem Organizacional
Gerenciando a Aprendizagem OrganizacionalGerenciando a Aprendizagem Organizacional
Gerenciando a Aprendizagem Organizacional
 
02. Informática - Windows 10 apostila completa.pdf
02. Informática - Windows 10 apostila completa.pdf02. Informática - Windows 10 apostila completa.pdf
02. Informática - Windows 10 apostila completa.pdf
 
Bullying - Texto e cruzadinha
Bullying        -     Texto e cruzadinhaBullying        -     Texto e cruzadinha
Bullying - Texto e cruzadinha
 
Slides Lição 4, Betel, Ordenança quanto à contribuição financeira, 2Tr24.pptx
Slides Lição 4, Betel, Ordenança quanto à contribuição financeira, 2Tr24.pptxSlides Lição 4, Betel, Ordenança quanto à contribuição financeira, 2Tr24.pptx
Slides Lição 4, Betel, Ordenança quanto à contribuição financeira, 2Tr24.pptx
 
Manual da CPSA_1_Agir com Autonomia para envio
Manual da CPSA_1_Agir com Autonomia para envioManual da CPSA_1_Agir com Autonomia para envio
Manual da CPSA_1_Agir com Autonomia para envio
 
D9 RECONHECER GENERO DISCURSIVO SPA.pptx
D9 RECONHECER GENERO DISCURSIVO SPA.pptxD9 RECONHECER GENERO DISCURSIVO SPA.pptx
D9 RECONHECER GENERO DISCURSIVO SPA.pptx
 
ANTIGUIDADE CLÁSSICA - Grécia e Roma Antiga
ANTIGUIDADE CLÁSSICA - Grécia e Roma AntigaANTIGUIDADE CLÁSSICA - Grécia e Roma Antiga
ANTIGUIDADE CLÁSSICA - Grécia e Roma Antiga
 
Em tempo de Quaresma .
Em tempo de Quaresma                            .Em tempo de Quaresma                            .
Em tempo de Quaresma .
 
Pedologia- Geografia - Geologia - aula_01.pptx
Pedologia- Geografia - Geologia - aula_01.pptxPedologia- Geografia - Geologia - aula_01.pptx
Pedologia- Geografia - Geologia - aula_01.pptx
 
Slides Lição 03, Central Gospel, O Arrebatamento, 1Tr24.pptx
Slides Lição 03, Central Gospel, O Arrebatamento, 1Tr24.pptxSlides Lição 03, Central Gospel, O Arrebatamento, 1Tr24.pptx
Slides Lição 03, Central Gospel, O Arrebatamento, 1Tr24.pptx
 
Orações subordinadas substantivas (andamento).pptx
Orações subordinadas substantivas (andamento).pptxOrações subordinadas substantivas (andamento).pptx
Orações subordinadas substantivas (andamento).pptx
 
LEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃO
LEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃOLEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃO
LEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃO
 
Grupo Tribalhista - Música Velha Infância (cruzadinha e caça palavras)
Grupo Tribalhista - Música Velha Infância (cruzadinha e caça palavras)Grupo Tribalhista - Música Velha Infância (cruzadinha e caça palavras)
Grupo Tribalhista - Música Velha Infância (cruzadinha e caça palavras)
 
A Arte de Escrever Poemas - Dia das Mães
A Arte de Escrever Poemas - Dia das MãesA Arte de Escrever Poemas - Dia das Mães
A Arte de Escrever Poemas - Dia das Mães
 
UFCD_10392_Intervenção em populações de risco_índice .pdf
UFCD_10392_Intervenção em populações de risco_índice .pdfUFCD_10392_Intervenção em populações de risco_índice .pdf
UFCD_10392_Intervenção em populações de risco_índice .pdf
 

Java sockets e WebSockets

  • 1. TECNOLOGIA JAVA PARA SOCKETS Lucas Coutinho de S. Oliveira
  • 3. INTER-PROCESS COMMUNICATION (IPC)  O que é?  “[...] inter-process communication (IPC) is a set of methods for the exchange of data among multiple threads in one or more processes. Processes may be running on one or more computers connected by a network.” [3]  “IPC é um conjunto de métodos para troca de informações entre múltiplas threads em um ou mais processos. Processos podem estar executando em um ou mais computadores conectados por um rede.” (tradução livre) 23/07/2014 3 LucasCoutinhodeS.Oliveira
  • 4. INTER-PROCESS COMMUNICATION (IPC)  É considerado, por muitos, o backbone da computação distribuída;  Permite que processos separados comuniquem-se entre si para executar um tarefa comum; 23/07/2014 4 LucasCoutinhodeS.Oliveira
  • 5. INTER-PROCESS COMMUNICATION (IPC)  A troca de informações podem ser:  Simplex  Duplex 23/07/2014 5 LucasCoutinhodeS.Oliveira P1 P2 P1 P2
  • 6. INTER-PROCESS COMMUNICATION (IPC)  E, ainda podem ser classificadas como:  Unicast O processo P1 troca dados com apenas um processo P; 23/07/2014 6 LucasCoutinhodeS.Oliveira P1 P
  • 7. INTER-PROCESS COMMUNICATION (IPC)  E, ainda podem ser classificadas como:  Multicast O processo P1 troca dados, simultaneamente com vários processos¹; ¹ Não são várias comunicações unicasts; 23/07/2014 7 LucasCoutinhodeS.Oliveira P1 P2 P2
  • 8. INTER-PROCESS COMMUNICATION (IPC)  Protocolos  São um conjunto de regras que precisam ser respeitadas para que a comunicação aconteça; 23/07/2014 8 LucasCoutinhodeS.Oliveira
  • 9. INTER-PROCESS COMMUNICATION (IPC)  Exemplos:  Pipes (nomeados e unidirecionais);  Fila de mensagens;  Memória compartilha;  RPC (Remote Procedure Call);  Socket; 23/07/2014 9 LucasCoutinhodeS.Oliveira
  • 11. SOCKETS  Foram definidos originalmente no Berkeley Unix 4.x;  São um elo de comunicação, bidirecional, entre dois processos em execução distribuídos em uma rede.[6] 23/07/2014 11 LucasCoutinhodeS.Oliveira
  • 12. SOCKETS  Endereçamento:  Endereço IP + Porta  Portas  É um identificador (16 bits) de buffer associado a um processo;  65.536 portas possíveis; 23/07/2014 12 LucasCoutinhodeS.Oliveira
  • 13. SOCKETS  Protocolos (Camada de transporte):  TCP (Transmission Control Protocol);  UDP (User Datagram Protocol); 23/07/2014 13 LucasCoutinhodeS.Oliveira
  • 14. SOCKETS  Protocolos (Camada de transporte):  TCP (Transmission Control Protocol);  Orientado a conexão (3-way handshake);  Confiabilidade;  Full Duplex;  Entrega ordenada;  Controle de Fluxo; 23/07/2014 14 LucasCoutinhodeS.Oliveira SYN ACK CLIENTE SERVIDOR
  • 15. SOCKETS  Protocolos (Camada de transporte):  UDP (User Datagram Protocol);  Não orientado a conexão;  Não confiável;  Multicast; ( 1 → N) 23/07/2014 15 LucasCoutinhodeS.Oliveira
  • 17. SOCKETS EM JAVA  Introduzido no JDK 1.0 (1996)  Primeira versão lançada;  Desenvolvido pela Sun Microsystems;  Mantido pela Oracle Corporation (2010);  O pacote java.net fornece uma API para o uso de sockets;  Fornece suporte a transmissão unicast e multicast; 23/07/2014 17 LucasCoutinhodeS.Oliveira
  • 18. SOCKETS EM JAVA  Unicast  Socket  API de cliente TCP;  Utilizada para se conectar a um servidor remoto;  Envia dados através de um stream;  ServerSocket  API de servidor TCP;  Utilizada para receber conexões de um host remoto  Recebe os dados através de um stream; 23/07/2014 18 LucasCoutinhodeS.Oliveira
  • 19. SOCKETS EM JAVA  Servidor TCP (Exemplo de uso) 23/07/2014 19 LucasCoutinhodeS.Oliveira
  • 20. SOCKETS EM JAVA  Cliente TCP (Exemplo de uso) 23/07/2014 20 LucasCoutinhodeS.Oliveira
  • 21. SOCKETS EM JAVA  Unicast  DatagramSocket  API de cliente/servidor UDP;  Envia/Recebe dados através de pacotes de datagrama; 23/07/2014 21 LucasCoutinhodeS.Oliveira
  • 22. SOCKETS EM JAVA  Servidor UDP (Exemplo de uso) 23/07/2014 22 LucasCoutinhodeS.Oliveira
  • 23. SOCKETS EM JAVA  Cliente UDP (Exemplo de uso) 23/07/2014 23 LucasCoutinhodeS.Oliveira
  • 24. SOCKETS EM JAVA  Unicast  DatagramSocket  API de cliente/servidor UDP;  Envia/Recebe dados através de pacotes de datagrama; 23/07/2014 24 LucasCoutinhodeS.Oliveira
  • 25. SOCKETS EM JAVA  Unicast  Arquitetura: Cliente-Servidor 23/07/2014 25 LucasCoutinhodeS.Oliveira
  • 26. SOCKETS EM JAVA  Multicast  Útil em aplicações groupware;  Ex: Vídeo Conferencia;  Utiliza o conceito de grupos, formados por diversos processos (multicast group);  Cada processo no grupo pode enviar mensagem para todos os outros; 23/07/2014 26 LucasCoutinhodeS.Oliveira
  • 27. SOCKETS EM JAVA  Multicast  Faixa de endereços:  224.0.0.0 até 239.255.255.255  Reservas  224.0.0.0 Base Address (Reserved);  224.0.0.1 Todos os sistemas (rede IP multicast);  224.0.0.2 Todos os roteadores (rede IP multicast); 24/07/2014 27 LucasCoutinhodeS.Oliveira
  • 28. SOCKETS EM JAVA  Multicast  A Multicast API suporta algumas operações primitivas:  Join – Adiciona um processo, ou um grupo de processos, a um grupo multicast;  Leave – Remove um processo do grupo;  Send – Envia mensagem para todos os processos de um grupo;  Receive - Permite ao processo receber mensagens; 23/07/2014 28 LucasCoutinhodeS.Oliveira
  • 29. SOCKETS EM JAVA  Multicast  Classes da Multicast API  InetAdress  DatagramPacket  DatagramSocket  MulticastSocket (estende DatagramSocket) 23/07/2014 29 LucasCoutinhodeS.Oliveira
  • 30. SOCKETS EM JAVA  Receiver Multicast (Exemplo de uso) 23/07/2014 30 LucasCoutinhodeS.Oliveira
  • 31. SOCKETS EM JAVA  Sender Multicast (Exemplo de uso) 23/07/2014 31 LucasCoutinhodeS.Oliveira
  • 33. WEBSOCKET  Introdução:  Historicamente, a criação de aplicações web que precisam de comunicação bidirecional entre cliente e servidor tem exigido um abuso do HTTP efetuando consultas, para manter as informações constantemente atualizadas. (Por exemplo, chats e aplicativos de jogos)  Esse abuso resulta em uma variedade de problemas. São eles:  Necessidade de fazer Polling (sondagem) para manter atualização;  Cada mensagem cliente-servidor possui um cabeçalho HTTP, gerando um overhead;  Scripts (client-side) precisam manter mapeamento de conexões de entrada e saída para acompanhar as respostas;  Etc.. 23/07/2014 33 LucasCoutinhodeS.Oliveira
  • 34. WEBSOCKET  Introdução  Uma solução simples, seria utilizar conexões TCP bidirecionais;  E é exatamente isso que o Protocolo WebSocket provê; 24/07/2014 34 LucasCoutinhodeS.Oliveira
  • 36. WEBSOCKET  RFC6455  O protocolo WebSocket foi definido em Dezembro 2011;  Especificação foi produzida pela Internet Engineering Task Force (IETF);  API WebSocket  Está sendo padronizada pelo World Wide Web Consortium (W3C); 24/07/2014 36 LucasCoutinhodeS.Oliveira
  • 37. WEBSOCKET  Funcionamento  Estabelecendo a conexão (promoção HTTP → WebSocket) 24/07/2014 37 LucasCoutinhodeS.Oliveira
  • 38. WEBSOCKET  Funcionamento Handshake: promoção HTTP → WebSocket Cliente → Servidor 24/07/2014 38 LucasCoutinhodeS.Oliveira
  • 39. WEBSOCKET  Funcionamento Handshake: promoção HTTP → WebSocket Servidor → Cliente 24/07/2014 39 LucasCoutinhodeS.Oliveira
  • 40. WEBSOCKET  Java API for WebSocket (JSR 356)  Está presente no JavaEE 7.0  Consiste nos pacotes:  Javax.websocket.server  Contem annotations, classes e interfaces para criar e configurar os servers endpoints;  Java.websocket  Contem annotations, classes, interfaces e exceptions comuns a clientes e servidores; 24/07/2014 40 LucasCoutinhodeS.Oliveira
  • 41. WEBSOCKET  Java API for WebSocket (JSR 356)  WebSocket Endpoint  Programmatic Endpoint  Annotated Endpoint 24/07/2014 41 LucasCoutinhodeS.Oliveira
  • 42. WEBSOCKET  Java API for WebSocket (JSR 356)  WebSocket Endpoint (Criação) 1. Criar a classe Endpoint; 2. Implementar o métodos do ciclo de vida do endpoint; 3. Adicionar a lógica de negócios; 4. Deploy da aplicação web; 24/07/2014 42 LucasCoutinhodeS.Oliveira
  • 43. WEBSOCKET  Java API for WebSocket (JSR 356)  WebSocket Endpoint (Ciclo de Vida) 24/07/2014 43 LucasCoutinhodeS.Oliveira Annotation Evento @OnOpen Inicio da conexão @OnMessage Mensagem recebida @OnErro Erro de conexão @OnClose Término da conexão
  • 44. REFERÊNCIAS [1] http://143.132.8.23/cms/tues/docs/ComputerNetworks/Java-Socket-Programming-Manual.pdf [2] http://download.java.net/jdk7/archive/b123/docs/api/java/net/DatagramSocket.html [3] http://en.wikipedia.org/wiki/Interprocess_communication [4] http://gsd.di.uminho.pt/teaching/misd/2007/od/sockets.pdf [5] http://pt.wikipedia.org/wiki/Comunica%C3%A7%C3%A3o_entre_processos [6] http://www.cs.uic.edu/~troy/fall04/cs441/drake/sockets.html [7] http://www.devmedia.com.br/via-de-mao-dupla-com-websockets-revista-java-magazine-117/28281 [8] http://www.heldervaldez.com/redes-computadores/521-tcp-e-udp-diferencas-entre-protocolos.html [9] http://www.html5rocks.com/pt/tutorials/websockets/basics/ [10] http://www.inetdaemon.com/tutorials/basic_concepts/communication/index.shtml 24/07/2014 44 LucasCoutinhodeS.Oliveira