Avantages du traitement en file d’attente
Lors de la conception de nouvelles applications, les développeurs doivent tenir compte des implications du codage des composants pour le traitement en temps réel (synchrone) par rapport au traitement en file d’attente (asynchrone). Le choix dépend des exigences de l’application spécifique, telles que déterminées par la logique métier sous-jacente. À titre indicatif, le traitement en file d’attente offre les avantages suivants par rapport au traitement en temps réel :
- Dépendance réduite à la disponibilité des composants
- Durées de vie des composants plus courtes
- Productivité ininterrompue lors de l’utilisation d’applications déconnectées
- Fiabilité des messages
- Planification efficace du serveur
Disponibilité des composants
Dans une application de traitement en temps réel, si un seul composant de la transaction n’est pas disponible (peut-être en raison d’une surcharge de serveur ou de problèmes de mise en réseau), l’ensemble du processus est bloqué et ne peut pas se terminer. En revanche, une application utilisant le service de composants en file d’attente COM+ sépare la transaction en activités qui doivent être terminées maintenant et celles qui peuvent être effectuées ultérieurement. Par exemple, les messages peuvent être mis en file d’attente pour traitement ultérieur afin que le composant demandeur soit libre pour d’autres tâches.
Durées de vie des composants
Une application utilisant le service de composants mis en file d’attente permet au composant serveur de fonctionner indépendamment du client. Par conséquent, les composants serveur peuvent s’exécuter plus rapidement. Dans un système en temps réel, le composant serveur existe à partir du moment où il est créé jusqu’à la libération de l’objet. Le serveur attend que le client effectue des appels de méthode et que les résultats soient retournés, ce qui annule le cycle rapide des objets serveur et limite la scalabilité du serveur.
Applications déconnectées
L’utilisation croissante d’ordinateurs portables, de notebooks et d’ordinateurs palm a créé un besoin pour les applications qui gèrent parfois des clients déconnectés ou des utilisateurs mobiles. Dans un système en file d’attente, ces utilisateurs peuvent continuer à travailler dans un scénario déconnecté ou lorsqu’ils ne sont pas connectés au serveur, et ils peuvent ensuite se connecter aux bases de données ou aux serveurs pour traiter leurs demandes. Par exemple, un vendeur peut prendre des commandes des clients et se connecter ultérieurement au service d’expédition pour traiter ces commandes.
Si vous avez un composant qui peut être exécuté connecté ou déconnecté, les messages circulent dans une seule direction et il est rarement nécessaire de basculer entre les deux. Par exemple, dans le scénario de prise de commande, le composant d’expédition reçoit le message et le traite. Il peut générer un autre composant pour la facturation ou l’audit. Le client valide avant que le serveur ne démarre. Le message n’est pas envoyé tant que l’application n’a pas été validée.
L’illustration suivante montre le flux d’informations dans un scénario déconnecté.
Fiabilité des messages
Message Queuing est un outil puissant qui utilise des techniques de base de données pour protéger les données de manière robuste. En cas de défaillance du serveur, Message Queuing garantit que les transactions sont restaurées afin que les messages ne soient pas perdus et que les données ne soient pas endommagées.
Planification du serveur
Une application utilisant des composants mis en file d’attente convient parfaitement à l’exécution de composants avec décalage de temps, ce qui reporte le travail non critique à une période creuse. Il s’agit du même concept utile qui a été appliqué au traitement en mode batch traditionnel. Des requêtes similaires peuvent être différées pour une exécution contiguë par le serveur plutôt que d’exiger du serveur qu’il réagisse immédiatement à une grande variété de demandes.