1 / 56

Gestion des événements métiers avec StreamInsight

Gestion des événements métiers avec StreamInsight. Lionel Barre Architecte Sword Service sa. 14/15 Avril 2010. Pascal Varenio Business Analyst Centrics Consulting sa. Sociétés.

elaine
Télécharger la présentation

Gestion des événements métiers avec StreamInsight

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Gestion des événements métiers avec StreamInsight Lionel Barre Architecte Sword Service sa 14/15 Avril 2010 Pascal Varenio Business Analyst Centrics Consulting sa

  2. Sociétés • Centrics Consulting SA est une société de conseil stratégique et de conseil en organisation pour les entreprises et collectivités publiques www.centrics.eu • Sword Service SA est une société de service informatique spécialisée dans les domaines de l’ECM, de la BI et du SIG • Fournisseur de solutions logicielles GRC et SIG www.sword-group.com

  3. Plan • Introduction L • Présentation de système CEP P • Introduction architecture L • Démonstration L • Mise en place d’un projet CEP P • Conclusion CEP = Complex Event Processing

  4. Plateforme fiable et montée en charge Efficacité IT & Developpeurs BI en libre service • Sécurité d’entreprise, montée en charge • Complex Event Processing • Support des dernières innovations hardware • Gestion Multi-Serveur enrichie • Virtualisation & Live Migration • Deploiement accéléré de la couche d’accès aux données • PowerPivot • Report Builder 3.0 • Master Data Services Plateforme de données complète et intégrée Parallel DataWareHouse Support MPP pour les DWH de plus de 100To Appliances hautement scalable Integré avec Microsoft BI SGBDR dans le cloud Programmation & Outil similaire à SQL ServerAuto-Administration, hautement disponible

  5. StreamInsight n’est certes pas une révolution technologie dans le domaine du CEP. Le challenge : Stocker des milliards d’événements dans SQL Server dans le cadre d’une application CEP. Quelles applications : Fraude financière, process industriels, distribution d’électricité, mesure d’audience Web, contrôle d’accès. Streaminsight

  6. Microsoft prépare son arrivée sur le marché des plates-formes de CEP (Complex Event Processing) avec un logiciel de traitement des événements à faible latence. Sa version commerciale est attendue pour 2010, le logiciel fait en effet partie de SQL Server 2008 R2. Microsoft joue les synergies avec: SQL Server pour le stockage des événements, .NET et Visual Studio pour la programmation. On pourra définir les requetes sur les événements du systèmes en C#, Linq. interconnectée à Biztalk pour faire intervenir le moteur CEP au sein des processus métier. Streaminsight

  7. Pour y parvenir, Microsoft a doté StreamInsight d’un kit de développement d’adaptateur. Kit qui va permettre aux partenaires de créer de la valeur ajoutée sur ce moteur CEP et une réutilisation des composants. Il n’empêche, un moteur de CEP qui devient un composant de SQL Server, c’est un signe de banalisation du CEP s’il en est ! Streaminsight

  8. Plan • Introduction • Présentation de système CEP P • Introduction architecture • Démonstration • Mise en place d’un projet CEP • Conclusion CEP = Complex Event Processing

  9. Définition: Complex Event Processing (CEP) is the continuous and incremental processing of event streams from multiple sources based on declarative query and pattern specifications with near-zero latency. Continuous Incremental Multiple source Declarative query Latency -> 0 Streaminsight

  10. IntroductionDifférentes sortes d’événements Vue fonctionnelle d’événements techniquesrécupérés à partir de sondes réparties Business Activity Monitoring (BAM) Observation, surveillance fonctionnelle processus BizTalk Server 2009 orchestration Grand nombre d’événements (mesures, …) Détection d’événements métier SQL Server 2008 R2 StreamInsight Evénement métier (alerte, …)

  11. CEP - Problématique • Analyse de (plusieurs) flux d’évènements continus dans le but d’en extraire une information pertinente • Exemple : • Calcul d’agrégation et détection de seuil en continu • Corrélation de flux • Détection de pattern • Particularités : • Débit potentiellement élevé • Latence de détection faible • Flux potentiellement infini • Détection basée sur des fenêtres temporelle Temps

  12. CEP – Example • Calcul d’agrégation basé sur une fenêtre • HoppingWindow • Tumbling • Snapshot

  13. CEP : Exemples • Capteurs, prédiction de pannes • Industrie, Télémetrie (ex : flux de circulation, ascenseur, car2car, surveillance de chaines de production) … • Web : profiling dynamique (Click Stream) • Détection de fraude • Trading algorithmique

  14. Comparaison avec les bases de données relationnelles Base de Données relationnelle StreamInsight Requêtes dynamiques SELECT… Données statiques Requête statique Données dynamiques from …

  15. Plan • Introduction • Présentation de système CEP • Introduction architecture • Démonstration • Mise en place d’un projet CEP • Conclusion CEP = Complex Event Processing

  16. StreamInsight ? • La solution StreamInsight est entièrement basée sur le framework .Net • Outils de développement Visual Studio .Net • Une solution StreamInsight est composée de 3 types d’éléments simples développés en .Net • Un ou plusieurs adaptateurs d’entrée (InputDapaters) récupère des données brutes et les transforme en flux ou évènement StreamInsight • Des requêtes LINQ qui appliquent la logique métier en retraitant les évènements envoyés par les InputAdapters (agrégation, filtrages) • Un ou plusieurs adaptateurs de sortie (OutputAdapters) qui fournissent le résultats des requêtes à des terminaux de consultation

  17. CEP : StreamInsight Event Event Event Event Event Event Event Event Event .NET C# LINQ Développeur IDE Evts cibles Evts sources CEP Application at Runtime CEP Engine Matériel, Capteurs SMS, station de surveillance Standing Queries Output Adapters Input Adapters Serveurs Web Tableaux de bord, SharePoint Application de pilotage BD, stockage d’événements Bourse, flux RSS BD, stockage d’événements Données de référence statique

  18. Events • Trois types d’évènements • Evènements de type ponctuel • Evènements intervalles de durée fixe • Evènements intervalles de durée initialement inconnue • Données associées aux évènements • Valeurs fixes • Des valeurs ajoutées et définies par l’utilisateur • Déterminé par le type d’évènement

  19. Types d’évènements • Les évènements StreamInsight sont définis par des Types de données .Net • Les évènements peuvent définir plusieurs champs de données • Certains champs proviennent du RunTimeStreamInsight

  20. Flux d’évènements • Caractéristiques générales d’un flux • Série d’évènements éventuellement infinie • Types multiples • Insertion nouvel enregistrement • Changement de durée d’un évènement existant • Motifs d’arrivée • Rythme régulier (Avec indication de fin de flux) • Par Intermittence (aléatoire ou rafale) • Arrivée déclassée

  21. Réceptivité des requêtes • StreamInsight garantie une sortie identique quel que soit l’ordre d’arrivée des évènements • Difficile d’atteindre une bonne réceptivité de requêtes • CTI (Current Time Element) • Inséré dans le flux • Indique l’achèvement jusqu’à un timestamp (sans l’inclure)

  22. Adapters • Entrée (source) et sortie (sink) configurable • Typés (données prédéfinies) • Generic (données déterminées au binding de la requête) • Méthodes • Gestion des évènements et des flux • Propriétées • Indique les fonctionnalités des adaptateurs au runtime

  23. Moteur de requête • Héberge les requêtes actives • Les opérateurs consomment et produisent des flux • Les requêtes peuvent être chaînées • Les résultats de requêtes sont calculés en séquence • Gère les instances de requêtes • Démarrage • Arrêt • Recueillir les statistiques du runtime

  24. Modèle de requêtes • Requêtes écrites avec LINQ • Permet la réutilisation de logique dans plusieurs instances de requêtes • Typiquement fournit l’intelligence de toute application StreamInsight • Permet l’extention avec du code .Net

  25. Dévelopement d’une applicationStreamInsight

  26. Eléments de requêtes • Projection • Filtrage • Jointures • Unions • Agrégations • Event Windows • HoppingWindow, • Tumbling Window • SnapshotWindow

  27. Eléments de requêtes: Projection • Création d’un nouveau flux à partir d’une sélection de champs d’un premier flux • Possibilité de créer un nouveau type ou référencer un type existant • Utilisation d’assignation de champs (Constructeurs interdits) • Possibilité d’appliquer des calculs aux données // New type var queryProject = from c in Test1EventStream1 selectnew { i = c.i * 2, f = c.f * 2 }; // Existing type var realValueStream = from e in InputStream selectnew MeterWattage { wattage = (double)e.Consumption / 10 };

  28. Eléments de requêtes: Filtrage • Restriction des évènements du flux de sortie correspondant • Propagation des évènements si l’évaluation de la clause where est vrais var queryFilter = from c in someStream where c.i > 10 select c; var filteredStream = from e in ratioStream where e.id == 2 select e;

  29. Eléments de requêtes: Jointures • Corrélations d’évènements provenant de différents flux • Supporte inner joins, equijoins, cross joins • Vérification du chevauchement des intervalles de temps • Vérification des conditions de jointures varequiJoin = from e1 in stream1 join e2 in stream2 on e1.i equals e2.i selectnew { e1.i, e1.j, e2.j }; varcrossJoin = from e1 in stream1 from e2 in stream2 where e1.i > 3 && e2.j < 10 selectnew { e1.i, e2.j };

  30. Eléments de requêtes: Union • Combinaison d’évènements de plusieurs flux en un seul flux • Peut être utilisé en cascade pour faire l’union de plus de deux flux // Union of two streams varunioned = stream1.Union(stream2); // Union of three streams varunionTmp = stream1.Union(stream2); varunionFinal = unionTmp.Union(stream3);

  31. Eléments de requêtes: Agrégation • Agrégations supportées • Avg • Sum • Count • Min • Max • Calculé sur les évènements d’une fenêtre de temps • Ne peut être appliquée qu’à des fenêtre temporelles

  32. Eléments de requêtes: Fenêtres d’évènements • Permet le calcul sur les évènements pendant un intervalle de temps • Les opérations suivantes sont permises sur une fenêtre de temps: • Agrégation • TopK • Opérateurs définit par l’utilisateur • Les fenêtres sont temporelles • Ne modifie pas les évènements sous-jacents

  33. Eléments de requêtes: Fenêtre mobile • Saut dans le temps d’une durée fixe • Défini par la durée de la fenêtre et durée du saut • Les opérateurs s’appliquent à l’ensemble des évènements à l’intérieur de la fenêtre

  34. Eléments de requêtes: Fenêtre mobile • Spécifier l’intervalle • Spécifier la taille du saut var snapshotAgg = from w in inputStream.HoppingWindow (TimeSpan.FromHours(1), TimeSpan.FromMinutes(10)) selectnew { sum = w.Sum(e => e.i) };

  35. Eléments de requêtes: variante de la fenêtre mobile • Version simplifiée de la hoppingWindow • La durée de la fenêtre et du saut sont identiques varsnapshotAgg = from w ininputStream.TumblingWindow (TimeSpan.FromHours(1)) selectnew { sum = w.Sum(e => e.i) };

  36. Eléments de requêtes: Fenêtre instantanée • Défini par le début et la fin des évènements dans le flux • Pas de grille à durée définie • Pas de paramètres dans la définition de la fenêtre

  37. Eléments de requêtes: Fenêtre instantanée • Pas de paramètres • Peut spécifier des règles d’entrée/sortie var snapshotAgg = from w in inputStream.Snapshot() selectnew { sum = w.Sum(e => e.i) };

  38. Eléments de requêtes: fenêtreRègles d’entrée/sortie • Transformation de Timestamps • Contrôle ou modifie le comportement standard des agrégations • Actuellement ne permet que le découpage des heures de début et de fin WindowInputPolicyinputPolicy = new WindowInputPolicy(WindowInputPolicy.ClipKind.ClipBoth); HoppingWindowClipOutputPolicyoutputPolicy = new HoppingWindowClipOutputPolicy( HoppingWindowClipOutputPolicy.ClipKind.WindowEnd); DateTime alignment = newDateTime(TimeSpan.FromHours(12).Ticks, DateTimeKind.Local); var result1 = from w ininputStream.TumblingWindow( TimeSpan.FromHours(12), alignment, inputPolicy, outputPolicy) selectnew { Count = w.Count() };

  39. Plan • Introduction • Présentation de système CEP • Introduction architecture • Démonstration • Mise en place d’un projet CEP • Conclusion CEP = Complex Event Processing

  40. Démo : Surveillance d’autoroutes • Autoroutes principales • 8 files • 2 directions • 6 points de mesure • Types de véhicules • Voiture • Bus • Camion • Ambulance • Taxi

  41. Séquence des Points de mesure • Mesures multiples par véhicule • Capture par puce électronique • Mesure de vitesse • Détermination du type de véhicule

  42. Plan • Introduction • Présentation de système CEP • Introduction architecture • Démonstration • Mise en place d’un projet CEP P • Conclusion CEP = Complex Event Processing

  43. Projets cibles • Changer sa vision

  44. Projets cibles • Basculerd’une vision reporting à une vision temps réel • Pourquoi : Un de vos services ne peut plus se contenter de reporting à J +1, nous sommescomplémentaires à la BI. • Comment : En identifiant un domaine visible, avec un avantagechiffrable en terme financier , qualitatifou de maîtrise de risques.

  45. Projets cibles • Logistique & Energie • Limite de stock pour un produit • Retard de production • Pannesur un système • Position GPS de véhicules • Suivi RFID d’objets • Flux de consommation • Equilibrage de charge

  46. Projets cibles • Telecom • Pannesou surcharge de réseau • Suivi de parcours web • Anomalie et fraude • Optimisationgeomarketing

  47. Projets cibles • Finance • Limites client et alerte SMS • Risquesétablissement, produit, secteur • Opérationsanormales • Corrélationemployés et activité • AML, Market Abuse, KYP, KYC

  48. Projets cibles • Jeux et Web • Le domaine du jeumassivelymultiplayer online game • La publicité interactive • Click analysis

  49. Projets cibles • Santé et Assurance • Prestation Tarmed • Montants et durées «anormaux» • Patient au contentieux • Détection de Germes et pandémies • Sécurité à domicile

More Related