L'Internet des objets (ou IdO) se traduit à l'heure actuelle par l'accroissement du nombre d'objets connectés, c'est-à-dire d'appareils possédant une identité propre et des capacités de calcul et de communication de plus en plus sophistiquées : téléphones, montres, appareils ménagers, etc. Ces objets embarquent un nombre grandissant de capteurs et d'actionneurs leur permettant de mesurer l'environnement et d'agir sur celui-ci, faisant ainsi le lien entre le monde physique et le monde virtuel. Spécifiquement, l'Internet des objets pose plusieurs problèmes, notamment du fait de sa très grande échelle, de sa nature dynamique et de l'hétérogénéité des données et des systèmes qui le composent (appareils puissants/peu puissants, fixes/mobiles, batteries/alimentations continues, etc.). Ces caractéristiques nécessitent des outils et des méthodes idoines pour la réalisation d'applications capables (i) d'extraire des informations utiles depuis les nombreuses sources de données disponibles et (ii) d'interagir aussi bien avec l'environnement, au moyen des actionneurs, qu'avec les utilisateurs, au moyen d'interfaces dédiées. Dans cette optique, nous défendons la thèse suivante : en raison de la nature continue des données (mesures physiques, évènements, etc.) et leur volume, il est important de considérer (i) les flux comme modèle de données de référence de l'Internet des objets et (ii) le traitement continu comme modèle de calcul privilégié pour transformer ces flux. En outre, étant donné les préoccupations croissantes relatives à la consommation énergétique et au respect de la vie privée, il est préférable de laisser les objets agir au plus près des utilisateurs, si possible de manière autonome, au lieu de déléguer systématiquement l'ensemble des tâches à de grandes entités extérieures telles que le cloud. À cette fin, notre principale contribution porte sur la réalisation d'un système distribué de gestion de flux de données pour l'Internet des objets. Nous réexaminons notamment deux aspects clés du génie logiciel et des systèmes distribués : les architectures de services et le déploiement. Ainsi, nous apportons des solutions (i) pour l'accès aux flux de données sous la forme de services et (ii) pour le déploiement automatique des traitements continus en fonction des caractéristiques des appareils. Ces travaux sont concrétisés sous la forme d'un intergiciel, Dioptase, spécifiquement conçu pour être exécuté directement sur les objets et les transformer en fournisseurs génériques de services de calcul et de stockage.Pour valider nos travaux et montrer la faisabilité de notre approche, nous introduisons un prototype de Dioptase dont nous évaluons les performances en pratique. De plus, nous montrons que Dioptase est une solution viable, capable de s'interfacer avec les systèmes antérieurs de capteurs et d'actionneurs déjà déployés dans l'environnement. / The Internet of Things (IoT) is currently characterized by an ever-growing number of networked Things, i.e., devices which have their own identity together with advanced computation and networking capabilities: smartphones, smart watches, smart home appliances, etc. In addition, these Things are being equipped with more and more sensors and actuators that enable them to sense and act on their environment, enabling the physical world to be linked with the virtual world. Specifically, the IoT raises many challenges related to its very large scale and high dynamicity, as well as the great heterogeneity of the data and systems involved (e.g., powerful versus resource-constrained devices, mobile versus fixed devices, continuously-powered versus battery-powered devices, etc.). These challenges require new systems and techniques for developing applications that are able to (i) collect data from the numerous data sources of the IoT and (ii) interact both with the environment using the actuators, and with the users using dedicated GUIs. To this end, we defend the following thesis: given the huge volume of data continuously being produced by sensors (measurements and events), we must consider (i) data streams as the reference data model for the IoT and (ii) continuous processing as the reference computation model for processing these data streams. Moreover, knowing that privacy preservation and energy consumption are increasingly critical concerns, we claim that all the Things should be autonomous and work together in restricted areas as close as possible to the users rather than systematically shifting the computation logic into powerful servers or into the cloud. For this purpose, our main contribution can be summarized as designing and developing a distributed data stream management system for the IoT. In this context, we revisit two fundamental aspects of software engineering and distributed systems: service-oriented architecture and task deployment. We address the problems of (i) accessing data streams through services and (ii) deploying continuous processing tasks automatically, according to the characteristics of both tasks and devices. This research work lead to the development of a middleware layer called Dioptase, designed to run on the Things and abstract them as generic devices that can be dynamically assigned communication, storage and computation tasks according to their available resources. In order to validate the feasability and the relevance of our work, we implemented a prototype of Dioptase and evaluated its performance. In addition, we show that Dioptase is a realistic solution which can work in cooperation with legacy sensor and actuator networks currently deployed in the environment.
Identifer | oai:union.ndltd.org:theses.fr/2015VERS012V |
Date | 19 March 2015 |
Creators | Billet, Benjamin |
Contributors | Versailles-St Quentin en Yvelines, Issarny, Valérie |
Source Sets | Dépôt national des thèses électroniques françaises |
Language | French |
Detected Language | French |
Type | Electronic Thesis or Dissertation, Text |
Page generated in 0.0029 seconds