6. Le web aujourd’hui
• 2010: 2 * 10⁹ utilisateurs
2016: 16 * 10⁹ appareils
(Giga)
• 2015: 1 zettaoctet de trafic
(10²¹)
• 3.6 exaoctets (10¹⁸) trafic de
données mobiles par mois
en 2014
www.ekito.fr 6
7. Les besoins actuels
• Contenu riche et en temps réel
• Disponibilité sur une
multitude d’appareils
• Réactivité mesurée en
millisecondes
• Time To Market
• Pression sur le coût
d’infrastructure
www.ekito.fr 7
8. Time is money
• : “… every 100ms of
latency costs 1% in sales.”
• : “… an extra 0.5 seconds in
search page generation time drops
traffic by 20%.”
www.ekito.fr 8
9. Le web et ces origines
• Conçu pour des documents statiques
• Modèle requête - réponse
• “Connectionless”
• Communication similaire au
télégraphe
• Unidirectionnel
• Interactivité simulée
• Nécessite des plug-ins
• polling / long polling
• Latence importante
• Capacités divergents entre différents
navigateurs web
www.ekito.fr 9
11. Architectures traditionnelles
HTTP (half duplex) TCP Full Duplex
Server-side
Web client Web App
logic RSS Client
Custom TCP
Long polling
Transformation
News feed
logic
Connection
management JDBC Client
JDBC / TCP
Web client Web App Database
User-initiated
refresh
Custom web
app mgmt. JMS Client
JMS / TCP
Management Message Broker
Web client Web App Management
Timed refresh Management
XMPP Client
XMPP / TCP
Java EE Container Chat Server
www.ekito.fr 11
12. Architectures traditionnelles
• Interfaçage du monde connecté (backend) avec un monde
déconnecté (Web)
• Besoin de “traduction”
• HTTP – communication en half duplex
• Ajax/Comet techniques (polling / long polling)
• Legacy Application/Web servers
• Difficultés de scalabilité pour une large audience web
• Traitement systématique des aller-retour par web middleware
• Réauthentification, ré-autorisation
• Latence et bande passante importante
• Entêtes HTTP de 800 à 2000 octets par requête / réponse
www.ekito.fr 12
15. Un nouveau standard…
• HTML5
• Support natif multimédia
(Audio, Video, 3D)
• Stockage locale dans navigateur
• Glisser-déposer
• Programmation concurrentielle
(WebWorkers)
• WebSockets
• Initié par Ian Hickson (Google) and
Kaazing
• Connected / Full-duplex
• Compatible avec HTTP
• Client/Server pour le web
www.ekito.fr 15
16. Une architecture allégée
• Conçu pour applications temps reel
• Full-duplex
• Moins de latence (< 1ms)
• Meilleure utilisation de bande passante
• Scalabilité massive grace à une
architecture simplifiée
• Fiabilité et résilience
• Guaranteed messages
• Support pour des appareils de tout type
• Haute disponibilité
• Support de tous les protocoles binaires et texte à
base de TCP vers le web
www.ekito.fr 16
17. Sous le capot - handshake
• Protocol upgrade http:// --> ws://
Source:
http://www.blog-nouvelles-technologies.fr/archives/3237/html5-websockets-le-successeur-du-protocole-http/
www.ekito.fr 17
18. Sous le capot –format de
trame
Source:
http://updates.html5rocks.com/2011/08/What-s-different-in-the-new-WebSocket-protocol
www.ekito.fr 18
19. Sous le capot - API
Source:
http://www.blog-nouvelles-technologies.fr/archives/3237/html5-websockets-le-successeur-du-protocole-http/
www.ekito.fr 19
20. Exemple : Connection
offloading
• Optimisation d’infrastructure
• Offload pour message broker
• Réduction de bande passante
www.ekito.fr 20
21. Exemple : Distribution de
contenu
• CDN pour messagerie web en temps réel
• Liens uniques entre sites géographiques
• Performance améliorée (localisation des
échanges)
www.ekito.fr 21
22. Exemple : Déploiement en
cloud
• Opens up Virtual Private Connection (VPC) for
cloud implementations
• Extend internal datacenter to the Cloud
• Can replace VPN
• Non disruptive to network operations
www.ekito.fr 22
24. Web socket – browser support
• Plusieurs versions
• Adoption progressive et support partiel par des
navigateurs
• Legacy browsers ???
Source:
http://en.wikipedia.org/wiki/WebSocket#Browser_support
www.ekito.fr 24
25. Websocket APIs, Middleware
• Le standard websocket seul ne suffit pas
– Gestion de reconnexion
– Stratégies de repli au cas d’incompatibilité ou
d’infrastructure legacy (routeur, pare-feu, navigateur)
– Sécurité
– Intégration avec infrastructure existante
Source:
http://en.wikipedia.org/wiki/WebSocket#Browser_support
www.ekito.fr 25
27. Websocket APIs, Middleware
• Kaazing Websocket Gateway
– Gateway implémenté en Java
– API client version « HTML 5 »
– APIs client de plus haut niveau (JMS/AMQP/XMPP over
Websocket)
– Solution de Sécurité intégrée
– Résilience avec fallback (Long polling …)
– Configuration en cluster pour Haute disponibilité /
scalabilité
– Professional services
www.ekito.fr 27
28. Websocket APIs, Middleware
• Socket.io (Open Source)
– API client JavaScript proche du standard HTML5
– Gateway implémenté en JavaScript sur Node.js
– Résilience avec long polling…
www.ekito.fr 28