Au niveau technique, le développement des réseaux sociaux touche un ensemble de domaines qui vont de l'infrastructure jusqu'aux services intelligents fournis à l'utilisateur final. Les besoins de recherche, d'innovation et de transfert traversent de façon verticale tous les niveaux logiciels du nuage et ceux liés aux usages, depuis les algorithmes de l'infrastructure de base (Infrastructure-as-a-service : UC, réseau et disque), les outils de développement (Platform-as-a-service) jusqu'aux logiciels (Software-as-a-service) et aux services liés à leur exploitation et à l'interaction avec l'utilisateur.
Les nuages facilitent le développement et le déploiement d'applications et de services à large échelle (de type web et médias sociaux) par une virtualisation et une gestion dynamique et transparente (élasticité) des ressources matérielles (bande passante, stockage, calcul). Leur mise en œuvre se base sur les algorithmes les plus avancés de la recherche en système, et en base de données, et en algorithmique de la fouille de données.
Nous donnons ci-dessous une synthèse de ces problématiques pour ces différents niveaux.
Infrastructures logicielles
Le nuage est un ensemble hybride de ressources de calcul et de stockage, certaines appartenant au client final, certaines à des tiers. Données et calculs sont répartis, de façon dynamique, élastique et non prévisible. Or, le client a besoin de garanties de sécurité, de sûreté et de performance. Ainsi, les exigences de placement des différents clients et les besoins des fournisseurs peuvent être contradictoires et nécessiter des techniques et algorithmes nouveaux de stockage, de placement et de réplication de données dans ces environnements hybrides et évolutifs. Le stockage et le partage massif de contenus posent des défis scientifiques particuliers aux infrastructures de type nuage, liés au passage à l'échelle et à la virtualisation des moyens matériels, aux garanties sur le placement et la pérennité des données.
Cohérence passant à l'échelle
Les applications de type réseau social font des mises à jour de façon intensive. Dans ces conditions, l'existence de multiples répliques géographiquement réparties, et de dépendances entre données distinctes, posent le problème de la cohérence. Certaines applications (par exemple la facturation) ont besoin d'une cohérence forte, qui passera difficilement à l'échelle du nuage. Le plus souvent cependant, les besoins de cohérence sont faibles, et l'utilisateur tolère un certain délai. Or la cohérence faible est difficile à mettre en œuvre et complexe à utiliser, car elle expose le développeur d'application à des anomalies. Les infrastructures en nuage doivent fournir la possibilité de choisir le protocole de cohérence le mieux adapté aux besoins de performance, de sûreté ou de coût de l'application. La cohérence de données à grande échelle et la flexibilité des algorithmes selon les besoins sont des problèmes non résolus, qui posent des problèmes de recherche difficiles.
Sécurité et sûreté
Aujourd'hui, un client qui confie ses données au nuage en perd le contrôle, et n'a aucune garantie de confidentialité, de sécurité ou de pérennité. Il faut que les calculs et la gestion des données soient rendus tolérants aux pannes et aux attaques. La lecture et la transformation des données devraient donner lieu à autorisation à priori, et à vérification à posteriori. L'infrastructure devrait également fournir des techniques d'anonymisation efficaces et sûres, pour garantir la confidentialité des données des utilisateurs. Ces besoins de sécurité et de tolérance aux pannes sont rendus plus complexes par la grande échelle du nuage, et par son élasticité, et représentent un défi scientifique majeur.
Exploitation des données
Les services développés pour les réseaux sociaux impliquent aujourd'hui de très grandes masses d'individus (allant de la centaine de milliers à quelques milliards) et de , de contenus hétérogènes. Les informations relationnelles entre ces individus ou contenus, ainsi que leur structuration en communautés d'amis ou thématiques, sont au cœur de ces systèmes. Les sites de partage de photos (Flickr) ou de vidéos (YouTube), Twitter et les blogs, les réseaux sociaux en ligne en sont des exemples types.
Services de structuration des données
L'effort de développement de services et d'applications qui exploitent ces données dépend en grande partie des interfaces d'accès proposées par la plate-forme. Même si les langages de type bases de données traditionnels, comme SQL, ne sont pas adaptés à ce contexte, leurs paradigmes de base restent valables : indépendance de données, langage déclaratif, et optimisation algébrique. Un défi scientifique important sera d'appliquer ces mêmes paradigmes aux nouveaux langages de traitement de données du nuage. L'approche MapReduce, combinant un langage déclaratif simple avec la parallélisation des calculs et des données, est une première étape dans cette direction. La mise en œuvre d'un tel langage dans une infrastructure nuage pose également des problèmes de stockage de données et de traitement de requêtes qui ne sont résolus ni par les infrastructures, ni par les services de données nuages actuels comme Amazon SimpleDB ou Google Datastore.
Usages et services
L'exploitation et l'analyse des données est au centre des services de réseau social. Elles posent de nombreux défis aux sciences informatiques. Notamment, les données sont difficiles à collecter, elles soulèvent des problèmes éthiques et légaux délicats (protection de la vie privée), et enfin elles sont complexes à stocker et à manipuler en machine. Les besoins algorithmiques sont nombreux : analyse des flux et modélisation, fouille de données, recherche et diffusion d'information, services de recommandation, suivi de groupes, visualisation, sécurité avec par exemple la détection de comportements déviants (pédophiles par exemple) et/ou malveillants (attaques, spam, terrorisme), problématique rendue particulièrement sensible par l'ouverture de ces systèmes.
De plus, ces données sont hautement dynamiques. Cette dynamique recèle en elle-même une information riche, ouvrant la porte à la compréhension de la formation et de l'évolution de communautés, des comportements des utilisateurs, des phénomènes de diffusion et d'effets de mode, etc. Ces champs restent aujourd'hui très largement à explorer.
L'interaction utilisateur et l'adaptation du média à son contexte reposera sur l'extraction de contenu, pertinent du point de vue des utilisateurs, et contextualisé par leur localisation, leur activité ou leur humeur. L'analyse de leurs centres d'intérêt ou de leurs interactions sociales aidera à prédire les besoins des utilisateurs en termes d'information, dont résulteront des contenus ciblés et des services personnalisés, sans mettre à contribution les utilisateurs pour autant.
Ces problématiques sont cruciales pour la recherche et le développement de nouvelles applications dans les prochaines années. Les enjeux soulèvent de nombreux défis algorithmiques tels le traitement décentralisé de masses de données, ou le traitement de flux massifs et dynamiques.
Parcours mixte clients-sociétés de services sur 27 années d'expérience sur les Systèmes d'Information en France et à l'International ...