Azure Service Bus Topics

Otro servicio que ofrece el Service Bus de Azure, junto con las ‘Queues’, ‘Relays’ e ‘Event Hub’ son los ‘Topics’. A diferencia de las queues, donde sólo hay un receptor, en los topics puede haber múltiples. Esto es así debido al sistema que emplea basado en suscripciones, en el cual un topic  puede tener registradas múltiples suscripciones, estando cada una asociada a un receptor. Dicho receptor solo recibirá los mensajes que hayan sido previamente filtrados por la propia suscripción, lo que permite controlar la información que llega a cada receptor atendiendo, por ejemplo, al perfil del mismo.

Instalación

El proceso de instalación o creación es el mismo que el de una Azure Service Bus Queue. Unicamente tener en cuenta que ‘Messaging Tier’ debe estar establecido como mínimo en ‘Standard’, a diferencia de las queues.
La cadena de conexión se recupera de manera análoga.

Funcionamiento

El funcionamiento es muy similar al visto para las ‘queues’, con lo que todo lo comentado para estas se aplican aquí. De esta manera, este servicio es susceptible de ser empleado con diferentes lenguajes (Java, Node.js, .NET, PHP, Ruby o Python). Para los ejemplos se empleará Python.
La gestión de los topics, así como de las suscripciones pueden hacerse asimismo desde el propio portal.

Un código de ejemplo con las operaciones básicas sería el siguiente:

Conclusiones

Como se ha visto, el funcionamiento es muy similar a las colas de Services Bus, con la diferencia fundamental del número de receptores del mensaje. Esta característica, unida a la posibilidad de establecer filtros en cada suscripción, permite un grado de versatilidad con que la anterior estructura de datos no contaba.

Herramientas Útiles

Me gustaría hablar de dos herramientas muy útiles en el día a día, que pese a su sencillez no por ello dejan de ser útiles.
Una de ellas de un emulador de terminal llamado cmder. Si bien Carlos habló en este post de otro llamado ConEmu, esta otra alternativa también resulta bastante interesante.
La otra herramienta se llama PingInfoView, y su cometido es el de realizar un ping a las máquinas que establezcamos, con lo cual se sabrá en todo momento si éstas están en línea o no.

cmder

Como se ha dicho, el cmder es un emulador de consola, lo que significa que actúa a modo de intermediario con el intérprete. Esto vendría a decir que se puede personalizar y adecuar más a las necesidades y gustos del usuario (siempre dentro de un límite). La configuración es bastante completa, permitiendo alterar diversos aspectos, desde el grado de opacidad, el tipo de fuente a emplear, pasando por la integración de diversas aplicaciones en las múltiples pestañas que se pueden desplegar, etc.
Sin duda, el grado de configruación es lo que le confiere potencia y versatilidad a este emulador de consola, si bien al principio puede resultar algo engorroso debido a la cantidad de opciones.

2016-06-19 20_34_57-Cmder

PingInfoView

Esta aplicación nos permite realizar ping a una serie de máquinas establecidas en una lista a introducir de forma manual o bien desde un archivo externo. El programa permite establecer alarmas visuales y sonoras en el caso de fallos, así como exportar informes en HTML, establecer la frecuencia de los pings, etc.

2016-06-19 20_32_00-PingInfoView

Un programa sencillo pero que cumple su cometido a la perfección.

Azure Service Bus Queues

Qué es

El Azure Service Bus Queues (ASBQ), al igual que el servicio Azure Queue Storage (se habló de el en este post) hace uso de una estructura de datos basada en cola para el envío de mensajes. A diferencia de este último, el ASBQ no requiere de una Storage Account para su funcionamiento.

Instalación

La instalación es bastante directa y sencilla. Hay que llevarla a cabo desde el portal clásico (ya que desde el portal nuevo, nos redirigirá al primero).

De este modo, en el portal clásico, hay que situarse en “Service Bus” y pinchar en “Create”. Hecho esto, aparecerá una pantalla donde se indicarán los datos del servicio.

Creando ASB 1

Se dará un namespace, el tipo será ‘messaging’, se elegirá el nivel acorde a las necesidades, así como la región (el rendimiento será mejor cuanto más cerca). Una vez creado el servicio, aparecerá en el panel.

ASB creado

Lo último que quedaría por hacer sería anotar la cadena de conexión que posteriormente se empleará en el entorno de desarrollo elegido. Para ello, hay que pinchar en el icono “Connection information”, proporcionando dicha información.

ASB connection info

Funcionamiento

Este servicio puede utilizarse mediante diversos lenguajes (Java, Node.js, .NET, etc), a modo de ejemplo se hará en Python.
La instalación de Python y su correspondiente SDK no presenta complicaciones, habiendo versión para Windows, Linux y MacOS.
Una vez instalado el SDK, ya se está en disposición de crear y eliminar colas, así como introducir mensajes y extraerlos. Cabe señalar que en el propio portal clásico se pueden crear y eliminar colas.

Un código de ejemplo en Python sería el siguiente:

Conclusiones

La modalidad que se ha visto aquí es la más simple (paso de mensajes), pero también presenta otras más elaboradas. Comparándola con la Azure Storage Queue, su utilización es si cabe más sencilla y directa, pero no tan potente y versátil. Todo depende en realidad del uso que se le dé.