Livre Blanc Web temps réel

Embed Size (px)

Citation preview

  • 7/30/2019 Livre Blanc Web temps rel

    1/10

  • 7/30/2019 Livre Blanc Web temps rel

    2/10

    On parle beaucoup de Node.js

    Les discussions autour de Node.js sont de plus en plus

    intenses, mme au sein de TheCodingMachine. Alors

    pourquoi Node.js fait-il tellement de buzz ?

    Au fait, Node.js, cest quoi ?

    Node.js est un environnement (un toolkit) permettant de

    dvelopper un serveur Event-Driven en JavaScript. Entermes plus simples, cela signifie que les oprations de

    lecture ou dcriture sont parrallliss contrairement au

    fonctionnement en mode thread o les oprations sont en

    srie.

    A quoi a sert ?

    Les applications qui ncessitent du temps rel (par exemple

    des cours de bourse ou un chat), des applications

    consommatrices en ressources telles que le streaming,

    lupload de fichiers etc. De manire gnrale, toutes les

    applications o la vitesse dexcution est un paramtre trs

    important.

    Introduction

    2

  • 7/30/2019 Livre Blanc Web temps rel

    3/10

    Comprendre le fonctionnement du Event-driven

    Une image frquemment employe pour dcrire le mode de

    programmation Event-driven est celle dune file de fast-food.Dans un modle fonctionnant dans un mode Thread (la plupart

    des serveurs web actuels), le principe est dattendre pour

    commander son menu puis dattendre que la commande soit

    prte. La personne situe derrire vous ne pourra pas passer sa

    commande tant que vous naurez pas reu la votre.

    Dans un mode Event-driven , lordre est pass et vousattendez votre commande en dehors de la queue. Ainsi, la

    personne situe derrire vous peut passer sa commande sans

    attendre.

    Comment a marche ?

    3

  • 7/30/2019 Livre Blanc Web temps rel

    4/10

    Illustration de la cinmatique Node.js

    1. Votre navigateur fait une demande pour recevoir lapage1. html au serveur Node.js

    2. Le serveur Node accepte votre requte et appelle unefonction pour renvoyer la page

    3. Tandis que le serveur Node attend la page (lecturedisque), il procde au traitement de la requte suivante

    4. Lorsque la page est retourne par la fonction, unefonction de callback est insre dans la file dattente du

    serveur Node

    5. Le serveur Node excute la fonction de callback qui,dans ce cas, renvoie la page1.html votrenavigateur.

    Comment a marche ?

    4

  • 7/30/2019 Livre Blanc Web temps rel

    5/10

    Lintrt de cette nouvelle architecture ?

    1. Elle est trs rapide. Par exemple, une architectureNode.js/MongoDB permet denvoyer 600 e-mails en 3

    secondes tandis quune architecture classique PHP/

    MySQL le fait en 30 secondes.

    2. Une architecture comprenant Node.js est galementfacilement scalable. En effet, contrairement des

    architectures classiques, il suffit d'ajouter une instance

    Node.js pour amliorer la capacit de rponse. Si l'oncombine cela sa rapidit d'excution, Node js est un

    bon choix pour mettre en place une architecture de type

    Cloud. Cependant, comme la mmoire n'est pas

    partage entre les instances, il est ncessaire d'utiliser des

    petits "tricks" ou des modules comme Cluster qui

    permettent de simplifier le dploiement de plusieurs

    instances.

    3. La plupart des dveloppeurs web connaissent JavaScript(au moins en surface). Aussi, trouver des comptences

    est trs simple. Il ny a que la notion de callback ou

    closure comprendre pour pouvoir dvelopper.

    4. Elle permet duniformiser le langage de dveloppementde toute la plateforme. Ct client (navigateur) et ct

    serveur.

    Avantages

    5

  • 7/30/2019 Livre Blanc Web temps rel

    6/10

    Lintrt de cette nouvelle architecture ?

    (suite)

    5. Les fonctionnalits que permettent cette nouvellearchitecture sont dans lair du temps. Par exemple, les fils

    de discussions qui se mettent jour automatiquement

    (rseaux sociaux), les outils de collaboration (chat,

    interactions sur un document etc.). Elle va dans le sens

    dune exprience utilisateur de plus en plus riche en

    termes dinteractions, simple (donc viter de changer depage par exemple) et dont la rponse est trs rapide.

    6. Flash est dclinant (au profit justement de JavaScript).Tandis que Node.js vient avec Socket.IO et permet donc

    de grer de manire efficace le temps rel.

    7. Parce que cette architecture est conome en termes deressources matrielles.

    et puis, personne naurait pari sur le fait que JavaScriptdevienne un standard pour les navigateurs !

    Avantages

    6

  • 7/30/2019 Livre Blanc Web temps rel

    7/10

    Quelles sont les limites ?

    Node.js a encore les dfauts de sa jeunesse. Cette

    architecture ne propose que peu doutils. Par exemple sur la

    gestion des tests, bibliothques de fonction etc. Mme si

    cette offre est en train de se constituer, il faudra du temps

    avant que nmergent des standards.

    Dbugger des programmes crits en Node.js peut tre long

    et fastidieux. Au-del, maintenir un programme en

    JavaScript est complexe car ce langage est trs permissif

    aussi, la programmation doit faire preuve dune grande

    rigueur.

    Par exemple, si vous ne devez que servir des pages web

    avec des besoins en performance raisonnable, nous vous

    recommandons vivement de rester sur des architectures plus

    classiques (par exemple Apache/PHP/MySQL). Cesarchitectures proposent aussi des outils complets dans

    certains domaines. Par exemple, si vous souhaitez

    dvelopper un site qui doit grer beaucoup de contenus ou

    faire du e-Commerce, ne pas utiliser Drupal ou Magento

    serait dommage (pour ne pas dire plus).

    Parce quil ny a quun thread, une action en erreur peut

    avoir des rpercussions sur tout le serveur. Contrairement

    des langages comme PHP qui cloisonnent chaque requte

    dans un processus isol.

    Inconvnients

    7

  • 7/30/2019 Livre Blanc Web temps rel

    8/10

    Qui utilise Node.js ?

    Des entreprises telles que LinkedIn, Microsoft, Wallmart ou

    encore eBay commencent utiliser Node.js

    A noter, une initiative intressante de Yahoo! qui propose

    Cocktail, un environnement qui permet de dvelopper des

    applications web sur diffrents types de plateformes, le tout

    bas en JavaScript (qui comprend Node.js).

    http://developer.yahoo.com/blogs/ydn/posts/2011/11/

    yahoo-announces-cocktails--shaken-not-stirred/

    La communaut

    Une trs forte communaut se dveloppe autour de Node.js.

    Dores et dj, plus de 17.000 librairies sont proposes -

    http://npmjs.org - et le gestionnaire de package, Node

    Package Manager, est trs efficace.

    Environnement Node.js

    8

  • 7/30/2019 Livre Blanc Web temps rel

    9/10

    Node.js a remis sur le devant de la scne larchitecture

    Event-driven et a prouv que cette architecture tait laplus efficace pour les performances. Cependant, parce que

    Node ne supporte que lapproche Event-driven et que celle-

    ci demande un effort de dveloppement Node.js risque de

    se cantonner son domaine de prdilection le web temps

    rel. Dans le futur, nous parions quune technologie

    regroupant le meilleur de lEvent-driven et du Thread verra le

    jour. Mongrel2, bien quincomplet, en montre la voie.

    TheCodingMachine prconise dutiliser Node.js de manire

    tactique sur des architectures mixtes . Selon les

    fonctionnalits que lon souhaite dvelopper, il suffit utiliser

    PHP pour les parties les plus classiques et Node.js pour les

    part ies ncess itant du temps rel ou bien trs

    consommatrices en termes de ressources.

    En revanche, utiliser Node.js pour migrer des applications de

    types desktop qui manipulent un grand nombre de donnes

    vers le web (qui sont encore dveloppes en swing danscertain grand groupe) peut avoir du sens.

    Une tentative de prdiction (cest souvent dangereux) pour

    terminer. Comme le flash est amen moyen terme

    disparatre et que le casual gaming reste une tendance

    forte. La technologie serveur Le Node.js serait-elle l'avenir de

    ces futurs jeux ?

    9

    Conclusion

  • 7/30/2019 Livre Blanc Web temps rel

    10/10

    10

    The licensor permits others to copy, distribute, display, and perform the work. In return,licenses must give the original author credit.

    The licensor permits others to copy, distribute, display, and perform the work. In return,licenses may not use the work for commercial purposes -- unless they get the licensor's

    permission.