Recursos especiais neste artigo:
Artigo no estilo Solução Completa
Este artigo explica o que é o protocolo WebSocket, qual foi a motivação de sua concepção, qual a relação do protocolo com a API WebSocket, quais são suas vantagens e o que ele oferece de novidade em relação às soluções atuais. Também demonstramos uma implementação de um exemplo prático utilizando o protocolo WebSocket em Java e HTML5.
Em que situação o tema é
útil
Este tema é importante
para os desenvolvedores e arquitetos que implementam e desenham soluções para a
Web. Principalmente para aqueles que precisam oferecer mais dinamismo e
interatividade com baixa latência em soluções de Internet.
Possui relação também com o contexto de integração entre sistemas. Conhecer este novo protocolo e quais são os recursos e vantagens fornecidos por ele são relevantes para todos os profissionais envolvidos com arquitetura de integração.
Estabelecer a comunicação entre duas partes envolve a definição de regras de sintaxe, sincronização e semântica na busca de um padrão o qual os participantes devem obedecer para compreender e ser compreendido em uma comunicação. É desta maneira que se estabelece um protocolo.
Na história da comunicação entre computadores, muitos protocolos foram criados, porém um deles se destacou por ser utilizado na construção da rede de computadores denominada ARPANET, que pertencia ao Departamento de Defesa Americano, e que a utilizava apenas em seus projetos. Esta rede incentivou o avanço de protocolos para a comunicação entre redes, possibilitando que múltiplas redes separadas pudessem se juntar em uma rede de redes. A ARPANET foi a primeira rede de computadores operacional e progenitora da rede global, conhecida hoje como Internet, a utilizar o conjunto de protocolos referenciado como TCP/IP.
Para que computadores pudessem trocar informações em um âmbito global, além de toda a necessidade física de infraestrutura, foi necessário escolher um protocolo que fundasse um padrão de comunicação entre os elementos. O protocolo TCP/IP foi concebido durante o projeto da ARPANET, estabelecido como padrão de comunicação entre todos os computadores militares do Departamento de Defesa Americano em 1982. Logo, na mesma década, este protocolo se consolidou como o padrão da Internet (a grande rede de redes mundial). Dessa forma, qualquer rede ou computador que desejasse participar da rede mundial deveria conhecer e saber “conversar” em TCP/IP.
Apesar de ser comumente chamado de protocolo, o TCP/IP é na verdade um conjunto de protocolos, cada qual com sua responsabilidade e papel para estabelecer uma comunicação. É formado basicamente por quatro camadas, que da inferior para a superior são: rede, internet, transporte e aplicação. Iremos nos referenciar ao conjunto de protocolos TCP/IP apenas como protocolo TCP/IP na continuidade deste artigo, para assim se adequar a sua forma popularmente conhecida e facilitar a leitura.
Utilizando a técnica de camada sobre camada, os protocolos são sobrepostos para estabelecer o canal de comunicação. Cada uma destas camadas fornece uma abstração responsável por resolver aspectos técnicos (roteamento, transporte, semântica) que isola os programas destas funções para se concentrarem apenas no tráfego do conteúdo intercambiado. Podemos observar esta sobreposição de camadas na Figura 1.
Figura 1. Composição das camadas que formam o conjunto de protocolos TCP/IP.
Na camada de transporte há duas opções de protocolo que se destacam: o Transmission Control Protocol (TCP) e o User Datagram Protocol (UDP). O protocolo TCP é mais utilizado por oferecer maior confiabilidade durante a comunicação do que o protocolo UDP. O TCP garante que os pacotes de dados trafegados permaneçam inalterados e que cheguem na mesma ordem com que foram enviados, enquanto o protocolo UDP nem mesmo garante a chegada dos dados. Por outro lado o UDP é mais rápido que o TCP, pois não realiza a verificação de erros nos pacotes de dados. Por este motivo o UDP é mais utilizado em aplicações de jogos e outras mais que necessitam de uma conexão mais veloz, porém não tão confiável. Como sempre, cada escolha uma renúncia.
Em uma das camadas, a quarta (de baixo para cima), está a de aplicação, onde podemos citar como exemplo de protocolo um dos mais conhecidos, o Hypertext Transfer Protocol (HTTP), que teve o seu desenvolvimento gerenciado pelo consórcio W3C e pela Internet Engineering Task Force (IETF), uma comunidade internacional aberta sem fins lucrativos, cujo objetivo é auxiliar a evolução e funcionamento da Arquitetura da Internet. O HTTP é um dos protocolos de aplicação mais difundidos, adotado pelos Navegadores Web como base para a linguagem HTML.
Seguindo esta técnica de sobreposição de camadas, temos outras abstrações adicionadas conforme o objetivo desejado, por exemplo: para se criar um padrão de comunicação heterogêneo entre aplicações de software, outro protocolo foi adicionado sobre o HTTP, o protocolo denominado SOAP, formando o atualmente conhecido Web Services. Estas sobreposições, definitivamente, criam mais onerações na comunicação, pois existe o dispêndio das partes em converter informações de e para a linguagem XML antes de enviar e receber os dados. Vale ressaltar que o SOAP pode ser também utilizado sobre outros protocolos de aplicação, porém é mais comumente utilizado sobre o HTTP.
Na Figura 2 ilustramos quais são os protocolos utilizados na comunicação dos Navegadores de Internet e aplicações de e-mails, enquanto na Figura 3 podemos observar a sobreposição de protocolos para estabelecer uma comunicação entre aplicações de software que precisam utilizar Web Services.
Figura 2. Camadas dos protocolos sobrepostos utilizados na comunicação de Páginas Webs e E-mails.
Figura 3. Dois exemplos de camadas de protocolos organizados para compor um canal para Web Services.
Nos exemplos ilustrados nas Figuras 1 e 2, os protocolos HTTP e SMTP se posicionam na quarta camada do conjunto de protocolos TCP/IP. O HTTP é o protocolo de aplicação utilizado pelo SOAP, REST e HTML, enquanto que o protocolo SMTP é utilizado pelo MIME (ver BOX 1).
Multipurpose Internet Mail Extension, criado em 1992 pela Internet Engineering Task Force (IETF), define um padrão para o formato de mensagens preponderantemente utilizado em e-mails.
É nesta quarta camada do protocolo TPC/IP que surge um novo protocolo de aplicação, mais um sob os cuidados da comunidade internacional IETF. Este novo protocolo foi batizado de WebSocket.
O RFC (Request for Comments) de número 6455 da IETF especifica o protocolo WebSocket. Neste memorando é descrito a razão de sua criação, ou seja, qual é a motivação de sua existência e os detalhes técnicos de seu funcionamento. A categoria desta especificação se encontra em Standards-Track com o status de Proposed Standard, que possui o seguinte significado segundo a IETF: “uma especificação Proposed Standard se encontra geralmente estável, com alternativas de desenhos identificadas já definidas, acredita que já seja bem-compreendida, que já foi recebida uma avaliação significativa e aparenta despertar suficiente interesse da comunidade para ser considerada de grande valor. No entanto, mais experiências podem resultar em uma alteração ou mesmo um retraimento da especificação antes de avançar.”.
...Confira outros conteúdos:
Introdução ao JDBC
Novidades do Java
Teste unitário com JUnit
Promoção de Natal
Oferta exclusiva de Natal!
Pagamento anual
12x no cartão
De: R$ 69,00
Por: R$ 59,90
Total: R$ 718,80
Garanta o desconto
- Formação FullStack Completa
- Carreira Front-end I e II, Algoritmo e Javascript, Back-end e Mobile
- +10.000 exercícios gamificados
- +50 projetos reais
- Comunidade com + 200 mil alunos
- Estude pelo Aplicativo (Android e iOS)
- Suporte online
- 12 meses de acesso
Pagamento recorrente
Cobrado mensalmente no cartão
De: R$ 79,00
Por: R$ 59,90 /mês
Total: R$ 718,80
Garanta o desconto
- Formação FullStack Completa
- Carreira Front-end I e II, Algoritmo e Javascript, Back-end e Mobile
- +10.000 exercícios gamificados
- +50 projetos reais
- Comunidade com + 200 mil alunos
- Estude pelo Aplicativo (Android e iOS)
- Suporte online
- Fidelidade de 12 meses
- Não compromete o limite do seu cartão
<Perguntas frequentes>
Nossos casos de sucesso
Eu sabia pouquíssimas coisas de programação antes de começar a estudar com vocês, fui me especializando em várias áreas e ferramentas que tinham na plataforma, e com essa bagagem consegui um estágio logo no início do meu primeiro período na faculdade.
Estudo aqui na Dev desde o meio do ano passado!
Nesse período a Dev me ajudou a crescer muito aqui no trampo.
Fui o primeiro desenvolvedor contratado pela minha
empresa. Hoje eu lidero um time de desenvolvimento!
Minha meta é continuar estudando e praticando para ser um
Full-Stack Dev!
Economizei 3 meses para assinar a plataforma e sendo sincero valeu muito a pena, pois a plataforma é bem intuitiva e muuuuito didática a metodologia de ensino. Sinto que estou EVOLUINDO a cada dia. Muito obrigado!
Nossa! Plataforma maravilhosa. To amando o curso de desenvolvimento front-end, tinha coisas que eu ainda não tinha visto. A didática é do jeito que qualquer pessoa consegue aprender. Sério, to apaixonado, adorando demais.
Adquiri o curso de vocês e logo percebi que são os melhores do Brasil. É um passo a passo incrível. Só não aprende quem não quer. Foi o melhor investimento da minha vida!
Foi um dos melhores investimentos que já fiz na vida e tenho aprendido bastante com a plataforma. Vocês estão fazendo parte da minha jornada nesse mundo da programação, irei assinar meu contrato como programador graças a plataforma.
Wanderson Oliveira
Comprei a assinatura tem uma semana, aprendi mais do que 4 meses estudando outros cursos. Exercícios práticos que não tem como não aprender, estão de parabéns!
Obrigado DevMedia, nunca presenciei uma plataforma de ensino tão presente na vida acadêmica de seus alunos, parabéns!
Eduardo Dorneles
Aprendi React na plataforma da DevMedia há cerca de 1 ano e meio... Hoje estou há 1 ano empregado trabalhando 100% com React!
Adauto Junior
Já fiz alguns cursos na área e nenhum é tão bom quanto o de vocês. Estou aprendendo muito, muito obrigado por existirem. Estão de parabéns... Espero um dia conseguir um emprego na área.
Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.