SlideShare une entreprise Scribd logo
1  sur  26
Comment réduire la quantité de
données envoyées avec PUSH &
JSON Patch
12 Juin 2015
A propos de nous
Lorie Pisicchio
Scrum Master
Allan Denis
Product Owner
@StreamdataIO
Agenda
I - La problématique
II - Solutions d’aujourd’hui
III - Un pas vers le futur
IV - Demo Live Coding
V - Q&A
Explosion des usages
Des applications de plus en plus
« temps réel »
• Bourse / Paris en ligne
• Réseaux sociaux
• Moteurs de recherche
• News
• Biens / Services disponibles
(Sharing economy & promotions)
Round Trip Delay (ms)
ADSL, 1ère donnée utile en 60ms (HTTPS)
4G / LTE, 1ère donnée utile en 300 ms (450 ms in 3G)
300
150
110
100
30
25
10
0 50 100 150 200 250 300 350
EDGE/2G
3G
4G
Trans-continental optic fiber
Trans-country optic fiber
ADSL
In-town private network
HTTP/1
Ressenti des utilisateurs
Reaction time
of an app
Impact /
Feeling
0,1 Secondes0,5 2 3 5 101 4
« Slow »
40 à 60% drops
on desktop web
« Very slow »
30 à 40% drops
on mobile web
Loss of attention
Nervousness
Tiredness
« Regular »« Instant »
Perfect (eq.
Human
Realtionship)
No waiting
Une marche difficile à franchir
• Usages des services web explosent.
• Pile de protocoles pas designée pour les
usages d’aujourd’hui.
• Un monde qui devient de + en + temps réel.
• Limitation des réseaux mobiles (latence).
Une marche difficile à franchir
Les solutions? d’aujourd’hui
Les solutions? d’aujourd’hui
 Optimisations: CSS inlining, Minification JS
 Parallélisation des rêquetes par les navigateurs
 Données dynamiques: Polling / Long Polling
 Compression (gzip)
Les solutions? d’aujourd’hui
Un pas vers le futur
• HTTP/2
• Server-Sent Events (PUSH)
• JSON Patch (Mise à jour incrémentale des
données)
Un pas vers le futur
• HTTP/2
• Server-Sent Events (PUSH)
• JSON Patch (Mise à jour incrémentale des
données)
HTTP/2
• Protocole Binaire
• Multiplexing: Réutilisation de la même
connection TCP pour plusieurs requêtes HTTP
• Compression des Headers
• Cache Pushing: Permet de pousser
proactivement des données au client afin de
limiter les roundtrips réseau.
Server-Sent Events
Browser Support (source http://www.w3schools.com/html/html5_serversentevents.asp)
Les solutions pour les données dynamiques
Browser
support
Web infra
compatibility
Easiness to
dev
Load
(network /
Device)
Bidirectional App latency
Polling/Lon
g Polling
Websocket
SSE
SSE vs Websocket
Les avantages of SSE vs Websocket:
• Couche de transport basée sur HTTP.
• Possibilité d’utiliser un “polyfill” pour étendre la compatibilité.
• Mécanisme de re-connection avec reprise (event-id)
• Implémentation beaucoup plus simple
Les avantages des Websockets vs SSE:
• Communication bi-directionelle.
• Supporté plus largement par les navigateurs
SSE vs Websocket (Perf.)
Source http://matthiasnehlsen.com/blog/2013/05/01/server-sent-events-vs-websockets/
Use case: Préchargement de 500 Tweets sur une page web
(nginx configuré en tant que proxy)
Safari Chrome Firefox
Websockets 16s 8s 8s
SSE 7s 5s 6s
diff x2,2 x1,6 x1,3
https://github.com/matthiasn/BirdWatch
Standard for Incremental Updates:
JSON Patch
source http://jsonpatch.com/
{
"baz": "qux",
"foo": "bar"
}
The patch
The result
[
{ "op": "replace", "path": "/baz", "value": "boo" },
{ "op": "add", "path": "/hello", "value": ["world"] },
{ "op": "remove", "path": "/foo"}
]
{
"baz": "boo",
"hello": ["world"]
}
JSON Patch
C#
Demo Live Coding
by
API JCDecaux OpenData
https://github.com/streamdataio/bike-demo
Dynamic
cache
Push Incrementa
l updates

Contenu connexe

Similaire à Réduire les données et la latence avec push et json patch - RivieraDev Conf - Juin 2015

1 pourquoi le big data aujourdhui
1 pourquoi le big data aujourdhui1 pourquoi le big data aujourdhui
1 pourquoi le big data aujourdhuiRomain Jouin
 
2.0 Mode d'emploi Technologies
2.0 Mode d'emploi Technologies2.0 Mode d'emploi Technologies
2.0 Mode d'emploi TechnologiesGiroud Marie
 
Qu’est-ce que le Web 2.0 et le web 3.0 dans un contexte géomatique?
Qu’est-ce que le Web 2.0 et le web 3.0 dans un contexte géomatique?Qu’est-ce que le Web 2.0 et le web 3.0 dans un contexte géomatique?
Qu’est-ce que le Web 2.0 et le web 3.0 dans un contexte géomatique?Michelle Blanc
 
Du Big Data vers le SMART Data : Scénario d'un processus
Du Big Data vers le SMART Data : Scénario d'un processusDu Big Data vers le SMART Data : Scénario d'un processus
Du Big Data vers le SMART Data : Scénario d'un processusCHAKER ALLAOUI
 
Latence et streaming api Devoxx France 2015
Latence et streaming api  Devoxx France 2015Latence et streaming api  Devoxx France 2015
Latence et streaming api Devoxx France 2015streamdata.io
 
Production logicielle, outils et pratiques
Production logicielle, outils et pratiquesProduction logicielle, outils et pratiques
Production logicielle, outils et pratiquesJohan Moreau
 
Power BI hybride - La Passerelle de Gestion des Données
Power BI hybride - La Passerelle de Gestion des DonnéesPower BI hybride - La Passerelle de Gestion des Données
Power BI hybride - La Passerelle de Gestion des DonnéesJean-Pierre Riehl
 
SaaS ou l'informatique gratuite pour PME
SaaS ou l'informatique gratuite pour PMESaaS ou l'informatique gratuite pour PME
SaaS ou l'informatique gratuite pour PMEOlivier Tripet
 
Introduction au Cloud computing
Introduction au Cloud computingIntroduction au Cloud computing
Introduction au Cloud computingPhilippe Scoffoni
 
HTTP2 : ce qui va changer par Julien Landuré
HTTP2 : ce qui va changer par Julien LanduréHTTP2 : ce qui va changer par Julien Landuré
HTTP2 : ce qui va changer par Julien LanduréZenika
 
Le Web comme plateforme TIC pour l'entreprise
Le Web comme plateforme TIC pour l'entrepriseLe Web comme plateforme TIC pour l'entreprise
Le Web comme plateforme TIC pour l'entreprisemastertic
 
Le Web comme plateforme TIC pour l'entreprise
Le Web comme plateforme TIC pour l'entrepriseLe Web comme plateforme TIC pour l'entreprise
Le Web comme plateforme TIC pour l'entreprisemastertic
 
Le Web comme plateforme TIC pour l'entreprise
Le Web comme plateforme TIC pour l'entrepriseLe Web comme plateforme TIC pour l'entreprise
Le Web comme plateforme TIC pour l'entreprisemastertic
 
Azure Camp 9 Décembre 2014 - slides session développeurs IOT Big Data
Azure Camp 9 Décembre 2014 - slides session développeurs IOT Big DataAzure Camp 9 Décembre 2014 - slides session développeurs IOT Big Data
Azure Camp 9 Décembre 2014 - slides session développeurs IOT Big DataMicrosoft
 
VISEO Shake the Microsoft business - comment rapidement batir une solution IoT
VISEO Shake the Microsoft business - comment rapidement batir une solution IoTVISEO Shake the Microsoft business - comment rapidement batir une solution IoT
VISEO Shake the Microsoft business - comment rapidement batir une solution IoTFactoVia
 
Révolution dans l'analytique et les entrepôts de données à découvrir avec Intel
Révolution dans l'analytique et les entrepôts de données à découvrir avec IntelRévolution dans l'analytique et les entrepôts de données à découvrir avec Intel
Révolution dans l'analytique et les entrepôts de données à découvrir avec IntelMicrosoft Décideurs IT
 

Similaire à Réduire les données et la latence avec push et json patch - RivieraDev Conf - Juin 2015 (20)

1 pourquoi le big data aujourdhui
1 pourquoi le big data aujourdhui1 pourquoi le big data aujourdhui
1 pourquoi le big data aujourdhui
 
2.0 Mode d'emploi Technologies
2.0 Mode d'emploi Technologies2.0 Mode d'emploi Technologies
2.0 Mode d'emploi Technologies
 
Qu’est-ce que le Web 2.0 et le web 3.0 dans un contexte géomatique?
Qu’est-ce que le Web 2.0 et le web 3.0 dans un contexte géomatique?Qu’est-ce que le Web 2.0 et le web 3.0 dans un contexte géomatique?
Qu’est-ce que le Web 2.0 et le web 3.0 dans un contexte géomatique?
 
T
TT
T
 
2.0 TEchnologies
2.0 TEchnologies2.0 TEchnologies
2.0 TEchnologies
 
Du Big Data vers le SMART Data : Scénario d'un processus
Du Big Data vers le SMART Data : Scénario d'un processusDu Big Data vers le SMART Data : Scénario d'un processus
Du Big Data vers le SMART Data : Scénario d'un processus
 
Latence et streaming api Devoxx France 2015
Latence et streaming api  Devoxx France 2015Latence et streaming api  Devoxx France 2015
Latence et streaming api Devoxx France 2015
 
Ms days rdi - session cloud
Ms days rdi - session cloudMs days rdi - session cloud
Ms days rdi - session cloud
 
Production logicielle, outils et pratiques
Production logicielle, outils et pratiquesProduction logicielle, outils et pratiques
Production logicielle, outils et pratiques
 
Power BI hybride - La Passerelle de Gestion des Données
Power BI hybride - La Passerelle de Gestion des DonnéesPower BI hybride - La Passerelle de Gestion des Données
Power BI hybride - La Passerelle de Gestion des Données
 
SaaS ou l'informatique gratuite pour PME
SaaS ou l'informatique gratuite pour PMESaaS ou l'informatique gratuite pour PME
SaaS ou l'informatique gratuite pour PME
 
Introduction à Power Apps et Microsoft Flow
Introduction à Power Apps et Microsoft FlowIntroduction à Power Apps et Microsoft Flow
Introduction à Power Apps et Microsoft Flow
 
Introduction au Cloud computing
Introduction au Cloud computingIntroduction au Cloud computing
Introduction au Cloud computing
 
HTTP2 : ce qui va changer par Julien Landuré
HTTP2 : ce qui va changer par Julien LanduréHTTP2 : ce qui va changer par Julien Landuré
HTTP2 : ce qui va changer par Julien Landuré
 
Le Web comme plateforme TIC pour l'entreprise
Le Web comme plateforme TIC pour l'entrepriseLe Web comme plateforme TIC pour l'entreprise
Le Web comme plateforme TIC pour l'entreprise
 
Le Web comme plateforme TIC pour l'entreprise
Le Web comme plateforme TIC pour l'entrepriseLe Web comme plateforme TIC pour l'entreprise
Le Web comme plateforme TIC pour l'entreprise
 
Le Web comme plateforme TIC pour l'entreprise
Le Web comme plateforme TIC pour l'entrepriseLe Web comme plateforme TIC pour l'entreprise
Le Web comme plateforme TIC pour l'entreprise
 
Azure Camp 9 Décembre 2014 - slides session développeurs IOT Big Data
Azure Camp 9 Décembre 2014 - slides session développeurs IOT Big DataAzure Camp 9 Décembre 2014 - slides session développeurs IOT Big Data
Azure Camp 9 Décembre 2014 - slides session développeurs IOT Big Data
 
VISEO Shake the Microsoft business - comment rapidement batir une solution IoT
VISEO Shake the Microsoft business - comment rapidement batir une solution IoTVISEO Shake the Microsoft business - comment rapidement batir une solution IoT
VISEO Shake the Microsoft business - comment rapidement batir une solution IoT
 
Révolution dans l'analytique et les entrepôts de données à découvrir avec Intel
Révolution dans l'analytique et les entrepôts de données à découvrir avec IntelRévolution dans l'analytique et les entrepôts de données à découvrir avec Intel
Révolution dans l'analytique et les entrepôts de données à découvrir avec Intel
 

Réduire les données et la latence avec push et json patch - RivieraDev Conf - Juin 2015

  • 1. Comment réduire la quantité de données envoyées avec PUSH & JSON Patch 12 Juin 2015
  • 2. A propos de nous Lorie Pisicchio Scrum Master Allan Denis Product Owner @StreamdataIO
  • 3. Agenda I - La problématique II - Solutions d’aujourd’hui III - Un pas vers le futur IV - Demo Live Coding V - Q&A
  • 5. Des applications de plus en plus « temps réel » • Bourse / Paris en ligne • Réseaux sociaux • Moteurs de recherche • News • Biens / Services disponibles (Sharing economy & promotions)
  • 6. Round Trip Delay (ms) ADSL, 1ère donnée utile en 60ms (HTTPS) 4G / LTE, 1ère donnée utile en 300 ms (450 ms in 3G) 300 150 110 100 30 25 10 0 50 100 150 200 250 300 350 EDGE/2G 3G 4G Trans-continental optic fiber Trans-country optic fiber ADSL In-town private network
  • 8.
  • 9. Ressenti des utilisateurs Reaction time of an app Impact / Feeling 0,1 Secondes0,5 2 3 5 101 4 « Slow » 40 à 60% drops on desktop web « Very slow » 30 à 40% drops on mobile web Loss of attention Nervousness Tiredness « Regular »« Instant » Perfect (eq. Human Realtionship) No waiting
  • 10. Une marche difficile à franchir • Usages des services web explosent. • Pile de protocoles pas designée pour les usages d’aujourd’hui. • Un monde qui devient de + en + temps réel. • Limitation des réseaux mobiles (latence).
  • 11. Une marche difficile à franchir
  • 13. Les solutions? d’aujourd’hui  Optimisations: CSS inlining, Minification JS  Parallélisation des rêquetes par les navigateurs  Données dynamiques: Polling / Long Polling  Compression (gzip)
  • 15. Un pas vers le futur • HTTP/2 • Server-Sent Events (PUSH) • JSON Patch (Mise à jour incrémentale des données)
  • 16. Un pas vers le futur • HTTP/2 • Server-Sent Events (PUSH) • JSON Patch (Mise à jour incrémentale des données)
  • 17. HTTP/2 • Protocole Binaire • Multiplexing: Réutilisation de la même connection TCP pour plusieurs requêtes HTTP • Compression des Headers • Cache Pushing: Permet de pousser proactivement des données au client afin de limiter les roundtrips réseau.
  • 18. Server-Sent Events Browser Support (source http://www.w3schools.com/html/html5_serversentevents.asp)
  • 19. Les solutions pour les données dynamiques Browser support Web infra compatibility Easiness to dev Load (network / Device) Bidirectional App latency Polling/Lon g Polling Websocket SSE
  • 20. SSE vs Websocket Les avantages of SSE vs Websocket: • Couche de transport basée sur HTTP. • Possibilité d’utiliser un “polyfill” pour étendre la compatibilité. • Mécanisme de re-connection avec reprise (event-id) • Implémentation beaucoup plus simple Les avantages des Websockets vs SSE: • Communication bi-directionelle. • Supporté plus largement par les navigateurs
  • 21. SSE vs Websocket (Perf.) Source http://matthiasnehlsen.com/blog/2013/05/01/server-sent-events-vs-websockets/ Use case: Préchargement de 500 Tweets sur une page web (nginx configuré en tant que proxy) Safari Chrome Firefox Websockets 16s 8s 8s SSE 7s 5s 6s diff x2,2 x1,6 x1,3 https://github.com/matthiasn/BirdWatch
  • 22. Standard for Incremental Updates: JSON Patch source http://jsonpatch.com/ { "baz": "qux", "foo": "bar" } The patch The result [ { "op": "replace", "path": "/baz", "value": "boo" }, { "op": "add", "path": "/hello", "value": ["world"] }, { "op": "remove", "path": "/foo"} ] { "baz": "boo", "hello": ["world"] }

Notes de l'éditeur

  1. En mai 1996, HTTP/1.0 voit le jour et est décrit dans la RFC 1945. En janvier 1997, HTTP/1.1 devient finalement standard de l'IETF.
  2. ----- Notes de la réunion (12/06/2015 12:11) ----- - Temps de réaction humain si l'on marche sur un oursin 150ms - Temps de réaction humain pour répondre à une question ouverte 500ms - Sur Mobile est attente sont de plus en plus forte
  3. Polyfill pour IE OK avec Spartan / Edge
  4. Polling: Coute très cher en volume de donnée échangé mais si il n’y a pas de changement Pose encore plus de problème sur Mobile => Batterie (idée reçu sur le maintien de connexion peu impactant)
  5. Application client twitter dispo sur GitHub 1ère implémentation en websocket puis migration vers SSE