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

Laurent Witt (Jnesis): How to use the node.js e...

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. 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)
  2. 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
  3. 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  
  4. la continuité de langage du backend au frontend La mobilité

    du code frontend backend www.socketstream.org
  5. Quand (ne pas) utiliser node.js ? les backends légers les

    middle-end / proxys les backends complexes
  6. L’architecture REEN en détail la persistance NoSQL une couche web

    très « lean » pour le front-end du javascript dans le backend
  7. 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
  8. 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)
  9. 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
  10. 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
  11. 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€