SlideShare a Scribd company logo
1 of 17
Download to read offline
La Cantine




                              Introduction à la Programmation en Flux
                              « Lazy » flow-based programming :
                              Utilité, concepts de base et application avec PyF.



                              Présenté par :
                              Jonathan Schemoul, consultant JMSI




       Software Consulting and Services
Qu'est-ce que la programmation en flux ?

●
    Dans les années 70 : John Paul Morrison au
    Canada
    ●
        Applications Bancaires


●
    On traite les données unitairement
    ●
        Elles passent d'un bloc à un autre, formant un flux

    ●
        On transforme les données dans le flux, comme
        dans une chaine de production.

         Software Consulting and Services
Qu'est-ce que la programmation en flux ?

Dans la théorie :
●   L'ensemble de blocs (composants) constitue un réseau
●   Chaque composant a des ports d'entrée et de sortie
●   Le réseau est géré par un « scheduler » (ordonnanceur)
      Il gère les communications entre les processus, et vérifie l'état
      du réseau


●   Les données échangées sont des paquets standards,
    appelés « Information Packets ».




      Software Consulting and Services
En Python : une chaine de générateurs
                                             >>> def mon_adaptateur(flux) :
Pour utiliser les générateurs en             ...     for v in flux:
programmation en flux...                     ...         print « J'ai reçu », v
                                             ...         yield dict(valeur=v,
                                             ...                     double=v*2)
                                             >>> it1 = xrange(5) # 0 à 5
On définit des boites, étant                 >>> it2 = mon_adaptateur(it1)
chacune un générateur                        >>> def mon_consommateur(flux_adapte) :
                                             ...     for nv in flux_adapte:
                                             ...         print nv['double']
                                             ...         yield True # c'est ok.
●   On passe l'itérateur à un autre          >>> it3 = mon_consommateur(it2)
    générateur, qui renverra lui aussi       >>> for value in it3:
    un flux                                  ...     if value is True:
                                             ...         print 'ok so far'
                                             ...     else:
                                             ...         print 'not ok'
●   On dit que l'on « adapte » le flux
                                             J'ai reçu 0
    au fur et à mesure                       0
                                             ok so far
                                             J'ai reçu 1
                                             2
                                             ok so far
                                             [...]

          Software Consulting and Services
Avantages de la prog. en flux avec des
                         générateurs

●   Pas de montée en RAM, traitement de gros volumes

●   Méthode de programmation facile à apprendre (on prend un
    item en entrée, on en sort un... ou pas :-)

●   Tous les objets python peuvent être utilisés (pas uniquement
    des packets)

●   Pas besoin de threads

●   Pas besoin de stackless, utilisation de la librairie standard
          Software Consulting and Services
En Python : PyF

●
    PyF est un framework basé sur un fork de
    Zflow pour les couches basses
    (pyf.dataflow.core)
      Fork « ami »

●
    PyF contient beaucoup plus que la base, et est
    « batteries included ».



       Software Consulting and Services
Architecture de PyF




Software Consulting and Services
En Python : PyF

●   Système de Plugins
    ●   De nombreux existants
        –   pour l'extraction (site web, rss, sql alchemy...),
        –   pour l'adaptation,
        –   pour l'écriture (csv, xml, fixed-length, xlsx, pdf avec xhtml, odt
            ou rml, etc.)
●   Du code python peut être mis dans le code source
    d'un tube

●   Beaucoup d'outils annexes pour la gestion des flux
    (designer graphiquer, scheduler, …)
            Software Consulting and Services
Les avantages

●
    Votre business c'est vos données

●
    PyF les traite, rapidement et de façon
    « scalable »
    ●
        Lecture,
    ●
        Transformation,
    ●
        Adaptation,
    ●
        Reporting...


         Software Consulting and Services
Le service web




Software Consulting and Services
Créer un tube




Software Consulting and Services
Du code...




Software Consulting and Services
Ou des plugins...




Software Consulting and Services
Software Consulting and Services
Software Consulting and Services
Simple...




      Software Consulting and Services
A bientôt !


●
    Pour plus d'informations :


      http://www.pyfproject.org/


      http://groups.google.com/group/pyf-users




       Software Consulting and Services

More Related Content

Viewers also liked

Présentation congrès 2013
Présentation congrès 2013Présentation congrès 2013
Présentation congrès 2013
kparticu
 
La veille de red guy du 05.06.13 - la nétiquette
La veille de red guy du 05.06.13 - la nétiquetteLa veille de red guy du 05.06.13 - la nétiquette
La veille de red guy du 05.06.13 - la nétiquette
Red Guy
 
Ecueils de la gestion de projets ti francais v1.0
Ecueils de la gestion de projets ti   francais v1.0Ecueils de la gestion de projets ti   francais v1.0
Ecueils de la gestion de projets ti francais v1.0
Svetlana Sidenko
 
Reflexion
ReflexionReflexion
Reflexion
kattous
 
Medios de pago
Medios de pagoMedios de pago
Medios de pago
DBNQ07
 
JRCS Paris Student Leadership Speech (unedited)
JRCS Paris Student Leadership Speech (unedited)JRCS Paris Student Leadership Speech (unedited)
JRCS Paris Student Leadership Speech (unedited)
jlawes
 
¿Qué es la nube?
¿Qué es la nube?¿Qué es la nube?
¿Qué es la nube?
MICTT Palma
 
Esquema lengua larisa5
Esquema lengua larisa5Esquema lengua larisa5
Esquema lengua larisa5
Lageila
 

Viewers also liked (19)

Informe feria interklima 2013
Informe feria interklima 2013Informe feria interklima 2013
Informe feria interklima 2013
 
Seminario didactics 2013.-10mo encuentro
Seminario didactics 2013.-10mo encuentroSeminario didactics 2013.-10mo encuentro
Seminario didactics 2013.-10mo encuentro
 
Présentation congrès 2013
Présentation congrès 2013Présentation congrès 2013
Présentation congrès 2013
 
La veille de red guy du 05.06.13 - la nétiquette
La veille de red guy du 05.06.13 - la nétiquetteLa veille de red guy du 05.06.13 - la nétiquette
La veille de red guy du 05.06.13 - la nétiquette
 
Ecueils de la gestion de projets ti francais v1.0
Ecueils de la gestion de projets ti   francais v1.0Ecueils de la gestion de projets ti   francais v1.0
Ecueils de la gestion de projets ti francais v1.0
 
Reflexion
ReflexionReflexion
Reflexion
 
Presentacion France
Presentacion FrancePresentacion France
Presentacion France
 
Medios de pago
Medios de pagoMedios de pago
Medios de pago
 
JRCS Paris Student Leadership Speech (unedited)
JRCS Paris Student Leadership Speech (unedited)JRCS Paris Student Leadership Speech (unedited)
JRCS Paris Student Leadership Speech (unedited)
 
Les élites en Acadie. Vers un nouvelle définition opératoire
 Les élites en Acadie. Vers un nouvelle définition opératoire  Les élites en Acadie. Vers un nouvelle définition opératoire
Les élites en Acadie. Vers un nouvelle définition opératoire
 
OpenStack in production
OpenStack in productionOpenStack in production
OpenStack in production
 
¿Qué es la nube?
¿Qué es la nube?¿Qué es la nube?
¿Qué es la nube?
 
Seguridad en internet
Seguridad en internetSeguridad en internet
Seguridad en internet
 
2000 2010
2000 20102000 2010
2000 2010
 
Esquema lengua larisa5
Esquema lengua larisa5Esquema lengua larisa5
Esquema lengua larisa5
 
Inmunologia
InmunologiaInmunologia
Inmunologia
 
Portfolio Indecom'
Portfolio Indecom'Portfolio Indecom'
Portfolio Indecom'
 
Feliz 2011
Feliz 2011Feliz 2011
Feliz 2011
 
Historia Ns N32 1973 Le Croissant Et La Croix Gammee
Historia Ns N32 1973   Le Croissant Et La Croix GammeeHistoria Ns N32 1973   Le Croissant Et La Croix Gammee
Historia Ns N32 1973 Le Croissant Et La Croix Gammee
 

Similar to Vos flux de données facilement avec PyF

Cours Devops Sparks.pptx.pdf
Cours Devops Sparks.pptx.pdfCours Devops Sparks.pptx.pdf
Cours Devops Sparks.pptx.pdf
boulonvert
 

Similar to Vos flux de données facilement avec PyF (20)

Fusioninventory journees-perl-2012
Fusioninventory journees-perl-2012Fusioninventory journees-perl-2012
Fusioninventory journees-perl-2012
 
Superviser efficacement en environnement opérationnel
Superviser efficacement en environnement opérationnelSuperviser efficacement en environnement opérationnel
Superviser efficacement en environnement opérationnel
 
WS User Group - Spring Batch - Xebia
WS User Group - Spring Batch - XebiaWS User Group - Spring Batch - Xebia
WS User Group - Spring Batch - Xebia
 
Le langage C.pdf
Le langage C.pdfLe langage C.pdf
Le langage C.pdf
 
Apache kafka big data track
Apache kafka   big data trackApache kafka   big data track
Apache kafka big data track
 
Apache Kafka, Un système distribué de messagerie hautement performant
Apache Kafka, Un système distribué de messagerie hautement performantApache Kafka, Un système distribué de messagerie hautement performant
Apache Kafka, Un système distribué de messagerie hautement performant
 
Gestion multi-pays & multilingue avec Drupal
Gestion multi-pays & multilingue avec DrupalGestion multi-pays & multilingue avec Drupal
Gestion multi-pays & multilingue avec Drupal
 
Conférence Shinken à SophiaConf2012 (Jean Gabès)
Conférence Shinken à SophiaConf2012 (Jean Gabès)Conférence Shinken à SophiaConf2012 (Jean Gabès)
Conférence Shinken à SophiaConf2012 (Jean Gabès)
 
AlterWay SolutionsLinux Outils Industrialisation PHP
AlterWay SolutionsLinux Outils Industrialisation PHPAlterWay SolutionsLinux Outils Industrialisation PHP
AlterWay SolutionsLinux Outils Industrialisation PHP
 
Cours Devops Sparks.pptx.pdf
Cours Devops Sparks.pptx.pdfCours Devops Sparks.pptx.pdf
Cours Devops Sparks.pptx.pdf
 
dev et admin sys : une cohabitation simplifiée
dev et admin sys : une cohabitation simplifiéedev et admin sys : une cohabitation simplifiée
dev et admin sys : une cohabitation simplifiée
 
C++ 11 - Tech Days 2014 in Paris
C++ 11 - Tech Days 2014 in ParisC++ 11 - Tech Days 2014 in Paris
C++ 11 - Tech Days 2014 in Paris
 
Bonnes pratiques pour apprivoiser le C++11 avec Visual C++
Bonnes pratiques pour apprivoiser le C++11 avec Visual C++Bonnes pratiques pour apprivoiser le C++11 avec Visual C++
Bonnes pratiques pour apprivoiser le C++11 avec Visual C++
 
.NET Microframework: du code, de l’électronique, de la robotique
.NET Microframework: du code, de l’électronique, de la robotique.NET Microframework: du code, de l’électronique, de la robotique
.NET Microframework: du code, de l’électronique, de la robotique
 
Organiser son CI/CD - présentation
Organiser son CI/CD - présentation Organiser son CI/CD - présentation
Organiser son CI/CD - présentation
 
Programmation Language Python Chapitre 2.pptx
Programmation Language Python Chapitre 2.pptxProgrammation Language Python Chapitre 2.pptx
Programmation Language Python Chapitre 2.pptx
 
Python après 15 ans de JAVA
Python après 15 ans de JAVAPython après 15 ans de JAVA
Python après 15 ans de JAVA
 
Dispositifs connectés médicaux
Dispositifs connectés médicauxDispositifs connectés médicaux
Dispositifs connectés médicaux
 
Javascript as a first programming language : votre IC prête pour la révolution !
Javascript as a first programming language : votre IC prête pour la révolution !Javascript as a first programming language : votre IC prête pour la révolution !
Javascript as a first programming language : votre IC prête pour la révolution !
 
Ops@viadeo : Puppet & Co... 6 mois après par Xavier Krantz
Ops@viadeo : Puppet & Co... 6 mois après par Xavier KrantzOps@viadeo : Puppet & Co... 6 mois après par Xavier Krantz
Ops@viadeo : Puppet & Co... 6 mois après par Xavier Krantz
 

Vos flux de données facilement avec PyF

  • 1. La Cantine Introduction à la Programmation en Flux « Lazy » flow-based programming : Utilité, concepts de base et application avec PyF. Présenté par : Jonathan Schemoul, consultant JMSI Software Consulting and Services
  • 2. Qu'est-ce que la programmation en flux ? ● Dans les années 70 : John Paul Morrison au Canada ● Applications Bancaires ● On traite les données unitairement ● Elles passent d'un bloc à un autre, formant un flux ● On transforme les données dans le flux, comme dans une chaine de production. Software Consulting and Services
  • 3. Qu'est-ce que la programmation en flux ? Dans la théorie : ● L'ensemble de blocs (composants) constitue un réseau ● Chaque composant a des ports d'entrée et de sortie ● Le réseau est géré par un « scheduler » (ordonnanceur) Il gère les communications entre les processus, et vérifie l'état du réseau ● Les données échangées sont des paquets standards, appelés « Information Packets ». Software Consulting and Services
  • 4. En Python : une chaine de générateurs >>> def mon_adaptateur(flux) : Pour utiliser les générateurs en ... for v in flux: programmation en flux... ... print « J'ai reçu », v ... yield dict(valeur=v, ... double=v*2) >>> it1 = xrange(5) # 0 à 5 On définit des boites, étant >>> it2 = mon_adaptateur(it1) chacune un générateur >>> def mon_consommateur(flux_adapte) : ... for nv in flux_adapte: ... print nv['double'] ... yield True # c'est ok. ● On passe l'itérateur à un autre >>> it3 = mon_consommateur(it2) générateur, qui renverra lui aussi >>> for value in it3: un flux ... if value is True: ... print 'ok so far' ... else: ... print 'not ok' ● On dit que l'on « adapte » le flux J'ai reçu 0 au fur et à mesure 0 ok so far J'ai reçu 1 2 ok so far [...] Software Consulting and Services
  • 5. Avantages de la prog. en flux avec des générateurs ● Pas de montée en RAM, traitement de gros volumes ● Méthode de programmation facile à apprendre (on prend un item en entrée, on en sort un... ou pas :-) ● Tous les objets python peuvent être utilisés (pas uniquement des packets) ● Pas besoin de threads ● Pas besoin de stackless, utilisation de la librairie standard Software Consulting and Services
  • 6. En Python : PyF ● PyF est un framework basé sur un fork de Zflow pour les couches basses (pyf.dataflow.core) Fork « ami » ● PyF contient beaucoup plus que la base, et est « batteries included ». Software Consulting and Services
  • 7. Architecture de PyF Software Consulting and Services
  • 8. En Python : PyF ● Système de Plugins ● De nombreux existants – pour l'extraction (site web, rss, sql alchemy...), – pour l'adaptation, – pour l'écriture (csv, xml, fixed-length, xlsx, pdf avec xhtml, odt ou rml, etc.) ● Du code python peut être mis dans le code source d'un tube ● Beaucoup d'outils annexes pour la gestion des flux (designer graphiquer, scheduler, …) Software Consulting and Services
  • 9. Les avantages ● Votre business c'est vos données ● PyF les traite, rapidement et de façon « scalable » ● Lecture, ● Transformation, ● Adaptation, ● Reporting... Software Consulting and Services
  • 10. Le service web Software Consulting and Services
  • 11. Créer un tube Software Consulting and Services
  • 13. Ou des plugins... Software Consulting and Services
  • 16. Simple... Software Consulting and Services
  • 17. A bientôt ! ● Pour plus d'informations : http://www.pyfproject.org/ http://groups.google.com/group/pyf-users Software Consulting and Services