Apache Camel, el sabor de la aventura

Este Framework de integración que es la base de algunos de los ESB del mercado, dispone de una arquitectura robusta y se encuentra en un estado muy maduro de desarrollo.

Su arquitectura se forma por filtros, enrutadores y componentes. Los componentes son básicamente unas factorías de puntos de acceso o EndPoints que envían o consumen mensajes de diferentes tipos, siendo su enfoque sencillo de seguir.

Apache Camel nos proporciona componentes para multitud de “protocolos” de las cuales las que mas me han llamado la atención son las siguientes:

  • SEDA (Staged Event-Driven Architecture). Arquitectura desarrollada por la Universidad de Berkeley enfocada en dar soporte robusto a sistemas de alto rendimiento y con concurrencia masiva.
  • Mina. Framework de aplicación que ayuda a desarrollar aplicaciones de alto rendimiento y altamente escalables.
  • Esper. Que proporciona procesamiento de eventos complejos y OLAP (Online Analytical Processing) lo cual lo hace especialmente indicado para aplicaciones que interactúan con redes de sensores.

Existen un gran número de componentes más, los cuales se pueden ver en http://camel.apache.org/components.html, además de ser sencillo crear nuevos componentes.

Nos permite la configuración de rutas y filtros a través de diferentes medios:

  • DSL basado en Java (Fluent API).

  • Ficheros de configuración de Spring (Spring DSL).

  • Scala DSL (actualmente en desarrollo).

Soporta la mayor parte de los patrones de integración definidos en el libro Enterprise Integration Patterns: Designing, Building, and Deploying Messaging Solution, el cual se ha convertido en la referencia para las integraciones.

Estos patrones se dividen en los siguientes grupos:

  • Sistemas de mensajes.
  • Canales de mensajes.
  • Construcción de mensajes.
  • Enrutamiento de mensajes.
  • Transformación de mensajes.
  • Extremos de mensajes.
  • Gestión de sistemas.

Podemos ver una lista más pormenorizada de los patrones soportados y como implementarlos usando Camel en:

http://camel.apache.org/enterprise-integration-patterns.html

Deja un comentario