Vert.x
Desenvolvedor | Tim Fox e colaboradores do projeto |
Escrito em | Java, Javascript, Ruby, Python, Groovy, CoffeeScript, Clojure, Scala |
Licença | Apache Software Licence 2.0, Eclipse Public Licence |
O Eclipse Vert.x é uma estrutura de aplicativo orientada a eventos Polyglot que é executada na Java Virtual Machine.[1][2] É lançado como código aberto sob Apache Software License 2.0 e Eclipse Public License.
Em particular, o Vert.x permite a criação de servidores web, permitindo em particular um escalonamento muito eficiente.[carece de fontes] O Vert.x, portanto, apresenta-se como uma alternativa aos contêineres de servlet definidos no padrão Java EE, como Tomcat ou Jetty.
O Vert.x também pode ser incorporado como uma biblioteca em outro aplicativo Java.
História
[editar | editar código-fonte]Vert.x foi iniciada por Tim Fox em 2011 enquanto ele trabalhava para a VMware.
Fox inicialmente chamou o projeto de "Node.x" uma brincadeira com a nomenclatura de Node.js, com o "x" representando o fato de que o novo projeto era poliglota por natureza e não apenas suportava JavaScript. O projeto foi posteriormente renomeado para "Vert.x" para evitar possíveis problemas legais, já que "Node" era uma marca registrada de propriedade da Joyent Inc.[carece de fontes] O novo nome também foi uma brincadeira com o nome node, já que vértice é sinônimo para um nó em matemática.
Em dezembro de 2012, depois que ele deixou o emprego, a VMware entregou documentos legais a Tim Fox para assumir o controle da marca Vert.x, nome de domínio, blog, conta GitHub e Google Group da comunidade Vert.x.[3][4]
Depois de muita discussão com outras partes, em janeiro de 2013, a VMware foi persuadida de que seria do interesse da comunidade Vert.x transferir o projeto e o IP associado para a Fundação Eclipse, uma entidade legal neutra.[5]
Em agosto de 2013, o projeto principal Vert.x concluiu sua mudança para a Eclipse Foundation. Os outros projetos que compõem a pilha Vert.x não migraram para o Eclipse, mas continuaram a usar a marca registrada "Vert.x" com aprovação tácita da Eclipse Foundation.
Em maio de 2014, Vert.x ganhou o prêmio de "Most Innovative Java Technology" nos prêmios JAX Innovation.[6]
Em 12 de janeiro de 2016, Tim Fox deixou o cargo de líder do projeto Vert.x.[carece de fontes] e Julien Viet, um colaborador de longa data, assumiu seu lugar.
Arquitetura
[editar | editar código-fonte]Vert.x usa a biblioteca de e/s de baixo nível Netty.[7]
A estrutura do aplicativo inclui estes recursos:
- Poliglota. Os componentes do aplicativo podem ser escritos em Java, JavaScript, Groovy, Ruby, Scala, Kotlin e Ceylon.
- Modelo de simultaneidade simples. Todo o código é de thread único, liberando o incômodo da programação multithread.
- Modelo de programação simples e assíncrono para escrever aplicativos sem bloqueio verdadeiramente escaláveis.
- Barramento de evento distribuído que abrange o lado do cliente e do servidor. O barramento de eventos penetra até mesmo no JavaScript do navegador, permitindo criar os chamados aplicativos da Web em tempo real.
- Modelo de ator e repositório público, para reutilizar e compartilhar componentes.
Exemplos
[editar | editar código-fonte]Um servidor web servindo "Hello from Vert.x!" poderia ser escrito em Java:
import io.vertx.core.AbstractVerticle;
public class Server extends AbstractVerticle {
public void start() {
vertx.createHttpServer().requestHandler(req -> {
req.response()
.putHeader("content-type", "text/plain")
.end("Hello from Vert.x!");
}).listen(8080);
}
}
E em JavaScript:
vertx.createHttpServer()
.requestHandler(function (req) {
req.response()
.putHeader("content-type", "text/plain")
.end("Hello from Vert.x!");
}).listen(8080);
Ambos os casos resultarão em um servidor da Web que fornece conteúdo de maneira altamente escalável.
Referências
- ↑ «vert.x – JVM Polyglot Alternative to Node.js». InfoQ (em inglês). Consultado em 14 de dezembro de 2022
- ↑ «Vert.x – an asynchronous, event-driven Java web framework - The H Developer: News and Features». www.h-online.com. Consultado em 14 de dezembro de 2022
- ↑ Asay, Matt. «Hey, open sourcers: Who's your code's daddy?». www.theregister.com (em inglês). Consultado em 14 de dezembro de 2022
- ↑ Phipps, Simon (11 de janeiro de 2013). «Who controls Vert.x: Red Hat, VMware, or neither?». InfoWorld (em inglês). Consultado em 14 de dezembro de 2022
- ↑ «Vert.x Joining Eclipse Foundation». InfoQ (em inglês). Consultado em 14 de dezembro de 2022
- ↑ «JAX & W-JAX 2023 | Konferenzen für Java, Architektur & Software-Innovationen». JAX (em alemão). Consultado em 14 de dezembro de 2022
- ↑ «vert.x – JVM Polyglot Alternative to Node.js». InfoQ (em inglês). Consultado em 15 de dezembro de 2022