Reduce complexity : a central problem in building distributed systems
Réduire la complexité : une problématique centrale de la construction des systèmes répartis
Résumé
Un "système complexe" peut qualifier n’importe quel système composé d’un grand nombre d’entités hétérogènes, dans lequel des interactions locales entre entités créent différents niveaux de structures et d’organisations collectives. L’émergence du paradigme de l’Internet des objets ou des choses (Internet of Things, IoT) place l’utilisateur au cœur d’un environnement intelligent et connecté à l’Internet. En associant ce paradigme aux grandes capacités de stockage et de calculs offertes par les paradigmes de la grille (Grid Computing) ou de l’informatique en nuage (Cloud Computing), ainsi qu’à des systèmes intermédiaires comme les serveurs de proximité, les possibilités de création de systèmes répartis sont multipliées. Cependant, la grande diversité des technologies existantes dans de tels systèmes implique une augmentation de la complexité du travail de conception, de développement et de déploiement, en augmentant l’hétérogénéité des infrastructures sur lesquelles ils sont construits. De plus, ces systèmes peuvent être utilisés par des utilisateurs dispersés géographiquement et dont l’organisation sociale est également complexe. Les principales caractéristiques des systèmes répartis complexes sont le grand nombre d’entités, la forte hétérogénéité technique, leur architecture dynamique, et les différents niveaux d’interactions entre entités. Mes travaux, réalisés à Télécom SudParis (Evry) puis à l'Ecole Nationale de l'Aviation Civile (Toulouse), sont de nature génie logiciel et visent deux grandes phases du cycle de vie du logiciel : la production et le déploiement. Dans cette présentation, j'exposerai des techniques et des outils (modèles, architectures, middlewares, frameworks) qui contribuent à limiter la complexité induite par la prise en compte des problèmes (communs) posés par la grille et l’informatique ambiante : hétérogénéité, volatilité des ressources, volume des données échangées. Je présenterai le concept de répartition multiéchelle et son utilisation comme cadre d’étude pour obtenir une vision simplifiée d’un système réparti complexe. Enfin, je décrirai le déploiement des systèmes multiéchelles qui répond à des exigences et à des contraintes émanant de différentes parties prenantes et portant à la fois sur le logiciel à déployer et les machines cibles, en particulier sur leur distribution et leur dynamique.
Domaines
Optimisation et contrôle [math.OC]
Loading...