SlideShare une entreprise Scribd logo
<technologies-web/> 
<metaname="author"content="Pierre-Emmanuel Altieri, Clément Casu, Oussama Ezzayer, Raphaël Kiffer">
Menu du jour
27/05/2009 
Ryan Dahl 
0.1.33
Ils y croient
2011 
Tim Fox 
2.1.4
Ils y croient
The C10k Problem 
Le c10k […] est un code numérique utilisé pour exprimer la limitation que la plupart des serveurs ont en termes de connexions réseaux. 
http://fr.wikipedia.org/wiki/C10k_problem
«Origins» 
Reactor 
Vérification 
Événement 
Exécution 
Callback 
Requête Web ou callback 
Choix de l’événement 
Exécution de l’événement 
Lancement de callback avec données
Programmation événementielle 
boucle principale 
Event Loop
Programmation événementielle 
fs =require('fs'); 
vardata =fs.readFileSync('file.txt') 
// Leflot d’exécution est bloqué jusqu’à la fin de l’exécution 
console.log(data) 
fs =require('fs'); 
fs.readFile('file.txt', function(error, data) { 
// Exécutionà la fin de l’opérationconsole.log(data) 
});
Avant/Après 
Serveur 
Thread 
Thread 
Thread 
Thread 
Requête 
Requête 
Requête 
Requête
Avant/Après 
Serveur 
Thread 
Requête 
Requête 
Requête 
Requête
Avant/Après
Reactive Programming 
Responsive 
Élastique 
Event-driven 
Scalable 
Réactif en terme d’UI 
Réactif aux erreurs 
Réactif aux événements 
Réactif à la charge
Bootstrap 
varvertx =require('vertx'); 
vertx.createHttpServer() 
.requestHandler(function(req){ 
varfile =req.path()==='/'? 'index.html': req.path(); 
req.response.sendFile('app/'+file); 
}).listen(8080); 
console.log('Server is running'); 
$ node server.js 
varhttp =require('http'); 
http.createServer(function(req, res){ 
res.writeHead(200, { 
'Content-Type': 'text/plain‘ 
}); res.end('Hello Worldn'); }).listen(1337, '127.0.0.1'); 
console.log('Server is running'); 
$ vertxrun server.js
Bootstrap 
$ node server.js 
varhttp =require('http'); 
http.createServer(function(req, res){ 
res.writeHead(200, { 
'Content-Type': 'text/plain‘ 
}); res.end('Hello Worldn'); }).listen(1337, '127.0.0.1'); 
console.log('Server is running'); 
$ vertxrun Server.java 
publicclassServer extendsVerticle { 
publicvoidstart(){ 
vertx.createHttpServer().requestHandler( 
newHandler<HttpServerRequest>(){ 
publicvoidhandle(HttpServerRequest req){ 
Stringfile =req.path().equals("/")? "index.html": req.path(); 
req.response().sendFile("app/"+file); 
} 
}).listen(8080); 
} 
}
Bootstrap 
$ node server.js 
varhttp =require('http'); 
http.createServer(function(req, res){ 
res.writeHead(200, { 
'Content-Type': 'text/plain‘ 
}); res.end('Hello Worldn'); }).listen(1337, '127.0.0.1'); 
console.log('Server is running'); 
$ vertxrun server.rb 
require"vertx" 
Vertx::HttpServer.new.request_handler do |req| 
file =req.uri =="/"?"index.html": req.uri 
req.response.send_file "webroot/#{file}" 
end.listen(8080)
Bootstrap 
$ node server.js 
varhttp =require('http'); 
http.createServer(function(req, res){ 
res.writeHead(200, { 
'Content-Type': 'text/plain‘ 
}); res.end('Hello Worldn'); }).listen(1337, '127.0.0.1'); 
console.log('Server is running'); 
$ vertxrun Server.groovy 
vertx.createHttpServer().requestHandler {req -> 
def file =req.uri =="/"? "index.html": req.uri 
req.response.sendFile "app/$file" 
}.listen(8080)
Bootstrap 
$ node server.js 
varhttp =require('http'); 
http.createServer(function(req, res){ 
res.writeHead(200, { 
'Content-Type': 'text/plain‘ 
}); res.end('Hello Worldn'); }).listen(1337, '127.0.0.1'); 
console.log('Server is running'); 
$ vertxrun server.py 
importvertx 
server =vertx.create_http_server() 
@server.request_handler 
def request_handler(req): 
file ="index.html"ifreq.uri =="/"elsereq.uri 
req.response.send_file("app/%s"%file) 
server.listen(8080)
Versus 
Environnement 
Modules 
npm 
Verticles 
Event Bus 
Shared Data 
1 process 
Workflow
Et les performances ? 
0 
200 
400 
600 
800 
1000 
1200 
1400 
1600 
1800 
2000 
Ajout JSON 
Hello World 
Concatenation String 
Fibo(30) recursif 
NodeJS (tr/s) 
Vert.X (tr/s) 
NodeJS (mem) 
Vert.X (mem)
Merci !

Contenu connexe

Tendances

Synthese
SyntheseSynthese
Synthese
Alexis Pelhâte
 
Comprendre les scripts shell auto-extractible
Comprendre les scripts shell auto-extractibleComprendre les scripts shell auto-extractible
Comprendre les scripts shell auto-extractible
Thierry Gayet
 
Retour d'XP de saltstack chez Cozy Cloud - web2day 15 juin 2016
Retour d'XP de saltstack chez Cozy Cloud - web2day 15 juin 2016Retour d'XP de saltstack chez Cozy Cloud - web2day 15 juin 2016
Retour d'XP de saltstack chez Cozy Cloud - web2day 15 juin 2016
Nicolas Ledez
 
اسلاید اول جلسه اول دوره پاییز کلاس پایتون برای هکرهای قانونی
اسلاید اول جلسه اول دوره پاییز کلاس پایتون برای هکرهای قانونیاسلاید اول جلسه اول دوره پاییز کلاس پایتون برای هکرهای قانونی
اسلاید اول جلسه اول دوره پاییز کلاس پایتون برای هکرهای قانونیMohammad Reza Kamalifard
 
Meet-Up SQLI Lyon 09-2015 - Varnish
Meet-Up SQLI Lyon 09-2015 - VarnishMeet-Up SQLI Lyon 09-2015 - Varnish
Meet-Up SQLI Lyon 09-2015 - Varnish
SQLI DIGITAL EXPERIENCE
 
Atmosphere Framework
Atmosphere FrameworkAtmosphere Framework
Atmosphere Framework
Fabien Baligand
 
Redis - (nosqlfr meetup #2)
Redis - (nosqlfr meetup #2) Redis - (nosqlfr meetup #2)
Redis - (nosqlfr meetup #2)
Frank Denis
 
Luigi Paris.py meetup presentation
Luigi Paris.py meetup presentationLuigi Paris.py meetup presentation
Luigi Paris.py meetup presentation
Jonàs Bru Monserrat
 
Python + ansible = ♥
Python + ansible = ♥Python + ansible = ♥
Python + ansible = ♥
Gonéri Le Bouder
 
Java Nio 2
Java Nio 2Java Nio 2
08 04 mise en place d'un serveur mandataire (proxy)
08 04 mise en place d'un serveur mandataire (proxy)08 04 mise en place d'un serveur mandataire (proxy)
08 04 mise en place d'un serveur mandataire (proxy)
Noël
 
Squid
SquidSquid
[Sildes] plateforme centralisée d’analyse des logs des frontaux http en temps...
[Sildes] plateforme centralisée d’analyse des logs des frontaux http en temps...[Sildes] plateforme centralisée d’analyse des logs des frontaux http en temps...
[Sildes] plateforme centralisée d’analyse des logs des frontaux http en temps...
Guillaume MOCQUET
 
Tout sur PHP 7.3 et ses RFC
Tout sur PHP 7.3 et ses RFCTout sur PHP 7.3 et ses RFC
Tout sur PHP 7.3 et ses RFC
Damien Seguy
 
EBIZNEXT-RIAK
EBIZNEXT-RIAKEBIZNEXT-RIAK
EBIZNEXT-RIAKebiznext
 
Terraform OpenStack : Mise en pratique sur infrastructure OVH (Rennes devops)
Terraform OpenStack : Mise en pratique sur infrastructure OVH (Rennes devops) Terraform OpenStack : Mise en pratique sur infrastructure OVH (Rennes devops)
Terraform OpenStack : Mise en pratique sur infrastructure OVH (Rennes devops)
Joël Séguillon
 
Zabbix, garder un oeil toujours ouvert
Zabbix, garder un oeil toujours ouvertZabbix, garder un oeil toujours ouvert
Zabbix, garder un oeil toujours ouvert
Look a box
 
RSocket un protocole réseau pour les Reactive Streams
RSocket un protocole réseau pour les Reactive StreamsRSocket un protocole réseau pour les Reactive Streams
RSocket un protocole réseau pour les Reactive Streams
VMware Tanzu
 
Salt stack
Salt stackSalt stack
Salt stack
Séven Le Mesle
 

Tendances (20)

Synthese
SyntheseSynthese
Synthese
 
Comprendre les scripts shell auto-extractible
Comprendre les scripts shell auto-extractibleComprendre les scripts shell auto-extractible
Comprendre les scripts shell auto-extractible
 
Retour d'XP de saltstack chez Cozy Cloud - web2day 15 juin 2016
Retour d'XP de saltstack chez Cozy Cloud - web2day 15 juin 2016Retour d'XP de saltstack chez Cozy Cloud - web2day 15 juin 2016
Retour d'XP de saltstack chez Cozy Cloud - web2day 15 juin 2016
 
اسلاید اول جلسه اول دوره پاییز کلاس پایتون برای هکرهای قانونی
اسلاید اول جلسه اول دوره پاییز کلاس پایتون برای هکرهای قانونیاسلاید اول جلسه اول دوره پاییز کلاس پایتون برای هکرهای قانونی
اسلاید اول جلسه اول دوره پاییز کلاس پایتون برای هکرهای قانونی
 
Meet-Up SQLI Lyon 09-2015 - Varnish
Meet-Up SQLI Lyon 09-2015 - VarnishMeet-Up SQLI Lyon 09-2015 - Varnish
Meet-Up SQLI Lyon 09-2015 - Varnish
 
Atmosphere Framework
Atmosphere FrameworkAtmosphere Framework
Atmosphere Framework
 
DNS
DNSDNS
DNS
 
Redis - (nosqlfr meetup #2)
Redis - (nosqlfr meetup #2) Redis - (nosqlfr meetup #2)
Redis - (nosqlfr meetup #2)
 
Luigi Paris.py meetup presentation
Luigi Paris.py meetup presentationLuigi Paris.py meetup presentation
Luigi Paris.py meetup presentation
 
Python + ansible = ♥
Python + ansible = ♥Python + ansible = ♥
Python + ansible = ♥
 
Java Nio 2
Java Nio 2Java Nio 2
Java Nio 2
 
08 04 mise en place d'un serveur mandataire (proxy)
08 04 mise en place d'un serveur mandataire (proxy)08 04 mise en place d'un serveur mandataire (proxy)
08 04 mise en place d'un serveur mandataire (proxy)
 
Squid
SquidSquid
Squid
 
[Sildes] plateforme centralisée d’analyse des logs des frontaux http en temps...
[Sildes] plateforme centralisée d’analyse des logs des frontaux http en temps...[Sildes] plateforme centralisée d’analyse des logs des frontaux http en temps...
[Sildes] plateforme centralisée d’analyse des logs des frontaux http en temps...
 
Tout sur PHP 7.3 et ses RFC
Tout sur PHP 7.3 et ses RFCTout sur PHP 7.3 et ses RFC
Tout sur PHP 7.3 et ses RFC
 
EBIZNEXT-RIAK
EBIZNEXT-RIAKEBIZNEXT-RIAK
EBIZNEXT-RIAK
 
Terraform OpenStack : Mise en pratique sur infrastructure OVH (Rennes devops)
Terraform OpenStack : Mise en pratique sur infrastructure OVH (Rennes devops) Terraform OpenStack : Mise en pratique sur infrastructure OVH (Rennes devops)
Terraform OpenStack : Mise en pratique sur infrastructure OVH (Rennes devops)
 
Zabbix, garder un oeil toujours ouvert
Zabbix, garder un oeil toujours ouvertZabbix, garder un oeil toujours ouvert
Zabbix, garder un oeil toujours ouvert
 
RSocket un protocole réseau pour les Reactive Streams
RSocket un protocole réseau pour les Reactive StreamsRSocket un protocole réseau pour les Reactive Streams
RSocket un protocole réseau pour les Reactive Streams
 
Salt stack
Salt stackSalt stack
Salt stack
 

En vedette

Vertx – reactive toolkit
Vertx – reactive toolkitVertx – reactive toolkit
Vertx – reactive toolkit
Avi Saidian
 
Netty @Apple: Large Scale Deployment/Connectivity
Netty @Apple: Large Scale Deployment/ConnectivityNetty @Apple: Large Scale Deployment/Connectivity
Netty @Apple: Large Scale Deployment/Connectivity
C4Media
 
Vertx for worlddomination
Vertx for worlddominationVertx for worlddomination
Vertx for worlddomination
codepitbull
 
Vert.X like Node.js but polyglot and reactive on JVM
Vert.X like Node.js but polyglot and reactive on JVMVert.X like Node.js but polyglot and reactive on JVM
Vert.X like Node.js but polyglot and reactive on JVM
Massimiliano Dessì
 
Bbl microservices avec vert.x cdi elastic search
Bbl microservices avec vert.x cdi elastic searchBbl microservices avec vert.x cdi elastic search
Bbl microservices avec vert.x cdi elastic search
Idriss Neumann
 
Vert.x – The problem of real-time data binding
Vert.x – The problem of real-time data bindingVert.x – The problem of real-time data binding
Vert.x – The problem of real-time data binding
Alex Derkach
 
Presen20081
Presen20081Presen20081
Presen20081
marujo2008
 
Guide routard intelligence économique 2014
Guide routard intelligence économique 2014Guide routard intelligence économique 2014
Guide routard intelligence économique 2014
polenumerique33
 
Postales Del Viaje
Postales Del ViajePostales Del Viaje
Postales Del Viaje
rio rio
 
Tendencias emergentes ii[1]
Tendencias emergentes ii[1]Tendencias emergentes ii[1]
Tendencias emergentes ii[1]
Lur Gozoa
 
Tout commence avec les corps de Paul auster
Tout commence avec les corps de Paul austerTout commence avec les corps de Paul auster
Tout commence avec les corps de Paul auster
GemmaNadalS
 
Composition d'audience de VoitureAuMaroc - A LIRE -
Composition d'audience de VoitureAuMaroc - A LIRE -Composition d'audience de VoitureAuMaroc - A LIRE -
Composition d'audience de VoitureAuMaroc - A LIRE -
Alexandre Allanic
 
Mercator Ocean newsletter 08
Mercator Ocean newsletter 08Mercator Ocean newsletter 08
Mercator Ocean newsletter 08
Mercator Ocean International
 
Chroniques Ressources Entreprises _mars2014 - juin 2014
Chroniques Ressources Entreprises _mars2014 - juin 2014Chroniques Ressources Entreprises _mars2014 - juin 2014
Chroniques Ressources Entreprises _mars2014 - juin 2014Ressources Entreprises
 
Sesión 9
Sesión 9Sesión 9
Central Córdoba - UnióN
Central Córdoba - UnióNCentral Córdoba - UnióN
Central Córdoba - UnióN
arhandball
 
ns2 projects chennai
ns2 projects chennains2 projects chennai
ns2 projects chennai
E2MATRIX
 

En vedette (20)

Devoxx France 2014 - REST facile vert.x et Groovy
Devoxx France 2014 - REST facile vert.x et GroovyDevoxx France 2014 - REST facile vert.x et Groovy
Devoxx France 2014 - REST facile vert.x et Groovy
 
Vertx – reactive toolkit
Vertx – reactive toolkitVertx – reactive toolkit
Vertx – reactive toolkit
 
Netty @Apple: Large Scale Deployment/Connectivity
Netty @Apple: Large Scale Deployment/ConnectivityNetty @Apple: Large Scale Deployment/Connectivity
Netty @Apple: Large Scale Deployment/Connectivity
 
Vertx for worlddomination
Vertx for worlddominationVertx for worlddomination
Vertx for worlddomination
 
Vert.X like Node.js but polyglot and reactive on JVM
Vert.X like Node.js but polyglot and reactive on JVMVert.X like Node.js but polyglot and reactive on JVM
Vert.X like Node.js but polyglot and reactive on JVM
 
Bbl microservices avec vert.x cdi elastic search
Bbl microservices avec vert.x cdi elastic searchBbl microservices avec vert.x cdi elastic search
Bbl microservices avec vert.x cdi elastic search
 
Vert.x – The problem of real-time data binding
Vert.x – The problem of real-time data bindingVert.x – The problem of real-time data binding
Vert.x – The problem of real-time data binding
 
Presen20081
Presen20081Presen20081
Presen20081
 
A mediter
A mediterA mediter
A mediter
 
Guide routard intelligence économique 2014
Guide routard intelligence économique 2014Guide routard intelligence économique 2014
Guide routard intelligence économique 2014
 
Postales Del Viaje
Postales Del ViajePostales Del Viaje
Postales Del Viaje
 
Tendencias emergentes ii[1]
Tendencias emergentes ii[1]Tendencias emergentes ii[1]
Tendencias emergentes ii[1]
 
Tout commence avec les corps de Paul auster
Tout commence avec les corps de Paul austerTout commence avec les corps de Paul auster
Tout commence avec les corps de Paul auster
 
Ppt impots
Ppt impotsPpt impots
Ppt impots
 
Composition d'audience de VoitureAuMaroc - A LIRE -
Composition d'audience de VoitureAuMaroc - A LIRE -Composition d'audience de VoitureAuMaroc - A LIRE -
Composition d'audience de VoitureAuMaroc - A LIRE -
 
Mercator Ocean newsletter 08
Mercator Ocean newsletter 08Mercator Ocean newsletter 08
Mercator Ocean newsletter 08
 
Chroniques Ressources Entreprises _mars2014 - juin 2014
Chroniques Ressources Entreprises _mars2014 - juin 2014Chroniques Ressources Entreprises _mars2014 - juin 2014
Chroniques Ressources Entreprises _mars2014 - juin 2014
 
Sesión 9
Sesión 9Sesión 9
Sesión 9
 
Central Córdoba - UnióN
Central Córdoba - UnióNCentral Córdoba - UnióN
Central Córdoba - UnióN
 
ns2 projects chennai
ns2 projects chennains2 projects chennai
ns2 projects chennai
 

Similaire à nodejs vs vertx

ENIB cours CAI Web - Séance 3 - JSP/Servlet - Cours
ENIB cours CAI Web - Séance 3 - JSP/Servlet - CoursENIB cours CAI Web - Séance 3 - JSP/Servlet - Cours
ENIB cours CAI Web - Séance 3 - JSP/Servlet - CoursHoracio Gonzalez
 
Rich Desktop Applications
Rich Desktop ApplicationsRich Desktop Applications
Rich Desktop Applicationsgoldoraf
 
HTML5 en projet
HTML5 en projetHTML5 en projet
HTML5 en projet
Normandy JUG
 
Découverte du moteur de rendu du projet Spartan
Découverte du moteur de rendu du projet SpartanDécouverte du moteur de rendu du projet Spartan
Découverte du moteur de rendu du projet Spartan
Microsoft
 
Vert.x
Vert.xVert.x
Vert.x
Xavier MARIN
 
REST JUG Toulouse 20100615
REST JUG Toulouse 20100615REST JUG Toulouse 20100615
REST JUG Toulouse 20100615JUG Toulouse
 
Ajax GTI780 & MTI780 ETS A09
Ajax  GTI780 & MTI780  ETS  A09Ajax  GTI780 & MTI780  ETS  A09
Ajax GTI780 & MTI780 ETS A09
Claude Coulombe
 
Solution Linux 2009 - JavaScript
Solution Linux 2009 - JavaScriptSolution Linux 2009 - JavaScript
Solution Linux 2009 - JavaScript
Raphaël Semeteys
 
Support Web Services SOAP et RESTful Mr YOUSSFI
Support Web Services SOAP et RESTful Mr YOUSSFISupport Web Services SOAP et RESTful Mr YOUSSFI
Support Web Services SOAP et RESTful Mr YOUSSFI
ENSET, Université Hassan II Casablanca
 
Vert.x 3
Vert.x 3Vert.x 3
Vert.x 3
Xavier MARIN
 
Nosql, hadoop, map reduce, hbase, sqoop, voldemort, cassandra -intro
Nosql, hadoop, map reduce, hbase, sqoop, voldemort, cassandra -introNosql, hadoop, map reduce, hbase, sqoop, voldemort, cassandra -intro
Nosql, hadoop, map reduce, hbase, sqoop, voldemort, cassandra -introOlivier Mallassi
 
Réu technodejs
Réu technodejsRéu technodejs
Réu technodejsnaholyr
 
Flex, une techno RIA incontournable pour les futures app web ?
Flex, une techno RIA incontournable pour les futures app web ?Flex, une techno RIA incontournable pour les futures app web ?
Flex, une techno RIA incontournable pour les futures app web ?
GreenIvory
 
Procédures CLR pour SQL Server : avantages et inconvénients
Procédures CLR pour SQL Server : avantages et inconvénientsProcédures CLR pour SQL Server : avantages et inconvénients
Procédures CLR pour SQL Server : avantages et inconvénients
Denis Voituron
 
Guide (un tout petit peu) pratique (et totalement subjectif) du stream proces...
Guide (un tout petit peu) pratique (et totalement subjectif) du stream proces...Guide (un tout petit peu) pratique (et totalement subjectif) du stream proces...
Guide (un tout petit peu) pratique (et totalement subjectif) du stream proces...
Bruno Bonnin
 
Importer des données dans Nuxeo Platform - Nuxeo Tour 2014 - workshop
Importer des données dans Nuxeo Platform - Nuxeo Tour 2014 - workshopImporter des données dans Nuxeo Platform - Nuxeo Tour 2014 - workshop
Importer des données dans Nuxeo Platform - Nuxeo Tour 2014 - workshop
Nuxeo
 
Communications Réseaux et HTTP avec PHP
Communications Réseaux et HTTP avec PHPCommunications Réseaux et HTTP avec PHP
Communications Réseaux et HTTP avec PHPjulien pauli
 
Programmation web asynchrone avec Tornado
Programmation web asynchrone avec TornadoProgrammation web asynchrone avec Tornado
Programmation web asynchrone avec TornadoRonan Amicel
 
Support JEE Servlet Jsp MVC M.Youssfi
Support JEE Servlet Jsp MVC M.YoussfiSupport JEE Servlet Jsp MVC M.Youssfi
Support JEE Servlet Jsp MVC M.Youssfi
ENSET, Université Hassan II Casablanca
 

Similaire à nodejs vs vertx (20)

ENIB cours CAI Web - Séance 3 - JSP/Servlet - Cours
ENIB cours CAI Web - Séance 3 - JSP/Servlet - CoursENIB cours CAI Web - Séance 3 - JSP/Servlet - Cours
ENIB cours CAI Web - Séance 3 - JSP/Servlet - Cours
 
Rich Desktop Applications
Rich Desktop ApplicationsRich Desktop Applications
Rich Desktop Applications
 
HTML5 en projet
HTML5 en projetHTML5 en projet
HTML5 en projet
 
Apache Open SSL
Apache Open SSLApache Open SSL
Apache Open SSL
 
Découverte du moteur de rendu du projet Spartan
Découverte du moteur de rendu du projet SpartanDécouverte du moteur de rendu du projet Spartan
Découverte du moteur de rendu du projet Spartan
 
Vert.x
Vert.xVert.x
Vert.x
 
REST JUG Toulouse 20100615
REST JUG Toulouse 20100615REST JUG Toulouse 20100615
REST JUG Toulouse 20100615
 
Ajax GTI780 & MTI780 ETS A09
Ajax  GTI780 & MTI780  ETS  A09Ajax  GTI780 & MTI780  ETS  A09
Ajax GTI780 & MTI780 ETS A09
 
Solution Linux 2009 - JavaScript
Solution Linux 2009 - JavaScriptSolution Linux 2009 - JavaScript
Solution Linux 2009 - JavaScript
 
Support Web Services SOAP et RESTful Mr YOUSSFI
Support Web Services SOAP et RESTful Mr YOUSSFISupport Web Services SOAP et RESTful Mr YOUSSFI
Support Web Services SOAP et RESTful Mr YOUSSFI
 
Vert.x 3
Vert.x 3Vert.x 3
Vert.x 3
 
Nosql, hadoop, map reduce, hbase, sqoop, voldemort, cassandra -intro
Nosql, hadoop, map reduce, hbase, sqoop, voldemort, cassandra -introNosql, hadoop, map reduce, hbase, sqoop, voldemort, cassandra -intro
Nosql, hadoop, map reduce, hbase, sqoop, voldemort, cassandra -intro
 
Réu technodejs
Réu technodejsRéu technodejs
Réu technodejs
 
Flex, une techno RIA incontournable pour les futures app web ?
Flex, une techno RIA incontournable pour les futures app web ?Flex, une techno RIA incontournable pour les futures app web ?
Flex, une techno RIA incontournable pour les futures app web ?
 
Procédures CLR pour SQL Server : avantages et inconvénients
Procédures CLR pour SQL Server : avantages et inconvénientsProcédures CLR pour SQL Server : avantages et inconvénients
Procédures CLR pour SQL Server : avantages et inconvénients
 
Guide (un tout petit peu) pratique (et totalement subjectif) du stream proces...
Guide (un tout petit peu) pratique (et totalement subjectif) du stream proces...Guide (un tout petit peu) pratique (et totalement subjectif) du stream proces...
Guide (un tout petit peu) pratique (et totalement subjectif) du stream proces...
 
Importer des données dans Nuxeo Platform - Nuxeo Tour 2014 - workshop
Importer des données dans Nuxeo Platform - Nuxeo Tour 2014 - workshopImporter des données dans Nuxeo Platform - Nuxeo Tour 2014 - workshop
Importer des données dans Nuxeo Platform - Nuxeo Tour 2014 - workshop
 
Communications Réseaux et HTTP avec PHP
Communications Réseaux et HTTP avec PHPCommunications Réseaux et HTTP avec PHP
Communications Réseaux et HTTP avec PHP
 
Programmation web asynchrone avec Tornado
Programmation web asynchrone avec TornadoProgrammation web asynchrone avec Tornado
Programmation web asynchrone avec Tornado
 
Support JEE Servlet Jsp MVC M.Youssfi
Support JEE Servlet Jsp MVC M.YoussfiSupport JEE Servlet Jsp MVC M.Youssfi
Support JEE Servlet Jsp MVC M.Youssfi
 

Plus de Quentin Apruzzese

Analytics : Google Advanced Analytics vs Omniture
Analytics : Google Advanced Analytics vs OmnitureAnalytics : Google Advanced Analytics vs Omniture
Analytics : Google Advanced Analytics vs Omniture
Quentin Apruzzese
 
Solution Analytics : Oracle Advanced Analytics
Solution Analytics : Oracle Advanced AnalyticsSolution Analytics : Oracle Advanced Analytics
Solution Analytics : Oracle Advanced Analytics
Quentin Apruzzese
 
Solution Analytics : KISS metrics
Solution Analytics : KISS metricsSolution Analytics : KISS metrics
Solution Analytics : KISS metrics
Quentin Apruzzese
 
Solution Analytics : Kameleoon
Solution Analytics : KameleoonSolution Analytics : Kameleoon
Solution Analytics : Kameleoon
Quentin Apruzzese
 
Solution Analytics : Google Analytics
Solution Analytics : Google AnalyticsSolution Analytics : Google Analytics
Solution Analytics : Google Analytics
Quentin Apruzzese
 
Solution Analytics : AT Internet
Solution Analytics : AT InternetSolution Analytics : AT Internet
Solution Analytics : AT Internet
Quentin Apruzzese
 
Solution analytics : Adobe Omniture
Solution analytics : Adobe OmnitureSolution analytics : Adobe Omniture
Solution analytics : Adobe Omniture
Quentin Apruzzese
 
Solution analytics : acquia lift
Solution analytics : acquia liftSolution analytics : acquia lift
Solution analytics : acquia lift
Quentin Apruzzese
 
Comparatif analytics
Comparatif analyticsComparatif analytics
Comparatif analytics
Quentin Apruzzese
 
Comparatif CMS
Comparatif CMSComparatif CMS
Comparatif CMS
Quentin Apruzzese
 
Cms & e commerce
Cms & e commerceCms & e commerce
Cms & e commerce
Quentin Apruzzese
 
Numergy vs Cloudwatt
Numergy vs CloudwattNumergy vs Cloudwatt
Numergy vs Cloudwatt
Quentin Apruzzese
 
Aruba vs Rackspace
Aruba vs RackspaceAruba vs Rackspace
Aruba vs Rackspace
Quentin Apruzzese
 
Comparaison de plateformes Cloud
Comparaison de plateformes CloudComparaison de plateformes Cloud
Comparaison de plateformes Cloud
Quentin Apruzzese
 
Les systèmes de base de donnée
Les systèmes de base de donnéeLes systèmes de base de donnée
Les systèmes de base de donnée
Quentin Apruzzese
 

Plus de Quentin Apruzzese (15)

Analytics : Google Advanced Analytics vs Omniture
Analytics : Google Advanced Analytics vs OmnitureAnalytics : Google Advanced Analytics vs Omniture
Analytics : Google Advanced Analytics vs Omniture
 
Solution Analytics : Oracle Advanced Analytics
Solution Analytics : Oracle Advanced AnalyticsSolution Analytics : Oracle Advanced Analytics
Solution Analytics : Oracle Advanced Analytics
 
Solution Analytics : KISS metrics
Solution Analytics : KISS metricsSolution Analytics : KISS metrics
Solution Analytics : KISS metrics
 
Solution Analytics : Kameleoon
Solution Analytics : KameleoonSolution Analytics : Kameleoon
Solution Analytics : Kameleoon
 
Solution Analytics : Google Analytics
Solution Analytics : Google AnalyticsSolution Analytics : Google Analytics
Solution Analytics : Google Analytics
 
Solution Analytics : AT Internet
Solution Analytics : AT InternetSolution Analytics : AT Internet
Solution Analytics : AT Internet
 
Solution analytics : Adobe Omniture
Solution analytics : Adobe OmnitureSolution analytics : Adobe Omniture
Solution analytics : Adobe Omniture
 
Solution analytics : acquia lift
Solution analytics : acquia liftSolution analytics : acquia lift
Solution analytics : acquia lift
 
Comparatif analytics
Comparatif analyticsComparatif analytics
Comparatif analytics
 
Comparatif CMS
Comparatif CMSComparatif CMS
Comparatif CMS
 
Cms & e commerce
Cms & e commerceCms & e commerce
Cms & e commerce
 
Numergy vs Cloudwatt
Numergy vs CloudwattNumergy vs Cloudwatt
Numergy vs Cloudwatt
 
Aruba vs Rackspace
Aruba vs RackspaceAruba vs Rackspace
Aruba vs Rackspace
 
Comparaison de plateformes Cloud
Comparaison de plateformes CloudComparaison de plateformes Cloud
Comparaison de plateformes Cloud
 
Les systèmes de base de donnée
Les systèmes de base de donnéeLes systèmes de base de donnée
Les systèmes de base de donnée
 

Dernier

De l'IA comme plagiat à la rédaction d'une « charte IA » à l'université
De l'IA comme plagiat à la rédaction d'une « charte IA » à l'universitéDe l'IA comme plagiat à la rédaction d'une « charte IA » à l'université
De l'IA comme plagiat à la rédaction d'une « charte IA » à l'université
Université de Franche-Comté
 
OCTO TALKS : 4 Tech Trends du Software Engineering.pdf
OCTO TALKS : 4 Tech Trends du Software Engineering.pdfOCTO TALKS : 4 Tech Trends du Software Engineering.pdf
OCTO TALKS : 4 Tech Trends du Software Engineering.pdf
OCTO Technology
 
Le support de présentation des Signaux 2024
Le support de présentation des Signaux 2024Le support de présentation des Signaux 2024
Le support de présentation des Signaux 2024
UNITECBordeaux
 
Le Comptoir OCTO - Qu’apporte l’analyse de cycle de vie lors d’un audit d’éco...
Le Comptoir OCTO - Qu’apporte l’analyse de cycle de vie lors d’un audit d’éco...Le Comptoir OCTO - Qu’apporte l’analyse de cycle de vie lors d’un audit d’éco...
Le Comptoir OCTO - Qu’apporte l’analyse de cycle de vie lors d’un audit d’éco...
OCTO Technology
 
Le Comptoir OCTO - Équipes infra et prod, ne ratez pas l'embarquement pour l'...
Le Comptoir OCTO - Équipes infra et prod, ne ratez pas l'embarquement pour l'...Le Comptoir OCTO - Équipes infra et prod, ne ratez pas l'embarquement pour l'...
Le Comptoir OCTO - Équipes infra et prod, ne ratez pas l'embarquement pour l'...
OCTO Technology
 
Ouvrez la porte ou prenez un mur (Agile Tour Genève 2024)
Ouvrez la porte ou prenez un mur (Agile Tour Genève 2024)Ouvrez la porte ou prenez un mur (Agile Tour Genève 2024)
Ouvrez la porte ou prenez un mur (Agile Tour Genève 2024)
Laurent Speyser
 

Dernier (6)

De l'IA comme plagiat à la rédaction d'une « charte IA » à l'université
De l'IA comme plagiat à la rédaction d'une « charte IA » à l'universitéDe l'IA comme plagiat à la rédaction d'une « charte IA » à l'université
De l'IA comme plagiat à la rédaction d'une « charte IA » à l'université
 
OCTO TALKS : 4 Tech Trends du Software Engineering.pdf
OCTO TALKS : 4 Tech Trends du Software Engineering.pdfOCTO TALKS : 4 Tech Trends du Software Engineering.pdf
OCTO TALKS : 4 Tech Trends du Software Engineering.pdf
 
Le support de présentation des Signaux 2024
Le support de présentation des Signaux 2024Le support de présentation des Signaux 2024
Le support de présentation des Signaux 2024
 
Le Comptoir OCTO - Qu’apporte l’analyse de cycle de vie lors d’un audit d’éco...
Le Comptoir OCTO - Qu’apporte l’analyse de cycle de vie lors d’un audit d’éco...Le Comptoir OCTO - Qu’apporte l’analyse de cycle de vie lors d’un audit d’éco...
Le Comptoir OCTO - Qu’apporte l’analyse de cycle de vie lors d’un audit d’éco...
 
Le Comptoir OCTO - Équipes infra et prod, ne ratez pas l'embarquement pour l'...
Le Comptoir OCTO - Équipes infra et prod, ne ratez pas l'embarquement pour l'...Le Comptoir OCTO - Équipes infra et prod, ne ratez pas l'embarquement pour l'...
Le Comptoir OCTO - Équipes infra et prod, ne ratez pas l'embarquement pour l'...
 
Ouvrez la porte ou prenez un mur (Agile Tour Genève 2024)
Ouvrez la porte ou prenez un mur (Agile Tour Genève 2024)Ouvrez la porte ou prenez un mur (Agile Tour Genève 2024)
Ouvrez la porte ou prenez un mur (Agile Tour Genève 2024)
 

nodejs vs vertx

  • 1. <technologies-web/> <metaname="author"content="Pierre-Emmanuel Altieri, Clément Casu, Oussama Ezzayer, Raphaël Kiffer">
  • 5. 2011 Tim Fox 2.1.4
  • 7. The C10k Problem Le c10k […] est un code numérique utilisé pour exprimer la limitation que la plupart des serveurs ont en termes de connexions réseaux. http://fr.wikipedia.org/wiki/C10k_problem
  • 8. «Origins» Reactor Vérification Événement Exécution Callback Requête Web ou callback Choix de l’événement Exécution de l’événement Lancement de callback avec données
  • 10. Programmation événementielle fs =require('fs'); vardata =fs.readFileSync('file.txt') // Leflot d’exécution est bloqué jusqu’à la fin de l’exécution console.log(data) fs =require('fs'); fs.readFile('file.txt', function(error, data) { // Exécutionà la fin de l’opérationconsole.log(data) });
  • 11. Avant/Après Serveur Thread Thread Thread Thread Requête Requête Requête Requête
  • 12. Avant/Après Serveur Thread Requête Requête Requête Requête
  • 14. Reactive Programming Responsive Élastique Event-driven Scalable Réactif en terme d’UI Réactif aux erreurs Réactif aux événements Réactif à la charge
  • 15. Bootstrap varvertx =require('vertx'); vertx.createHttpServer() .requestHandler(function(req){ varfile =req.path()==='/'? 'index.html': req.path(); req.response.sendFile('app/'+file); }).listen(8080); console.log('Server is running'); $ node server.js varhttp =require('http'); http.createServer(function(req, res){ res.writeHead(200, { 'Content-Type': 'text/plain‘ }); res.end('Hello Worldn'); }).listen(1337, '127.0.0.1'); console.log('Server is running'); $ vertxrun server.js
  • 16. Bootstrap $ node server.js varhttp =require('http'); http.createServer(function(req, res){ res.writeHead(200, { 'Content-Type': 'text/plain‘ }); res.end('Hello Worldn'); }).listen(1337, '127.0.0.1'); console.log('Server is running'); $ vertxrun Server.java publicclassServer extendsVerticle { publicvoidstart(){ vertx.createHttpServer().requestHandler( newHandler<HttpServerRequest>(){ publicvoidhandle(HttpServerRequest req){ Stringfile =req.path().equals("/")? "index.html": req.path(); req.response().sendFile("app/"+file); } }).listen(8080); } }
  • 17. Bootstrap $ node server.js varhttp =require('http'); http.createServer(function(req, res){ res.writeHead(200, { 'Content-Type': 'text/plain‘ }); res.end('Hello Worldn'); }).listen(1337, '127.0.0.1'); console.log('Server is running'); $ vertxrun server.rb require"vertx" Vertx::HttpServer.new.request_handler do |req| file =req.uri =="/"?"index.html": req.uri req.response.send_file "webroot/#{file}" end.listen(8080)
  • 18. Bootstrap $ node server.js varhttp =require('http'); http.createServer(function(req, res){ res.writeHead(200, { 'Content-Type': 'text/plain‘ }); res.end('Hello Worldn'); }).listen(1337, '127.0.0.1'); console.log('Server is running'); $ vertxrun Server.groovy vertx.createHttpServer().requestHandler {req -> def file =req.uri =="/"? "index.html": req.uri req.response.sendFile "app/$file" }.listen(8080)
  • 19. Bootstrap $ node server.js varhttp =require('http'); http.createServer(function(req, res){ res.writeHead(200, { 'Content-Type': 'text/plain‘ }); res.end('Hello Worldn'); }).listen(1337, '127.0.0.1'); console.log('Server is running'); $ vertxrun server.py importvertx server =vertx.create_http_server() @server.request_handler def request_handler(req): file ="index.html"ifreq.uri =="/"elsereq.uri req.response.send_file("app/%s"%file) server.listen(8080)
  • 20. Versus Environnement Modules npm Verticles Event Bus Shared Data 1 process Workflow
  • 21. Et les performances ? 0 200 400 600 800 1000 1200 1400 1600 1800 2000 Ajout JSON Hello World Concatenation String Fibo(30) recursif NodeJS (tr/s) Vert.X (tr/s) NodeJS (mem) Vert.X (mem)