tutoriel esper

of 22 /22
ANALYSE DES FLOTS D’ÉVÉNEMENTS: TUTORIEL ESPER Par Epal Njamen Orléant, [email protected] Master 2 Informatique

Author: laboratoire-dinformatique-de-grenoble

Post on 24-Dec-2014

662 views

Category:

Documents


4 download

Embed Size (px)

DESCRIPTION

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/)

TRANSCRIPT

  • 1. ANALYSE DES FLOTSDVNEMENTS: TUTORIELESPER Par Epal Njamen Orlant, [email protected] Master 2 Informatique

2. Plan Contexte et motivations scnario Implantation Installationdes outils Prsentation de limplantation du scnario Application 3. La notion dvnement Quelque chose qui sest produit un certaininstant Achatdun article Fermeture dune porte Accident de la circulation Changement climatique Notification dun capteur etc... 4. Communication basedvnements Style decommunication bassur la production et larceptiondvnements(publish/subscribe) Producteurs composants applicatifsproduisant desvnements (publish) Consommateurs composants applicatifsintresss en larception de certainsvnements(subscribe) 5. Scnario: ville intelligente On dsire permettre aux habitants dune ville de se dplacer en restant informs sur la faon dont la ville volue. Plus prcisment, donner la possibilit aux habitants dtre notifis de certaines situations intressantes et utiles leur existence: offres darticle en solde tat du trafic routier zones faible degr de violence etc 6. Scnario: ville intelligente (2) Le type dinformation que chacun veut recevoir dpendde ses prfrences et ses besoins pendant des priodesspcifiques Je souhaite recevoir des informations sur le trafic chaque soir entre 17h et 19h, en semainePour le weekend, les offres de cinmaet des rassemblements artistiques.Quand je me dplace, jaimerai savoirle degr de violence des quartiers queje traverse. 7. La notion de type dvnement Reprsente une classe dvnements de mmecaractristiques Ex: TraficEvent (long timestamp, String roadName, Stringstate ) Un vnement est donc une instance dun typedvnement t(52344945, "Av. J O", "fluide" ) 8. Type dEvnement simple,complexe, Evnement simple reprsente une situation atomique directement signalepar un producteur. Evnement complexe ou composite vnement qui est une abstraction dautres vnements,appels membres Tsunami: abstraction de plusieurs vnements naturels Crash dun avion: abstraction de plusieurs pannes du systmede contrle Bug de lan 2000: abstraction du crash de plusieurs systmesinformatiques, dus au passage lanne 2000 Il est cre en combinant des vnements de base, enutilisant des oprateurs de composition spcifiques tel quelagrgation, conjonction, disjonction, squence, etc 9. Composition dvnements dans laville Une infrastructure basedvnements, devantinterconnecter dans un styleproducteurs/consommateurs(publish/subscribe) les habitantset les sources de donnes: Sources de donnes(producteurs): gnrent les fluxdvnements Service Mto => donnesmtorologiques Service Routier => info trafic,incidents, etc Service Scurit => infos sur lesactes de vandalisme dans les rues Service Calendrier => jours fris,dates importantes, etc Service Annonces => mises envente, publicits, artistique,cinma, etc Les habitants (consommateurs):spcifient la nature desinformations quils dsirentrecevoir. 10. Solutions existantes Esper [1], Stream [2], StreamBase [3],StreamInSight [4] Principales fonctionnalits offertes Agrgation:avg, count, sum Corrlation : followed by, and, or, notA=> (B or C) A and (not B) Filtrage: Type et attributs ActionEvent (user="toto", action="exit") 11. Tutoriel Esper Un systme centralis danalyse de fluxdvnements Langages cibles Java: Esper .NET: NEsper Open source, tlchargeable gratuitement JDK 1.5 ou version suprieure Langage proche du sql, lEPL Permet de spcifier des requtes complexes Modle danalyse en continue des requtes Site principal: http://esper.codehaus.org/ 12. Types dvnements sousEsper 3 reprsentations: 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 encompte des flux CSV, JMS, HTTP 13. Exemple: classe Javapublic class SellEvent {private String item;private String description;private double price;public SellEvent() {}/* * ainsi que les getteurs et setteurs */} 14. Production des vnements Avertissement au pralable du type dvnement: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. Formulation dune requte Dtection des articles en solde: le prix a chutde 50% par rapport au prix initial au cours dumme moisselect a.item as item, a.price as oldprice, b.price asprice, a.description as descriptionfrom pattern [every-distinct(a.item) a=SellEvent -> every b=SellEvent(item=a.item, price< (a.price*0.5))].win:time(1 month) 16. Dfinition dun consommateur Association requte-consommateur cepStatement = CEPManager.getInstance().getCepAdm().createEPL(query); cepStatement.addListener(new SoldeListener()); Code du consommateurpublic 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. Implantation et excution duscnario Le projet dmo: Un excutable java Producteurs dvnements simples Cration automatique dun consommateur pourchaque requte fournie dans le fichiercustom_query.txt 18. Dans le fichier custom_query.txt Requte 1: soldes requte 2: dtection de labsence de vandalisme dans la ville de Grenoblelors de la dernire minute @Name(custom2) select * from pattern [every ( timer:interval(1 min) and not PoliceEvent(city=grenoble))] requte 3: dtection des offres de loisir (artistique, cinma) dans la ville deGrenoble les weekends et les jours fris @Name (custom3) select e.type, e.city, e.title, e.description from pattern [ every ( ( CalendarEvent(state=fri chom) or timer:at (*,*,*,*,*/6,*) )-> e=PubEvent (type in (Cinema, Artistique) ))].win:time(1 day)|e.type, e.city, e.title, e.description 19. Excution Visualisation du projet sous eclipse $> java jar scenarioTest.jar 20. Conclusion Nous avons prsent la notion danalyse des fluxdvnements, et travers un scnario, nousavons pu exprimenter ces notions en utilisantEsper [1]. Dans la prochaine prsentation, nous nousattaquerons la problmatique qui consiste distribuer le processus danalyse sur plusieursmachines. Nous illustrerons les principaux dfis, et nousprsenterons une approche pour la distribution TAF Spcifier un service composition distribue des fluxdvnements Implmentation et validation ? 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. Merci pour votre aimableattention !