Patrice Truong Consultant Principal, Business Intelligence Microsoft France
Introduction à SQL Server Notification Services 2005
LOB, Rpt
ERP, CRM
News
Web
Accès à l’informationApproche traditionnelle, pas de notifications
Réponse
Mon Device
Demande
LOB, Rpt
ERP, CRM
News
Web
Mon Device
Push
SPAM
Accès à l’informationNotifications ‘push’: tout ou rien
LOB, Rpt
ERP, CRM
News
Web
Accès à l’informationAvec préférences utilisateur
Application de
notification
Applications de notificationx: une nouvelle classe d’applications qui délivre au bon moment des informations personnalisées sur le device de mon choix
Le device de mon choix
Scénarios d’applications de notifications
Applications grand publicPour des dizaines de millions d’utilisateursServices financiers, secteur santé, voyage, eCommerce..
Applications d’entreprise (line of business)Applications décisionnelles, surveillance de données critiques..Applications de reporting
Applications de communicationCommunication avec le personnelRecherche de donnéesSuivi 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éveloppementDes outils et des techniques éprouvées
Intégration avec Visual StudioAide intégrée, auto-fill du schéma, IntellisenseExpérience de déboguage Visual Studio (attachement au processus, création de points d’arrêts, examen de variables…)
Utilisation de l’expertise SQL ServerDéveloppement de procédures Transact-SQLOptimisation de bases de données relationnellesAdministration de bases de données SQL ServerTemps 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’infrastructureS’appuie sur les systèmes existants
Pas de ‘rip and replace’Fonctionnement en environnement hétérogènePrototypage, construction et
déploiement d’applications de notifications dans des délais très
courts
Richesse des fonctionnalitésFlexibilité dans le déclenchement des règles
Déclenchement sur évènements et/ou planifiées
Diversité des canaux de notificationsTexte, email, SMS, fax, vers une autre applicationFormatage des notifications en fonction de la langue, du deviceNotifications multicast et agrégées
Fonctions de gestionFiles 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’optimisationSupport 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’applicationsInterface de programmmation pour Souscripteurs, Devices, souscriptions, évènementsInterface de programmation nativeCouche d’interopérabilité COM
Architecture évolutive à base de composantsFournisseur 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
Sources de
données
Sources de
données
Devices et applicatio
ns
Devices et applicatio
ns
Souscriptions(millions)
Notifications(millions)
Match
Souscripteurs
Souscripteurs
Evènements
Le problème de ‘matching’Deux approches comparées
Souscriptions
= Requêtes
Souscriptions
= Données
Utilisation d’un langage ‘SQL-like’ pour modéliser les requêtesEvaluation des souscriptions pour chaque évènement entrantProblèmes de montée en charge (Volumétrie = NxM)Souscriptions stockées sous forme de lignes dans une table SQLEvènements stockés sous forme de lignes dans une table SQLOpérations de jointures entre les tables à l’aide de JOINs SQL
Circulation de l’informationLe pipeline SQLNS
Source Data
EP
Events
EventBatches
Notifications
NotificationBatches
GP CF DP
EP = Event ProviderGP = Generator ProcessCF = Content FormatterDP = Delivery Protocol
Subscription Management Application
SubscriptionsSubscriberDevicesSubscribers
NS API
Notification ServicesUne architecture à base de composants
Application de gestion des souscriptions
Changements
Changements Distrib
ution
Distribution
Event Provider
Evènements
SouscripteursDevices
SouscriptionsNotifications
Générateur
Distributeur
Règles de match
SQL
XSLT
CF
Custom CF
XSLT
Custom DP
.NET Alerts *
FileHttpExt
File System Watcher
SQL Server
provider
Custom EP
EventProvide
rHost
Cycle de développement
ASPASP.NETVB Script
C#, VB.NET
VB ScriptT-SQLScriptXML
T-SQL
Evènements,
souscriptions,
souscripteurs,
notifications, règles de matching
Definir les schémas
et les règles
Applicationweb
Souscripteurs,
souscriptions,
évènements
nscontrol create,
register, update
Construire l’applicatio
n de gestion
des souscriptio
ns
Charger des jeux
de données de test
Compiler l’applicat
ion
Etendre la plate-formeConstruire les
fondations
XSLTC#
VB.NET
Event Providers,Content
Formatters,Delivery Protocols
Ajouter des composant
s personnalis
és
Opérations
T-SQL
Perfmon, procédures stockées
SQLNS
Intégration pour tests de bout en
boutTâch
es
Focu
sS
kills
Construction des fondations:Définition des schémas et des règlesModéliser les évènements comme des lignes dans une table SQLModéliser les souscriptions comme des lignesUtiliser la puissance de SQL Server pour écrire les règles de matching
Events
StockSymbol
MSFT
Stock Value
41
ORCL 11 1/4
SUNW 9 1/2
INTC 22
IBM 65
CSCO 11 1/2
Subscriptions
StockSymbol
MSFT
Trigger
40
SubscriberId
patricet
Notifications
StockSymbol
MSFT
Stock Value
41
SubscriberId
patricet
<xsl:template match="notification"><b><xsl:value-of select="StockSymbol"/></b>is now trading at: <b>$<xsl:value-ofselect="StockValue"/></b></xsl:template>
Formater la notification bruteavec une xslt de base
SELECT s.SubscriberId, e.StockSymbol, e.StockValueFROM Events e, Subscriptions sWHERE (e.StockSymbol = s.StockSymbol)AND (e.StockValue > s.Trigger)
Construction des fondations: ‘Compiler’ l’application
nscontrol createLecture des fichiers XML de configuration d’instance et d’applicationCréation de bases, tables, vues, procédures stockées…
nscontrol register (sur chaque machine où le service SQLNS fonctionne)
Spécifier la clé d’encryptageInstalle un service Windows multi-thread par instanceEnregistre les compteurs de performance et les clés de registre SQLNS
nscontrol enableActive EP, GP, DP
Assigner les permissions & démarrer l’instance
EventProviderdisabled
Generator
disabled
Distributor
disabled
EventProviderenabled
Generator
enabled
Distributor
enabled
EventProviderenabled
Generator
enabled
Distributor
enabled
Windows ServiceStopped
Windows ServiceStarted
SQL ServerSQL Server
Instance App. #1
App. #2
App. #3
ADF1ADF
2ADF3
Config
Construction des fondations: Chargement des jeux de tests
Souscripteurs & SouscriptionsWeb UI: ASP, ASP.NETVB Script, avec utilisation du modèle objetWinForms: C++, C#, VB, VB.NET, avec utilisation du modèle objet
EvènementsUtiliser les composants standardsFileSystemWatcher
Ne JAMAIS insérer des données directement dans les tables SQLNS!
Event Providers Exemple: SQL Server Event Provider
Event ProvidersPour alimenter la table SQLNS Events
En standard: FileSystemWatcher, Provider SQL
Event Provider SQL ServerHé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
EventsData
SourceSQL
Server provider
EventProvide
rHost
QueryPostQuerySchedule
Changes
Formateurs de contenuContent Formatters
Transformation d’une notification bruteEn 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, FormatContent, Close
Protocoles de distributionDelivery Protocols
Protocoles de distributionPour envoyer des notifications à plusieurs endpointsEn standard: SMTP, File, .NET Alerts *
Partenaires pour distribution de SMSFichier de configuration d’instance:
Ajouter la définition du protocoleProtocol Name
Ajouter la définition du canal de distribution qui utilise ce protocole
ProtocolProviderClassName, AssemblyName, postURL, Encoding…1:1, 1:n
Fichier de définition de l’applicationSpécifier le user/password pour s’identifier avec le end pointSpé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
La référence technique
pour les développeurs :
msdn.microsoft.com
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
Visual Studio 2005 +
Abonnement MSDN Premium
Abonnement TechNet Plus :
Versions d’éval + 2 incidents support
© 2007 Microsoft France
Votre potentiel, notre passion TM
Top Related