Dans ce mémoire, nous proposons une solution complète et efficace visant àconstruire un système d'information pour la géolocalisation en intérieur au moyen deGISGeographic Information Sy
Trang 1UNIVERSITE NATIONALE DU VIETNAM, HANOI
INSTITUT FRANCOPHONE INTERNATIONAL
PHÚ BÁ D ƯƠ NG
MODÉLISATION ET ANALYSE DE DONNÉES DE
GÉOLOCALISATION EN INTÉRIEUR ET DE MESURES
PARTICIPATIVES
MÔ HÌNH HÓA VÀ PHÂN TÍCH D LI U Ữ Ệ
V TRÍ Đ A LÝ TRONG NHÀ VÀ D LI U ĐO L Ị Ị Ữ Ệ ƯỜ NG
C NG TÁC Ộ
MEMOIRE DE FIN D'ETUDES DU MASTER INFORMATIQUE
HANOI-2016
Trang 2UNIVERSITE NATIONALE DU VIETNAM, HANOI INSTITUT FRANCOPHONE INTERNATIONAL
PHÚ BÁ D ƯƠ NG
MODÉLISATION ET ANALYSE DE DONNÉES DE
GÉOLOCALISATION EN INTÉRIEUR ET DE MESURES
PARTICIPATIVES
MÔ HÌNH HÓA VÀ PHÂN TÍCH D LI U Ữ Ệ
V TRÍ Đ A LÝ TRONG NHÀ VÀ D LI U ĐO L Ị Ị Ữ Ệ ƯỜ NG
C NG TÁC Ộ
Spécialité: Réseaux et Systèmes Communicants Code: Programme pilote
MEMOIRE DE FIN D'ETUDES DU MASTER INFORMATIQUE
Sous la direction de:
Dr Besma ZEDDINI , Dr Julien MERCADAL Chercher et enseignants à l'École Internationale des Sciences du
Traitement de l'Information(EISTI)
HANOI-2016
Trang 3ATTESTATION SUR L’HONNEUR
J’atteste sur l’honneur que ce mémoire a été réalisé par moi-même et que lesdonnées et les résultats qui y sont présentés sont exacts et n’ont jamais été publié
L I CAM ĐOAN Ờ
Tôi cam đoan đây là công trình nghiên c u c a riêng tôi Các s li u, k t quứ ủ ố ệ ế ảnêu trong Lu n văn là trung th c và ch a t ng đậ ự ư ừ ược ai công b trong b t kỳ côngố ấtrình nào khác Các thông tin trích d n trong Lu n văn đã đẫ ậ ược ch rõ ngu n g c.ỉ ồ ố
Signature de l’étudiant
PHU Ba Duong
Trang 4Table de matières
Remerciements 5
Résumé 6
Les acronymes 9
Chapitre 1 Analyse du sujet 10
1.1 Introduction 10
1.2 Énonce et analyse du problème de recherche 10
1.3 Plan de travail 12
Chapitre 2 Recherche Bibliographie 13
2.1 Analyse les besoins du système, concevoir le modèle du système 13
2.2 Études bibliographiques 13
2.2.1 Les capteurs et les différents types des capteurs 13
2.2.2 Crowdsensing 14
2.2.3 Géolocalisation en intérieur 14
2.2.3.1 Les signaux utilisés pour géolocalisation en intérieur 15
2.2.3.2 Données de capteurs 16
2.2.3.3 Algorithmes de la position intérieur 17
2.2.3.4 Carte en intérieur 18
2.2.3.5 Le fonctionnement du système 24
2.4 La choix de la base des données 24
2.5 Le stockage des données massives en utilisant Mongodb 31
2.6 Analyse les données massives 34
Chapitre 3 Les solutions expérimentales et les résultats 38
3.1 Les technologies, les outils et les matériels utilisés dans ces travaux 38
3.2 La conception du systèmes 38
3.3 Conception de la base de données 39
3.4 Le processus de la construction des la carte en intérieur 47
Construction d'une carte de l'EISTI 47
3.5 Développement des Web services 51
3.5.1 Calcul le nombre des personnes dans chaque salle de l'EISTI 51
3.5.2 Le problème de la recherche les chemins 53
57
3.5.3 Surveillance des gens 57
3.5.4 Exportation des données historiques 58
3.5.5 La construction du systèmes de recommandation 58
Chapitre 4 Conclusions et perspectives 66
4.1 Conclusions 66
4.2 Perspectives 66
Appendices 70
Trang 5Les plus grandes leçons ne sont pas tirées des livres mais des professeurs telsque vous, tous les professeurs de l’Institut Francophone International (IFI) Je souhaiteexprimer ma sincère gratitude à vous qui avez pris le temps de m’aider au cours de cestrois années et de m’avoir accompagné dans la maîtrise de mes connaissances
Je tiens à exprimer toute ma reconnaissance à mes directeurs de mémoireMadame Besma ZEDDINI et Monsieur Julien MERCADAL Je les remercie dem’avoir encadré, orienté, aidé et conseillé
J’adresse mes sincères remerciements à Madame Fatima BERRICHE et à toutesles personnes qui par leurs paroles, leurs écrits, leurs conseils et leurs critiques ontguidé mes réflexions et ont accepté à me rencontrer et répondre à mes questions durantmes recherches
Je remercie mes très chers parents, qui ont toujours été là pour moi, «Vous aveztout sacrifié pour vos enfants n’épargnant ni santé ni efforts Vous m’avez donné unmagnifique modèle de labeur et de persévérance Je suis redevable d’une éducationdont je suis fier»
Je remercie Monsieur Guy pour ses aides et encouragement durant mon stage
Je remercie très spécialement Madame Marie-Josée Lamerre, Madame SylviePetiot, Madame Audrey Jama qui ont toujours été là pour moi et m'ont aidé beaucoup
Je tiens à les remercier pour leurs amitiés, leurs soutiens inconditionnel et leursencouragements
Enfin, je remercie mon ami Khai NGUYEN pour son sincère amitié etconfiance, et à qui je dois ma reconnaissance et mon attachement À tous cesintervenants, je présente mes remerciements, mon respect et ma gratitude
Trang 6Les services de localisation dans les bâtiments représentent un grand avantage.Ils permettent aux gens de chercher des lieux, des produits ou des personnes dans unbâtiment Smart Engineering School est un projet qui applique la technologie degéolocalisation en intérieur pour fabriquer des applications à forte valeur ajoutée surdes réseaux d'objets communicants équipant l'EISTI, afin d'automatiser ou desimplifier diverses tâches pour ses occupants Et la modélisation d'une carte intérieur,l'analyse de données de géolocalisation en intérieur et les mesures participatives fontles parties très importantes afin de pouvoir construire une application degéolocalisation en intérieur intelligent
Dans ce mémoire, nous proposons une solution complète et efficace visant àconstruire un système d'information pour la géolocalisation en intérieur au moyen deGIS(Geographic Information Systems), des technologies de géolocalisation enintérieur, NoSQL, de réseau de capteurs (iBeacons) et des techniques d'analyse dedonnées massives
La solution de système d'information d'abord, est développée pour utiliser dans
le projet Smart Engineering School à l'EISTI Ensuite, nous allons continuer àaméliorer cette approche afin de l'appliquer dans plusieurs contextes différents telsque les hơpitaux, les muséums, les restaurants
Cette approche dans ce mémoire est totalement basée sur les technologiesd'open-source afin d'économiser le cỏt de développement
Mots clés : OpenStreetMap(OSM), Indoor Map, Indoor Positionning System,
Hadoop Map-Reduce, Système de recommandation, BFS, NoSQL, MongoDB
Trang 7The services of localization in buildings representing a great advantage Theseallow people to look for places, things or people in a building, closed region SmartEngineering School is a project that apply the indoor positioning technologies to buildapplications with high added values on a network of connected objects installed atEISTI in order to automate or simplify various tasks for its occupants And modeling
an indoor map, analyzing indoor geo-localization data and participatory measuresmake the very important part in order to be able to build an intelligent indoorpositioning application
In this thesis, we propose a complete and efficient solution for building aninformation system for indoor positioning using Geographic Information System(GIS),indoor positioning, NoSQL, Sensor network and some techniques for analyzing BigData
Firstly, the information system solution is developed to use in the SmartEngineering School project at EISTI Then, we will continue to improve this approach
in order to apply it to different contexts such as hospitals, museums, restaurant
This approach in this thesis is totally based on the open source technologies tosave the development cost
Keywords : OpenStreetMap(OSM), Indoor Map, Indoor Positionning System,
Hadoop Map-Reduce, Système de recommandation, BFS, NoSQL, MongoDB
Trang 8Table des figures
Figure 1 La carte du premier étage du bâtiment CAUCHY de l'EISTI 16
Figure 2: La structure de paquet des données bluetooth 17
Figure 3: Logiciel JOSM et la représentation de la carte de l'EISTI récupéré de l'OSM 19
Figure 4: Architecture du système 24
Figure 5: La manière de stockage des RDBMS et orientée colonnes 27
Figure 6: La structure des Graphe databases 27
Figure 7: Une instance de la base des données de Graphe 28
Figure 8: Description des données divisées dans Sharding[15] 32
Figure 9: Interaction des composants dans un cluster shardé 33
Figure 10: Flux écrire/lire données dans Sharding[16] 34
Figure 11: Le paradigme de MapReduce 35
Figure 12: La combinaison de Hadoop et MongoDB 37
Figure 13: Modélisation du système 38
Figure 14: Le document de bâtiment 39
Figure 15: Le document de iBeacons 40
Figure 16: Le document d'utilisateur 40
Figure 17: Le document d'événement 41
Figure 18: Le document d'évaluation 42
Figure 19: Le document de EistiMap 43
Figure 20: Le document des points d'intérêt 44
Figure 21: Le document des routes 45
Figure 22: Le document des salles 46
Figure 23: L'outil JOSM initialisé 47
Figure 24: Téléchargement des données géographiques 47
Figure 25: L'affichage de la carte 48
Figure 26: Utilisation de Picture layer 49
Figure 27: Ajustement de la bordure du bâtiment et l'image de la carte 49
Figure 28: Cartes obtenue après avoir dessinée 50
Figure 29: Les résultats sont affichés sur l'application mobiles 52
Figure 30: Un système des routes en intérieur 53
Figure 31: Le graphe utilisé dans l'algorithme 54
Figure 32: La représentation d'un chemin multi-étages 54
Figure 33: Un résultat de recherche la chemin sur multi-étages 55
Figure 34 : Un chemin est calculé, retourné et représenté au côte client 57
Figure 35: Les données historiques exportées 58
Figure 36: Le système de recommandation est représenté au côté client 62
Trang 9Les acronymes
1 Bluetooth Low Energy : BLE
2 École Internationale des Sciences du Traitement de l'Information : EISTI
3 Global Positioning System : GPS
4 Indoor Positioning System : IPS
5 Internet of Things : IoT
6 Java OpenStreetMap (editor) : JOSM
7 La base des données : DBMS
8 Mobile Crowd Sensing : MCS
9 Open Street Map : OSM
10 Radio Frequency Identification : RFID
11 Rational Database Management System : RDBMS
Trang 10Chapitre 1 Analyse du sujet 1.1 Introduction
L'Internet of Things (IoT) est devenu une partie intégrante de notre viequotidienne Au début des années 2000s, Kevin Ashton est un des pionniers quiconcevait cette notion quand il a fait la recherche sur les liaisons entre RadioFrequency Identification(RFID) et l'Internet visant à améliorer la performance de lestaches de business
Nous avons pris une citation dans un article pour montrer la notion de IoT :
«If we had computers that knew everything there was to know about things— using data they gathered without any help from us we would be able to track and count everything, and greatly reduce waste, loss and cost We would know when things needed replacing, repairing or recalling, and whether they were fresh or past their best We need to empower computers with their own means of gathering information,
so they can see, hear and smell the world for themselves, in all its random glory RFID and sensor technology enable computers to observe, identify and understand the world
—without the limitations of human-entered data.» [1]
IoT signifie que tous les objets dans le monde sont équipés de capteurs,identités et d’une connexion sans fils Ces objets peuvent communiquer entre eux Eneffet, IoT représente un concept général pour la capacité des réseaux des objets quirécupère et collecte les données du monde autour de nous, et puis envoie ces données
à travers l'Internet ó elles peuvent être analysées et utilisées pour les différentsobjectifs
Les applications que IoT peut apporter à notre vie sont très larges :
- Surveiller et détecter les changement physique dans nos corps
- Self-parking automobiles
- La commande automatique de épicerie et des autres fournitures
- Traquer automatiquement les activités personnelle
- Traquer location pour les pièces individuels d'inventaire de fabrication
- Économiser l'énergie dans les modèles environnemental intelligent
- Renouveler et améliorer des contrơles de sécurité pour les personnes travaillant dans des environnements dangereux [2]
1.2 Énonce et analyse du problème de recherche
Le projet «Smart Engineering School» est un projet encadré par Mme Besma
ZEDDINI et M Julien MERCADAL enseignant - chercheur à l'École Internationaledes Sciences du Traitement de l'Information(EISTI) C'est un projet dont son but est deréaliser un réseau des capteurs dans les bâtiments de l'EISTI et combiner avec ledéveloppement d'une application mobile qui permettent de surveiller les gens(personnelles, professeurs, étudiants, chercheurs, étrangers) circulant dans cette école.Simultanément, le système est responsable d'effectuer les communications entre lesgens et l'EISTI Par exemple, vérifier l'absence d'une personne, réserver une salle
Trang 11disponible pour la réunion, diffuser un événement à un groupe des personnes Enfin,les données d'utilisateurs seront récupérées et mis dans la base de données afind'analyser et de créer les informations valables.
Ce projet se situe dans le domaine de IoT, et plus exactement, dans celui quiconcerne les réseaux des capteurs, Big Data et géolocalisation en intérieur
En se basant sur les caractéristiques, ce projet est décomposé en deuxproblèmes à réaliser
1 Développement d'applications mobiles utilisant la géolocalisation en intérieur
2 Modélisation et analyse de données de géolocalisation en intérieur et de mesures participatives
En effet, ce sont les deux sujets individuels, mais ils ont une partie dedéveloppement commune ont besoin d'être développés ensemble Dans ce mémoire,nous allons présenter une approche qui concerne la résolution du deuxième problème
Profondément, la structure de mémoire se compose 4 chapitres, le chapitre 1 vaintroduire le sujet de stage et des notions concernées qui ont besoin d'être étudiées Lechapitre 2 est la partie de la recherche bibliographie la ó les conceptions sont creuséesprofondément, et les travaux concernés qui sont précédemment étudiés ont besoind'être mentionnés Le chapitre 3 propose une solution et l'implémente en se basant surles recherches bibliographies et en fin, montre les résultats obtenus Le dernier chapitreest la conclusion et perspective du sujet
Allons en détaille chapitre 1, tout d'abord, nous allons présenter les définitions,les mots clés liés au sujet
Crowdsensing : est un nouveau modèle métier, permettant aux téléphones non
seulement d'être utilisés pour échanger les information mais aussi pour les activités quipeuvent avoir un impact social énorme Le terme «Crowdsensing» se réfère à partagerles données collectées par des capteurs embarqués avec le but de mesurer lesphénomènes physiques Les capteurs sont embarqués dans les smartphones, lecteurs demusique même dans les véhicules [3]
Géolocalisation en intérieur : en Anglais Indoor Positioning System(IPS), est
un système qui permet de localiser les objets, les gens dans un bâtiment en utilisant lesondes, les signaux acoustiques… Fondamentalement, les IPS fonctionnent comme lesystème de GPS
Données massives (Big Data) : signifie un grand nombre de données qui
peuvent être analysées informatiquement pour révéler les modèles, les tendances et lesassociations concernant les comportements et les interactions d'humain
Les problèmes à résoudre sont :
1 Modéliser les données, développer le cơté serveur qui peux communiquer avec les clients (l'applications mobile) au moyen des réseaux des objets communicants équipant l'EISTI, afin d’automatiser ou de simplifier diverses tâches pour ses utilisateurs Plus précisément, cette application permet de suivre les déplacements des personnes à l'EISTI au moyen des capteurs installées à un certains points d'intérêt et les smartphones, tablettes ou encore les smart-watches possédés par les utilisateurs.
Trang 122 Ensuite, les données échangées entre les objets connectés seront collectées
et sauvegardées dans la base des données Les techniques d'analyses des données massives seront utilisées afin d'analyser et d'extraire les informations précieuses à partir de ces données immenses.
Le problématique du sujet nécessite l'utilisation des iBeacons, c'est un type decapteur qui ne diffuse que les signaux Bluetooth 4.0 LBE périodiquement sanseffectuer d'autre opération Ces signaux seront utilisés par l'application afin d'avoir uneapplication intelligente
Des exemples du fonctionnement essentiel de l'application sont données :l'application pourrait être utilisée par les nouveaux arrivants à l'EISTI afin de lesguider vers leurs prochaine salle de cours Dans ce cas, il faut utiliser des informationsrécupérées de AREL Un autre exemple, dans les jours de JPO(Journées portesouvertes), les parents et leurs enfants pourraient suivre un parcours prédéfiniagrémenté des commentaires afin de découvrir l'école De plus, les associations del'école pourraient utiliser l'application pour diffuser des événements qu'ellesorganisent Enfin, les utilisateur.s pourraient partager leur degré de satisfaction depoint d'intérêt ó ils se trouvent
1.3 Plan de travail
Travaux théoriques :
- Étudier les points principaux liés à ce sujet
+ Internet of Things + Déterminer les besoins du système, concevoir le modèle du système + Les différents type du capteurs, iBeacons
+ Les technologies de géolocalisation en intérieur+ Crowdsensing
+ Les données des capteurs+ La carte en intérieur (indoor mapping)+ La base de données compatibles avec le projet (NoSQL, Base de données rationnelle)
- Étudier les techniques de l'analyse les données massives
+ Données massives, les données d'iBeacon+ Les algorithmes de data mining, d'apprentissage automatique, Hadoop,Map-reduce paradigme
Travaux pratique :
- Modéliser les données en intérieur, la carte intérieur (indoor map)
- Choisir la base de données la plus compatible pour ce projet
- Conception de la base des données basé sur le DBMS choisie
- Développement des Web Services
- Chercher à comprendre Hadoop, Map-Reduce et les appliquer avec
MongoDB dans l'application
Trang 13Chapitre 2 Recherche Bibliographie
Dans cette chapitre, nous allons vous présenter un état de l'art des notions liés
au sujet et déterminer les approches possibles afin d'implémenter ce projet
2.1 Analyse les besoins du système, concevoir le modèle du système
Comme décrit dans la partie de l'introduction, ce projet se situe dans lesdomaines d'application des réseaux des capteurs, les technologies de géolocalisation enintérieur, et l'analyse des massives données Le projet sera développés au moyen deréseaux de capteurs L'objectif principal est de construire un système qui fournie desressources nécessaires à l’application mobile qui sera utilisé par les professeurs, lesétudiants, les professionnelles de l'EISTI
Cette application permet de :
- Guider les chemins afin de visiter l'EISTI
- Chercher un point d'intérêt (salle de cours, salle de réunion…)
- Chercher les chemins
- Faire une évaluation sur un point d'intérêt
- Diffuser les événements
- Chercher la position d'une personne à l'EISTI
- Vérifier la présent/l'absente d'une personne
- Savoir quantité de personnes dans un coin
- Évaluer la satisfaction
- Analyser et donner des suggestions, prédictions en basant les comportements d'utilisateurs, et les données historiques
2.2 Études bibliographiques
2.2.1 Les capteurs et les différents types des capteurs
Le capteur est un appareil physique qui mesure les quantités, les phénomènesphysiques
A Les différents types de capteurs en terme de l'objet capturés :
1 Accéléromètre 2 Capteur de mouvement
3 Capteur chimique 4 Capteur d'humidité
5 Capteur de débit/débitmètres 6 Capteur de force
7 Capteur magnétique 8 Capteur de pression
9 Capteur de proximité 10 Capteur de son
11 Capteur de température 12 Capteur de vitesse
B Les types de capteur en terme de fonctionnement
En se basant sur le critère d'émission d'énergie:
1 Capteur passif : les capteurs diffuseront les signaux quand un événement se produit
2 Capteur actif : les capteurs diffuseront les signaux périodiquement
En se basant sur le critère de source de données :
Trang 14- Proprioceptif : Capturer les données de l’intérieur
- Extéroceptif : Capturer les données de l'extérieur
C Les types de capteur en terme de signaux envoyés
Mobile crowdsensing est un nouveau paradigme qui permet aux habitants decommuniquer les données récupérées par leurs capteurs Ensuite, ces données sonttraitées et analysées afin d'extraire les connaissances
Les topologies de crowdsensing
Critère Participation des utilisateurs
dans processus de crowdsensing
Les phénomènes sont mesurés
Table 1 Les types de crowdsensing
Essentiellement, les données sont générées par deux modes :
- Mobile sensing : les données sont créées automatiquement sans avoir besoin
d’interagir avec la personne
- Users : les données sont créées en se basant sur les comportements
d'utilisateurs
2.2.3 Géolocalisation en intérieur
Comme défini dans la partie précédente, la technique de géolocalisation est unepartie essentielle dans ce projet, la localisation se réfère au problème de la calcul ou del'estimation de la position d'utilisateurs dans une région spécifique qui est modélisé parune carte La géolocalisation en intérieur vise à résoudre ce problème dans un bâtimentspécifique ou un ensemble de bâtiments ó les signaux GPS fonctionnent tropfaiblement à cause des obstacles Par conséquent, l'approche actuelle est d'utiliser uninfrastructure des expéditeurs dans un bâtiment
La mission de géolocalisation en intérieur est de calculer la position derécepteur(smartphone, tablette, smartwatch…) en se basant sur les signaux desexpéditeurs bien connus et une carte intérieure
Trang 15Il y aura donc des questions à remplir pour la partie de recherche :
- Quels sont les expéditeurs, les signaux (Bluetooth, Wifi ) qui seront utilisés dans ce projet?
- Comment calculer et préciser la position intérieure au moyen des signaux?
- Comment construire une carte en intérieur?
- Comment sont les fonctionnements du système?
2.2.3.1 Les signaux utilisés pour géolocalisation en intérieur
La plupart des approches courantes dans la littérature et dans les systèmescommercialisés utilise radio-fréquence (Wifi, bluetooth, VLC …) Le table suivantfourni une comparaison entre les techniques qui permettent d'effectuer les mesures enintérieur
Table 2 Comparaison entre les signaux utilisés pour géolocalisation en intérieur [5]
Dans ce projet, nous avons décidé de choisir l'approche d'utilisationd'expéditeurs Bluetooth En fait, Apple a introduit une norme intitulé iBeacon basé sur
la spécification Bluetooth 4.0 Low Energy(BLE) C'est une nouvelle méthode decommunication appelé ATT(Attribute Protocol) qui optimise la taille de packageutilisé En utilisant les BLE, les iBeacons peuvent fonctionner pour une longue durée
La choix d'expéditeurs Bluetooth en raisons du fait que l'EISTI est une écolemulti-étages, donc les GPS ne fonctionne plus dans les bâtiments Chaque étagecompose à plusieurs salles L'utilisation de Wifi pour la localisation n'est plus précise,puisque la puissance de signal Wifi devient faible quand elle passe les murs entre lessalles L'image qui suite est la carte d'un bâtiment de l'EISTI
Trang 16De plus, avoir beaucoup d'expéditeurs de Wifi dans toutes les salles n'est pasvraiment nécessaires et complexes à déployer Par contre, les iBeacons peuventfonctionner pour une longue durée sans avoir besoin de recharger l'énergie et facile àdéployer En outre, selon la spécification et la situation du contexte, nous avons besoind'une approche la plus précise Car, l'EISTI est une petite école Les salles ne sont pastrès grandes et l'espace de couloirs sont de 2 à 2.5 mètres L'utilisation la technologieBluetooth est un meilleur choix dans ce cas.
Les appareils utilisés sont les iBeacons, fondamentalement, les iBeacons nediffusent que les signaux Bluetooth Les Smartphones doivent être activés lefonctionnement de Bluetooth afin de détecter ces signaux et déterminer les distancesentre lui et les iBeacons, et aussi les autres mesures tel que RSSIs
2.2.3.2 Données de capteurs
Profondément, les iBeacons diffusent les paquets dans un intervalle spécifiqueLes iBeacons ont défini une structure des données spécifique pour les paquets diffusés.[6]
Figure 1 La carte du premier étage du bâtiment CAUCHY de l'EISTI
Trang 17La plupart de champs n'est pas utile Il n'y a que quatre champs les plusimportants pour calculer la position qui sont UUID, major, minor, Tx power LesUUID, major, minor permettent d’identifier uniquement l'iBeacon Ces attributspeuvent être configurées manuellement afin de grouper les expéditeurs en groupe Et leTx-Power est la puissance de RSSI en mettre En effet, Apple a développé un APItravaillant avec les iBeacons, qui nous permet de prendre des valeurs d'attributsfacilement telles que la distance, les valeurs de RSSI
2.2.3.3 Algorithmes de la position intérieur
Le problème qui se pose est de localiser la position à partir des informationstelles que distances, valeurs de RSSIs récupérés des iBeacons Il y a plusieursalgorithmes qui ont été proposés dans les littératures et les articles scientifiques afin depouvoir localiser la position en intérieur Ci-après quatre approches principales quisont mentionnées dans la plupart des documents
Trilateration : besoin de trois expéditeurs (iBeacon) Les beacons ont une
portée spécifique qui est déterminée par un rayon comme sphère de 3D La positioncourant est la ó les trois cercles se chevauchent Par conséquent, la position estdéterminée par les mesures de distances
Triangulation : ressemble à Trilateration La différence est que le
Triangulation concerne la mesure des angles basé sur la direction du signal au lieu de
la mesure des distances Cette méthode ne peut pas être utilisé avec les iBeacons Car,l'API de Apple ne permet pas de récupérer les valeurs d'angles
Fingerprinting : L'idée principale de fingerprinting est de créer une map de
vecteurs qui mesure à chaque position spécifique à la première étape Les vecteurs etles locations seront stockés dans la base des données Deuxième étape, localiser laposition, les appareils retournent un vecteur de mesure, ce vecteur sera comparée avecles vecteurs sauvegardés dans la première étape afin de trouver le vecteur le plusproche et retourner la position respective Fingeprinting peux donner les résultats trèsprécises Mais, il faut créer une large map entre la position et les vecteurs de mesure.Cette mission sera impossible dans un grand espace
Time of Flight : calculer la distance entre le expéditeur et le récepteur en se
basant le temps que les signaux a pris pour la transmission [6]
Ceci dépend du contexte, plusieurs approches serons combinées au même temps
Figure 2: La structure de paquet des données bluetooth
Trang 18pour donner le résultat le plus précis Des fois, la solution aura besoin de lacoopération cơté serveur et client Toutefois, dans cette implémentation et pour faute et
le manque de matériel, nous avons décidé d'implémenter les algorithmes delocalisation cơté client (l'application)
2.2.3.4 Carte en intérieur
Les données de géolocalisation sont modélisées par une carte La construction
de la carte est une étape important avant de localiser les positions Le problème degéolocalisation en intérieur a besoin des informations géographiques en détaillé pourtous les objets intérieurs telles que salles, positions installées de iBeacons Pourtant, lesdonnées géographiques récupérées en ligne comme Open Street Map, Google Map nesont pas suffisant pour localiser la position en intérieur Actuellement, les donnéesgéographiques disponibles sont les données en extérieur telles que les chemins, lesroutes, les bordures des bâtiments, les rivières, les océans, les points d'intérêt Laconstruction de la carte dans un bâtiment plusieurs étages, un ắroport ou une région
ó on n'a pas des données géographiques détaillées afin d'implémenter lescaractéristiques en intérieur est très nécessaires
Pour implémenter une systèmes de géolocalisation en intérieur, la carte enintérieur (indoor map) est un composant très important Dans cette section, nous allonsprésenter un processus de construction d'une carte en intérieur Ce travail présente lesrecherches au problème de la création d'un systèmes d'information en utilisant lesinformation et géolocalisation en intérieur Fondamentalement, la carte en intérieurressemble à la carte en extérieur, nous aurons besoin de représenter les chemins, lespoints d'intérêt…
Ces années dernières, quelques solutions ont été proposées pour construire unecarte en intérieur Google, probablement est le plus grand fournisseur de la carte enintérieur «Google Map Indoor» projet Il compose des composants, un web servicepermet de télécharger la carte intérieure, la technologie visualise la carte et uneapplication de mobile est pour localiser la position Pourtant, leur usage est limité auxbâtiments public et leur carte n'est pas mise à jour automatiquement Une autresolution ESRI est aussi considéré un des pionniers des sociétés livrant informationgéographique Leur projet est un paquet complète pour la carte en intérieur, 2D, 3D etvisualisation et routage Et finalement, il faut mentionner Bing Venue Map deMicrosoft Indoor Map service [8]
En effet, tous les solutions sont encore sous le développement Et elles sont tousnon-open source Dans mon stage, j'ai décidé de choisir l'approche open-source pourcréer les cartes en l'intérieur Nous avons donc étudié Open Street Map(OSM) andl'outil JOSM et les données d'OSM
Open Street Map(OSM) est un projet collaborative pour créer une carteéditable librement du monde Les données récupérées de OSM(http://www.openstreetmap.org/) sont mises sous forme de XML dans un fichier
*.osm Visuellement, ce sont les bordures des bâtiments, les chemins, et les pointsd'intérêts Les données en intérieur dans les bâtiments tels que salles, couloirs,
Trang 19ascenseurs, ne sont pas représentés dans OSM La description des objets intérieurs seracréée manuellement.
L’outil JOSM est un éditeur de cross-platform pour l'OSM écrit en Java En
installant des plu-gins tels que Picture Layer, Indoor Mapping Helper Ce sont les
extensions de JOSM qui nous permettent de créer les données, de décrire lescomposants intérieurs en dessinant et définissant des attributs ou des propriétés
intitulés tags dans les fichiers *.osm L'image ci-dessus est un exemple d’une région
géographique représenté par JOSM
En regardant la moitié à droit de l'image, le Tags/Memberships est l'endroit ó
nous définissons les attributs et les propriétés Les manipulations sur ce logiciel seradécrit en détaillé au chapitre 3 La suite donnera les attributs intérieurs à définir dansles données d'OSM Supposons que nous avons une carte d'un bâtiment de l'EISTIdécrite dans un fichier *.osm Ce que nous devons fabriquer maintenant est de décrireles objets géographiques en intérieurs dans le bâtiments à travers les attribues et lespropriétés bien prédéterminés
Tous d'abord, on a besoin de connaỵtre le nombre d'étages du bâtiment Enutilisant Indoor Mapping Helper (Indoor Mapping Helper est représenté sur la figure 3
au fond à droit), nous pouvons définir les deux attributs suivants:
Highest level : y ème étage (étage maximal de bâtiment) Figure 3: Logiciel JOSM et la représentation de la carte de l'EISTI récupéré de
l'OSM
Trang 20Lowest level : x ème étage (étage minimal de bâtiment)
Après avoir défini ces attributs, le fichier *.osm est mis à jour Maintenant, nouspouvons choisir l'étage que nous voulons décrire les composants géographiques Et,
plusieurs autres composants et leurs attribues seront définies comme les tags dans le
fichier *.osm La liste qui suite présente les composants ayant besoin d'être décritsdans un bâtiments
Rooms : la salle(salle de cours, salle de réunion) Couloir : le couloir
Elevator : l'ascenseur Stair : l'escalier Door : la porte Entrance/Exit : l'entrée/sortie Toilet : le toilette
Beacons : le capteur iBeacon Level : l'étage
Plug-in Helper Indoor Mapping nous fournis un ensemble des attributs
prédéfinis ou des tags pour que nous puissions représenter les composants intérieurs.
Les objets intérieurs proposés par Helper Indoor Mapper sont présentés en cliquant sur
son menu Object :
SHELL : la bordure CONCRETE_WALL : le mur en béton GLASS_WALL : mur de vitre
TOILET_MALE : toilette pour les hommes TOILET_FEMALE : toilette pour les femmes ELEVATORS : ascenseur
STAIRWAY : escalier STEPS : chemin d'escalier DOOR : porte
ENTRANCE : entrée
Pourtant, il y a des limités si on n'utilise que ce plu-gin,
- Non-connexion entre les différentes étages
- C'est juste une représentation graphique
- Ne pas adapter à routage
- Ces définitions des objet dans ce plug-in n'ont pas suivi une norme [7]
À mon avis, ces attributs fournis par ce plu-gin ne sont pas suffisants afin depouvoir décrire les composants intérieurs et les utiliser dans la venir Par conséquent,nous aurons besoin de déterminer d'autres représentations communes ou un ensembled'attributs assez complet pour définir les objets, les chemins en intérieur afin derépondre les besoins du système C'est pourquoi la suite, nous avons essayé d'améliorerles propositions et les concepts qui ont été proposé dans des articles scientifiques et lalittérature pour la description des objets intérieurs.[8]
Trang 21highway = foodway building = nom de bâtiments
Stairs :
building:part = stairs indoor:level = x to y highway = steps building = nom de bâtiments
Porte :
addr:flats = (numéro de salle) la salle que on peux entrée en passant cette porte
entrance = yes ref = (nom de salle) indoor:level = * building = nom de bâtiments
Entrée :
access = yes building = nom de bâtiment foot = yes
indoor:level maxwidth =
Sorti :
entrance = exit access = yes indoor:level = * foot = yes building = nom de bâtiments
Beacons
Id = UUID + minor + major de iBeacon indoor:level = *
man-made = beacon name = nom de beacon building = nom de bâtiments
Les iBeacons ont besoin d'être représentés dans la carte Car, les informationsdes iBeacon (l'identité, la position) seront nécessaires pour l'algorithme de localisation
de la position intérieure
Trang 22building = nom de bâtiment building:part = elevator
Il y a un composant qui sera défini comme un point intermédiaire Ces points
sont définis à la place d'ascenseurs et d'escaliers Ce point est appelé Switching-Point
qui aura les attribues:
En effet, il y avait des articles scientifiques qui contribuait au le problème de la
construction de la carte en intérieur Un des eux, l'article le plus récent est «Using Open Street Maps data and tools for indoor mapping in a Smart City scenario».
Dans cet article, les auteurs ont essayé de donner un ensemble d'attributs afin dedéfinir les composant en intérieur Fondamentalement, mon approche est basé surl'approche de cet article Mais, j'ai décidé de changer l'ensemble d’attributs afind'adapter les besoins du contexte dans le projet
Nous allons voir une comparaison entre deux approches :
Mon approche Approche de l'article Room
Trang 23- buildingpart:verticalpassage :floorrange
Table 3 Une comparaison entre mon approche et l'approche existante
En regardant le table 3, nous pouvons voir que dans mon approche plusieursattributs et composants différent qui ont besoin être définis et sauvegardés afin defaciliter les taches du projet
Les résultats obtenus après avoir utilisé JOSM pour créer une carte intérieursest mis à jours dans le fichier *.osm Avant d'utiliser les données géographiques pourimplémenter les fonctions du système, nous aurons besoin de transformer *.osm à laformate de *.GeoJSON et normaliser les données GeoJOSN obtenues Les raisonsseront expliquées dans la chapitre 3 Fondamentalement, GeoJSON est un format pourencoder une variété des structures de données géographiques sous forme de JSON.Autrement dit, nous allons travailler sur les données JSON au lieu des données XML
Trang 242.2.3.5 Le fonctionnement du système
2.4 La choix de la base des données
Les données capturées ont besoin d'être sauvegardées dans la base de donnéescomme les ressources pour le développement de l'application Le choix d'une base dedonnées est très flexible En effet, les données dans le monde sont divisées en troistypes : données structurées, données semi-structurées, donnée non-structurées
- Données structurées : les données rationnelles
- Données semi-structurées : les données de XML, JSON
- Données non-structurées : les images, pdf , media… [9]
Les données collectées par les capteurs sont les données semi-structurées etnon-structurées même les données polymorphes Car, dans le contexte du projet,imaginons que aux différents positions dans les bâtiments, aux différents moments, lesappareils d'utilisateurs(smartphones, tablettes) peuvent détecter, récupérer lesdifférents ensembles de signaux de Bluetooth Par conséquent, les données récupéréespar chaque utilisateur n'ont pas la même structure
En plus, les données historiques est une partie très importante de données à
Figure 4: Architecture du système
Trang 25stocker Chaque utilisateur possède ses données personnelles individuelles qui estdifférente d'autres L'enregistrement des données dans la base de donnéesrelationnelles n'est pas logique Premièrement, les données seront redondantes.Deuxièmement, quand les données deviennent très massives, l'accès aux donnéesprennent beaucoup de temps et ces données ne peuvent pas être sauvegardées sur unemachine.
En outre, le stockage de données géographiques est une partie indispensabledans ce projet afin d'envoyer la carte au côté d’application Tandis que, les donnéesgéographiques sont présentées sous forme XML, GeoJSON (données semi-structurées)
C'est la raison pour la quelle nous avons choisi une approche de NoSQL(NotOnly SQL Database) NoSQL soutient le stockage de données semi-structurées et non-structurées tandis que, la base de données rationnelles est conçue pour sauvegarder lesdonnées structurées NoSQL est aussi une approche de gestion de données très utilepour le stockage d'une très grande quantité de données en mode distribué
Essentiellement, NoSQL est divisé en quatre types :
- Key-value Stores : L'idée principale est fondamentalement d'utiliser une table
de hachage dans la quelle il existe une clé unique et un pointeur vers un élémentparticulier de données Un seau est un groupe logique des clés - mais ils ne regroupentpas physiquement les données Il peut y avoir des clés identiques dans des différentsseaux La performance est grandement améliorée en raison des mécanismes de cachequi accompagnent les mappages Pour la lecture d'une valeur, vous devez connaître à
la fois la clé et le seau, car la clé réelle est un hachage (seau + clé)
Un exemple : Considérez le sous-ensemble de données représenté dans letableau suivant Ici, la clé est le nom de pays de l'entreprise 3Pillar, tandis que la valeurest une liste d'adresses des centres de 3Pillar dans ce pays [10]
“India” {“B-25, Sector-58, Noida, India – 201301”
“Romania” {“IMPS Moara Business Center, Buftea No 1, Cluj-Napoca,
400606″,City Business Center, Coriolan Brediceanu No 10, Building
B, Timisoara, 300011”}
“US” {“3975 Fair Ridge Drive Suite 200 South, Fairfax, VA 22033”}
Table 4 Un exemple Key-value Stores
La clé peut être synthétique ou générée automatiquement et la valeur peut êtreString, JSON, BLOB (objet de base) etc
Alors que la base de données clé/valeur semble utile dans certains cas, mais il aquelques faiblesses ainsi D'une part, le modèle n'offrira aucun type de capacités de
Trang 26base de données traditionnelles telle que l'atomicité des transactions ou la cohérencelorsque plusieurs transactions sont exécutées simultanément Cette capacité doit êtrefournie par l'application elle-même De plus, quand la quantité de données augmente,
le maintien de valeurs uniques en tant que clés peut devenir plus difficile, résoudre ceproblème nécessite l'introduction d'une certaine complexité dans le processus de lagénération de chaînes de caractères qui restera unique parmi un très grand ensemble declés
- Document Store NoSQL Database : Les données qui sont une collection de
paires de clé-valeur sont compressées comme un document Le stockage ressemble au
Key-Values Store, mais il y a des différences, la première est que les données mémorisées (appelées "documents") fournissent des structures et des encodages pour
les données gérées XML, JSON, BSON (un encodage binaire d'objets JSON) sontquelques encodages standards courants
L'exemple suivant montre les valeurs des données collectées en tant que
«document» représentant les noms des magasins spécifiques.
{
officeName:”3Pillar Noida”, {
Street: “B-25, City:”Noida”, State:”UP”, Pincode:”201301”}
}
{
officeName:”3Pillar Timisoara”,{
Boulevard:”Coriolan Brediceanu No 10”, Block:”B, Ist Floor”,
City: “Timisoara”, Pincode: 300011”}
}
La deuxième différence entre la Key-Value Store et Document Database est que le Document Database intègre des métadonnées d'attribut associées à un contenu
stocké ce qui fournit essentiellement un moyen d'interrogation des données en fonction
du contenu Par exemple, dans l'exemple ci-dessus, on pourrait rechercher tous lesdocuments dans lesquels «City» est «Noida» qui fournirait un ensemble de résultatscontenant tous les documents associés à tous offices de «3Pillar» qui se trouve danscette ville particulière MongoDB est la base des données la plus populaire pour cemodèle
- Wide-column stores : La base de données NoSQL orientée colonne Au lieu
de stocker les données en ordre d'enregistrements, ce type de bases de données est
Trang 27conçu pour le stockage des tables de données en tant que sections des colonnes Cettesimple description ressemble à l'inverse d'une base de données standard.
En comparaison, la plupart de la bases de données relationnelles stocke lesdonnées ligne à ligne Les différents enregistrements de cette base des données
devraient être sauvegardées sur les différents espaces des disque dur Par contre, column stores regroupe les colonnes similaires ensemble Une interrogation peut
Wide-récupérer des données associées en une seule opération, car les seules colonnesassociées à la requête sont récupérées Par contre, dans un RDBMS, les lignes desdonnées seraient dans les endroits différents sur le disque dur, nécessitant plusieurs
opérations de disque dur pour la récupération C'est pourquoi, Wide-column stores
offrent des performances très élevées et une architecture hautement évolutive [10].L'image qui suite, décrit les données de transactions dans un magasin sauvegardéesdans deux types de la base des données
- Graph databases : est utilisé pour sauvegarder les informations des réseaux
telles que connexions sociales Neo4J et HyperGraphDB sont les instances de cemodèle
- La structure du graphe se compose les arêtes, les nœuds et les propriétés pour
la représentation des données
Figure 5: La manière de stockage des RDBMS et orientée colonnes
Figure 6: La structure des Graphe
databases
Trang 28Ces nœuds sont organisés par quelques relations avec les autres qui est représentés parles arêtes entre les nœuds Tous les deux nœuds et les relations entre eux ont despropriétés définies [10]
- MongoDB soutient le stockage et l’interrogation de données géographiques
- MongoDB est modèle flexible, permet de représenter embedded document et reference document qui adaptent au stockage les données historiques.
MongoDB est le type de Document database, les données sont gardées sous forme de collections et documents Le table suivant est une comparaison entre la base
des données rationnelles(MySQL) et NoSQL(MongoDB)
Table 5 Comparaison entre MySQL et NoSQL [11]
MongoDB sauvegarde les données sous forme BJSON(Binary Javascript ObjectNotation) De plus, MongoDB soutient le stockage d'objets GeoJSON Naturellement,
Figure 7: Une instance de la base des données de Graphe
Trang 29GeoJSON a la structure de JSON, mais on ajoute des attributs critères pour décrire lescaractéristiques des données géographiques Nous allons voir en détails les donnéesgéographiques modélisées sous forme de GeoJSON
Un objet GeoJSON peux représenter un géométrie, un caractéristique ou unecollection des caractéristiques GeoJSON soutient les types de géométrie suivants :Point, LineString, Polygon, Multipoint, MultiLineString, MultiPolygon etGeometryCollection Les caractéristiques à l'intérieur d'objet GeoJSON contient unobjet géométrique et des propriétés additionnelles Essentiellement, un objet GeoJSON
se compose une collection des paires de nom/valeur – appelé les membres [12]
Un exemple d'objet GeoJSON est le type de Feature Collection
{ "type":"FeatureCollection",
"features": [
{ "type": "Feature",
"geometry": {"type": "Point", "coordinates": [102.0, 0.5]},
"properties": {"prop0": "value0"}
Trang 30Dans l'exemple, nous avons regardé les deux attributs type et coordinates Type est de décrire le nom de géométries(Point, Polygone, LineString ) Le coordinates se compose un position, un tableau des positions, un tableau des tableaux
des positions ou un tableau multidimensionnelle des positions
La suite sont les représentations des tous les géométries dans GeoJSON :
Point , le coordinates doit être une seul position
{
"type":"Point",
"coordinates": [100.0, 0.0] }
LineString, le coordinates doit être un tableau de positions
{
"type":"LineString", "coordinates": [ [100.0, 0,0], [101.0, 1.0] ]
}
Polygon, le coordinates doit être un tableau de positions, mais c'est une région
fermée, le premier point est aussi le dernier point
{
"type":"Polygon", "coordinates": [
[ [100.0, 0.0], [101.0, 0.0], [101.0, 1.0], [100.0, 1.0], [100.0, 0.0] ]]}
Multipoint le coordinates doit être un tableau de positions
{
"type":"MultiPoint", "coordinates": [ [100.0, 0.0], [101.0, 1.0] ]
}
MultiLineString le coordinates est un tableau de coordinates de LineString
{
"type":"MultiLineString", "coordinates": [
[ [100.0, 0.0], [101.0, 1.0] ],
[ [102.0, 2.0], [103.0, 3.0] ]
]}
MultiPolygon le coordinates est un tableau de coordinates de Polygon
{
Trang 31"type":"MultiPolygon", "coordinates": [
[[[102.0, 2.0], [103.0, 2.0], [103.0, 3.0], [102.0, 3.0], [102.0,
2.0]]],[[[100.0, 0.0], [101.0, 0.0], [101.0, 1.0], [100.0, 1.0], [100.0, 0.0]], [[100.2, 0.2], [100.8, 0.2], [100.8, 0.8], [100.2, 0.8], [100.2, 0.2]]] ]
"type": "Point", "coordinates": [100.0, 0.0]
},
{
"type": "LineString", "coordinates": [ [101.0, 0.0], [102.0, 1.0] ]
2.5 Le stockage des données massives en utilisant Mongodb
Littéralement, Big Data est méga-données, grosses données ou encore donnéesmassives Il s'agit d'un ensemble très volumineux des données Essentiellement, BigData est non seulement un ensemble des données très large mais aussi très complexe
Il n'est pas pratique pour gérer Big Data en utilisant les outils traditionnels.Spécialement, Big Data concerne la création, le stockage, la récupération et l'analysedes données qui est remarquable en terme de volume, vélocité et variété
Volume est la taille des données Aujourd'hui, les données générées chaque joursont très grandes venant de plusieurs sources différents telles que Facebook, capteurs,smarphones En effet, des milles TBs de données sont créés chaque jour
Vélocité s'agit de la vitesse d'augmentation de données Cela dépend beaucoupdes interactions et les échanges entre les utilisateurs et les systèmes ou entre lessystèmes
Variété est en terme de type des données Les données actuelles ne sont passeulement les numéros, les dates et les chaîne des lettres, mais aussi les donnéesgéographiques, données trois dimensions, audio, vidéo, texte, médias sociales [14]
Trang 32Revenons le projet, les données sauvegardées dans ce projet sont les donnéesdes capteurs et les données historiques Les données des capteurs grandissent de temps
en temps Alors que, les données historiques des utilisateurs sont augmentérapidement Un jour, ces données peuvent atteindre à des TBs Une approche dustockage des données massives est très nécessaire
Sharding est une méthode implémentée dans MongoDB permettant de distribuer les données sur multi-machines MongoDB a utilisé Sharding afin de
déployer les données massives distribuées avec opérations à haut débit
Car, les données massives et les opérations à haut débit peut être un défi pour lacapacité d'une seul machine Par exemple, l'interrogation d'informations dans une base
de données compliquée peut épuiser la capacité de CPU du serveur Et, letéléchargement de données massives est une question pour la taille de RAM et dedisque dur
En fait, il existe deux méthodes adressées au croissance du systèmes :l'extensibilité verticale (Vertical Scaling) et l'extensibilité horizontale (HorizontalScaling)
L'extensibilité verticale : augmente la capacité d'un seul serveur, par exemple,
l'utilisation un CPU plus puissant, ajouter des RAM, grandir la capacité de stockage.Pourtant, cette approche est limité par la technique actuelle Par conséquent, il y a uneseuil pour cette approche
L'extensibilité horizontale : concernant la division les données du système et
le téléchargement en plusieurs machines L'ajoute des machines additionnels réponde à
la demande Lorsque, la vitesse d’exécution et la capacité du mémoire d'une seulemachine n'est pas fortes, chaque machine traite un sous-ensemble de la charge detravail total
En effet, Sharding dans MongoDB est une approche de l'extensibilité horizontale Sharding divise l'ensemble des données et les distribue aux multi- machines(appelées les shards) Chaque shard est une base de données indépendante
et collective, les shards construit une seule base des données logiques.
Figure 8: Description des données divisées dans
Sharding[15]
Trang 33- Sharding réduit le numéro d'opérations que un shard doit traiter en augmentant la quantité de shards Un exemple, pour insérer un enregistrement, l'application a besoin de connaître seulement shard qui est responsable pour cet
enregistrement
- Shading réduit la quantité de données que chaque shard a besoin de
sauvegarder
L'architecture du Sharding dans MongoDB [16]
Un mongod sharded cluster se compose les composants suivants :
- Shard : chaque shard contiens un sous-ensemble de données divisé Un shard peut être déployé comme un ensemble replica (replica est une technique qui
permet d'implémenter backups pour les données) [15]
- Router ou Mongos : fourni un interface entre l'application de client et les opérations aux shards appropriés Ce composant traitera et transmettra les opérations aux shards appropriés [24]
- Config servers : le serveur des configurations sauvegarde méta-data et les configurations pour un cluster de shards Le mongos utilise meta-données afin de transmettre les opérations aux shards approprié.
Figure 9: Interaction des composants dans un
cluster shardé
Trang 342.6 Analyse les données massives
Cette partie décrit les techniques utilisées pour l'analyse des données massivessauvegardées dans MongoDB au moyen de Hadoop et Map-Reduce
D'abord, nous allons voir une approche de l'exploitation des données en utilisantWeka, un logiciel open source sous le GNU General Public License Weka est unecollection d'algorithmes de l’apprentissage automatique pour les tâches del'exploitation de données et est écrite en Java Ce logiciel contient les outils qui nouspermet de réaliser le pré-traitement, la classification, le clustering, la règled'association et la visualisation Toutefois, Weka exige toutes les données mises dans lemémoire vive avant le traitement C'est une limitation quand nous faisons face auxdonnées massives Normalement, Weka fonctionne bien avec les échantillons petits oumoyens de données D'autre part, Weka aussi nous permet d'implémenter un schéma del’entraînement actualisable Dans ce cas, les données seront mis dans la mémoire vivepeu à peu Certainement, cette approche provoque des problèmes de la performance dusystème
L'utilisation de Weka avec Big Data: Le version récente Weka 3.7 fourni desnouveaux paquets permettant d'exploiter les données distribuées et fonctionne avecHadoop, Map-Reduce Pourtant, la connexion entre Weka et MongoDB rencontre desdifficultés, les données dans MongoDB ne peuvent pas être chargées dans lesprogrammes de Weka directement Autrement dit, Weka ne peux pas traiterdirectement le format de données dans MongoDB Pour utiliser Weka avec MongoDB,tout d'abord, les données doivent être normalisées et mises dans un fichier texte Cefichier est sous un des formats soutenu par Weka tels que *.arff, *.csv, *.weka *.jsonafin de pouvoir appliquer les algorithmes dans Weka En fin, le résultat ou le modèleobtenu sera gardé dans un endroit afin d’utiliser pour la prévision de l'individu non-étiquette Honnêtement, cette chaîne de travail n'est pas compatible avec uneapplication temps-réel La lecture et écriture prendront beaucoup de temps une fois queles données devient très grandes [17]
Figure 10: Flux écrire/lire données dans Sharding[16]
Trang 35Alors que, une approche sont utilisée très largement ces années dernières C'estHadoop, Map-Reduce Hadoop soutient très fortement MongoDB Hadoop est unframework pour le traitement de Big Data Il fourni une méthode permettant d'accéderles données qui sont distribuées sur plusieurs machines Hadoop traitera les données,gérera les ressources à travers des computations et des ressources de réseaux Hadoop,généralement, se réfère à un cœur de technologie qui compose 4 composantsprincipales.
Hadoop YARN : est un plate-forme de gestion des ressources qui prends en
charge de gérer les ressources de calcul et l'utiliser pour la planification desapplications des utilisateurs
Hadoop Map-Reduce : est un modèle de programmation pour le traitement des
données massives Nous allons le voir immédiatement dans la suite
Hadoop Common : est un utilité commune qui soutient les autres modules de
l'Hadoop
Hadoop Distributed File System (HDFS): Un système de fichiers distribués
fournit l'accès de haut-débit aux données d'application
Map-Reduce est un paradigme important pour ce projet qui a besoin d'êtreétudié En général, Hadoop Map-Reduce est un framework en l'utilisant nous pouvonsfabriquer les applications pour traiter les données massives en parallèles sur les grandsclusters Map-Reduce est une technique du traitement et un modèle de programmationpour les calculs distribuées L'algorithme de Map-Reduce contient deux tâches
principaux institué Map et Reduce.
Map prend un ensemble des données et le convertit en autre ensemble des
données ó les éléments individuels sont décomposés en couple(paires des clé/valeur)
Reduce prend le résultat du Map comme une entrée et résume ces données dans
un ensemble des données avec la taille plus petit
Les tâches de Reduce sont toujours fonctionné après les tâches de Map L'imagequi suite décrit en détail le paradigme de Map-Reduce
Trang 36Input phrase : est une étape de préparation des données pour Map Ici, nous
avons un Record Reader qui traduit chaque individu dans un fichier d'entrée et envoie
les données analysées au Map sous la forme de paires (clé/valeur).
Map: est une fonction définie par l'utilisateur, qui prend une série de paires
clé-valeur et traite chacune d'entre elles pour générer zéro ou plusieurs paires (clé/clé-valeur)
Intermediate Keys : les paires(clé/valeur) générées par le Map sont appelées
clés intermédiaires
Combiner: est un type de Reduce local qui regroupe des données similaires de
la phase de Map en ensembles identifiables Il prend les clés intermédiaires du Mapcomme une entrée et applique un code défini par l'utilisateur pour agréger les valeursdans un petit espace d'un Map Il ne fait pas partie de l'algorithme principalMapReduce, il est optionnel
Shuffle & Sort La tâche Réducteur commence par l'étape Shuffle et Sort Il télécharge les paires(clé/valeur) groupées sur la machine locale, ó le Reduce est en
cours d'exécution Les paires(clé/valeur) individuelles sont triées par clé dans une liste
de données plus grande La liste de données regroupe les clés équivalentes ensemble
afin que leurs valeurs puissent être itérées facilement dans la tâche Reduce.
Reducer phrase prend les paires(clé/valeur) groupées comme l’entrée, et lance
la fonction Reduce Ici, les données peuvent être regroupées, filtrées et combinées dans
un certain nombre de façons Une fois que l'exécution est terminée, elle donne zéro ouplusieurs paires(clé/valeur) à l'étape finale
Output phrase dans cette phase de sortie, nous avons un formateur de sortie
qui traduit les paires(clé/valeur) finales de la fonction Reducer et les écrit sur un
fichier ou la base de données en utilisant Record Reader.
Pendant Map-Reduce Job, Hadoop envoie les Map tâches et les Reduce tâchesaux serveurs appropriés dans un cluster Après avoir regardé en détail Map-Reduceparadigme, nous avons vu que Map-Reduce a toujours besoin d'un endroit qui fourniles entrées pour Map et un endroit afin de sauvegarder les sortis de Reducer [18]
Maintenant, nous allons voir comment combiner Hadoop MapReduce etMongoDB Mais, avant de parler la combinaison Hadoop – MapReduce et MongoDB.Concernant Map-Reduce, nous ne pouvons pas empêcher de parler de Map-Reducenatif dans MongoDB En effet, MongoDB permet d'utiliser Map-Reduce écrit enJavascript pour traiter les données Pourtant, nous avons besoin d'une vue pour lacomparaison entre MapReduce d'Hadoop et MapReduce natif dans MongoDB Lasuite sont les différences essentielles entre Hadoop Map-Reduce and MongoDB Map-Reduce
1 Hadoop Map-Reduce est écrit en Java, tandis que Map-Reduce natif est enJavaScript Javascript n'est pas une meilleur langage pour le traitement de Big Data àcause de la performance base Et l'utilisation de Javascript est limité quand nous avonsbesoin d'autre bibliothèques pour le développement comme Pig, Spark, Mahout,