Queue and topics

Message de Roch Baduel (Le 15-09-2011)

Je voulais allez voir les nouveautés du framework 4.5 mais arrivé plus d’un quart d’heure avant la session  était pleine. Donc direction une autre session : Building advanced touch apps in Windows 8 : meme scenarios. Donc sur place il y à Clemens Vaster et un de mes sujets favoris puisque c’est une partie du futur “BizTalk”, je vais donc à la session (spécial Team BizTalk), voir notamment si il y a du nouveau:

Building loosely-coupled apps with Windows Azure Service bus topics and queues

Animée par Clemens Vasters

Un peu d’Azure ne fait de mal à personne 😉

  • Topics and Queues viennent juste d’être « releasés » en production

Maintenant le service bus n’est plus uniquement un service de connectivité.

La session commence par un rappel sur le service de relay et le relay bindiing avec une petite démo.

Ensuite Clemens explique que la nouveauté qui vient d’être ajouté est le service de messaging / pub /sub aka : Topics and queue : c’est le sujet de la session.

Les queues : ce sont des files d’attente à la mode MSMQ dans lesquelles une application peut publier des messages. Les messages seront ensuite lus par une ou plusieurs autres applications. Les queues sont persistantes et supportent un espace de stockage allant jusqu’à 4Go.

Lors de la lecture le client peut utiliser 3 modes de lectures :

  • Read and Delete : dans ce mode le message est lu et directement supprimé de la queue. Si l’application cliente crashe, le message est perdu.
  • Peek : le message est lu et un verrou est placé. Ensuite l’application peut valider la lecture, ce qui supprime le message ou l’annuler ce qui enlève le verrou : le message reste dans la queue.
  • Transactionnel : l’application peut effectuer une transaction avec la queue

Les lectures peuvent être faites par plusieurs clients ce qui permet de faire du « load balancing »

Les messages représentés par la classe BrokeredMessage contiennent à la fois les données (le corps du message et un ensemble de propriétés sous la forme clé=valeur)

Les topics sont similaires aux queues : une application source publie des messages dans les topics. Par contre au niveau d’ un topic on défini des souscriptions. Les souscriptions sont des conditions sur  les valeurs des propriétés associées aux messages. Quand un message arrive dans le topic, il est routé vers les souscriptions qui correspondent. Ensuite un client peut lire les messages d’une souscription d’un topic. C’est un modèle asynchrone et persistant de publish subscribe.

La particularité du système est de supporter un très grand nombre de souscripteurs.

Utilisation – API :

  • Pour créer, tester l’existence et supprimer des queues, topics et souscriptions on utilise la classe NamespaceManager.
  • Pour interargir avec les queues, topics et subscriptions on utilise la classe MessagingFactory.

MessagingFactory propose notamment 3 méthodes qui permettent de créer des clients permettant de lire ou écrire dans les queue, topic et subscription.

Les méthodes sont :

  • CreateQueueClient : Crée un client permettant d’écrire et lire dans les queues
  • CreateMessageSender : Crée un client permettant d’écrire des messages
  • CreateSubscriptionClient : crée un client pour une souscription

Les messages manipulés par les clients sont des instances de la classe BrokeredMessage. Cette classe prends en paramètre de son constructeur le corps du message. Le corps du message peut être n’importe quel objet serialisable ou encore plus simplement un stream.

La classe BrokeredMessage dispose également d’un certains nombre de propriétés :

  • TimeToLive
  • ReplyTo
  • Properties : ce sont les propriétés qui sont évalues dans les souscriptions
  • ContentType

Focus sur les souscriptions :

  • Les souscriptions peuvent être créées avec des expressions conforme à SQL92 ce qui permet des notamment des expressions du type « like ‘…%’ »

La session se finie par une démonstration de synchronisation de lecteurs vidéos multi-device.

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s