Blog

19
Mar 2015

Desarrollo de software como servicio con Dropwizard

Posteado Por Catrian

El desarrollo de software como servicio empieza a dejar de lado el protocolo Soap y se vuelca a los microservicios, permitiendo que las API de consumo por parte de terceros se conviertan en módulos pequeños, manejables, mantenibles y escalables, claro, sin que su funcionalidad se vea afectada.

Son varias las ventajas de este tipo de desarrollo, algunas son:

  • No hay un único punto de fallo. Si un componente falla, no colapsará todo el sistema.
  • Se simplifica el mantenimiento. Se facilita la tarea de desechar componentes o ampliar funcionalidades.
  • La escalabilidad es a nivel microservicio. Ya que cada microservicio es una funcionalidad en si, se puede hacer una distribución pensando en la demanda.
  • Combinación según necesidad. Los microservicios se pueden combinar según se necesiten, casi como las piezas de un rompecabezas.
  • Facilidad en el despliegue. En el entorno productivo, el despliegue es más rápido y eficiente sin que se vea afectada la funcionalidad de otros servicios.

Como en toda arquitectura que va tomando fuerza, para esta han apereciedo frameworks que facilitan y agilizan el desarrollo, uno de ellos es Dropwizard.

Dropwizard es, como se indica en su propia web, un “framework java para el desarrollo de forma amigable de servicios web Restful de alto rendimiento”. En general, es un framework que ofrece un conjunto de librerías específicas para este tipo de desarrollo, con la posibilidad de integrarse con tecnologías modulares.

El núcleo de Dropwizard está conformado por :

  • Jetty como servidor http
  • Jersey para construir los servicios web Rest
  • Jackson como soporte a los objetos JSON
  • Metrics para obtener métricas del código

Adicional de estas librerías, tiene muchas otras que nos van a ayudar a hacer más ágil los desarrollos y tener más posibilidades aparte de implementar simplemente la API Rest:

  • Guva
  • Logback
  • Hibernate Validator
  • Apache HttpClient
  • JDBI
  • Liquibase
  • Freemaker
  • JodaTime

Ahora que conocemos sus componentes, podemos ver cómo funciona.

Dropwizard actúa como un jar, que ejecuta un proceso java corriendo sobre la JVM de la máquina en la que lo despleguemos.

Ahora, se supone que son servicios web y si lo son, entonces ¿cuál es la razón de usar un jar?, bien, este jar que se genera lleva dentro un sefvidor http jetty el cual gestiona y responde a las peticiones http realizadas por los usuarios.

Los elementos principales de la configuración de un proyecto realizado con Dropwizard son:

  • Un archivo de configuración yml. En este se establecen los parámetros de configuración del proyecto (conexión a DB, puerto, logger, etc.)
  • Clase java de configuración. Nos sirve, port ejemplo, para hacer un mapping de la configuración.
  • Clase main. Es una clase con un método main de java, en esta se compone la arquitectura del framework, uniendo las piezas que lo configuran y así inicializar la aplicacióndon.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos necesarios están marcados *

* Campo obligatorio