RabbitMQ, Spring AMQP y Android MQTT

By | 11 diciembre 2014

Para grandes proyectos, que necesitan de un servicio de mensajería masiva en tiempo real, hoy en día existen varias posibilidades en el mercado tecnológico. Las opciones, a la hora de elegir plataformas, brokers, protocolos, etc… son muy variadas, en esta entrada, voy a contar como implementar un sistema de notificaciones en tiempo real con las siguientes tecnologías propuestas.

Diagrama del sistema.

Sistema distribuido

Spring AMQP Appserver

- Servidor central de nuestro sistema distribuido, se conecta a RabbitMQ mediante el protocolo AMQP, y es el productor (producer) de todos los mensajes de nuestro sistema.

RabbitMQ Broker

- Broker de nuestro sistema distribuido, a el se conecta el AppServer (mediante AMQP), y todos los clientes mediante una aplicación móvil Android nativa

La elección de este broker, es debida a su integración natural con Spring (es desarrollado por SpringSource) y versatilidad, ademas de AMQP como protocolo por defecto, mediante plugins podemos dar compatibilidad a otros tan famosos como STOMP o el cada vez mas importante en la escena de los servicios pub/sub, MQTT. Su núcleo se basa en Spring-erlang, que es un modulo Java desarrollado por SpringSource bajo Erlang, un lenguaje especifico de altas prestaciones para programación distribuida, tolerancia a fallos, algoritmos de elección de líder, etc…

Android Client Application

- Es la aplicación cliente que se conectará con el broker para recibir las notificaciones, lo hará mediante la implementación de un servicio Android que mantendrá activa la conexión al servicio de notificaciones en segundo plano.

Eclipse PAHO MQTT Java Library

- Cliente MQTT, para subscribirnos al servicio pub/sub desde la aplicación móvil.

MQTT

- Protocolo utilizado por los clientes Android, desarrollado originalmente por IBM, es un protocolo telemétrico, en auge por sus altas prestaciones, eficiencia en la transmisión de la información, y bajo consumo energético (realmente importante en dispositivos móviles), originalmente fue desarrollado para las comunicaciones espaciales, de sensores y otros dispositivos electrónicos, Facebook recientemente reemplazo XMPP en su servicio de mensajería instantánea por MQTT.

AMQP

Protocolo muy versátil, en combinación con RabbitMQ nos da innumerables posibilidades para la publicación de mensajes mediante exchanges, topics y queues.

Empecemos…

Como el tutorial completo es bastante largo he decidido dividirlo en diferentes entradas, donde ire explicando mas detalladamente cada una de las partes.

  1. Instalación y configuración de RabbitMQ.
  2. Conectando AppServer a RabbitMQ con Spring-AMQP.
  3. Conectando Android a RabbitMQ con Eclipse PAHO.
Comparte esta entrada enShare on LinkedIn0Tweet about this on Twitter0Share on Facebook0Share on Google+0

Deja un comentario

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