Partager via


Exemple Flight

Mis à jour : 17 juillet 2006

L'exemple Flight est une application Microsoft SQL Server 2005 Notification Services pilotée par les événements qui produit des notifications sur les prix de vol pour les utilisateurs abonnés en fonction des caractéristiques de leurs abonnements.

Scénario

Des clients s'abonnent à des notifications de prix de vol. Dans chaque abonnement, ils indiquent la ville de départ et d'arrivée, le prix et, facultativement, la compagnie aérienne souhaités.

La société qui exécute l'application Flight soumet les données d'événement de prix de vol à l'application en déposant des données XML dans un dossier observé. Notification Services collecte ensuite ces données et génère des notifications à l'intention des personnes dont les abonnements correspondent aux données recueillies.

Les notifications sont générées lorsque les conditions suivantes sont remplies :

  • Le prix du ticket de l'événement est inférieur au prix du ticket de l'abonnement.
  • L'aéroport de départ de l'événement est égal à l'aéroport de départ de l'abonnement.
  • L'aéroport d'arrivée de l'événement est égal à l'aéroport d'arrivée de l'abonnement.
  • La compagnie aérienne de l'événement est égale à la compagnie aérienne de l'abonnement (si elle a été spécifiée).

Si plusieurs notifications sont à envoyer en même temps pour un abonné, Notification Services procède à une remise de type digest afin de regrouper toutes ces notifications. Notification Services met ensuite en forme la notification à l'aide d'un module de formatage de contenu XSLT et utilise le canal de remise spécifié (message électronique ou fichier) pour distribuer la notification.

Langages

XML, XSD, XSLT et Microsoft Visual C# ou Microsoft Visual Basic.

Fonctionnalités

L'exemple Flight utilise les fonctionnalités suivantes de Notification Services :

Domaine d'application Fonctionnalités

Classe Event

File d'attente d'événements de base (pas de chronique).

Classe Subscription

Abonnements pilotés par les événements.

Classe Notification

Remise de type digest.

Fournisseurs d'événements

Fournisseur d'événements FileSystemWatcher.

Modules de formatage de contenu

Module de formatage de contenu XSLT.

Protocoles de remise

Protocoles de remise FTP et SMTP.

Configuration requise

Avant d'exécuter cet exemple, vérifiez que le logiciel suivant est installé :

  • SQL Server 2005, y compris les composants suivants :
    • Moteur de base de données
    • Notification Services
    • SQL Server Management Studio
    • Exemples Notification Services. Ces exemples accompagnent SQL Server 2005. Vous pouvez télécharger la dernière version des exemples sur le site Web du SQL Server Developer Center (Centre des développeurs SQL Server).
    • Le Kit de développement .NET Framework SDK 2.0 ou Microsoft Visual Studio 2005. Vous pouvez obtenir gratuitement le Kit de développement .NET Framework SDK. Consultez Installation du SDK .NET Framework.

Vérifiez également que les composants Microsoft Windows suivants sont installés et opérationnels :

  • Service SMTP (Simple Mail Transfer Protocol), qui est un composant des services IIS (Internet Information Services). Sur Microsoft Windows Server 2003, SMTP n'est pas installé par défaut avec les services IIS. Pour plus d'informations sur l'installation et l'utilisation du service SMTP, consultez la documentation de Windows.

Génération de l'instance de Notification Services

Pour générer l'instance, vous devrez procéder comme suit :

  • Créez l'instance de Notification Services.
  • Inscrivez l'instance de Notification Services.
  • Octroyez les autorisations pour SQL Server, les bases de données et les dossiers.

Les procédures suivantes montrent comment effectuer chacune de ces tâches pour l'exemple Flight.

Étape 1 : Créez l'instance de Notification Services

  1. Ouvrez SQL Server Management Studio et connectez-vous à une instance de SQL Server.

  2. Dans l'Explorateur d'objets, cliquez avec le bouton droit sur le dossier Notification Services, puis sélectionnez Nouvelle instance de Notification Services.

  3. Dans la boîte de dialogue Nouvelle instance de Notification Services, cliquez sur Parcourir et sélectionnez le fichier InstanceConfig.xml dans le dossier racine de l'exemple Flight.

  4. Dans la zone Paramètres, entrez les valeurs des trois paramètres :

    • SampleDirectory : chemin d'accès du dossier racine de l'exemple Flight. Il s'agit par défaut de C:\Program Files\Microsoft SQL Server\90\Samples\Notification Services\Flight.
    • NotificationServicesHost : nom du serveur Notification Services.
    • SQLServer : nom de l'instance SQL Server.
  5. Activez la case à cocher Activer l'instance après sa création.

  6. Cliquez sur OK.

  7. Lorsque Notification Services a fini de créer l'instance, cliquez sur Fermer.

Étape 2 : Inscrivez l'instance de Notification Services

  1. Dans SQL Server Management Studio, ouvrez le nœud Notification Services, cliquez avec le bouton droit sur FlightInstance, pointez sur Tâches, puis sélectionnez Inscrire.

  2. Dans la boîte de dialogue Inscrire, activez la case à cocher Créer un service Windows. Le service Windows exécute l'instance de Notification Services sur cet ordinateur.

  3. Sous Ouverture de session du service, entrez un compte Windows et son mot de passe. Il s'agit du compte Windows sous lequel le service doit s'exécuter. Si vous utilisez l'authentification Windows pour accéder à SQL Server, le service Windows utilisera aussi ce compte pour se connecter à SQL Server.

  4. Si vous devez utiliser l'authentification SQL Server pour accéder à SQL Server, sélectionnez Authentification SQL Server sous Authentification, puis entrez un nom et un mot de passe de connexion SQL Server.

    Il est recommandé d'utiliser l'authentification Windows.

  5. Cliquez sur OK.

  6. Lorsque Notification Services a fini d'inscrire l'instance, cliquez sur Fermer.

ms160946.note(fr-fr,SQL.90).gifRemarque :
Si vous déployez un exemple Notification Services à l'aide d'un compte de propriétaire de base de données ou d'un compte d'administrateur système, il n'est pas nécessaire d'accorder les autorisations SQL Server sur le compte. L'octroi de ces autorisations risque d'entraîner une erreur, que vous pouvez d'ailleurs ignorer. Lorsque vous déployez vos propres applications, vous devez utiliser des comptes dotés de privilèges réduits afin d'améliorer la sécurité.

Étape 3 : Octroyez les autorisations pour SQL Server, les bases de données et les dossiers

  1. Dans l'Explorateur d'objets, développez le nœud Sécurité.

  2. Si vous devez créer un nouveau compte de connexion SQL Server pour le service Windows, cliquez avec le bouton droit sur Connexions, puis sélectionnez Nouvelle connexion et créez le compte de connexion :

    • Pour utiliser l'authentification Windows, sélectionnez Authentification Windows et entrez le compte Windows que vous avez spécifié pour inscrire l'instance.
    • Si vous devez utiliser l'authentification SQL Server, sélectionnez Authentification SQL Server et entrez le nom et le mot de passe de connexion SQL Server que vous avez spécifiés pour inscrire l'instance.
  3. Si le compte de connexion utilisé par le service Windows a déjà accès à SQL Server, cliquez avec le bouton droit sur ce compte de connexion et sélectionnez Propriétés.

  4. Dans le volet gauche de la boîte de dialogue Connexion, sélectionnez l'option de mappage des utilisateurs.

  5. Octroyez les autorisations pour la base de données FlightInstanceNSMain :

    1. Dans la zone réservée aux utilisateurs mappés à cette connexion, sélectionnez FlightInstanceNSMain.
    2. Dans la zone Appartenance au rôle de base de données pour : FlightInstanceNSMain, sélectionnez NSRunService.
  6. Octroyez les autorisations pour la base de données FlightInstanceFlight :

    1. Dans la zone réservée aux utilisateurs mappés à cette connexion, sélectionnez FlightInstanceFlight.
    2. Dans la zone Appartenance au rôle de base de données pour : FlightInstanceFlight, sélectionnez NSRunService.
  7. Cliquez sur OK pour appliquer les autorisations SQL Server.

  8. À l'aide de l'Explorateur Windows, configurez la sécurité pour le dossier Events :

    1. Recherchez le dossier Events de l'exemple.
    2. Cliquez avec le bouton droit sur le dossier Events, sélectionnez Partage et sécurité, puis sélectionnez l'onglet Sécurité.
    3. Cliquez sur Ajouter et ajoutez le compte utilisé par le service Windows.
    4. Dans la zone Noms d'utilisateurs ou de groupes, sélectionnez le compte que vous venez d'ajouter.
    5. Dans la zone Autorisations pour, sélectionnez les autorisations Lire et Modifier.
    6. Cliquez sur OK pour appliquer les modifications.
  9. Configurez la sécurité pour le dossier Notifications :

    1. Recherchez le dossier Notifications de l'exemple.
    2. Cliquez avec le bouton droit sur le dossier Notifications, sélectionnez Partage et sécurité, puis sélectionnez l'onglet Sécurité.
    3. Cliquez sur Ajouter et ajoutez le compte utilisé par le service Windows.
    4. Dans la zone Noms d'utilisateurs ou de groupes, sélectionnez le compte que vous venez d'ajouter.
    5. Dans la zone Autorisations pour, sélectionnez Écrire.
    6. Cliquez sur OK pour appliquer les modifications.

Génération d'un fichier de clé de nom fort

Si vous n'avez pas encore créé un fichier de clé de nom fort, utilisez la procédure suivante pour générer ce fichier.

Pour générer un fichier de clé de nom fort

  1. Ouvrez une invite de commandes Microsoft Visual Studio 2005. Cliquez sur Démarrer, pointez sur Tous les programmes et sur Kit de développement Microsoft .NET Framework SDK 2.0, puis cliquez sur Invite de commandes du Kit de développement SDK.

    -- Ou --

    Ouvrez une invite de commandes Microsoft .NET Framework. Cliquez sur Démarrer, pointez sur Tous les programmes et sur Kit de développement Microsoft .NET Framework SDK 2.0, puis cliquez sur Invite de commandes du Kit de développement SDK.

  2. Utilisez la commande CD (changer de répertoire) pour remplacer le dossier actif dans la fenêtre de l'invite de commandes par le dossier dans lequel les exemples sont installés.

    ms160946.note(fr-fr,SQL.90).gifRemarque :
    Pour déterminer le dossier dans lequel se trouvent les exemples, cliquez sur le bouton Démarrer, pointez successivement sur Tous les programmes, sur Microsoft SQL Server 2005 et sur Documentation et didacticiels, puis cliquez sur le répertoire Samples. Si l'emplacement d'installation par défaut a été utilisé, les exemples se trouvent dans <lecteur_système>:\Program Files\Microsoft SQL Server\100\Samples.
  3. À l'invite de commandes, exécutez la commande suivante pour générer le fichier de clé :

    sn -k SampleKey.snk

    ms160946.note(fr-fr,SQL.90).gifImportant :
    Pour plus d'informations sur la paire de clés de nom fort, consultez l'article de sécurité concernant les noms forts et la sécurité dans .NET Framework, dans le Centre de développement .NET sur MSDN.

Exécution de l'exemple

Pour exécuter l'exemple, vous devez procéder comme suit :

  • Démarrez l'instance.
  • Ajoutez des abonnés et des abonnements.
  • Déposez dans le dossier Events un fichier XML qui contient des événements.
  • Affichez les notifications résultantes.

Les procédures suivantes montrent comment effectuer ces tâches et afficher ensuite les notifications résultantes.

Étape 1 : Démarrez l'instance

  1. Dans l'Explorateur d'objets, ouvrez le dossier Notification Services.

  2. Cliquez avec le bouton droit sur FlightInstance, puis sélectionnez Démarrer.

Étape 2 : Ajoutez des abonnés et des abonnements

  1. Générez la solution Visual Studio Flight_VB ou Flight.

    Si vous utilisez le Kit de développement (SDK) Microsoft .NET Framework, procédez comme suit :

    1. Cliquez sur Démarrer, pointez sur Tous les programmes\Kit de développement Microsoft .NET Framework SDK v2.0, puis cliquez sur Invite de commandes du Kit de développement SDK.
    2. Recherchez le dossier racine de l'exemple Flight. Tapez la commande suivante (si ce dossier se trouve à l'emplacement par défaut) :
      cd C:\Program Files\Microsoft SQL Server\90\Samples\Notification Services\Flight
    3. Tapez la commande suivante pour générer la solution Visual Studio :
      [C#] 
      msbuild Flight.sln
      [Visual Basic] 
      msbuild Flight_VB.sln

    Ou bien, si vous utilisez Visual Studio 2005, procédez comme suit :

    1. Ouvrez le fichier solution de votre choix (Flight.sln ou Flight_VB.sln).
    2. Générez la solution.
  2. Exécutez AddSubscribers.exe.

    L'emplacement par défaut de ce fichier est C:\Program Files\Microsoft SQL Server\90\Samples\Notification Services\Flight\AddSubscribers\language\AddSubscribers\bin\Debug.

  3. Exécutez AddSubscriptions.exe.

    L'emplacement par défaut de ce fichier est C:\Program Files\Microsoft SQL Server\90\Samples\Notification Services\Flight\AddSubscriptions\language\AddSubscriptions\bin\Debug.

ms160946.note(fr-fr,SQL.90).gifRemarque :
Si vous travaillez dans une application de production ou si vous exécutez votre application avec un compte restreint, ajoutez la connexion SQL Server de l'application au rôle de base de données NSSubscriberAdmin dans les bases de données d'instance et d'application.

Étape 3 : Soumettez des événements

  1. Dans l'Explorateur Windows, recherchez le dossier racine de l'exemple Flight, puis copiez le fichier EventData.xml vers le sous-dossier Events.

    Lorsque vous déposez le fichier, le fournisseur d'événements FileSystemWatcher lit les données du fichier, les soumet à l'application, puis affecte au fichier l'extension .done.

    Si une erreur se produit lors de la lecture ou de la soumission des données, le fournisseur d'événements affecte au fichier l'extension .err. Pour plus d'informations sur l'erreur, consultez l'Observateur d'événements Windows.

Étape 4 : Affichez les notifications

  1. Laissez à Notification Services environ une minute pour produire les notifications.

  2. À l'aide de l'Explorateur Windows, recherchez le dossier Notifications de l'exemple Flight. Vous devez y trouver un fichier nommé FileNotifications.txt. Ce fichier contient les notifications basées sur fichier.

  3. Accédez au dossier où sont déposés les messages électroniques. Il s'agit généralement de l'un des dossiers de C:\Inetpub\mailroot. Selon l'état du serveur SMTP, les notifications doivent se trouver dans le dossier Pickup ou le dossier Queue. Si le service SMTP s'exécute, les messages peuvent avoir été déplacés vers le dossier Badmail.

Suppression de l'exemple

Utilisez la procédure suivante pour supprimer l'exemple Flight.

Pour supprimer l'exemple Flight

  1. Dans l'Explorateur d'objets de SQL Server Management Studio, ouvrez le dossier Notification Services.

  2. Cliquez avec le bouton droit sur FlightInstance, puis sélectionnez Arrêter.

  3. Cliquez avec le bouton droit sur FlightInstance, pointez sur Tâches, puis sélectionnez Annuler l'inscription.

  4. Cliquez avec le bouton droit sur FlightInstance, pointez sur Tâches, puis sélectionnez Supprimer.

Voir aussi

Autres ressources

Exemples SQL Server Notification Services
Sécurisation de Notification Services

Aide et Informations

Assistance sur SQL Server 2005

Historique des modifications

Version Historique

14 avril 2006

Contenu ajouté :
  • Ajout d'une remarque sur l'exécution des exemples à l'aide des autorisations de propriétaire de base de données.

5 décembre 2005

Contenu modifié :
  • Modification des instructions concernant la génération d'un fichier de clé, entre autres le nom et l'emplacement de ce fichier.