Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Laurent Witt (Jnesis): How to use the node.js ecosystem in connection with extjs in order to provide lean and efficient applications

Laurent Witt (Jnesis): How to use the node.js ecosystem in connection with extjs in order to provide lean and efficient applications

Ext JS is more and more about to find its natural complement with node.js and its very luxuriant ecosystem (expressjs, async, nosql databases, ...). This combination allows building lean and flexible backends or middle­ends, using very few resources. Indeed, the user experience Ext JS provides associated to the fact that this requires only one single language helps to deliver strong and powerful solutions, with a short time­to­market. We will mainly present a business case based on a Raspberry Pi (25$ computer) that delivers a Ext JS 5 application to tablets, both exchanging data through web sockets.

Lee Boonstra

June 03, 2015
Tweet

More Decks by Lee Boonstra

Other Decks in Technology

Transcript

  1. View Slide

  2. node.js et ext JS pour des
    applications légères et
    efficaces
    Paris, 20 mai 2015

    View Slide

  3. Laurent WITT
    associé et consultant,

    View Slide

  4. JNESIS en quelques mots
    •  spécialiste java et javascript
    •  une équipe de consultants
    chevronnés et agiles
    •  partenaire de Sencha pour la
    France et la Suisse depuis 2 ans
    MULHOUSE - PARIS - PHILADELPHIA (US)

    View Slide

  5. JNESIS en quelques mots
    Consulting (audit de code, conseil en architecture,…)
    Développement (en forfait agile)
    Formation (agréé 1% formation auprès des OPCA) en intra-
    & -inter-entreprises, coaching technique

    View Slide

  6. JNESIS en quelques mots

    View Slide

  7. node.js et ext JS
    un couple qui a du sens??

    View Slide

  8. Quelles solutions pour le backend?

    View Slide

  9. L’écosystème node.js
    147  952  
    packages  sur  npm  
    1,4Md  
    téléchargements  par  mois  sur  npm  
    0,1%  
    des  sites  web  dans  le  monde  

    View Slide

  10. L’écosystème node.js

    View Slide

  11. la continuité de langage
    du backend au frontend
    réel  gain  ?   ou  utopie  ?  

    View Slide

  12. la continuité de langage
    du backend au frontend
    La mobilité du code
    frontend backend
    www.socketstream.org

    View Slide

  13. Quand (ne pas) utiliser node.js ?
    les backends légers
    les middle-end / proxys
    les backends complexes

    View Slide

  14. un exemple d’architecture REEN
    REDIS – EXPRESSJS – EXT JS – NODE.JS

    View Slide

  15. L’architecture REEN en détail
    la persistance NoSQL
    une couche web très « lean »
    pour le front-end
    du javascript dans le backend

    View Slide

  16. L’interactivité par les websockets
    •  Possibilité d’intégrer une information en temps réel,
    sans contrainte de format
    •  Gestion de la séquentialité, des reprises sur
    incidents,..
    •  Support du legacy sur les anciens navigateurs
    (websocket / Adobe flash socket / ajax long polling ou
    multipart streaming / forever iframe/ jsonp polling)
    •  Processus initié par le client OU le serveur

    View Slide

  17. Mise en œuvre dans Ext JS
    Utilisation de la classe standard
    « Ext.data.proxy.Rest » pour l’interfaçage REST
    Quelques subtilités dans la glue node.js / Ext JS :
    •  valeurs de retour (success:true)
    •  lors des modifications (PUT)

    View Slide

  18. Mise en œuvre dans Ext JS
    Implémentations des websockets très simple au
    travers de socket.io
    •  Servie directement par node.js au travers de l’URL « /
    socket.io/socket.io.js »
    •  Chargé en mémoire au travers de la classe
    « Ext.mixin.Mashup » (synchronisation)
    •  Mise à disposition d’une variable globale « io »
    •  Système proche d’un système évènementiel ou pub/sub

    View Slide

  19. Avantages et limites de l’architecture
    Vélocité de développement
    Performance brute / empreinte mémoire+CPU
    Embarqué de node.js / Qualification
    Automatisation des tests

    View Slide

  20. démonstration
    une application retail ext JS 5
    couplée à node JS, servie par un Raspberry PI

    View Slide

  21. Considérations économiques
    •  temps de développement : 2 mois à 2 ETP
    • coût de développement : ≈ 40k€
    • coût de possession backend : quelques dizaines d’€ par mois
    •  investissement par point d’utilisation : env. 200€
    •  coût de possession point d’utilisation : ± 0€

    View Slide

  22. Conclusion

    View Slide

  23. Questions

    View Slide

  24. Merci pour votre attention!
    [email protected]
    in/laurentwitt

    View Slide