ANALYSE DES FLOTSD’ÉVÉNEMENTS: TUTORIELESPER Par Epal Njamen Orléant, epaln@imag.fr Master 2 Informatique
Plan   Contexte et motivations       scénario   Implantation       Installationdes outils       Présentation de l’imp...
La notion d’événement   Quelque chose qui s’est produit à un certain    instant     Achat  d’un article     Fermeture d...
Communication à based’événements   Style de    communication basé    sur la production et la    réception    d’événements...
Scénario: ville intelligente    On désire permettre aux     habitants d’une ville de se     déplacer en restant informés ...
Scénario: ville intelligente (2)   Le type d’information que chacun veut recevoir dépend    de ses préférences et ses bes...
La notion de type d’événement   Représente une classe d’événements de même    caractéristiques     Ex: TraficEvent (long...
Type d’Evénement simple,complexe,   Evénement simple       représente une situation atomique directement signalée       ...
Composition d’événements dans la    ville   Une infrastructure à base    d’événements, devant    interconnecter dans un s...
Solutions existantes   Esper [1], Stream [2], StreamBase [3],    StreamInSight [4]   Principales fonctionnalités offerte...
Tutoriel Esper   Un système centralisé d’analyse de flux    d’événements   Langages cibles     Java: Esper     .NET: N...
Types d’événements sousEsper   3 représentations:     java.lang.Object:  POJO avec getters et setters…     java.util.Ma...
Exemple: classe Javapublic class SellEvent {    private String item;    private String description;    private double pric...
Production des événements   Avertissement au préalable du type d’événement:    EPServiceProvider cep=EPServiceProviderMan...
Formulation d’une requête   Détection des articles en solde: le prix a chuté    de 50% par rapport au prix initial au cou...
Définition d’un consommateur   Association requête-consommateur     cepStatement = CEPManager.getInstance().getCepAdm().c...
Implantation et exécution duscénario   Le projet démo:     Un   exécutable java       Producteurs d’événements simples ...
Dans le fichier custom_query.txt   Requête 1: soldes…   requête 2: détection de l’absence de vandalisme dans la ville de...
Exécution  Visualisation   du projet sous eclipse  $>   java –jar scenarioTest.jar
Conclusion   Nous avons présenté la notion d’analyse des flux    d’événements, et à travers un scénario, nous    avons pu...
References   [1] Esper, http://esper.codehaus.org/   [2] Stream,    http://infolab.stanford.edu/stream/code/user.pdf   ...
Merci pour votre aimableattention !
Prochain SlideShare
Chargement dans…5
×

Tutoriel esper

1 083 vues

Publié le

Introduction au traitement des flux d'événements, et mise en oeuvre à travers un scénario, utilisant le système Esper. (http://esper.codehaus.org/)

0 commentaire
1 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

Aucun téléchargement
Vues
Nombre de vues
1 083
Sur SlideShare
0
Issues des intégrations
0
Intégrations
3
Actions
Partages
0
Téléchargements
24
Commentaires
0
J’aime
1
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

Tutoriel esper

  1. 1. ANALYSE DES FLOTSD’ÉVÉNEMENTS: TUTORIELESPER Par Epal Njamen Orléant, epaln@imag.fr Master 2 Informatique
  2. 2. Plan Contexte et motivations  scénario Implantation  Installationdes outils  Présentation de l’implantation du scénario  Application
  3. 3. La notion d’événement Quelque chose qui s’est produit à un certain instant  Achat d’un article  Fermeture d’une porte  Accident de la circulation  Changement climatique  Notification d’un capteur  etc...
  4. 4. Communication à based’événements Style de communication basé sur la production et la réception d’événements (publish/subscribe)  Producteurs  composants applicatifs produisant des événements (publish)  Consommateurs  composants applicatifs intéressés en la réception de certains événements (subscribe)
  5. 5. Scénario: ville intelligente  On désire permettre aux habitants d’une ville de se déplacer en restant informés sur la façon dont la ville évolue.  Plus précisément, donner la possibilité aux habitants d’être notifiés de certaines situations intéressantes et utiles à leur existence:  offres d’article en solde  état du trafic routier  zones à faible degré de violence  etc…
  6. 6. Scénario: ville intelligente (2) Le type d’information que chacun veut recevoir dépend de ses préférences et ses besoins pendant des périodes spécifiques… Je souhaite recevoir des informations sur le trafic chaque soir entre 17h et 19h, en semaine Pour le weekend, les offres de cinéma et des rassemblements artistiques. Quand je me déplace, j’aimerai savoir le degré de violence des quartiers que je traverse.
  7. 7. La notion de type d’événement Représente une classe d’événements de même caractéristiques  Ex: TraficEvent (long timestamp, String roadName, String state ) Un événement est donc une instance d’un type d’événement  t(52344945, "Av. J O", "fluide" )
  8. 8. Type d’Evénement simple,complexe, Evénement simple  représente une situation atomique directement signalée par un producteur. Evénement complexe ou composite  Événement qui est une abstraction d’autres événements, appelés membres  Tsunami: abstraction de plusieurs événements naturels…  Crash d’un avion: abstraction de plusieurs pannes du système de contrôle  Bug de l’an 2000: abstraction du crash de plusieurs systèmes informatiques, dus au passage à l’année 2000  Il est crée en combinant des événements de base, en utilisant des opérateurs de composition spécifiques tel que l’agrégation, conjonction, disjonction, séquence, etc…
  9. 9. Composition d’événements dans la ville Une infrastructure à base d’événements, devant interconnecter dans un style producteurs/consommateurs (publish/subscribe) les habitants et les sources de données:  Sources de données (producteurs): génèrent les flux d’événements  Service Météo => données météorologiques  Service Routier => info trafic, incidents, etc…  Service Sécurité => infos sur les actes de vandalisme dans les rues  Service Calendrier => jours fériés, dates importantes, etc…  Service Annonces => mises en vente, publicités, artistique, cinéma, etc…  Les habitants (consommateurs): spécifient la nature des informations qu’ils désirent recevoir.
  10. 10. Solutions existantes Esper [1], Stream [2], StreamBase [3], StreamInSight [4] Principales fonctionnalités offertes  Agrégation: avg, count, sum  Corrélation : followed by, and, or, not A => (B or C)  A and (not B)  Filtrage: Type et attributs  ActionEvent (user="toto", action="exit")
  11. 11. Tutoriel Esper Un système centralisé d’analyse de flux d’événements Langages cibles  Java: Esper  .NET: NEsper Open source, téléchargeable gratuitement JDK 1.5 ou version supérieure Langage proche du sql, l’EPL  Permet de spécifier des requêtes complexes Modèle d’analyse en continue des requêtes Site principal: http://esper.codehaus.org/
  12. 12. Types d’événements sousEsper 3 représentations:  java.lang.Object: POJO avec getters et setters…  java.util.Map: paires clé-valeur  org.w3c.dom.Node: xml DOM Des adaptateurs permettant la prise en compte des flux CSV, JMS, HTTP
  13. 13. Exemple: classe Javapublic class SellEvent { private String item; private String description; private double price; public SellEvent() { }/* * ainsi que les getteurs et setteurs… */}
  14. 14. Production des événements Avertissement au préalable du type d’événement: EPServiceProvider cep=EPServiceProviderManager.getProvider(); cep.getEPAdministrator(). getConfiguration().addEventType("SellEvent", SellEvent.class.getName()); Production proprement dite: SellEvent event=new SellEvent(); event.setItem("iPhone 4 S"); event.setDescription("version 16 Go"); event.setPrice(400); event.setTimestamp(System.currentTimeMillis()); cep.getEPRuntime().send(event);
  15. 15. Formulation d’une requête Détection des articles en solde: le prix a chuté de 50% par rapport au prix initial au cours du même mois… select a.item as item, a.price as oldprice, b.price as price, a.description as description from pattern [ every-distinct(a.item) a=SellEvent -> every b=SellEvent(item=a.item, price< (a.price*0.5)) ].win:time(1 month)
  16. 16. Définition d’un consommateur Association requête-consommateur cepStatement = CEPManager.getInstance().getCepAdm().createEPL(query); cepStatement.addListener(new SoldeListener()); Code du consommateur public class SoldeListener implements UpdateListener { public void update(EventBean[] ebs, EventBean[] ebs1) { EventBean o = ebs[0]; double price = (Double) o.get("price"); double oldprice = (Double) o.get("oldprice"); String item = (String) o.get("item"); String descr = (String) o.get("description"); // traitement… } }
  17. 17. Implantation et exécution duscénario Le projet démo:  Un exécutable java  Producteurs d’événements simples  Création automatique d’un consommateur pour chaque requête fournie dans le fichier custom_query.txt
  18. 18. Dans le fichier custom_query.txt Requête 1: soldes… requête 2: détection de l’absence de vandalisme dans la ville de Grenoble lors de la dernière minute @Name(custom2) select * from pattern [every ( timer:interval(1 min) and not PoliceEvent(city=grenoble))] requête 3: détection des offres de loisir (artistique, cinéma) dans la ville de Grenoble les weekends et les jours fériés @Name (custom3) select e.type, e.city, e.title, e.description from pattern [ every ( ( CalendarEvent(state=férié chomé) or timer:at (*,*,*,*,*/6,*) ) -> e=PubEvent (type in (Cinema, Artistique) ) ) ].win:time(1 day)|e.type, e.city, e.title, e.description
  19. 19. Exécution  Visualisation du projet sous eclipse  $> java –jar scenarioTest.jar
  20. 20. Conclusion Nous avons présenté la notion d’analyse des flux d’événements, et à travers un scénario, nous avons pu expérimenter ces notions en utilisant Esper [1]. Dans la prochaine présentation, nous nous attaquerons à la problématique qui consiste à distribuer le processus d’analyse sur plusieurs machines. Nous illustrerons les principaux défis, et nous présenterons une approche pour la distribution TAF  Spécifier un service composition distribuée des flux d’événements  Implémentation et validation ?
  21. 21. References [1] Esper, http://esper.codehaus.org/ [2] Stream, http://infolab.stanford.edu/stream/code/user.pdf [3] StreamInsight, http://msdn.microsoft.com/en- us/library/ee362541.aspx [4] StreamBase, http://www.streambase.com/
  22. 22. Merci pour votre aimableattention !

×