Vert.X: uma alternativa ao NodeJS na plataforma Java

Veja neste artigo como é rápido e fácil desenvolver aplicações web através da plataforma Vert.X, que é uma alternativa ao NodeJS na plataforma Java.

Fique por dentro
Neste artigo vamos aprender o que é realmente o Vert.x, seus conceitos arquiteturais e principais funcionalidades e como esse produto vem se tornando uma excelente alternativa ao famoso Node.js para desenvolvimento rápido de aplicações web e serviços REST, inclusive com suporte à programação em JavaScript.

A busca pela ferramenta perfeita para desenvolvimento web é uma realidade. Dezenas, talvez centenas de opções de frameworks nas mais diversas linguagens de programação existem à disposição e não é incomum a dúvida: “Qual é a melhor ferramenta ou o melhor framework?”.

Hoje em dia não existe um consenso sobre qual é a melhor (ou a pior) opção de ferramenta ou framework, mas existe um ideal que frequentemente guia as nossas escolhas: precisamos sempre de mais velocidade no desenvolvimento das novas soluções, criando códigos mais simples e fáceis de manter e com melhor qualidade; isso tudo com o menor preço e melhor prazo.

A plataforma Java é famosa por possuir uma quantidade sensacional de produtos, bibliotecas de componentes e especificações para desenvolvimento web. No entanto, muitas outras inovações interessantes têm surgido também em outras linguagens e plataformas, já há muito tempo.

O Vert.x, fortemente inspirado no mundialmente conhecido Node.js, é um framework web que se propõe a oferecer aos seus usuários ferramentas, técnicas e APIs para a criação de soluções robustas, de alta-performance, naturalmente escaláveis e tolerantes a falhas, com um modelo de programação extremamente simples e extensível, fortemente baseado em eventos e, ainda por cima, permitindo que outras linguagens, como JavaScript, Ruby ou Python, possam ser utilizadas para construção das soluções além da própria linguagem Java.

Um detalhe interessante e fundamental: o Vert.x não está totalmente comprometido em seguir alguma especificação ou padrão pré-estabelecido de desenvolvimento e justamente por esse motivo não está preso a tradicionalismos ou restrições técnicas da plataforma Java EE ou qualquer outra.

Além disso, ressalta-se que o Vert.x não está presente apenas do lado “servidor”, sendo possível acessar seu barramento de eventos a partir de páginas HTML utilizando JavaScript, o que faz com que a integração entre as camadas de uma aplicação seja muito mais fácil, controlada e homogênea.

O que é o Vert.x?

De acordo com os próprios criadores do Vert.x, ele é uma plataforma de desenvolvimento web que permite a criação de aplicações leves e modernas, de alta performance, baseadas na plataforma Java e que pode ser usada em projetos enterprise, web, serviços REST para mobile, entre outros.

Além disso, algumas funcionalidades destacam o Vert.x de outros concorrentes, a saber:

1. Poliglota: é possível criar uma solução na plataforma Vert.x utilizando uma ou mais linguagens, como Java, JavaScript, CoffeeScript, Ruby, Python, Groovy ou Scala. Mas como é possível utilizar outra linguagem na plataforma Java? A resposta é simples: é necessário que exista um interpretador escrito em Java responsável por reconhecer a sintaxe dessa linguagem e gerar instruções que o JRE (Java Runtime Environment) entenda. Essas instruções são chamadas de “bytecode”;

2. Processamento Concorrente: na API do Vert.x existe uma interface a ser implementada chamada “Handler”. Toda regra de negócio está contida em classes que implementem essa interface. Handlers sempre são associados a “endereços” e são acionados automaticamente pela plataforma, processando dessa forma os eventos enviados através do barramento para esses endereços;

3. API Consistente: Handlers são criados e associados a eventos através de Verticles. Um Verticle é uma classe que tem acesso aos objetos da plataforma Vert.x e é basicamente utilizado para organizar o código em unidades independentes e modulares;

4. Escalabilidade: o Vert.x é fortemente baseado na troca de eventos e possui um componente especializado chamado “Distributed Event Bus” (barramento distribuído de eventos). O uso de um barramento de eventos permite um alto desacoplamento dos “Verticles”, que podem ter sua execução distribuída em uma ou mais CPUs ou mesmo em um ou mais servidores de forma transparente e segura. O Hazelcast é o componente responsável pela troca de mensagens em um cluster Vert.x. Para conhecer o Hazelcast, leia o artigo relacionado na Java Magazine 134;

5. Websocket e SockJS: o uso de eventos também está presente no navegador de internet. Com o Vert.x, aplicações HTML com JavaScript que utilizam Websocket ou SockJS (cujas requisições e respostas são automaticamente transformadas em eventos) podem interagir diretamente do barramento de eventos distribuídos deste, o que é fantástico, pois permite o uso do mesmo modelo de programação nas diversas camadas da aplicação. Logo mais veremos um exemplo dessa funcionalidade. Apesar desse artigo não entrar em detalhes sobre o que é Websocket ou SockJS, você pode encontrar mais informações sobre eles em edições anteriores da Java Magazine e na seção " [...] continue lendo...

Artigos relacionados