SlideShare une entreprise Scribd logo
1  sur  18
Télécharger pour lire hors ligne
CTO Crunch 
Push : pourquoi et comment ? 
Lorie Pisicchio
Impact de la latence 
Temps de réaction du cerveau humain : 500ms 
Latence applicative : peut atteindre plusieurs secondes! 
+100ms de latence ⇒ -1% de revenu 
+0,5s de temps de chargement additionnel ⇒ -20% de trafic 
5 ms de retard⇒ Perte de $4m/ms 
Source : http://highscalability.com/latency-everywhere-and-it-costs-you-sales-how-crush-it
Les origines de la latence 
Origines de la latence : 
● État du réseau mobile 
● Réactivité du (des) backend(s) auxquels l’application 
est connectée 
● Verbosité des APIs 
● Nécessité de filtrer et d'agréger les données
Pas de cache 
Avantages 
● Données toujours à jour quand on 
affiche l’écran 
Inconvénients 
● Données non rafraîchies tant qu’on ne 
change pas d’écran 
● Chargement des données à chaque fois 
○ Forte dépendance réseau 
○ Charge sur le SI
Cache côté client + polling 
Avantages 
● Données toujours à jour quand on 
affiche l’écran 
● Données rafraîchies régulièrement 
● Off-line possible 
Inconvénients 
● Charge sur le SI (polling) 
● Utilisation de la bande passante, du CPU 
et de la batterie sur le device 
● Comment déterminer une fréquence de 
polling optimal?
Cache client + serveur + polling 
Avantages 
● Données à jour quand on affiche l’écran 
et rafraîchies régulièrement 
● Off-line possible 
● Réduction de la charge sur le SI 
● Possibilité de téléchargement 
conditionnel (ETag) 
Inconvénients 
● La charge sur le SI peut devenir 
importante si beaucoup de clients 
● Réduction de l’utilisation de la bande 
passante et du CPU, mais toujours élevé 
● Nécessite de télécharger tout le 
document même si une petite partie des 
données a changé 
Middleware
Cache client + serveur + mises à jour 
incrémentales en mode push 
Avantages 
● Off-line possible 
● Réduction de la charge sur le SI 
● Possibilité de détecter une modification 
dans le cache 
● Mise à jour incrémentale permet d’ 
optimiser l’utilisation du réseau et du 
CPU 
● Données toujours à jour 
Inconvénients 
● ? 
Middleware 
Δ 
Δ
Comment faire du Push ? 
Nécessite une connexion bi-directionnelle permanente 
entre le serveur et le client 
● Comet / Ajax / Long polling 
● Websocket 
● SSE
Comet/Ajax/Long polling 
● Envoi d’une requête au serveur 
● Le serveur garde la requête ouverte un certain temps 
○ Si donnée : envoi de la réponse 
○ Sinon : réponse pour terminer la requête 
● Simule du Push 
● Supporté par tous les navigateurs 
● Pas performant en cas de mises à jour trop fréquentes
WebSockets 
● Protocole basé sur TCP 
● Canal de communication bi-directionnel “full-duplex” 
● Protocole spécifique pas supporté par tous les 
Firewall/Proxy 
● Nécessite d’implémenter son propre protocole
Support WebSockets 
Source : http://caniuse.com/#feat=websockets
SSE 
● API Javascript (EventSource) permettant au serveur d’ 
envoyer des évènements au client 
● La norme prévoit le réveil des client par l’opérateur 
● Envoi de données par le client pas couvert (latence plus 
importante) 
● Basé sur HTTP, donc supporté par tous les 
Firewall/Proxy 
● Pas supporté par tous les navigateurs
Support SSE 
Source : http://caniuse.com/#search=Server
Notre prochain produit 
Proxy aas 
Pull 
REST API 
Push REST 
API 
Beta testeur ?
WebSocket SSE 
Over a custom protocol Over simple HTTP 
Full-Duplex, bi directional Server push only 
Native support in most browsers Can be poly-filled to backport 
Not straight forward protocol Simpler protocol 
Pre-defined message handlers Arbitrary event 
Application specific Built-in support for re-connection and 
event id 
Require server/proxy config No changes required 
ArrayBuffer and Blob No support for binary types
Le Push réduit l’overhead de 95% 
Surcharge de données inutiles échangées sur le réseau en Polling 
1 polling/seconde 
vs 1 message/seconde en Push 
● Cas A : 1 000 clients 
● Cas B : 10 000 clients 
● Cas C : 100 000 clients 
Source : http://www.websocket.org/quantum.html
Motwin : MOS

Contenu connexe

Tendances

Bien qu'en ligne votre site web n'est probablement pas en production
Bien qu'en ligne votre site web n'est probablement pas en productionBien qu'en ligne votre site web n'est probablement pas en production
Bien qu'en ligne votre site web n'est probablement pas en productionMarc Boivin
 
Comment améliorer la performance de vos sites et applications web présen...
Comment améliorer la performance de vos sites et applications web    présen...Comment améliorer la performance de vos sites et applications web    présen...
Comment améliorer la performance de vos sites et applications web présen...Roland Coma
 
RennesJS Talk webperf by Dareboost
RennesJS Talk webperf by DareboostRennesJS Talk webperf by Dareboost
RennesJS Talk webperf by DareboostDamien Jubeau
 
Optimiser WordPress
Optimiser WordPressOptimiser WordPress
Optimiser WordPressChi Nacim
 
Deboguer Avec Firephp
Deboguer Avec FirephpDeboguer Avec Firephp
Deboguer Avec FirephpDamien Seguy
 
Déboguer une application web avec FirePHP
Déboguer une application web avec FirePHPDéboguer une application web avec FirePHP
Déboguer une application web avec FirePHPJean-Marc Fontaine
 
WordCamp Lille 2018 : Comprendre et utiliser l'API REST de WooCommerce
WordCamp Lille 2018 : Comprendre et utiliser l'API REST de WooCommerceWordCamp Lille 2018 : Comprendre et utiliser l'API REST de WooCommerce
WordCamp Lille 2018 : Comprendre et utiliser l'API REST de WooCommerceVaisonet
 
Node.js et les nouvelles technologies javascript
Node.js et les nouvelles technologies javascriptNode.js et les nouvelles technologies javascript
Node.js et les nouvelles technologies javascriptKhalid Jebbari
 
Héberger son site web sur le cloud avec Windows Azure
Héberger son site web sur le cloud avec Windows AzureHéberger son site web sur le cloud avec Windows Azure
Héberger son site web sur le cloud avec Windows AzureMCKLMT
 
Le Web comme plateforme applicative - comment programme-t-on le Web?
Le Web comme plateforme applicative - comment programme-t-on le Web?Le Web comme plateforme applicative - comment programme-t-on le Web?
Le Web comme plateforme applicative - comment programme-t-on le Web?Francois Daoust
 
2014.12.11 - TECH CONF #3 - Présentation Node.js
2014.12.11 - TECH CONF #3 - Présentation Node.js2014.12.11 - TECH CONF #3 - Présentation Node.js
2014.12.11 - TECH CONF #3 - Présentation Node.jsTelecomValley
 
Utilisation de node.js avec mongoDB
Utilisation de node.js avec mongoDBUtilisation de node.js avec mongoDB
Utilisation de node.js avec mongoDB13p
 
Création d’application facile en html via node-webkit
Création d’application facile en html via node-webkitCréation d’application facile en html via node-webkit
Création d’application facile en html via node-webkitIsenDev
 
2014 applications web sur Azure
2014 applications web sur Azure2014 applications web sur Azure
2014 applications web sur AzureJulien Plée
 

Tendances (20)

Bien qu'en ligne votre site web n'est probablement pas en production
Bien qu'en ligne votre site web n'est probablement pas en productionBien qu'en ligne votre site web n'est probablement pas en production
Bien qu'en ligne votre site web n'est probablement pas en production
 
Comment améliorer la performance de vos sites et applications web présen...
Comment améliorer la performance de vos sites et applications web    présen...Comment améliorer la performance de vos sites et applications web    présen...
Comment améliorer la performance de vos sites et applications web présen...
 
Un navigateur, comment ça marche
Un navigateur, comment ça marche  Un navigateur, comment ça marche
Un navigateur, comment ça marche
 
RennesJS Talk webperf by Dareboost
RennesJS Talk webperf by DareboostRennesJS Talk webperf by Dareboost
RennesJS Talk webperf by Dareboost
 
Optimiser wordpress
Optimiser wordpressOptimiser wordpress
Optimiser wordpress
 
Optimiser WordPress
Optimiser WordPressOptimiser WordPress
Optimiser WordPress
 
Deboguer Avec Firephp
Deboguer Avec FirephpDeboguer Avec Firephp
Deboguer Avec Firephp
 
Déboguer une application web avec FirePHP
Déboguer une application web avec FirePHPDéboguer une application web avec FirePHP
Déboguer une application web avec FirePHP
 
WordCamp Lille 2018 : Comprendre et utiliser l'API REST de WooCommerce
WordCamp Lille 2018 : Comprendre et utiliser l'API REST de WooCommerceWordCamp Lille 2018 : Comprendre et utiliser l'API REST de WooCommerce
WordCamp Lille 2018 : Comprendre et utiliser l'API REST de WooCommerce
 
Node.js et les nouvelles technologies javascript
Node.js et les nouvelles technologies javascriptNode.js et les nouvelles technologies javascript
Node.js et les nouvelles technologies javascript
 
Héberger son site web sur le cloud avec Windows Azure
Héberger son site web sur le cloud avec Windows AzureHéberger son site web sur le cloud avec Windows Azure
Héberger son site web sur le cloud avec Windows Azure
 
Le Web comme plateforme applicative - comment programme-t-on le Web?
Le Web comme plateforme applicative - comment programme-t-on le Web?Le Web comme plateforme applicative - comment programme-t-on le Web?
Le Web comme plateforme applicative - comment programme-t-on le Web?
 
CasperJS
CasperJSCasperJS
CasperJS
 
Angular retro
Angular retroAngular retro
Angular retro
 
2014.12.11 - TECH CONF #3 - Présentation Node.js
2014.12.11 - TECH CONF #3 - Présentation Node.js2014.12.11 - TECH CONF #3 - Présentation Node.js
2014.12.11 - TECH CONF #3 - Présentation Node.js
 
Présentation stockage
Présentation stockagePrésentation stockage
Présentation stockage
 
Utilisation de node.js avec mongoDB
Utilisation de node.js avec mongoDBUtilisation de node.js avec mongoDB
Utilisation de node.js avec mongoDB
 
Création d’application facile en html via node-webkit
Création d’application facile en html via node-webkitCréation d’application facile en html via node-webkit
Création d’application facile en html via node-webkit
 
Smtp et filtrage
Smtp et filtrageSmtp et filtrage
Smtp et filtrage
 
2014 applications web sur Azure
2014 applications web sur Azure2014 applications web sur Azure
2014 applications web sur Azure
 

En vedette

09 diario de operaciones de cabrera, morella 1838
09 diario de operaciones de cabrera, morella 183809 diario de operaciones de cabrera, morella 1838
09 diario de operaciones de cabrera, morella 1838aulamilitar
 
Présentation de la Politique d’accueil et de soutien des étudiantes étudiants...
Présentation de la Politique d’accueil et de soutien des étudiantes étudiants...Présentation de la Politique d’accueil et de soutien des étudiantes étudiants...
Présentation de la Politique d’accueil et de soutien des étudiantes étudiants...Services à la vie étudiante de l'UQAM
 
18 condecoraciones militares relativas a la provincia de castellón
18 condecoraciones militares relativas a la provincia de castellón18 condecoraciones militares relativas a la provincia de castellón
18 condecoraciones militares relativas a la provincia de castellónaulamilitar
 
Clase presentación
Clase presentaciónClase presentación
Clase presentaciónmorayclaw
 
Jean-Pascal couturier : présentation jeux de rôles
Jean-Pascal couturier : présentation jeux de rôlesJean-Pascal couturier : présentation jeux de rôles
Jean-Pascal couturier : présentation jeux de rôlesJean-pascal-Couturier
 
WÉBINAIRE : I’ultime guide de survie du eCommerce – Préparez-vous à conquérir...
WÉBINAIRE : I’ultime guide de survie du eCommerce – Préparez-vous à conquérir...WÉBINAIRE : I’ultime guide de survie du eCommerce – Préparez-vous à conquérir...
WÉBINAIRE : I’ultime guide de survie du eCommerce – Préparez-vous à conquérir...Nosto
 
16 cuando la pampa argentina era española. la fundacion del cuerpo de blanden...
16 cuando la pampa argentina era española. la fundacion del cuerpo de blanden...16 cuando la pampa argentina era española. la fundacion del cuerpo de blanden...
16 cuando la pampa argentina era española. la fundacion del cuerpo de blanden...aulamilitar
 
FICHA DE APOYO Y RESEÑA
FICHA DE APOYO Y RESEÑA FICHA DE APOYO Y RESEÑA
FICHA DE APOYO Y RESEÑA Cindy Jaen
 
8888
88888888
8888Beach
 
Voyage en Italie 2014 - Mission théatre
Voyage en Italie 2014 - Mission théatre Voyage en Italie 2014 - Mission théatre
Voyage en Italie 2014 - Mission théatre i-voix
 
Las nuevas tecnologías en la educación szwako igor
Las nuevas tecnologías en la educación szwako igorLas nuevas tecnologías en la educación szwako igor
Las nuevas tecnologías en la educación szwako igorIgorSzwako
 
47 buscando al dr tallenberg en la batalla de morella
47 buscando al dr tallenberg en la batalla de morella47 buscando al dr tallenberg en la batalla de morella
47 buscando al dr tallenberg en la batalla de morellaaulamilitar
 
Le partage dans tous ses états
Le partage dans tous ses étatsLe partage dans tous ses états
Le partage dans tous ses étatsGabriel Sos
 
Universidad central del ecuador proyecto de fep(1)
Universidad central del ecuador proyecto de fep(1)Universidad central del ecuador proyecto de fep(1)
Universidad central del ecuador proyecto de fep(1)Alexandra Peralvo
 

En vedette (20)

09 diario de operaciones de cabrera, morella 1838
09 diario de operaciones de cabrera, morella 183809 diario de operaciones de cabrera, morella 1838
09 diario de operaciones de cabrera, morella 1838
 
Présentation de la Politique d’accueil et de soutien des étudiantes étudiants...
Présentation de la Politique d’accueil et de soutien des étudiantes étudiants...Présentation de la Politique d’accueil et de soutien des étudiantes étudiants...
Présentation de la Politique d’accueil et de soutien des étudiantes étudiants...
 
18 condecoraciones militares relativas a la provincia de castellón
18 condecoraciones militares relativas a la provincia de castellón18 condecoraciones militares relativas a la provincia de castellón
18 condecoraciones militares relativas a la provincia de castellón
 
Clase presentación
Clase presentaciónClase presentación
Clase presentación
 
Jean-Pascal couturier : présentation jeux de rôles
Jean-Pascal couturier : présentation jeux de rôlesJean-Pascal couturier : présentation jeux de rôles
Jean-Pascal couturier : présentation jeux de rôles
 
WÉBINAIRE : I’ultime guide de survie du eCommerce – Préparez-vous à conquérir...
WÉBINAIRE : I’ultime guide de survie du eCommerce – Préparez-vous à conquérir...WÉBINAIRE : I’ultime guide de survie du eCommerce – Préparez-vous à conquérir...
WÉBINAIRE : I’ultime guide de survie du eCommerce – Préparez-vous à conquérir...
 
16 cuando la pampa argentina era española. la fundacion del cuerpo de blanden...
16 cuando la pampa argentina era española. la fundacion del cuerpo de blanden...16 cuando la pampa argentina era española. la fundacion del cuerpo de blanden...
16 cuando la pampa argentina era española. la fundacion del cuerpo de blanden...
 
Apple
AppleApple
Apple
 
FICHA DE APOYO Y RESEÑA
FICHA DE APOYO Y RESEÑA FICHA DE APOYO Y RESEÑA
FICHA DE APOYO Y RESEÑA
 
Double vision
Double visionDouble vision
Double vision
 
Unidad didactica
Unidad didacticaUnidad didactica
Unidad didactica
 
Metz
MetzMetz
Metz
 
Actividad 4
Actividad 4Actividad 4
Actividad 4
 
8888
88888888
8888
 
Voyage en Italie 2014 - Mission théatre
Voyage en Italie 2014 - Mission théatre Voyage en Italie 2014 - Mission théatre
Voyage en Italie 2014 - Mission théatre
 
Las nuevas tecnologías en la educación szwako igor
Las nuevas tecnologías en la educación szwako igorLas nuevas tecnologías en la educación szwako igor
Las nuevas tecnologías en la educación szwako igor
 
Test
TestTest
Test
 
47 buscando al dr tallenberg en la batalla de morella
47 buscando al dr tallenberg en la batalla de morella47 buscando al dr tallenberg en la batalla de morella
47 buscando al dr tallenberg en la batalla de morella
 
Le partage dans tous ses états
Le partage dans tous ses étatsLe partage dans tous ses états
Le partage dans tous ses états
 
Universidad central del ecuador proyecto de fep(1)
Universidad central del ecuador proyecto de fep(1)Universidad central del ecuador proyecto de fep(1)
Universidad central del ecuador proyecto de fep(1)
 

Similaire à Motwin - cto crunch - 141205 - Optimiser la latence applicative mobile

20120402 nantes gtug - app engine
20120402   nantes gtug - app engine20120402   nantes gtug - app engine
20120402 nantes gtug - app engineGDG Nantes
 
Retour AFUP du forumphp 2017
Retour AFUP du forumphp 2017Retour AFUP du forumphp 2017
Retour AFUP du forumphp 2017AFUP_Limoges
 
resume-theorique-m107-2203-6246f60d6b994.pdf
resume-theorique-m107-2203-6246f60d6b994.pdfresume-theorique-m107-2203-6246f60d6b994.pdf
resume-theorique-m107-2203-6246f60d6b994.pdfFootballLovers9
 
Développer et déployer une application php maintenable
Développer et déployer une application php maintenableDévelopper et déployer une application php maintenable
Développer et déployer une application php maintenableLeTesteur
 
Panel de solutions javascript
Panel de solutions javascriptPanel de solutions javascript
Panel de solutions javascriptjp_mouton
 
Les Web APIs en .NET Core
Les Web APIs en .NET CoreLes Web APIs en .NET Core
Les Web APIs en .NET CoreFrançois Camus
 
Les containers docker vu par un chef cuisinier et un mécanicien
Les containers docker vu par un chef cuisinier et un mécanicienLes containers docker vu par un chef cuisinier et un mécanicien
Les containers docker vu par un chef cuisinier et un mécanicienRachid Zarouali
 
TechDays 2011 - VIR302 virtualiser vos applications métiers critiques sous hy...
TechDays 2011 - VIR302 virtualiser vos applications métiers critiques sous hy...TechDays 2011 - VIR302 virtualiser vos applications métiers critiques sous hy...
TechDays 2011 - VIR302 virtualiser vos applications métiers critiques sous hy...Patrick Guimonet
 
Morning tech #2 - Démarche performance slides
Morning tech #2 - Démarche performance slidesMorning tech #2 - Démarche performance slides
Morning tech #2 - Démarche performance slidesOxalide
 
Oxalide Morning tech #2 - démarche performance
Oxalide Morning tech #2 - démarche performanceOxalide Morning tech #2 - démarche performance
Oxalide Morning tech #2 - démarche performanceLudovic Piot
 
LoadTime & SEO - Erlé Alberton
LoadTime & SEO - Erlé AlbertonLoadTime & SEO - Erlé Alberton
LoadTime & SEO - Erlé AlbertonWeLoveSEO
 
We❤️SEO 2019 : WebPerf et SEO
We❤️SEO 2019 : WebPerf et SEOWe❤️SEO 2019 : WebPerf et SEO
We❤️SEO 2019 : WebPerf et SEOErlé Alberton
 
Web perf Silicon Comte
Web perf Silicon ComteWeb perf Silicon Comte
Web perf Silicon ComteSilicon Comté
 
Presentation mididulibrev2.0
Presentation mididulibrev2.0Presentation mididulibrev2.0
Presentation mididulibrev2.0robertpluss
 
Meetup du 21 septembre 2017
Meetup du 21 septembre 2017Meetup du 21 septembre 2017
Meetup du 21 septembre 2017AFUP_Limoges
 

Similaire à Motwin - cto crunch - 141205 - Optimiser la latence applicative mobile (20)

20120402 nantes gtug - app engine
20120402   nantes gtug - app engine20120402   nantes gtug - app engine
20120402 nantes gtug - app engine
 
Retour AFUP du forumphp 2017
Retour AFUP du forumphp 2017Retour AFUP du forumphp 2017
Retour AFUP du forumphp 2017
 
Advanced html5
Advanced html5Advanced html5
Advanced html5
 
resume-theorique-m107-2203-6246f60d6b994.pdf
resume-theorique-m107-2203-6246f60d6b994.pdfresume-theorique-m107-2203-6246f60d6b994.pdf
resume-theorique-m107-2203-6246f60d6b994.pdf
 
Développer et déployer une application php maintenable
Développer et déployer une application php maintenableDévelopper et déployer une application php maintenable
Développer et déployer une application php maintenable
 
Support de cours angular
Support de cours angularSupport de cours angular
Support de cours angular
 
Panel de solutions javascript
Panel de solutions javascriptPanel de solutions javascript
Panel de solutions javascript
 
Les Web APIs en .NET Core
Les Web APIs en .NET CoreLes Web APIs en .NET Core
Les Web APIs en .NET Core
 
Meteor js 1.0
Meteor js 1.0Meteor js 1.0
Meteor js 1.0
 
Les containers docker vu par un chef cuisinier et un mécanicien
Les containers docker vu par un chef cuisinier et un mécanicienLes containers docker vu par un chef cuisinier et un mécanicien
Les containers docker vu par un chef cuisinier et un mécanicien
 
TechDays 2011 - VIR302 virtualiser vos applications métiers critiques sous hy...
TechDays 2011 - VIR302 virtualiser vos applications métiers critiques sous hy...TechDays 2011 - VIR302 virtualiser vos applications métiers critiques sous hy...
TechDays 2011 - VIR302 virtualiser vos applications métiers critiques sous hy...
 
Propostion un Iaas
Propostion un IaasPropostion un Iaas
Propostion un Iaas
 
Morning tech #2 - Démarche performance slides
Morning tech #2 - Démarche performance slidesMorning tech #2 - Démarche performance slides
Morning tech #2 - Démarche performance slides
 
Oxalide Morning tech #2 - démarche performance
Oxalide Morning tech #2 - démarche performanceOxalide Morning tech #2 - démarche performance
Oxalide Morning tech #2 - démarche performance
 
LoadTime & SEO - Erlé Alberton
LoadTime & SEO - Erlé AlbertonLoadTime & SEO - Erlé Alberton
LoadTime & SEO - Erlé Alberton
 
We❤️SEO 2019 : WebPerf et SEO
We❤️SEO 2019 : WebPerf et SEOWe❤️SEO 2019 : WebPerf et SEO
We❤️SEO 2019 : WebPerf et SEO
 
Web perf Silicon Comte
Web perf Silicon ComteWeb perf Silicon Comte
Web perf Silicon Comte
 
Presentation mididulibrev2.0
Presentation mididulibrev2.0Presentation mididulibrev2.0
Presentation mididulibrev2.0
 
Cahier des charges
Cahier des charges Cahier des charges
Cahier des charges
 
Meetup du 21 septembre 2017
Meetup du 21 septembre 2017Meetup du 21 septembre 2017
Meetup du 21 septembre 2017
 

Motwin - cto crunch - 141205 - Optimiser la latence applicative mobile

  • 1. CTO Crunch Push : pourquoi et comment ? Lorie Pisicchio
  • 2. Impact de la latence Temps de réaction du cerveau humain : 500ms Latence applicative : peut atteindre plusieurs secondes! +100ms de latence ⇒ -1% de revenu +0,5s de temps de chargement additionnel ⇒ -20% de trafic 5 ms de retard⇒ Perte de $4m/ms Source : http://highscalability.com/latency-everywhere-and-it-costs-you-sales-how-crush-it
  • 3. Les origines de la latence Origines de la latence : ● État du réseau mobile ● Réactivité du (des) backend(s) auxquels l’application est connectée ● Verbosité des APIs ● Nécessité de filtrer et d'agréger les données
  • 4. Pas de cache Avantages ● Données toujours à jour quand on affiche l’écran Inconvénients ● Données non rafraîchies tant qu’on ne change pas d’écran ● Chargement des données à chaque fois ○ Forte dépendance réseau ○ Charge sur le SI
  • 5. Cache côté client + polling Avantages ● Données toujours à jour quand on affiche l’écran ● Données rafraîchies régulièrement ● Off-line possible Inconvénients ● Charge sur le SI (polling) ● Utilisation de la bande passante, du CPU et de la batterie sur le device ● Comment déterminer une fréquence de polling optimal?
  • 6. Cache client + serveur + polling Avantages ● Données à jour quand on affiche l’écran et rafraîchies régulièrement ● Off-line possible ● Réduction de la charge sur le SI ● Possibilité de téléchargement conditionnel (ETag) Inconvénients ● La charge sur le SI peut devenir importante si beaucoup de clients ● Réduction de l’utilisation de la bande passante et du CPU, mais toujours élevé ● Nécessite de télécharger tout le document même si une petite partie des données a changé Middleware
  • 7. Cache client + serveur + mises à jour incrémentales en mode push Avantages ● Off-line possible ● Réduction de la charge sur le SI ● Possibilité de détecter une modification dans le cache ● Mise à jour incrémentale permet d’ optimiser l’utilisation du réseau et du CPU ● Données toujours à jour Inconvénients ● ? Middleware Δ Δ
  • 8. Comment faire du Push ? Nécessite une connexion bi-directionnelle permanente entre le serveur et le client ● Comet / Ajax / Long polling ● Websocket ● SSE
  • 9. Comet/Ajax/Long polling ● Envoi d’une requête au serveur ● Le serveur garde la requête ouverte un certain temps ○ Si donnée : envoi de la réponse ○ Sinon : réponse pour terminer la requête ● Simule du Push ● Supporté par tous les navigateurs ● Pas performant en cas de mises à jour trop fréquentes
  • 10. WebSockets ● Protocole basé sur TCP ● Canal de communication bi-directionnel “full-duplex” ● Protocole spécifique pas supporté par tous les Firewall/Proxy ● Nécessite d’implémenter son propre protocole
  • 11. Support WebSockets Source : http://caniuse.com/#feat=websockets
  • 12. SSE ● API Javascript (EventSource) permettant au serveur d’ envoyer des évènements au client ● La norme prévoit le réveil des client par l’opérateur ● Envoi de données par le client pas couvert (latence plus importante) ● Basé sur HTTP, donc supporté par tous les Firewall/Proxy ● Pas supporté par tous les navigateurs
  • 13. Support SSE Source : http://caniuse.com/#search=Server
  • 14. Notre prochain produit Proxy aas Pull REST API Push REST API Beta testeur ?
  • 15.
  • 16. WebSocket SSE Over a custom protocol Over simple HTTP Full-Duplex, bi directional Server push only Native support in most browsers Can be poly-filled to backport Not straight forward protocol Simpler protocol Pre-defined message handlers Arbitrary event Application specific Built-in support for re-connection and event id Require server/proxy config No changes required ArrayBuffer and Blob No support for binary types
  • 17. Le Push réduit l’overhead de 95% Surcharge de données inutiles échangées sur le réseau en Polling 1 polling/seconde vs 1 message/seconde en Push ● Cas A : 1 000 clients ● Cas B : 10 000 clients ● Cas C : 100 000 clients Source : http://www.websocket.org/quantum.html