Introduction SQL Server Notification Services 2005 Patrice Truong



























- Slides: 27

Introduction à SQL Server Notification Services 2005 Patrice Truong Consultant Principal, Business Intelligence Microsoft France patrice. truong@microsoft. com

Accès à l’information Approche traditionnelle, pas de notifications Web News ERP, CRM LOB, Rpt Demande Réponse Mon Device

Accès à l’information Notifications ‘push’: tout ou rien Web News Push ERP, CRM LOB, Rpt Mon Device AM SP

Accès à l’information Avec préférences utilisateur Web News ERP, CRM LOB, Rpt Application de notification Le device de mon choix Applications de notificationx: une nouvelle classe d’applications qui délivre au bon moment des informations personnalisées sur le device de mon choix

Scénarios d’applications de notifications Applications grand public Pour des dizaines de millions d’utilisateurs Services financiers, secteur santé, voyage, e. Commerce. . Applications d’entreprise (line of business) Applications décisionnelles, surveillance de données critiques. . Applications de reporting Applications de communication Communication avec le personnel Recherche de données Suivi de projets

Qu’est-ce que SQL Server Notification Services? Une plate-forme pour développer et déployer rapidement des applications de notification, riches et puissantes Un modèle de programmation déclaratif qui s’appuie sur XML et Transact-SQL Un moteur d’exécution puissant basé sur SQL Server 2005 et le. NET Framework

Pourquoi choisir. SQL Server Notification Services? Facilité de développement Déploiement rapide (time to market) Richesse des fonctionnalités Puissance et solidité de la plate-forme Flexibilité et évolutivité

Facilité de développement Des outils et des techniques éprouvées Intégration avec Visual Studio Aide intégrée, auto-fill du schéma, Intellisense Expérience de déboguage Visual Studio (attachement au processus, création de points d’arrêts, examen de variables…) Utilisation de l’expertise SQL Server Développement de procédures Transact-SQL Optimisation de bases de données relationnelles Administration de bases de données SQL Server Temps de formation réduit, reprise de l’expérience de développement existante

Déploiement rapide (time to market) Pas ou peu de coût de license supplémentaire Inclus dans la license SQL Server 2005 Le framework Notification Services fournit la majeure partie de l’infrastructure S’appuie sur les systèmes existants Pas de ‘rip and replace’ Fonctionnement en environnement hétérogène Prototypage, construction et déploiement d’applications de notifications dans des délais très courts

Richesse des fonctionnalités Flexibilité dans le déclenchement des règles Déclenchement sur évènements et/ou planifiées Diversité des canaux de notifications Texte, email, SMS, fax, vers une autre application Formatage des notifications en fonction de la langue, du device Notifications multicast et agrégées Fonctions de gestion Files d’attente, fuseaux horaires, reprise sur incident, Accumulation d’évènements, tables d’états… Incidents et logique de tentatives Un modèle applicatif riche qui permet la création rapide d’applications de notification

Puissance et Solidité Les fonctions de génération de Notification Services dépassent les capacités de tout protocole de distribution Voir le livre blanc sur les performances pour plus de détails Utilisation des best practices SQL Server pour l’optimisation Support de nombreuses configurations de déploiement configurations H/W pour le partage de charge, haute disponibilité En standard, un moteur de notification puissant et solide

Flexibilité et Evolutivité Une API pour les développeurs d’applications Interface de programmmation pour Souscripteurs, Devices, souscriptions, évènements Interface de programmation native Couche d’interopérabilité COM Architecture évolutive à base de composants Fournisseur d’évènements (Custom event provider) Formatteur de messages (custom formatter) Protocole de distribution (Custom delivery protocol) Pour une intégration dans n’imprte quel environnement

Démonstration

Applications de notifications Souscripteurs Souscriptions (millions) Sources de données Evènements Match Notifications (millions) Devices et applications

Le problème de ‘matching’ Deux approches comparées Souscription s = Requêtes Utilisation d’un langage ‘SQL-like’ pour modéliser les requêtes Evaluation des souscriptions pour chaque évènement entrant Problèmes de montée en charge (Volumétrie = Nx. M) Souscription s = Données Souscriptions stockées sous forme de lignes dans une table SQL Evènements stockés sous forme de lignes dans une table SQL Opérations de jointures entre les tables à l’aide de JOINs SQL

Circulation de l’information Le pipeline SQLNS NS API EP = Event Provider GP = Generator Process CF = Content Formatter DP = Delivery Protocol

Notification Services Une architecture à base de composants Application de gestion des souscriptions Changeme nts Evènements Event Provider File System Watcher SQL Server provider Custom EP Event Provider Host Souscripteurs Devices Souscriptions Notifications Générateur Règles de match SQL Distribut ion Distributeur XSLT CF XSLT Custom CF Email File Http. Ext. NET Alerts* Custom DP

Cycle de développement Tâches Evènements, souscriptions, souscripteurs, notifications, règles de matching Skills Definir les schémas et les règles Focus Construire les fondations XML T-SQL Construire l’application de gestion des souscriptions Ajouter des composants personnalisés Intégration pour tests de bout en bout Souscripteurs, souscriptions, évènements Application web Event Providers, Content Formatters, Delivery Protocols Perfmon, procédures stockées SQLNS VB Script T-SQL ASP. NET VB Script C#, VB. NET XSLT C# VB. NET Opérations T-SQL Charger des Compiler jeux de l’application données de test nscontrol create, register, update Script Etendre la plate-forme

Construction des fondations: Définition des schémas et des règles Modéliser les évènements comme des lignes dans une table SQL Modéliser les souscriptions comme des lignes Utiliser la puissance de SQL Server pour écrire les règles de matching l Formater la notification brute avec une xslt de base

Construction des fondations: ‘Compiler’ l’application Config nscontrol create Lecture des fichiers XML de configuration d’instance et d’application Création de bases, tables, vues, procédures stockées… nscontrol register (sur chaque machine où service SQLNS fonctionne) le SQL Server Instance Active EP, GP, DP Assigner les permissions & démarrer l’instance App. #1 App. #2 Spécifier la clé d’encryptage Installe un service Windows multi-thread par instance Enregistre les compteurs de performance et les clés de registre SQLNS nscontrol enable ADF 1 ADF 2 ADF 3 App. #3 Event Provider enabled disabled Generator enabled disabled Distributor enabled disabled

Construction des fondations: Chargement des jeux de tests Souscripteurs & Souscriptions Web UI: ASP, ASP. NET VB Script, avec utilisation du modèle objet Win. Forms: C++, C#, VB. NET, avec utilisation du modèle objet Evènements Utiliser les composants standards File. System. Watcher Ne JAMAIS insérer des données directement dans les tables SQLNS!

Event Providers Exemple: SQL Server Event Provider Data Source Query Post. Query Schedule SQL Server provider Event Provider Host Events Changes Event Providers Pour alimenter la table SQLNS Events En standard: File. System. Watcher, Provider SQL Event Provider SQL Server Hébergé par le Event Provider Host Exécute une requête SQL à intervalles réguliers pour récupérer les changements dans la source de donées Stocke les changements sous forme de lignes dans une table d’évènements

Formateurs de contenu Content Formatters Transformation d’une notification brute En standard: Formateur XSLT Pourquoi utiliser un formateur de contenu personnalisé? Pour aller au delà d’une simple transformation xslt (html complexe, dépendances externes pour le formatage, opérations de calcul…) Pour cibler plusieurs devices/langages avec le même code (vs. plusieurs fichiers xslt) Pour obtenir de meilleures performances Assembly en managed code chargée par le distributeur Expose 3 méthodes: Initialize, Format. Content, Close

Protocoles de distribution Delivery Protocols Protocoles de distribution Pour envoyer des notifications à plusieurs endpoints En standard: SMTP, File, . NET Alerts * Partenaires pour distribution de SMS Fichier de configuration d’instance: Ajouter la définition du protocole Protocol Name Ajouter la définition du canal de distribution qui utilise ce protocole Protocol. Provider. Class. Name, Assembly. Name, post. URL, Encoding… 1: 1, 1: n Fichier de définition de l’application Spécifier le user/password pour s’identifier avec le end point Spécifier les paramètres requis pour constuire l’enveloppe

Conclusion SQL Server Notification Services est une plate-forme de développement SQLNS permet le développement rapide d’applications de notifications robustes, fiables et qui supportent des volumétries importantes La puissance et richesse du moteur d’exécution SQLNS peuvent être étendues par des développements spécifiques

La référence technique pour les IT Pros : technet. microsoft. com Abonnement Tech. Net Plus : Versions d’éval + 2 incidents support La référence technique pour les développeurs : msdn. microsoft. com Visual Studio 2005 + Abonnement MSDN Premium S’informer - Un portail d’informations, des événements, une newsletter bimensuelle personnalisée Se former - Des webcasts, des articles techniques, des téléchargements, des forums pour échanger avec vos pairs Bénéficier de services - Des cursus de formations et de certifications, des offres de support technique

Votre potentiel, notre passion TM © 2007 Microsoft France