10
WWW.LINAGORA.COM WWW.LINAGORA.COM Javascript côté serveur : la révolution Node.js Simon Courtois Architecte logiciel [email protected]

Javascript côté serveur : la révolution Node.js

Embed Size (px)

DESCRIPTION

Présentation donnée lors du salon Solutions Linux 2011.Animée par Simon Courtois, Architecte logiciel

Citation preview

Page 1: Javascript côté serveur : la révolution Node.js

WWW.LINAGORA.COMWWW.LINAGORA.COM

Javascript côté serveur : la révolution Node.jsSimon CourtoisArchitecte logiciel

[email protected]

Page 2: Javascript côté serveur : la révolution Node.js

2

Programmation classique

var data = file.read('file.txt') var data = doSomething(data) file.write('file2.txt', data)

Fil 1

Fil 2

Fil 3

Fil 4

Fil 5

Fil 6

Fil 7

Fil 8

Page 3: Javascript côté serveur : la révolution Node.js

3

Programmation classique

Fil 1

Fil 2

Fil 3

Fil 4

Fil 5

Fil 6

Fil 7

Fil 8

● Threads / processes perpétuellement en attente

● Coût (performances et mémoire) de création d'un thread / process

● Effondrement des performances lorsque la concurrence est forte

Page 4: Javascript côté serveur : la révolution Node.js

4

Programmation asynchrone

var data = file.read('file.txt'), function(data) { var data = doSomething(data)  file.write('file2.txt', data)}

● Appels de fonction non bloquants : rendent la main immédiatement puis appellent une fonction de callback une fois leur tâche terminée.

● Multi-process / multi-thread inutile : tout se gère depuis une boucle événementielle

● Pas de lock à gérer, ni de parallélisme à gérer explicitement : tout est fait dans le dos du développeur

● Effondrement du dispositif si un ou plusieurs appels sont bloquants

Node.js apporte une couche de gestion des entrées / sorties entièrement non bloquante

Page 5: Javascript côté serveur : la révolution Node.js

5

Javascript côté serveur

● Le meilleur langage pour bien appréhender la programmation asynchrone : méthodologie identique à celle des appels AJAX.

● Maturité du langage : CommonJS, ECMAScript 5, etc.

● Hautes performances

Page 6: Javascript côté serveur : la révolution Node.js

6

Exemple de code : un serveur web simple

var http = require('http');

http.createServer(function (req, res) {

res.writeHead(200, {'Content-Type': 'text/plain'});

res.end('Hello World\n');

}).listen(1337, "127.0.0.1");

console.log('Server running at http://127.0.0.1:1337/');

Page 7: Javascript côté serveur : la révolution Node.js

7

Exemple de code : un chat en 14 lignes de code

Page 8: Javascript côté serveur : la révolution Node.js

8

Performances : 100 000 requêtes, 1000 concurrentes

Page 9: Javascript côté serveur : la révolution Node.js

9

Performances : 1 000 000 requêtes, 20 000 concurrentes

Page 10: Javascript côté serveur : la révolution Node.js

WWW.LINAGORA.COMWWW.LINAGORA.COM

Merci de votre attention

Contact : LINAGORA – Siège social80, rue Roque de Fillol

92800 PUTEAUXFRANCE

Tél. : 0 810 251 251 (tarif local)Fax : +33 (0)1 46 96 63 64Mail : [email protected]

Web : www.linagora.com