En http://appfabricservicebus.codeplex.com/ podemos encontrar un proyecto, código fuente incluido, que puede ser de gran utilidad para poder entender y probar las colas y topics de Service Bus.
En este apartado se verá un ejemplo de cómo crear un servicio de colas y topics y cómo es posible emplear esta herramienta para poder probar dicha funcionalidad.
Al venir con código fuente, podemos emplear esta aplicación para poder entender la forma de utiliza las librerías (Microsoft.ServiceBus.dll) que ofrece el Sdk de Windows Azure para poder trabajar con colas y topics.
public List<Message> ReceiveQueueMessages(string queue, ReceiveMode mode) { QueueDescription queueDescription = namespaceManager.GetQueue(queue); if (queueDescription != null) { MessagingFactory factory = MessagingFactory.Create(serviceUri, credentials); QueueClient client = factory.CreateQueueClient(queue, mode); List<Message> messageList = new List<Message>(); for (int count = 0; count < queueDescription.MessageCount; count++) { BrokeredMessage message = client.Receive(TimeSpan.FromSeconds(5)); if (message != null) { if (mode == ReceiveMode.PeekLock) message.Complete(); messageList.Add(GetMessage(message)); } } return messageList; } return null; }
El primer paso es crear un namespace de Windows Azure AppFabric desde el portal de Windows Azure.
Una vez creado el namespace se podrá ver desde el portal el listado de todos los namespace disponibles y cómo service bus dispone de las características de colas y topics.
Desde el portal se puede crear las colas, topics y subscripciones, que posteriormente serán las que utilice la aplicación de ejemplo.
Lógicamente, las mismas tareas de aprovisionamiento que se hacen desde el portal podrían hacerse por código empleando los diferentes modelos de programación que permite service bus.
A continuación se muestran las ventanas a través de las cuáles es posible crear colas, topics y subscripciones. Se puede ver en dichas ventanas las opciones de configuración que ofrece cada servicio.
Una vez creado el servicio, éste ya puede ser consumido desde una aplicación cliente. En este caso se usará la herramienta cliente que se ha mencionado anteriormente.
Una vez descargado el código fuente se podrán ver que existe dos soluciones de Visual Studio, una para la aplicación cliente y otra para la aplicación servidora, las cuáles pueden ser usadas para probar toda la funcionalidad comentada anteriormente.
Desde la aplicación cliente tendremos que realizar una conexión al servicio de Service Bus, para el cuál será necesario indicar el namespace del servicio y las credenciales de acceso; el nombre y la clave.
En este caso cabe recordar que toda la autenticación se realiza a través del servicio de Access Control.
Una vez conectados al servicio se podrán ver todas las colas, topics y subscripciones creados anteriormente y simular el envío de uno o varios mensajes.
Hay que destacar que para probar este servicio no es necesario disponer del servidor arrancado, ya que la comunicación ocurre de manera asíncrona y que todos los mensajes son persistidos en el Service Bus hasta que el servidor los lea y elimine.
Para el servidor habría que realizar el mismo proceso; abrir la aplicación, ejecutarla, conectarse al service bus e indicar de qué cola o subscripción se desea hacer la lectura.