Section 06 Sciences de l'information : fondements de l'informatique, calculs, algorithmes, représentations, exploitations

III. Programmation et architecture logicielle, systèmes et réseaux

Les individus, les systèmes (au sens large) et les logiciels sont aujourd'hui très fortement connectés, presque en permanence et presque partout, y compris pendant les déplacements. Cela implique une quantité immense de dispositifs reliés entre eux (serveurs, machines fixes, ordinateurs portables, téléphones mobiles, objets), avec une explosion du nombre de connexions réseau et de données à transférer et stocker. Les défis qui se posent dans un tel contexte sont le passage à l'échelle, la gestion de l'hétérogénéité et la forte dynamique.

A. Nouveaux défis

Dans le domaine des réseaux, des systèmes distribués, du parallélisme et du génie logiciel, les évolutions récentes ont notamment porté sur la mise en œuvre de systèmes adaptatifs et reconfigurables, sur l'introduction de robustesse dans ces systèmes devenus de plus en plus critiques, sur la mise en œuvre de systèmes ouverts afin d'obtenir des solutions plus efficaces, sur l'exploitation du parallélisme et du distribué de masse (avec notamment les multi-cœurs et le cloud), et l'observation des systèmes déployés et de leurs usages.

Ces différentes problématiques ont soulevé des questions communes, comme la mise en œuvre de modèles, dès la phase de conception des systèmes, qui sont capables de prendre en compte les aspects adaptatifs, distribués, hétérogènes, les usages, et qui passent à l'échelle, ainsi que le déploiement d'expérimentations afin de comprendre et d'évaluer les solutions proposées dans un contexte réaliste.

B. Auto-adaptation

L'adaptation des systèmes au contexte dans lequel ils sont plongés a été un des challenges de ces dernières années. De par la multiplicité, la complexité et l'hétérogénéité des contextes, il est aussi important que cette adaptation se réalise de manière autonome sans besoin d'un paramétrage humain. Parmi les recherches menées dans ce domaine, on peut par exemple noter, dans le système LTE, une allocation dynamique des ressources radio aux mobiles en fonction de l'environnement radio et du trafic qui permet d'améliorer le débit des applications qui en ont besoin et qui se trouvent dans un contexte radio favorable. De plus en plus d'applications s'adaptent maintenant au système sur lequel elles fonctionnent ainsi qu'au réseau qui véhicule les données entre serveurs et clients. Les nouveaux systèmes d'échange de fichiers pair-à-pair, par exemple, prennent en compte la localisation des pairs dans le réseau, mais aussi leurs performances de connexion, leurs comportements, ou encore les similitudes entre contenus.

Pour pouvoir répondre à ces besoins d'adaptation, les solutions proposées sont très souvent logicielles et cherchent à circonscrire les parties matérielles. Les solutions logicielles ont l'avantage d'être flexibles, plus facilement adaptables et améliorables. Une telle approche a été fortement poussée ces dernières années, notamment dans le domaine des réseaux afin de pouvoir plus facilement s'affranchir des spécificités des équipementiers avec, par exemple, les travaux autour de Network Functions Virtualisation, de Software Defined Network ou de Software Defined Radio. De telles propositions rendent également les expérimentations plus facilement envisageables et réalisables.

Avec l'évolution des technologies informatiques, de plus en plus d'informations sont récoltées et de plus en plus d'analyse et de déduction peuvent être tirées de ces données. Ces quatre dernières années ont encore vu s'amplifier cette tendance avec l'application réaliste de techniques de parallélisme étudiées depuis plus longtemps. Ainsi, les réseaux (physiques ou virtuels, voire mixtes), les grappes, les grilles, mais aussi les architectures internes des ordinateurs eux-mêmes, incluant désormais du parallélisme généralisé, ont ouvert de nouvelles perspectives qui étaient jusque-là hors d'atteinte. Les domaines d'application sont extrêmement variés, allant du domaine de la santé au cinéma ou à l'image en général, en passant par l'astronomie, la climatologie, la sociologie, la cryptographie, les statistiques ou encore l'archivage et la documentation.

C. Études et mesures

Les grands systèmes informatiques déployés par l'homme (comme par exemple l'Internet, le cloud, les grands logiciels, ou les systèmes d'exploitation) induisent une complexité qui échappe même à leurs concepteurs. À l'instar des sciences du vivant, des sciences physiques, et des sciences humaines et sociales, l'informatique fournit alors des éclairages précieux en observant ces systèmes complexes par des mesures de leurs comportements, de leurs structures, et des usages qui en sont faits. Ces pratiques ne sont pas fondamentalement nouvelles, puisqu'elles existent depuis les débuts de la discipline, mais cette approche s'est généralisée ces dernières années et joue maintenant un rôle clé dans toutes les facettes de la recherche sur les systèmes, réseaux et logiciels. On analyse ainsi des codes sources, des traces d'exécution, et même des exécutables ; on mesure l'Internet (son infrastructure comme le trafic acheminé) ; on étudie la mobilité (des individus, des véhicules, etc.), les attaques, etc. La France est très présente sur les mesures et l'analyse de la mobilité (dans les hôpitaux, les réseaux véhiculaires, etc.) ainsi que de l'Internet (trafic, infrastructure, usages), avec par exemple les plate-formes SensLab, MOSAR, le LHS ou OneLab.

En parallèle de ces grands défis, la maîtrise de la complexité des systèmes de traitement de l'information et de communication, due notamment à une large échelle et à une dynamique de plus en plus présente (induite par la mobilité des composants, leur défaillance et leur intégration et retrait continus), constitue un enjeu majeur d'autant plus important que ces systèmes sont conduits à supporter des services et applications de plus en plus critiques. Cette complexité rend nécessaire l'utilisation de modèles permettant de comprendre les propriétés fondamentales de ces systèmes et de les concevoir selon une démarche formelle permettant d'en maîtriser les comportements. Un nouveau défi, apparu ces dernières années, pour ces modèles, est qu'ils doivent à la fois spécifier des comportements discrets (à la manière des automates) et des contraintes continues (liées au temps, à la consommation énergétique par exemple, et que l'on résume en contraintes non fonctionnelles). La recherche française (et plus généralement la recherche européenne) est traditionnellement bien positionnée dans ce domaine des méthodes formelles, avec le développement d'outils comme, par exemple, Papyrus.

D. Expérimentations

La validation des solutions proposées est une étape importante dans les domaines des réseaux, des systèmes distribués et des logiciels. Les approches classiques pour une telle validation sont les analyses théoriques, les simulations, l'émulation et/ou les expérimentations. Si l'évaluation théorique et la simulation constituent toujours des sujets de recherche très actifs, avec une implication forte de la France dans le développement de simulateurs comme NS3 et SimGrid, ces dernières années ont vu un développement important autour des expérimentations avec, notamment, la mise à disposition auprès des chercheurs de plates-formes d'expérimentation et d'outils d'expérimentation ouverts. La France est au premier plan sur ces aspects avec par exemple, la plate-forme d'expérimentation FIT dédiée à l'Internet du futur et des objets et la plate-forme Grid'5000 principalement dédiée au calcul haute performance et aux systèmes distribués.