L’Internet des objets (Internet of Things, IoT) est l’infrastructure qui sert à connecter tout objet à l’Internet, tels que des capteurs, des dispositifs portables (Wearables), des smartphones, des appareils photos, des appareils électroménagers et des véhicules [84, 97]. Au cours des dernières années, le nombre d’objets connectés n’a cessé d’augmenter. D’ici 2020, Cisco prédit que le nombre d’objets connectés dépassera 50 milliards [57]. Ce grand nombre d’objets générera une énorme quantité de données. Selon les estimations de l’International Data Corporation (IDC), 27% des données mondiales seront produites par des appareils mobiles et connectés [92]. Actuellement, les données de l’IoT sont généralement traitées et stockées dans le Cloud [62, 102]. Ce dernier satisfait la majorité des besoins des applications de l’IoT en termes d’accès ubiquitaire, de disponibilité et d’évolutivité des performances de traitement et de capacité de stockage. Cependant, le Cloud étant un paradigme centralisé dans des centres de données, les données produiteset les requêtes émises par les objets connectés sont transmises à cescentres situés dans le cœur de réseau. Ainsi, avec le nombre croissant d’objets connectés et la quantité de données produites, l’envoi de toutes les données vers le Cloud générera des goulets d’étranglement [62]. Ceci augmente la latence de transmission de données et, par conséquent, dégrade la qualité de service (QoS) [83]. De nombreuses applications de l’IoT telles que l’Internet des Véhicules (IoV), la télémédecine et l’industrie 4.0 sont très sensibles aux latences. Le moindre retard dans les réponses du système peut entraîner des problèmes critiques [62]. Du fait des problèmes de latence et de trafic réseau générés par le Cloud, le paradigme de Fog computing a émergé [31]. Le Fog permet de décentraliser les services traditionnellement fournis par le Cloud sur l’ensemble des équipements réseaux. Il permet d’utiliser les ressources de calcul et de stockage des équipements réseaux tels que les routeurs et les switchs localisés entre les objets connectés et les centres de données du Cloud [51]. Le Fog permet le filtrage, l’agrégation et le traitement des données dans les périphéries du réseau, offrant une réduction de la latence, la préservation de la bande passante du réseau et l’amélioration de la qualité de service (QoS) [34]. Le Fog présente une infrastructure informatique dense et géo distribuée à grande échelle. Les composants du Fog, également appelés nœuds de Fog, sont hétérogènes en termes de performances de traitement, de capacité de stockage et de latence d’accès pour les objets et les utilisateurs. Les nœuds ayant des ressources limités (ex. les set-top-boxes) sont plutôt situés en périphérie du réseau et fournissent une latence d’accès faible (de quelques millisecondes), tandis que les nœuds riches en ressources (ex. les points de présence) sont situés au cœur du réseau et fournissent un temps de latence d’accès plus élevée (de plusieurs secondes) [76]. Comme la localisation de données est cruciale pour les traitements, il est important d’étudier comment les données doivent être placées dans une telle infrastructure afin de réduire les latences dans le système [76, 99]. Par exemple, dans le cas ou un service agrège plusieurs données, leur traitement ne peut commencer qu’après la récupération de toutes les données requises. Un mauvais placement de données retarde donc le service.
internet des objets
L’IoT est une infrastructure de réseau dynamique et globale dans laquelle les objets physiques (ex. accessoires, vêtements, machines, véhicules, etc.) sont autonomes et auto-configurables [22]. Ces objets sont censés être capables, grâce à l’utilisation des technologies de l’information et de télécommunication, d’envoyer et de recevoir des données sur Internet, de surveiller leur environnement et d’effectuer des actions basées sur le partage d’information [24]. Dans ce contexte, la domotique, la logistique, la télémédecine et l’apprentissage en ligne sont quelques exemples de scénarios d’application possibles dans lesquels l’IoT joue un rôle important. Le terme «IoT» a été utilisé pour la première fois par Kevin Ashton en 1999 [65]. Les étiquettes d’identification par radiofréquence (RFID), les réseaux de capteurs, l’Internet, l’informatique intelligente sont considérés comme des technologies clés de l’IoT [65]. Après une décennie d’évolution, l’IoT est considéré aujourd’hui comme l’une des technologies révolutionnaires de ce siècle [64]. En effet, cette technologie est considérée comme un moyen pour améliorer les activités quotidiennes, la création de nouveaux modèles économiques de gestion de produits et de services [64]. l’IoT offre de grandes opportunités de marché pour les fabricants d’équipements, les fournisseurs de services Internet et les développeurs d’applications. Selon une analyse faite par Cisco, le nombre d’objets connectés dépassera les 50 milliards en 2020 offrant un marché mondial de 2.700 à 6.200 milliards de dollars annuellement [24, 57]. L’IoT présente aussi de bonnes opportunités pour l’emploi. En effet, d’ici 2020, 4,5 millions développeurs vont contribuer à des projets d’IoT dans le monde [10]. D’autre part, les secteurs de l’automobile et des transports verront plus de 220 millions de voitures connectées en 2020 [59]. Les applications de santé et d’industrie ont également un grand impact économique. Les applications de soins de santé et les services connexes basés sur l’IoT, tels que la santé mobile et la télémédecine, devraient générer une croissance d’environ 1.100 à 2.500 milliards de dollars chaque année d’ici 2025.
Domaines d’applications de l’IoT
Les domaines d’application de l’IoT sont classifiés par Atzori et al. dans [27] comme suit :
• Transport et logistique : Les voitures, les bus, les taxis ainsi que les trains sont de plus en plus équipés de capteurs, d’actionneurs et de puissance de traitement. Les routes elles-mêmes et les marchandises transportées sont également équipées par des étiquettes et des capteurs qui envoient des informations aux sites de contrôle et aux véhicules de transport pour mieux acheminer le trafic, aider à la gestion des dépôts, et fournir les marchandises transportées. L’une des applications réussies de l’IoT dans le secteur des transports est Waze [18], une application mobile de navigation GPS en temps réel. Cette application offre à ses utilisateurs des informations sur l’état du trafic en temps réel. Les utilisateurs, à leur tour, peuvent modifier la carte (sens de circulation, nouvelles rues, bouchons, etc.) afin de l’améliorer ou de suivre l’évolution du réseau routier. Actuellement, le nombre d’utilisateurs de Waze dépasse les 100 millions dans le monde [19]. Une autre application de transport utilisant l’IoT est celle de Skydrone; une entreprise française qui offre à ses clients la possibilité de livrer leurs objets par drones autonomes [17]. Les drones disposent d’une capacité de poids de charge (variable selon le modèle du drone) et ils sont équipés d’un système de détection d’obstacles aériens leur permettant d’être autonomes. Cette solution de transport aérien permet des livraisons rapides et flexibles.
• Télémédecine : La télémédecine est une forme de pratique médicale à distance utilisant des technologies de l’information et de la communication. Elle permet d’établir un diagnostic ou d’assurer un suivi pour un patient à distance. Par exemple, dans un système de santé à distance, la concentration quotidienne en oxygène, la glycémie et la pression artérielle d’un patient sont collectées automatiquement par des capteurs et ensuite transmises aux organismes de suivi. Une autre application de télémédecine consiste à offrir des soins rapides pour les personnes ayant subi un accident ou un problème de santé. Pour cette dernière, Google propose une solution à base de drones pour porter secours dans diverses situations d’urgence. Ces drones livrent un kit de premiers secours, des outils de diagnostic ou des médicaments [16].
• Environnements intelligents : Les maisons, les villes et les usines sont des exemples majeurs d’environnements intelligents. Les applications de ce domaine consistent à collecter et traiter des données de l’environnement pour réaliser des économies, sécuriser ou améliorer la vie des citoyens. Par exemple, dans le cas des maisons et des bureaux intelligents, le chauffage peut être adapté selon les conditions de la météo ; l’éclairage de la pièce peut être changé en fonction de l’heure de la journée ; les incidents peuvent être évités avec des systèmes de surveillance et d’alarme appropriés ; et l’énergie peut être économisée en éteignant automatiquement les équipements électriques non nécessaires [27]. Dans le cas de l’industrie, des usines peuvent être enrichies par des capteurs et des actionneurs pour contrôler la chaîne de production, trier les produits défaillants ou arrêter le processus de production.
• Relation sociale : Les applications relevant de ce domaine sont celles qui permettent à l’utilisateur d’interagir avec d’autres personnes afin de maintenir et de développer des relations sociales. En effet, les objets peuvent automatiquement déclencher la transmission de messages à des amis pour leur permettre de savoir ce que la personne fait ou ce qu’elle a fait dans le passé. Quelques applications dans ce domaine sont : de partager des avis sur des produits, des services ou des endroits [27].
• Applications du futur : Les applications décrites dans les sections précédentes sont déjà déployées. En dehors de celles-là, nous pouvons envisager de nombreuses autres applications futures. Parmi ces applications on peut noter : l’œil intelligent [11]. Cette technologie est très similaire aux lunettes de Google [7]. Elle consiste à équiper les lentilles de contact avec des capteurs et des capacités de connectivité comme le Wi-Fi et le Bluetooth pour fournir de nombreuses fonctions telles que parcourir des cartes, lire des emails ou des messages, naviguer sur Internet ou capturer des vidéos.
Les défis de l’IoT
De nombreux travaux ont cité les défis à relever pour assurer le bon déploiement des applications de l’IoT [24, 27, 61, 66, 81, 96]. Dans cette section, nous en décrivons quelques uns.
1. Normalisation : De nombreux fournisseurs et constructeurs proposent des services et des objets en utilisant leurs propres technologies, qui ne sont pas accessibles aux autres. Il est donc nécessaire de proposer des normes pour les objets, les protocoles de communication, les données et les architectures de déploiement pour assurer une meilleure interopérabilité entre différents objets et services. Des efforts considérables ont été déployés pour normaliser le paradigme de l’IoT par les communautés scientifiques comme les organismes européens de normalisation (ETSI, CEN, ENELEC, etc.) et les institutions de normalisation (ISO, UIT). Mais, la norme universelle reste néanmoins un défi pour l’IoT [66, 81, 96].
2. Réseau et connectivité : L’IoT consiste à connecter n’importe quels objets à n’importe quel moment. La connectivité est donc un ingrédient de base de cette technologie [81]. Dans l’IoT, la nécessité d’avoir un identifiant unique pour chaque objet exige la mise en place d’une politique d’adressage efficace. Comme nous savons qu’il y aura des milliards d’objets qui seront connectés dans le monde dans le futur proche, il existe un besoin dun système efficace pour la gestion des identités des objets. Actuellement, le protocole IPv6 peut adresser jusqu’à 1564 objets par mètre carré [3]. Par ailleurs, les objets doivent supporter plusieurs technologies de communication afin de fournir une bonne interopérabilité. Par exemple, la plupart des smartphones actuels supportent plusieurs technologies de communication comme le Wi-Fi, NFC, et GSM [24]. La mise au point des protocoles de communication et de routage efficaces en termes d’énergie, d’évolutivité et de performances, constitue actuellement un défi majeur de recherche pour l’IoT [24].
3. Qualité de service : La QoS constitue un autre défi pour le déploiement des applications de l’IoT. Parmi les éléments de la QoS qui doivent être améliorés, nous citons la disponibilité, la fiabilité, les performances, et l’interopérabilité [70].
• la disponibilité dans un système d’IoT consiste à fournir des services aux clients n’importe où et à n’importe quel moment. Afin d’assurer la continuité des services et le support de toutes natures d’objets, les systèmes doivent supporter diverses plates-formes et protocoles, notamment celles de communication (ex. Wi-Fi, Bluetooth, Cellulaire, 6LowPAN, etc.). Par ailleurs, les services critiques doivent être fournis avec des solutions redondantes afin d’assurer leur disponibilité [24].
• la fiabilité fait référence au fonctionnement du système par rapport aux attentes fixées dans les spécifications [24]. La fiabilité est critique et impose des exigences strictes dans le cas des systèmes critiques (ex. la gestion de trafic, l’industrie et la santé).
• les performances des services représentent également un défi pour la QoS des applications de l’IoT. Plusieurs métriques sont utilisées pour évaluer les performances du système notamment la vitesse de traitement et le débit de transmission [24].
• la gestion de l’interopérabilité sur des applications à grande échelle composées d’un grand nombre d’objets hétérogènes appartenant à différentes plates-formes représente un défi pour l’IoT [70]. L’interopérabilité doit être prise en compte par les développeurs d’applications et les fabricants d’objets afin de garantir la fourniture de services à tous les clients, quelles que soient les plates-formes matérielles et logicielles utilisées [24].
|
Table des matières
1 introduction
1.1 Contexte général
1.2 Contexte industriel de la thèse
1.3 Problématiques
1.3.1 Minimisation de la latence du système dans les infrastructures de Fog
1.3.2 Réduction du temps de placement de données d’IoT dans le Fog
1.3.3 Évaluation des stratégies de placement de données d’IoT dans le Fog
1.4 Contributions
1.4.1 Formulation du problème de placement de données dans le Fog
1.4.2 Stratégies de placement proposées
1.4.3 Extension du simulateur iFogSim
1.5 Plan du mémoire
2 contexte
2.1 Définitions
2.2 Internet des Objets
2.2.1 Domaines d’applications de l’IoT
2.2.2 Les défis de l’IoT
2.2.3 Le Cloud et l’IoT
2.3 Fog computing
2.3.1 Architecture du Fog
2.3.2 Les avantages du Fog computing
2.3.3 Défis et verrous scientifiques
2.4 Optimisation combinatoire
2.4.1 Complexité d’un POC
2.4.2 Programmation linéaire
2.4.3 CPLEX
2.4.4 Les heuristiques
2.4.5 Les méta-heuristiques
2.5 Modèle d’architecture du système considéré
2.5.1 Architecture du système
2.5.2 Définitions
2.5.3 Hypothèses
2.5.4 Notations
2.6 Conclusion
3 état de l’art
3.1 Solutions de placement des instances de services d’IoT dans le Fog
3.1.1 Programmes linéaires
3.1.2 Heuristiques
3.1.3 Méta-heuristique
3.1.4 Autres
3.1.5 Synthèse
3.2 Outils d’évaluation des solutions de placement de données dans le Fog
3.2.1 Plate-forme réelle
3.2.2 Émulateur
3.2.3 Simulateur
3.2.4 Synthèse
3.3 Conclusion
4 ifogstor : une stratégie de placement de données de l’iot dans les infrastructures fog
4.1 Problématique
4.2 Aperçu d’iFogStor
4.3 Problème d’affectation généralisé
4.4 Modèle de placement de données
4.4.1 Formulation du problème
4.4.2 Contraintes
4.4.3 Modèle de la latence du système
4.5 Solutions pour le placement de données proposées
4.5.1 Solution exacte : iFogStor
4.5.2 Solution heuristique : iFogStorZ
4.6 Évaluation et résultats
4.6.1 Scénario d’expérimentation
4.6.2 Outils et configurations
4.6.3 Méthodologie d’évaluation
4.6.4 Résultats et discussion
4.7 Conclusion
5 ifogstorg : une heuristique basée sur le partitionnement de graphes pour le placement des données dans le fog
5.1 Problématique
5.2 Aperçu d’iFogStorG
5.3 Modélisation de l’infrastructure sous forme de graphe
5.3.1 Modélisation du système
5.3.2 Construction du graphe
5.4 Pondération du graphe
5.4.1 Pondération des nœuds
5.4.2 Pondération des arêtes
5.5 Partitionnement du graphe
5.6 Placement de données
5.7 Évaluation et résultats
5.7.1 Scénario d’évaluation
5.7.2 Outil et configurations
5.7.3 Méthodologie d’évaluation
5.7.4 Résultats et discussion
5.8 Conclusion
6 Conclusion
Télécharger le rapport complet