APSQL

Le service de notification avec SQL Server 2005

Avec le service de notification, SQL Server 2005 permet de mettre en place une application qui va prévenir les utilisateurs qu'une modification à eu lieu sur les données. Avec un tel service, le serveur de base de données devient actif, car il ne se contente pas de répondre aux demandes des utilisateurs mais au contraire les informes que des changements ont eu lieu. Les utilisateurs sont alors libre de réagir en fonction de l'importance qu'ils accordent aux modifications.

Le principe de fonctionnement

Le service de notifications repose sur le principe des abonnements. Pour chaque élément susceptible de participer au service de notification, le composant coté serveur va mettre en place les éléments nécessaires pour suivre les modifications.

Tous les utilisateurs qui souhaitent être avertis des modifications, doivent souscrire un abonnement en spécifiant les éléments qui les intéressent mais aussi le canal de communication choisi pour les avertir des modifications.

Sur une base de temps régulière, le service de notification, va prévenir les abonnées des modifications qui ont eu lieu sur les données. Les abonnés peuvent également être tenu informé, lorsqu'un évènement déclencheur se produit (par exemple le prix d'un produit passe en dessous d'un seuil défini au préalable). Cette opération s'effectue en 2 temps:

  • Extraire les informations intéressantes en fonction des abonnements
  • Envoyer les informations aux abonnés en sélectionnant leur canal de communication

Architecture du service de notification

Pour proposer ces fonctionnalités, le service de notification s'appuie sur différents éléments:

  • Une base de données SQL Server est utilisée pour stockée toutes les informations relatives aux abonnés et aux abonnements.
  • Les fournisseurs d'évènements permettent de surveiller et de collecter les différents évènements qui peuvent se produire.
  • Le générateur, qui s'exécute de façon régulière, rapproche les informations collectées par les fournisseurs des souhaits présents dans les abonnements. C'est le générateur qui fournis les informations présentent dans la notification.
  • Le distributeur se charge d'adapter la notification en fonction du média sélectionné lors de l'abonnement.

La mise en place

Le configuration d'une solution de notification peut se faire soit par l'intermédiaire des objets NMO, accessibles depuis VB.Net ou bien C# par exemple, ou bien par des fichiers au format XML. Dans le cas d'utilisation de fichiers au format XML, il est nécessaire d'un définir 2. Le premier fichier (ADF) permet de définir complètement l'application, quand au second (IDF), il permet de définir l'instance du service de notification.

La mise en place présenté ici, suppose que la même instance SQL Server héberge la base de données et le service de notification. Cette solution est acceptable à des fins didactiques. Sur une serveur en production, il est préférable de choisir deux instances distinctes afin de ne pas trop charger la serveur de production.

Les fichiers de configuration

Pour paramétrer le service de notification, il est possible de passer par les fichiers ICF et ADF. Ces 2 fichiers, au format XML, correspondent au paramétrage de l'instance (ICF : Instance Configuration File) ou de l'application (ADF: Application Definition File). Il est possible de se passer de ces fichiers en travaillant avec les objets NMO (Notification Services Management Object).

Le fichier ADF va contenir les informations suivantes:

  • La base de données d'application
  • Les propriétés des classes d'évènements
  • Les propriétés de classes d'abonnement
  • Les propriétés de classes de notification
  • Les propriétés du fournisseur d'évènements
  • Les propriétés du générateur
  • Les propriétés du serveur de distribution
  • Les paramètres fonctionnels
  • Version et historique

Le fichier IDF doit contenir les informations suivantes:

  • Le nom de l'instance
  • Le nom de l'instance SQL Server qui héberge la base de données
  • La définition de la base de données
  • La liste des applications hébergées
  • Les protocoles de remise personnalisés
  • Les informations sur les canaux de remises utilisés au niveau de l'instance
  • Le paramètre de chiffremment
  • Les informations sur l'historique et la version de l'instance

En savoir plus
Fichier ADF
Fichier IDF
La documentation
Le didacticiel