Systèmes de streaming distribués - Page 1 - Husam Alustwani Systèmes de streaming distribués Interactivité et disponibilité des données Editions EDILIVRE APARIS Collection Universitaire 75008 Paris – 2010 5 Tous nos livres sont imprimés dans les règles environnementales les plus strictes Il est interdit de reproduire intégralement ou partiellement la présente publication sans autorisation du Centre Français d’exploitation du droit de Copie (CFC) – 20 rue des Grands-Augustins – 75006 PARIS – Tél. : 01 41 62 14 40 / Fax : 01 41 62 14 50. © Éditions Edilivre – Collection Universitaire – 2010 ISBN : 978-2-8121-3410-4 Dépôt légal : Juin 2010 Tous droits de reproduction, d’adaptation et de traduction, intégrale ou partielle réservés pour tous pays 6 Sommaire Résumé.................................................................................................................................... 13 Introduction ........................................................................................................................... 13 Contributions ......................................................................................................................... 17 Plan du document .................................................................................................................. 21 1 – Systèmes de streaming distribués : vue d’ensemble ..................................................... 23 1.1 Les données audiovisuelles ........................................................................................... 24 1.1.1 Caractéristiques ...................................................................................................... 24 1.1.2 Encodage ................................................................................................................ 27 1.1.3 Formats audiovisuels .............................................................................................. 31 1.2 Streaming audiovisuel ................................................................................................... 32 1.2.1 Streaming versus téléchargement ........................................................................... 33 1.2.2 Avantages ............................................................................................................... 35 1.2.3 Modes ..................................................................................................................... 35 1.2.4 Applications ............................................................................................................ 37 1.3 Système de streaming .................................................................................................... 38 1.3.1 Lecteur audiovisuel................................................................................................. 38 1.3.2 Réseaux et streaming .............................................................................................. 41 1.3.3 Serveur de streaming .............................................................................................. 44 1.3.4 « Client pull » versus « serveur push »................................................................... 58 1.4 Les caches dans les systèmes de streaming ................................................................... 59 1.4.1 Cache de lecture...................................................................................................... 60 1.4.2 Cache de serveur..................................................................................................... 61 1.4.3 Caches de réseau (« Proxy ») ................................................................................. 63 1.5 Streaming distribué ........................................................................................................ 67 9 1.5.1 Serveurs sur grappe de machines ............................................................................ 68 1.5.2 Serveur sur grille ..................................................................................................... 70 1.5.3 Streaming collaboratif ............................................................................................. 72 2 – Interactivité dans les présentations multimédias .......................................................... 73 2.1 Présentations multimédias.............................................................................................. 74 2.1.1 Composition ............................................................................................................ 74 2.1.2 Synchronisation durant une présentation ................................................................ 76 2.1.3 Spécifications et environnements d’édition ............................................................ 77 2.1.4 Systèmes de streaming multimédia ......................................................................... 79 2.1.5 Navigation dans les présentations multimédias ...................................................... 82 2.2 Parcours rapide dans les présentations multimédias ...................................................... 87 2.2.1 Problématique ......................................................................................................... 87 2.2.2 Parcours rapide proposé .......................................................................................... 88 2.2.3 Mise en œuvre ......................................................................................................... 91 2.2.4 Politique de préchargement : CPS .......................................................................... 92 2.3 Étude de performance .................................................................................................... 98 2.3.1 Scénario de test ....................................................................................................... 99 2.3.2 Résultats .................................................................................................................. 100 2.3.3 Discussion ............................................................................................................... 105 2.4 Conclusion ..................................................................................................................... 105 3 – Disponibilité des données dans les systèmes de streaming P2P ................................... 107 3.1 Systèmes pair-à -pair ....................................................................................................... 108 3.1.1 Définitions ............................................................................................................... 108 3.1.2 Caractéristiques ....................................................................................................... 109 3.1.3 Taxinomie des architectures.................................................................................... 110 3.1.4 Domaines d’applications ......................................................................................... 114 Partage de fichiers ............................................................................................................ 115 3.2 Systèmes de streaming P2P............................................................................................ 117 3.2.1 Architectures hybrides ............................................................................................ 117 3.2.2 Architecture pair-à -pair ........................................................................................... 120 3.3 Disponibilité de données dans les systèmes de streaming P2P ...................................... 122 3.3.1 Description du problème ......................................................................................... 123 10 3.3.2 Mise en cache des suffixes ..................................................................................... 126 3.4 Étude de performances .................................................................................................. 136 3.4.1 Scénarios de tests .................................................................................................... 136 3.4.2 Résultats ................................................................................................................. 137 3.4.3 Discussion............................................................................................................... 141 3.5 Conclusion ..................................................................................................................... 142 4 – JStreaper : un système de streaming Pair-à -Pair ......................................................... 143 4.1 Architecture logicielle ................................................................................................... 144 4.1.1 Scénario d’utilisation .............................................................................................. 145 4.1.2 Modèle de communication ..................................................................................... 145 4.1.3 Dispatcher ............................................................................................................... 145 4.1.4 Streaper ................................................................................................................... 146 4.2 Choix d’implémentation ................................................................................................ 147 4.2.1 Technologie Java .................................................................................................... 148 4.2.2 Java RMI ................................................................................................................ 149 4.2.3 Java Media Framework (JMF) ............................................................................... 150 4.3 Réalisation ..................................................................................................................... 152 4.3.1 Dispatcher ............................................................................................................... 152 4.3.2 Player ...................................................................................................................... 153 4.3.3 Streamer .................................................................................................................. 155 4.4 Tests préliminaires ......................................................................................................... 156 4.5 Conclusion ..................................................................................................................... 157 Conclusion .............................................................................................................................. 159 Glossaire ................................................................................................................................. 165 References............................................................................................................................... 171 11 Résumé Deux problématiques principales ont guidé les travaux de cette thèse : (a) comment supporter efficacement les interactions (navigation) dans les présentations multimédias streamées ? et (b) comment améliorer la disponibilité des données dans un système de streaming P2P ? Afin de permettre une navigation rapide au sein d’une présentation multimédia, diffusée en continu, nous avons proposé une approche exploitant les informations disponibles sur son contenu (les objets la constituant). Ces informations permettent, entre autres, de préserver la cohérence sémantique de la résentation lors des interactions utilisateurs. Dans un deuxième temps, nous avons étudié les performances de notre approche en proposant une stratégie de pré-chargement, nommé CPS (Content-Based refetching Strategy), qui a permis de réduire considérablement les temps de latence des interactions utilisateurs. La disponibilité des données dans les système de streaming P2P diffère fondamentalement de celle observée dans les systèmes P2P classiques, dans le sens où les données consommées sont dépendantes du temps. Ainsi, cette problématique se pose en terme de possibilité au pair destinataire (consommateur) de pouvoir terminer « le visionnage » du contenu vidéo dans sa totalité i.e., durant toute la durée de la vidéo. Or, les systèmes P2P spontanés sont essentiellement caractérisés par leur volatilité fréquente, ce qui pose le problème de la disponibilité des pairs sources pendant le streaming. Nous avons étudié cette problématique en mettant en œuvre, dans un premier temps, un mécanisme de cache centralisé permettant de réduire les effets de la volatilité des pairs et en préservant uniquement les suffixes des vidéos en cours d’accès. Dans un deuxième temps, nous avons étendu notre approche vers un cache virtuel distribué. Les résultats des simulations ont montré la pertinence des approches proposées. Enfin, nous avons décrit la conception et la mise en œuvre d’un prototype qui démontre la faisabilité d’un système de streaming P2P spontané. Mots clefs Streaming, présentation multimédia, interactivité, heuristique, préchargement, système de streaming P2P, disponibilité de données, cache distribué, gestion dynamique, adaptation vidéo. 13 Introduction Depuis quelques années, nous assistons à une profusion de données audiovisuelles. La production de contenus multimédias est devenue accessible à tout public et à faible coût. De fait, nous sommes témoins de la démocratisation des dispositifs de restitution et de production de données audiovisuelles. À titre d’exemple, il est aujourd’hui courant de trouver dans un foyer plusieurs périphériques permettant de produire des vidéos : caméscopes, appareils photos numériques classiques ou intégrés à des téléphones mobiles, etc. Nous pouvons ainsi dire que nous vivons dans l’ère du multimédia. Grâce à l’avancée spectaculaire de la puissance des ordinateurs grand public, la manipulation des données audiovisuelles est devenue très fréquente chez les particuliers. Par exemple, au lieu de simplement stocker les photos de vacances dans des répertoires datés, il est d’usage d’en faire des albums multimédias. Un album peut être constitué d’un simple défilement de photos liées sémantiquement ou chronologiquement à un sujet ou à un évènement particulier. Une musique de fond et/ou des annotations textuelles peuvent y être ajoutées pour créer un document composé selon le scénario souhaité. On parle alors de présentation multimédia. Plus généralement, une présentation multimédia est un regroupement de plusieurs médias, de différents types, qui sont synchronisés dans le temps. Les présentations multimédias ont d’ores et déjà investies l’Internet, dans un spectre applicatif particulièrement large allant des boutiques virtuelles jusqu’à la télévision en ligne en passant par l’enseignement à distance. Quel que soit le domaine d’application, les exigences des utilisateurs, en terme de navigation dans de tels documents composés, augmentent constamment. En particulier, le parcours rapide dans les présentations multimédias est aujourd’hui un enjeu très important, notamment lors d’un accès distant à celles-ci. Cet enjeu constitue une des poblèmatiques auxquelles ce manuscrit apporte une réponse. À noter que les présentations multimédias posent des problèmes de gestion et de manipulation de données parmi les plus délicats. Ceci est dû d’une part à la nature isochrone et volumineuse des données audiovisuelles composant ces présentations, et d’autre part à la complexité de leur composition. Par ailleurs, avec les progrès remarquables qu’ont enregistrés les supports de communication, il est de nos jours envisageable de partager facilement du contenu multimédia avec ses proches ou bien avec le monde entier. Une personne souhaitant partager un contenu, audiovisuel, fait typiquement appel à des sites proposant un service d’hébergement de fichiers en ligne, comme RapidShare ou MediaFire par exemple. La personne transfère son fichier sur un serveur du prestataire choisi et récupère un lien identifiant ce fichier. Par le biais de ce lien, tout usager ayant le droit d’accès au fichier en question peut le télécharger puis le visionner. Le téléchargement peut être effectué en utilisant un protocole standard de transmission de fichiers tel que FTP. Dans le mode d’accès aux contenus partagés décrit précédemment, la lecture d’un contenu n’est possible qu’après la fin de son téléchargement. Ce dernier implique un délai d’attente plus ou moins long en fonction du volume des données. Or, la consommation des contenus multimédias est marquée par le désir des utilisateurs d’y accéder instantanément, du moins 15 avec un léger temps d’attente. En effet, un temps d’attente important est plus acceptable si le contenu est un logiciel, mais il l’est moins s’il s’agit d’un film ou d’une chanson. Toutefois, il existe un autre mode d’accès bien plus adapté à la transmission de contenus multimédias, à savoir la diffusion en continu, communément appelé streaming. Le streaming permet le téléchargement et la restitution simultanés de contenus multimédias. Ce mode permet donc d’éviter l’attente due à la récupération d’un contenu avant de pouvoir le visionner. La restitution du contenu peut alors commencer dès que les premières données sont rapatriées et elle se poursuit au fur et à mesure de l’arrivée des données. De plus, lorsque le mode de transmission est le streaming, les utilisateurs peuvent partager des contenus soumis à des droits d’auteurs (dont ils possèdent les licences), car ce mode d’accès permet de les visionner sans effectuer de copies locales. Le streaming des données multimédias est actuellement en plein essor, car la demande de contenus audiovisuels en temps réel est en pleine croissance. Cet engouement a conjointement mobilisé les chercheurs et les industriels pour concevoir et mettre en place des systèmes permettant la diffusion en continu de données audiovisuelles. En une décennie, de nombreux prototypes et une multitude de serveurs commerciaux, comme YouTube ou DailyMotion, ont vu le jour. Ces serveurs se sont spécialisés dans le streaming audiovisuel, permettant ainsi aux utilisateurs de partager leurs contenus multimédias à une échelle mondiale. Les serveurs de streaming se sont alors trouvés face à l’un des défis qui ont accompagné l’Internet depuis sa naissance : la transmission simultanée de contenus à de nombreux utilisateurs, tout en évitant une augmentation des coûts proportionnels à la taille de l’auditoire. Aujourd’hui, avec la démocratisation de terminaux dotés d’une grande puissance de traitement et disposant de connexions à haut débit, il est désormais possible que des miniserveurs hébergés par ces terminaux s’attellent à la tâche de streaming. Suscités par le succès formidable des systèmes pair-à -pair (P2P), de nouveaux systèmes permettant le partage de contenus audiovisuels en mode streaming sont en train d’émerger. Fondés sur le concept de P2P, ces systèmes, dorénavant appelés systèmes de streaming P2P, rentrent progressivement dans les mœurs du grand public et sont promis à un bel avenir. Dans un système de streaming P2P, les participants au réseau de diffusion, aussi dénommés pairs, peuvent prendre en charge les tâches de streaming, confiées auparavant à des serveurs dédiés. Toutefois, en l’absence de serveurs, la nature dynamique des pairs peut compromettre la disponibilité des contenus qu’ils partagent. L’indisponibilité de données dans de tels systèmes reste à ce jour une problématique ouverte. Elle constitue d’ailleurs une des barrières technologiques majeures au large déploiement de ces systèmes, et se trouve au cœur de ce manuscrit. 16 Contributions Les travaux présentés dans ce manuscrit portent sur l’amélioration des systèmes de streaming. Notre objectif est d’améliorer l’interactivité et la disponibilité des données au sein de ces systèmes. Nos contributions se déclinent en trois volets, résumés dans les paragraphes suivants. Interactivité dans les présentations multimédias Comme nous l’avons mentionné, une présentation multimédia est un regroupement de plusieurs médias, de différents types, qui sont synchronisés dans le temps. La puissance expressive offerte par ces présentations est à l’origine de leur grande popularité. Face à un tel engouement apparaît la nécessité de parcourir rapidement ces documents composés. Or, en raison de la multiplicité des objets dans une présentation, celle-ci peut devenir inintelligible si elle est accélérée de manière conventionnelle (accélération linéaire du temps). Avec une telle accélération, l’auditeur peut, en effet, ne pas percevoir certaines informations. Techniquement, la restitution accélérée d’un document composé ne soulève aucun défi si ce dernier est disponible localement. Dans le cas d’un accès distant en mode streaming, une telle restitution implique, en plus de l’incompréhension provoquée par l’accélération, une consommation excessive de ressources, en termes de bande passante réseau, de puissance de traitement et/ou de taille de mémoire vive. Le parcours rapide d’une présentation multimédia à distance soulève donc des problématiques tant au niveau conceptuel que technique, ce qui explique l’absence d’une telle fonctionnalité dans les systèmes de streaming actuels. En vertu de ces faits, la sémantique même de la navigation accélérée dans une présentation multimédia doit être révisée. Dans ce contexte, nous avons défini une sémantique adéquate pour la navigation accélérée dans les présentations multimédias. L’originalité de notre approche réside dans le fait qu’elle relie les fonctionnalités d’avance rapide, et de recul rapide, d’une présentation à son contenu. Il s’agit de parcourir le document composé en passant de thème en thème. La nouvelle navigation accélérée se traduit donc par des sauts dans la présentation, d’une idée vers une autre, plutôt que d’accélérer la restitution. À l’issue d’un saut, l’usager doit attendre le rapatriement des données avant que celles-ci ne lui soient restituées. Dans le but de minimiser ce temps d’attente, nous avons opté pour l’utilisation d’un cache où les données sont chargées préalablement à leur restitution. Pour la gestion de ce cache, nous avons élaboré une heuristique de préchargement spécialement adaptée à la nouvelle sémantique du parcours rapide. Nous avons testé et validé nos propos au cours de nombreuses séries d’expérimentations par simulation. Les résultats obtenus montrent l’efficacité de notre heuristique quant à la réduction des temps de latence traditionnellement observés dans les systèmes de streaming, et par conséquent à l’amélioration de leur interactivité. Disponibilité de données dans les systèmes de streaming P2P Dans un système de streaming P2P, les usagers partagent leurs contenus multimédias en mode streaming. Comme cela a été mentionné, il est aujourd’hui possible que les pairs 17 remplacent les serveurs de streaming en se chargeant de la diffusion de leurs contenus respectifs. La diffusion d’un contenu peut alors ne provenir que d’une seule source, le détenteur du dit contenu. Or, les utilisateurs de tels systèmes ont un comportement très volatil, dans le sens où ils peuvent rejoindre et quitter le système à tout moment. Le départ éventuel d’un usager, partageant un contenu en cours d’accès par un autre, risque de mettre ce dernier dans l’impossibilité de terminer le visionnage du contenu en question. Ce problème d’indisponibilité de contenus en cours d’accès constitue l’une des limitations de ce type de système. Dans ce cadre, nos contributions consistent en l’utilisation d’un cache, non pas pour dupliquer la totalité des contenus, mais uniquement les suffixes de ceux qui sont en cours d’accès. Nous nous restreignions également aux suffixes des contenus visionnés par des utilisateurs qui vont probablement continuer leur visionnage jusqu’au bout. Nos choix se justifient d’une part, par le manque de ressources nécessaires pour dupliquer la totalité des données, et d’autre part, par la volatilité des pairs. Notre objectif, précisons-le, n’est donc pas d’assurer une disponibilité totale des données, chose qui requiert beaucoup trop de ressources, mais plutôt de limiter les effets négatifs de la déconnexion fréquente des pairs, avec un coût raisonnable. Dans un premier temps, nous avons utilisé un cache centralisé pour sauvegarder ces suffixes. Nous nous sommes appuyés sur un modèle probabiliste pour calculer la taille du suffixe à mettre en cache ainsi que l’instant où le processus de mise en cache doit être déclenché. Ensuite, nous avons étendu notre approche vers une architecture distribuée du cache, que chaque pair fournit un petit espace cache de telle sorte que l’agrégation de ces espaces forme un cache virtuel distribué (DVC). Les suffixes doivent alors être répartis de manière équitable afin d’éviter la surcharge de certains pairs. Nous avons donc mis au point une politique d’allocation qui distribue judicieusement les suffixes entre les pairs. De plus, nous avons élaboré une stratégie de gestion dynamique du DVC, qui adapte le volume global de données à mettre en cache en fonction de l’espace disponible dans le DVC. Cet espace est lui-même tributaire du nombre de pairs connectés et plus particulièrement de l’espace cache fourni par ces derniers. Les résultats expérimentaux que nous avons obtenus montrent clairement que notre approche limite considérablement les effets de la déconnexion des pairs sur la disponibilité des données au sein d’un système de streaming P2P. Un système de streaming P2P adaptatif : le prototype JStreaper La plupart des systèmes de streaming P2P actuels sont conçus pour un déploiement à grande échelle, impliquant pour chaque contenu dans le système, la présence de plusieurs utilisateurs le partageant. Les usagers possédant un contenu donné coopèrent dans le streaming de celui-ci vers un utilisateur désirant le visionner. La collaboration consiste pour chacun à prendre en charge la transmission d’une partie des données désirées. Toutefois, la vulgarisation de l’informatique mobile a mis en relief de nouveaux comportements des utilisateurs. Typiquement, un usager se connecte pour regarder un ou plusieurs contenus, puis une fois le visionnage terminé, il se déconnecte. La durée de connexion des utilisateurs est donc souvent très courte voire imprévisible, on parle alors de comportement volatil. Ce type de comportement rend caduque l’hypothèse d’une connexion permanente et donc la disponibilité en de multiples exemplaires de tout contenu partagé. Au travers de la conception et de la mise en œuvre de JStreaper, nous souhaitons tester la faisablité d’un système de streaming P2P où la transmission d’un contenu est assurée par un et un seul pair. À l’heure actuelle, les fournisseurs d’accès Internet n’offrent pas de connexion ADSL grand public permettant d’avoir la bande passante nécessaire pour assurer le streaming d’un contenu par un seul pair. Notre prototype trouve donc son domaine d’application dans les réseaux locaux à très haut débit. Cependant, cette limitation s’effacera avec la 18
Systèmes de streaming distribués - Page 1
Systèmes de streaming distribués - Page 2
wobook
edilivre.com