fabernovel loader

6 févr. 2017 | 3 min de lecture

Tech

Parlons du streaming data !

Les fondements de l'expérience en temps réel

Hibat El Alami

Data & Automation Engineer


FABERNOVEL DATA & MEDIA
Le streaming data, mécanisme utilisé pour mettre à jour les données, est essentiel dans la création d'expériences en temps réel. Revenons ensemble sur ce qu'est le Streaming Data, et jetons un coup d'œil aux méthodes existantes et à ce qui les différencie.

Avez-vous déjà entendu parler du streaming data ?

Le streaming data est un mécanisme utilisé pour mettre à jour les données. Il est principalement utilisé pour créer des applications proposant une expérience en temps réel, comme les réseaux sociaux ou toute application nécessitant un système de notification en temps réel, les jeux vidéo ou encore chats. Il concerne tous types de données, dont les achats de e-commerce, les services géolocalisés, les logs, etc. Si certaines entreprises ont d’abord commencé avec des applications simples, comme l’émission d’alarmes lorsqu’un seuil est dépassé, il est intéressant d’aller plus loin et d’appliquer par exemple des algorithmes de machine learning. En général, le streaming data fournit aux entreprises des informations contenant des données enrichissantes et améliorent leur visibilité dans de nombreux aspects de leur activité client et business, dont l’activité du site Internet, la géolocalisation, l’utilisation de services, etc.

Comment ça marche ?

Maintenant que nous comprenons mieux ce qui se cache derrière le streaming data, jetons un œil aux méthodes existantes et à ce qui les différencie.

L’une des méthodes utilisées les plus anciennes et les plus populaires est le polling. Le polling consiste à envoyer la même requête au serveur, encore et encore, à intervalle régulier, afin d’obtenir des données en temps réel. La limite de cette méthode est évidemment le nombre de requêtes inutiles, avec des réponses nulles ou des réponses inchangées (car aucune modification n’a eu lieu sur le serveur entre temps). Avec ce processus, des ressources importantes sont gaspillées, comme le CPU (Central Processing Unit) ou la bande passante pour transférer des données inutiles. De plus, cet effet est multiplié par le nombre de clients ayant accès à ces données et le gaspillage est ressenti sur chaque appareil utilisé.

La méthode long polling a ensuite fait son apparition. Dans ce cas, le client interroge le serveur comme dans la méthode de polling classique, mais ce dernier ne répond que lorsqu’il a de nouvelles informations disponibles. Une fois la réponse envoyée, le client envoie immédiatement une autre requête, et ainsi de suite. Ceci résout en partie le problème mais nécessite tout de même de nombreuses requêtes pour conserver l’effet de données en temps réel.

L’émergence d’alternatives

Deux solutions ont été développées à partir de cette limite : WebSockets et Server-Sent Events. Quelles sont leurs différences ? Et laquelle utiliser en fonction de votre projet ?

D’un côté, WebSocket est un protocole de communication informatisé qui fournit des canaux de communication en duplex intégral par connexion TCP (Transmission Control Protocol).

De l’autre côté, Server-Sent Events (SSE) est une technologie dans laquelle un navigateur reçoit des mises à jour automatiques du serveur via une connexion HTTP.

Le principal avantage de WebSockets est donc une connexion bidirectionnelle qui permet au client et au serveur d’échanger des données. Il supporte le texte et les messages binaires et fonctionne sur tous les navigateurs, alors que Server-Sent Events ne supporte que le texte et ne fonctionne que sur les navigateurs modernes. Toutefois, Server-Sent Events peut gérer des pertes de connexion, et selon un test de performances sur différents navigateurs, il semble être beaucoup plus rapide que WebSockets. Malgré le fait que WebSocket est plus ancien, il comprend également des domaines d’utilisation plus larges et c’est pourquoi il a reçu plus d’attention et de clients, alors que Server-Sent Events n’est que peu connu.

Cependant, si chaque solution a ses points forts et ses limites, il vous faut choisir votre outil et votre méthode en fonction de l’objectif de votre application. Par exemple, si vous voulez créer un système de discussion instantanée, un jeu vidéo, une application de messagerie ou toute autre expérience interactive, WebSockets est la méthode à privilégier puisqu’elle permet un dialogue bidirectionnel entre le serveur et le client. Mais si vous vous contentez d’envoyer des données texte du serveur aux clients, ou si vous souhaitez uniquement mettre en place des dashboards en temps réel, Server-Sent Events sera la solution la plus appropriée car elle est plus rapide et facile à mettre en place pour ce type d’utilisations.

Intéressés par le streaming data ? Vous souhaitez en savoir plus ? Contactez-nous ! Nous serons ravis d’en parler avec vous !

Contactez-nous !
logo business unit

FABERNOVEL DATA & MEDIA

est une agence de performance multi-spécialiste, qui transforme la complexité du digital en pure performance. Experte en acquisition de trafic, optimisation de la conversion, et traitement et analyse de la donnée, FABERNOVEL DATA & MEDIA identifie et active les solutions les plus adaptées et innovantes pour ses clients.

à lire