miércoles, 1 de julio de 2015

Vert.x construyendo aplicaciones reactivas en jvm

Vert.x es un framework java para la construcción de aplicaciones asíncronas, basadas en eventos y no bloqueantes. Esto significa que con Vert.x podemos obtener aplicaciones concurrentes con un mínimo de complejidad, y un hardware mínimo.

Para ser más explicativo se compara Vert.x con Node.js, por lo que se puede inferir que Vert.x fue pensado para ser concurrente, asíncrono y barato.

Otra ventaja de este framework es que es poliglota es decir podemos escribir aplicaciones en varios lenguajes, veamos un ejemplo:

Java:

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);
  }
}

Ruby:

vertx.create_http_server().request_handler() { |req|
  req.response()
    .put_header("content-type", "text/plain")
    .end("Hello from Vert.x!")
}.listen(8080)

Javascript:

vertx.createHttpServer()
  .requestHandler(function (req) {
    req.response()
      .putHeader("content-type", "text/plain")
      .end("Hello from Vert.x!");
}).listen(8080);

Groovy:

vertx.createHttpServer().requestHandler({ req ->
  req.response()
    .putHeader("Content-Type", "text/html")
    .end("Hello from Vert.x!")
}).listen(8080)

Como vemos Vert.x proporciona una API en varios lenguajes que da soporte.

Dejo link:
http://vertx.io/
http://vertx.io/docs/