1. Trang chủ
  2. » Giáo Dục - Đào Tạo

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 luận văn ths truyền dữ liệu và mạng máy tính (chương trình đào tạo thí điểm)

72 68 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 72
Dung lượng 2,16 MB

Nội dung

UNIVERSITE 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 UNIVERSITE 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 ATTESTATION SUR L’HONNEUR J’atteste sur l’honneur que ce mémoire a été réalisé par moi-même et que les donné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 công trình nghiên cứu riêng tơi Các số li ệu, k ết qu ả nêu Luận văn trung thực chưa công b ố b ất kỳ cơng trình khác Các thơng tin trích dẫn Luận văn rõ nguồn gốc Signature de l’étudiant PHU Ba Duong Table de matières Remerciements Résumé Les acronymes .9 Chapitre 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 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 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 Conclusions et perspectives 66 4.1 Conclusions .66 4.2 Perspectives .66 Appendices 70 Remerciements Les plus grandes leỗons ne sont pas tirộes des livres mais des professeurs tels que vous, tous les professeurs de l’Institut Francophone International (IFI) Je souhaite exprimer ma sincère gratitude vous qui avez pris le temps de m’aider au cours de ces trois années et de m’avoir accompagné dans la mtrise de mes connaissances Je tiens exprimer toute ma reconnaissance mes directeurs de mémoire Madame Besma ZEDDINI et Monsieur Julien MERCADAL Je les remercie de m’avoir encadré, orienté, aidé et conseillé J’adresse mes sincères remerciements Madame Fatima BERRICHE et toutes les personnes qui par leurs paroles, leurs écrits, leurs conseils et leurs critiques ont guidé mes réflexions et ont accepté me rencontrer et répondre mes questions durant mes recherches Je remercie mes très chers parents, qui ont toujours été pour moi, «Vous avez tout sacrifié pour vos enfants n’épargnant ni santé ni efforts Vous m’avez donné un magnifique modèle de labeur et de persévérance Je suis redevable d’une éducation dont 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 Sylvie Petiot, Madame Audrey Jama qui ont toujours été pour moi et m'ont aidé beaucoup Je tiens les remercier pour leurs amitiés, leurs soutiens inconditionnel et leurs encouragements Enfin, je remercie mon ami Khai NGUYEN pour son sincère amitié et confiance, et qui je dois ma reconnaissance et mon attachement À tous ces intervenants, je présente mes remerciements, mon respect et ma gratitude Résumé Les 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 un bâtiment Smart Engineering School est un projet qui applique la technologie de géolocalisation en intérieur pour fabriquer des applications forte valeur ajoutée sur des réseaux d'objets communicants équipant l'EISTI, afin d'automatiser ou de simplifier 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 font les parties très importantes afin de pouvoir construire une application de gé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 de GIS(Geographic Information Systems), des technologies de géolocalisation en intérieur, NoSQL, de réseau de capteurs (iBeacons) et des techniques d'analyse de donné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 tels que les hôpitaux, les muséums, les restaurants Cette approche dans ce mémoire est totalement basée sur les technologies d'open-source afin d'économiser le coût de développement Mots clés : OpenStreetMap(OSM), Indoor Map, Indoor Positionning System, Hadoop Map-Reduce, Système de recommandation, BFS, NoSQL, MongoDB Abstract The services of localization in buildings representing a great advantage These allow people to look for places, things or people in a building, closed region Smart Engineering School is a project that apply the indoor positioning technologies to build applications with high added values on a network of connected objects installed at EISTI in order to automate or simplify various tasks for its occupants And modeling an indoor map, analyzing indoor geo-localization data and participatory measures make the very important part in order to be able to build an intelligent indoor positioning application In this thesis, we propose a complete and efficient solution for building an information system for indoor positioning using Geographic Information System(GIS), indoor positioning, NoSQL, Sensor network and some techniques for analyzing Big Data Firstly, the information system solution is developed to use in the Smart Engineering 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 to save the development cost Keywords : OpenStreetMap(OSM), Indoor Map, Indoor Positionning System, Hadoop Map-Reduce, Système de recommandation, BFS, NoSQL, MongoDB Table des figures Figure 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 Les acronymes Bluetooth Low Energy : BLE École Internationale des Sciences du Traitement de l'Information : EISTI Global Positioning System : GPS Indoor Positioning System : IPS Internet of Things : IoT Java OpenStreetMap (editor) : JOSM La base des données : DBMS Mobile Crowd Sensing : MCS Open Street Map : OSM 10 Radio Frequency Identification : RFID 11 Rational Database Management System : RDBMS Chapitre Analyse du sujet 1.1 Introduction L'Internet of Things (IoT) est devenu une partie intégrante de notre vie quotidienne Au début des années 2000s, Kevin Ashton est un des pionniers qui concevait cette notion quand il a fait la recherche sur les liaisons entre Radio Frequency Identification(RFID) et l'Internet visant améliorer la performance de les taches 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 En effet, IoT représente un concept général pour la capacité des réseaux des objets qui récupère et collecte les données du monde autour de nous, et puis envoie ces données travers l'Internet où elles peuvent être analysées et utilisées pour les différents objectifs 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 Internationale des Sciences du Traitement de l'Information(EISTI) C'est un projet dont son but est de réaliser un réseau des capteurs dans les bâtiments de l'EISTI et combiner avec le dé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 les gens et l'EISTI Par exemple, vérifier l'absence d'une personne, réserver une salle 10 dayOfWeek : {2, 7} fromTime : heure de départ toTime : heure de fin dayOfYear : le jour de la année trackingTime : le moment, ce document est inséré/mis jour Ces données seront mis jour chaque minute en se basant sur le membre currentPosition de la collection Users 3.5.4 Exportation des données historiques Les données historiques d'utiliser seront exportées dans un fichier excel en se basant sur les données de Tracking dans la collection Users C'est un programme Map-Reduce Essentiellement, ce résultat permet de recenser les activités historiques d’utilisateurs dans l'école Une des applications est de vérifier l'absence sans permission d'étudiants et des personnelles Les données récupérées est trié par jour Figure 35: Les données historiques exportées Les données exportées sont mis dans un fichier *.xls Ce sont les données historiques qui nous permettent de savoir chaque moment dans la passé il y avait combien de personnes et qui étaient les personnes dans chaque salle 3.5.5 La construction du systèmes de recommandation Les systèmes de recommandation font partie du système de filtrage de l'information qui vise prédire la préférence l'utilisateur donnerait un élément Les 58 systèmes de recommandation ont changộ la faỗon dont les sites Web et les applications d'interagir avec leurs utilisateurs Ils éliminent l'expérience statique, dans lequel les utilisateurs recherchent des informations statiques pour ses évaluations des éléments potentiellement par l'interaction croissante entre les utilisateurs de fournir une riche expérience utilisateur dynamique Les systèmes de recommandation sont divisé en deux types Content-based systems Collaborative filtering systems Autrement dit, un système de recommandation cherche prédire la valorisation ou préférence qu'un utilisateur attribuerait un objet (livre, musique, film…) ou un élément social (personne, groupe, communauté) qu'il n'avait pas encore été considéré Un grand nombre de top des sites Web mondiaux, tels que Facebook, Twitter, LinkedIn, Amazon etc a utilisé le systèmes de recommandation d'engager leurs utilisateurs avec un contenu pertinent Filtrage par contenu (Content-based systems) : Les systèmes de recommandation basés sur le contenu s’appuient sur des évaluations effectuées par un utilisateur sur un ensemble de éléments ou items L’objectif est alors de comprendre les motivations l’ayant conduit juger comme pertinent ou non d'un item donné Filtrage collaboratif (Collaborative filtering systems) : Le paradigme du filtrage collaboratif apporte précisément une réponse ces problèmes, en s’appuyant sur la communauté des utilisateurs du système Le principe est de filtrer le flot de éléments ou items entrant en fonction de l’opinion que d’autres utilisateurs de la communauté ont déjà portée sur les éléments Si un élément ou items a été jugé intéressant par un utilisateur, il sera diffusé automatiquement aux utilisateurs qui ont eu des opinions similaires par le passé Le filtrage collaboratif se base sur l’hypothèse que les gens la recherche d’information devraient pouvoir se servir de ce que d’autres ont déjà trouvé et évalué Cette approche résout les limitations de l’approche basée sur le contenu sémantique Il devient possible de traiter n’importe quelle forme de contenu et de diffuser des ressources non nộcessairement similaires celles dộj reỗues Pour ce faire, pour chaque utilisateur d’un système de filtrage collaboratif, un ensemble de proches voisins est identifié, et la décision de proposer ou non un élément un utilisateur dépendra des appréciations des membres de son voisinage Le filtrage collaboratif emploie des méthodes statistiques pour faire des prévisions basées sur des configurations des intérêts des utilisateurs Ces prévisions sont exploitées pour faire des propositions un utilisateur individuel, en se fondant sur la corrélation entre son propre profil personnel et les profils d’autres utilisateurs qui présentent des intérêts et goûts semblables Pour le filtrage collaboratif, les utilisateurs fournissent des évaluations des éléments, sous forme de notes, pour constituer leur profil Ces estimations sont comparées celles d’autres utilisateurs et des similitudes sont mesurées Des prévisions sont calculées comme moyenne pondérée des avis d’autres utilisateurs avec des goûts soit semblables, soit complètement opposés Dans notre projet, le systèmes de recommandation est construit en basé sur les 59 données d'évaluations des utilisateurs Nous allons voir les données sauvegardées dans le collection Ratings buildingPartId : le numéro de la salle userId : L'identifié d'utilisateur ratings : la valeur d'évaluation que l'utilisateur donnerait la salle Un exemple : Utilisateur Id Salle Évaluation CE547B2B-E63A-4D5D-82B9-F2851D6627D4 CY201 CE547B2B-E63A-4D5D-82B9-F2851D6627D5 CY206 CE547B2B-E63A-4D5D-82B9-F2851D6627D5 CY301 CE547B2B-E63A-4D5D-82B9-F2851D6627D6 CY201 CE547B2B-E63A-4D5D-82B9-F2851D6627D7 CY201 CE547B2B-E63A-4D5D-82B9-F2851D6627D5 CY201 CE547B2B-E63A-4D5D-82B9-F2851D6627D9 CY301 CE547B2B-E63A-4D5D-82B9-F2851D6627D2 CY201 CE547B2B-E63A-4D5D-82B9-F2851D6627D2 CY206 CE547B2B-E63A-4D5D-82B9-F2851D6627D6 CY206 Table Un exemple de tableau d'évaluation d’utilisateurs Le système de recommandation dans ce projet est implémenté en utilisant MapReduce en se basant sur Filtrage collaboratif Essentiellement, nous voulons calculer la similarité entre tous les paires de buildingPartIds(les salles, les bureaux ) L'approche est de trouver tous les utilisateurs qui ont fait l'évaluation pour les deux buildingPartId A et le buildingPartId B Utiliser les valeurs d'évaluation pour avoir deux vecteurs d'évaluation Le vecteur de buildingPartId A et le vecteur de buildingPartId B Et puis, calculer la similarité entre ces deux vecteurs Enfin, après avoir eu les similarités entre tous les paire de deux buidlingPartIds, un utilisateur fait une évaluation pour un buildingPartId, le système va décider de choisir le buildingPartId basé sur les similarités l'utilisateur Par exemple, dans le tableau d'évaluation au-dessus nous prenions deux buildingPartIds CY201 et CY206 Utilisateur CY201 CY206 CE547B2B-E63A-4D5D-82B9-F2851D6627D5 CE547B2B-E63A-4D5D-82B9-F2851D6627D2 CE547B2B-E63A-4D5D-82B9-F2851D6627D2 Table Un exemple de vecteurs d'évaluation 60 Maintenant, nous pouvons calculer la similarité entre deux buildingPartIds en utilisant la formule Pearson {https://en.wikipedia.org/wiki/Pearson_productmoment_correlation_coefficient} La partie qui suite va décrire le processus de MapReduce afin de construire un système de recommandation Pour calculer les similarités entre tous les paires de buildingPartIds, nous allons utiliser deux fois de Map-Reduce Premier Map-Reduce Map : Émettre UserId comme la clé et (buildingPartId et Rating) comme la valeur Reduce : Pour chaque utilisateur, émettre les listes qui contiennent leurs évaluations (buidingPartId, rating paires) Deuxième Map-Reduce Map : Prendre le sorti de premier MapReduce, laissons tomber le clộ UserId et le remplaỗons par le paire buildingPartIds comme la clé, le paire de ratings comme la valeur Reduce : Regrouper les composants des co-évaluation de tous les utilisateur pour chaque paire de buildingPartIds, puis calculer les similarités des paires de buildingPartIds Appliquer cet algorithme pour le tableau d'exemple Nous avons Map CE547B2B-E63A-4D5D-82B9-F2851D6627D4 CE547B2B-E63A-4D5D-82B9-F2851D6627D5 CE547B2B-E63A-4D5D-82B9-F2851D6627D5 CE547B2B-E63A-4D5D-82B9-F2851D6627D6 CE547B2B-E63A-4D5D-82B9-F2851D6627D7 CE547B2B-E63A-4D5D-82B9-F2851D6627D5 CE547B2B-E63A-4D5D-82B9-F2851D6627D9 CE547B2B-E63A-4D5D-82B9-F2851D6627D2 CE547B2B-E63A-4D5D-82B9-F2851D6627D2 CE547B2B-E63A-4D5D-82B9-F2851D6627D6 Reduce CE547B2B-E63A-4D5D-82B9-F2851D6627D4 CE547B2B-E63A-4D5D-82B9-F2851D6627D5 CY201,1) CE547B2B-E63A-4D5D-82B9-F2851D6627D6 CE547B2B-E63A-4D5D-82B9-F2851D6627D7 CE547B2B-E63A-4D5D-82B9-F2851D6627D9 Map CY206, CY301 3,3 CY201, CY206, CY301, CY201, CY201, CY201, CY301, CY201, CY206, CY206, 1,2,(CY201, 2) 3,7,(CY206,3 CY301, 2, 4, (CY201, CY206, 2) 1, 5, (CY201, 5) 1, 4, (CY301, 4) CY206 61 CY201 CY206, CY201 CY301, CY201 CY206, CY201 ⇒ 3,1 3,1 2,3 3 Reduce CY206, CY201 0.5 [20] [21] Figure 36: Le système de recommandation est représenté au côté client Dans exemple, quand un utilisateur fait une évaluation sur la salle CY201, le système va recommander la salle CY206 Laris, c'est peu-être une salle que l’utilisateur préfère de faire une évaluation Pourtant, cela dépend beaucoup sur les similaires de tous les paire de buildingPartIds La suite sont les fonctions principales de Web Service implémentées dans ce projet Nous allons voir en détails dans la partie du développement RESTful Web Service 3.5.6 Les RESTFul web services Cette partie décrit les autres fonctions des web services qui sont également très importantes Root : http://host:port/SmartEngineeringSchool/ Beacons /api/beacons :- Récupérer toute information des beacons (la position installée, l'identité …) Ces données seront utilisé afin de calculer la positon courante au côté du 62 client /api/beacons/{beacon-id} : Récupérer toute information d'un Beacon en fournissant id Utilisateur /api/users - Récupérer tous les utilisateurs Les données d’inscription, données historiques, la position courante /api/users/add/{device_id}' - Ajouter un nouveau utilisateur en utilisant l'identité d'application /api/users/{device_id}/register?firstname=?&lastname=?&username=? &password=?&email=? - Enregistrer un compte, les informations personnelles /api/users/{device_id}/add-current-position?latitude=?&longitude=?&level=?' - Mettre jour la position courante de smartphone Cette fonction sera appelé chaque une second /api/users/{device_id}/get-current-position' - Prendre la position courante du device /api/users/delete/{device-id}/add-event?eventid=?&status=? - Ajouter l'événement auquel l'utilisateur veut participer /api/users/delete/{device-id} - Supprimer un utilisateur en fournissant l'identité leur smartphone /api/users/search-people?firstname=?&lastname=? - Permettre de chercher les personnes par son nom et son prénom /api/users/{_id}/out-of-beacons-area - Une fois que l'application ne peux pas détecter les signaux nécessaires pour localiser la position Cette fonction sera appelé afin de supprimer la position courant d'utilisateur L'objectif de cette processus est d'éviter les données historiques sont mis jour incorrectement Rating /api/users/{device-id}/rating?bp-id=?&rating=? - Permettre aux utilisateurs de faire une évaluation sur un point d'intérêt /api/ratings/get-rating/{bp-id} - Retourner la valeur moyenne de toutes les évaluations de un point d'intérêt qui sera affiché sur l'application mobile /api/ratings/get-rating/bps -Retourner les valeurs moyennes de tous les points d'intérêt qui sont évalués par les utilisateurs 63 Géolocalisation en intérieur /api/map/room/{building-part-name} - Récupérer une salle partir de nom de salle /api/map/search-bounding-room?latitude=?&longitude=?&level=? - Récupérer la salle la où l'utilisateur est en fournissant leur coordonate et étage courant /api/map/search-path?origin=CY201&destination=CY301 - Récupérer le chemin entre deux salles /api/map/search-path-to?destination=?&longitude=?&latitude=?&level=? - Récupérer le chemin d'un point une salle Cette fonction est utilisé quand l'utilisateur se déplace donc leur position est changé automatiquement /api/map/{level} - Récupérer la carte par l'étage Ces données est représentées par une carte sur l'application en utilisant mapbox Événement /api/events/create?title=?&type=?&description=?&responsable=?&creator=? &place=?&start-date=?&end-date=? - Créer un événements avec les information concernant telles que la description, qui est responsible, le lieu… /api/events/{user-id}/events-created - Chercher les événements que un utilisateur a créé en fournissant l'identité d'utilisateur /api/events/{event-id}/set-beacons-area?beaconIds=?,? - Mettre les événements aux collection Beacons afin de les diffuser aux utilisateurs Une fois leur smartphone détecte signal d'un ibeacon Si l'identité d'ibeacon dans la liste de diffusion, cet événement sera diffusé cet utilisateur /api/events/get-events-from-beaconId?beaconId=? - Prendre les événements en fournissant l'identité d'ibeacon Cette fonction est de diffuser l'événement aux utilisateur Bâtiments /api/buildings - Prendre toute information des bâtiments de l'EISTI /api/{name} - Prendre toute information d'un bâtiment en fournissant le nom du bâtiment /api/insert/{name}/{introduction}/{description}/{levels}/{minlevel}/{maxlevel} - Cette fonctions pour l'administrateur afin de ajoute les informations d'un bâtiment 64 /api/update/{name} - Permettre l'administrateur de mettre jour les information d'un bâtiment /api/delete/{name} - Permettre l'administrateur de supprimer les information d'un bâtiment /api/users-in-rooms - Analyser et retourner une liste des salle avec les personnes dans chaque salle Export /api/excel/tracking-data - Permettre de exporter les données historiques dans un fichier excel *.xls 65 Chapitre Conclusions et perspectives 4.1 Conclusions En travaillant sur ce projet, j'ai acquis des connaissances solides dans le domaine très chaude de Internet Of Things En particulaire, j'ai travaillé sur le côté serveur Je suis arrivé modéliser les données en intérieur, proposer une solutions pour trouver les chemins sur multi-étages en intérieur, appliquer l'Hadoop MapReduce afin de construire un système de recommandation, calculer le nombre des personnes dans chaque salles tous les moment, surveiller les gens, sauvegarder les données historiques d'utilisateurs., extraire les données historiques J'ai appris plein des nouvelles technologies telles que Hadoop - MapReduce, NoSQL(MongoDB), RESTFul Web Services, données géographiques *.osm, les capteurs en particulière les iBeacons Pourtant, nous avons rencontré des difficultés de matériels - Les ibeacons ne sont pas suffisant réaliser tous les étage de l'EISTI Nous avons eu 10 beacons Ainsi, nous avons seulement réalisé un réseau des capteurs dans un coin de l'EISTI - Le serveurs ne sont pas suffisant afin de déployer sharding dans MongoDB Je n'ai que pu arriver implémenter replica (pour créer un backup des données) en utilisant trois machine, un serveur réel et deux machine en local En fin, le plus intéressant, j'ai développé ce projet en utilisant tous les outils open source software Cela veux dire que nous pouvons développer ces type de projet en utilisant open-source pour économiser les coûts de développement 4.2 Perspectives Les applications du projet est très large, ce projet nous donne un exemple de l'application de la technologie de géolocalisation en intérieur dans une écoles afin de construire une école intelligente Pourtant, ce projet peuvent être étendu pour Les mussées intelligentes : les beacons sont installés dans certaine point du mussées, normalement, les positions des monuments, des antiquités Une fois, les gens approchent un monument ou une antiquité, l'application détectera la position courante et donnera des information utile de monument pour les visiteurs Les hôpitals intelligents : Les patiences, ou les relations des patiences peux utiliser l'application mobile afin de chercher le chemin, les salles, les docteurs, les infirmiers Les agricultures intelligentes : Les capteurs installées dans certain point d'une région agriculture Les soigne de plantes est réaliser par l'application mobile Par exemple, arroser les plants Mais il faut avoir beaucoup de différents types des capteurs Les restaurants intelligentes : Les client réserver un table en utilisant application distance En outre, les clients réservent les plats et attendent les plats une fois ils ont entre le restaurant Au plus loin, c'est la ville intelligente quand nous avons les écoles intelligentes, 66 les transportations intelligentes, les mussées intelligents, En outre, le développement et l'amélioration de ce projet pour avoir un plateforme qui permet simplifier le développement de l'application de géolocalisation en intérieur sont très nécessaires 67 Références [1] Lopez Research LLC(November 2013), "An Introduction to the Internet of Things(IoT)",6, http://www.cisco.com/c/dam/en_us/solutions/trends/iot/introduction_to_IoT_november pdf [2] Bradley Mitchell, Introduction to the Internet of Things (IoT), 2016, https://www.lifewire.com/introduction-to-the-internet-of-things-817766 [3] Daniel Dimov, Crowdsensing: State of the Art and Privacy Aspects, 2015, http://resources.infosecinstitute.com/crowdsensing-state-art-privacy-aspects/ [4] Bin Guo, Zhiwen Yu, Xingshe Zhou,Daqing Zhang(), "From Participatory Sensing to Mobile Crowd Sensing",Northwestern Polytechnical University, Institut TELECOM SudParis, https://arxiv.org/pdf/1401.3090.pdf [5] infsoft GmbH(August 2016), "INDOOR POSITIONING&NAVIGATION",infsoft GmbH, https://www.infsoft.com/portals/0/images/solutions/basics/whitepaper/enindoor-navigation-indoor-positioning-infsoft-ebook.pdf [6] Marcel Estel and Laura Fischer(2015), "Feasibility of Bluetooth iBeacons for Indoor Localization", http://subs.emis.de/LNI/Proceedings/Proceedings244/97.pdf [8] Guillermo Amat, Javier Fernandez , Alvaro Arranz , Angel Ramos (2014), "Using Open Street Maps data and tools for indoor mapping in a Smart ", https://agile-online.org/Conference_Paper/cds/agile_2014/agile2014_82.pdf [7] Erigrus, JOSM/Plugins/indoorhelper, April 2016, http://wiki.openstreetmap.org/wiki/JOSM/Plugins/indoorhelper [9] Tutorials Point, Hadoop - Big Data Overview, 2016, http://www.tutorialspoint.com/hadoop/hadoop_big_data_overview.htm [10] GIRISH KUMAR, EXPLORING THE DIFFERENT TYPES OF NOSQL DATABASES, 2014, http://www.3pillarglobal.com/insights/exploring-the-differenttypes-of-nosql-databases [11] MongoDB comunity, MongoDB & MySQL, 2016, https://www.mongodb.com/compare/mongodb-mysql [12] Howard Butler (Hobu Inc.), Martin Daly (Cadcorp), Allan Doyle (MIT), Sean Gillies (UNC-Chapel Hill), Tim Schaub (OpenGeo), Christopher Schmidt (MetaCarta), The GeoJSON Format Specification, 16 June 2008, http://geojson.org/geojson-spec.html [13] MongoDB, GeoJSON Objects, 2008-2016, 68 https://docs.mongodb.com/manual/reference/geojson/ [14] MongoDB, What Is Big Data?, 2016, https://www.mongodb.com/big-dataexplained [15] MongoDB Inc, Sharding introduction, 2016, https://docs.mongodb.com/v3.0/core/sharding-introduction/ [16] MongoDB, Sharding, 2008-2016, https://docs.mongodb.com/manual/sharding/ [17] Remco R BouckaertEibe FrankMark HallRichard KirkbyPeter ReutemannAlex SeewaldDavid Scuse(April 14, 2016), "WEKA Manualfor Version 3-8-0", [18] Tuitorial Point, MapReduce Tutorial, , https://www.tutorialspoint.com/map_reduce/map_reduce_introduction.htm [19] Xoomtrainings.com, MONGODB WITH HADOOP AND RELATED BIG DATA TECHNOLOGIES, OCTOBER 13, 2015, http://www.xoomtrainings.com/mongodbwith-hadoop-and-related-big-data-technologies [20] MongoDB Inc, Getting Started with Hadoop, 2008-2016, https://docs.mongodb.com/ecosystem/tutorial/getting-started-with-hadoop/ [21] MARCEL CARACIOLO, Introduction to Recommendations with Map-Reduce and mrjob, AUGUST 23, 2012, http://aimotion.blogspot.fr/2012/08/introduction-torecommendations-with.html [22] Laurent Candillier, Etienne Chai, Estelle Delpech(Jun 2012), "Systemes de recommandation et Recherche d’Information",Nomao, avenue Jean Rieux, 13 500 Toulouse, https://hal.archives-ouvertes.fr/hal-00912315/document [23] MongoDB Inc(June 2016), "Top Considerations When EvaluatingNoSQL Databases",MongoDBInc,https://webassets.mongodb.com/_com_assets/collateral/10ge n_Top_5_NoSQL_Considerations.pdf?_ga=1.217831070.98591917.1462178937 [24] MongoDB Inc, mongos, 2008-2016, https://docs.mongodb.com/manual/core/sharded-cluster-query-router/ [25] Jure Leskovec, Anand Rajaraman, Jeffrey D Ullman(2014), "Mining of Massive Datasets" 69 Appendices Importer les données de la carte *.geojson mongoimport host hostname port port username username password password db admin collection EistiMap file path/to/file.geojson Déplacer collections de la carte une autre database db.runCommand({renameCollection:"admin.EistiMap",to:"SmartEngineeringSchool EistiMap"}) Set authentification dans la base des données db.createUser({user :"user",pwd:"password",roles:[{role:"readWrite", db:"SmartEngineeringSchool"}]}) Extraire data partir de *.geojson fichiers après avoir importée Extraire les Pois(Points of interest) de la base de données db.EistiMap.aggregate( [ {$match:{"features":{$elemMatch:{"geometry.type":"Point"}}}}, {$unwind:"$features"},{$match:{"features.geometry.type":"Point"}}, {$group:{"_id":"$features.id","features":{$addToSet:"$features"}}}, {$out:"POIs"} ] ) Extraire polygons des données db.EistiMap.aggregate( [ {$match:{"features":{$elemMatch:{"geometry.type":"Polygon"}}}}, {$unwind:"$features"},{$match:{"features.geometry.type":"Polygon"}}, {$group:{"_id":"$features.id","features":{$addToSet:"$features"}}}, {$out:"Polygons"} ] ) Extraire les routes des données db.EistiMap.aggregate( 70 [ {$match:{"features":{$elemMatch:{"geometry.type":"LineString"}}}}, {$unwind:"$features"},{$match:{"features.geometry.type":"LineString"}}, {$group:{"_id":"$features.id","features":{$addToSet:"$features"}}}, {$out:"Paths"} ] ) Extraire la position des beacons afin d'avoir Beacons collection db.EistiMap.aggregate([ {$match:{"features":{$elemMatch:{"properties.tags.man_made":"beacon"}}}}, {$unwind:"$features"},{$match:{"features.properties.tags.man_made":"beacon"}}, {$group:{"_id":"$features.properties.tags._id","features": {$addToSet:"$features"}}}, {$out:"Beacons"} ] ) Rédiger la collection des beacons en utilisant javascript >db.Beacons.find().forEach(function(elem) { db.Beacons.update({ _id : elem._id}, { $set : { name : elem.features[0].properties.tags.name, level : elem.features[0].properties.tags['indoor:level'], installedPosition : elem.features[0].geometry}})}) > db.Beacons.update({},{$unset: {features:1}}, {multi: true}) > db.Beacons.update({},{$set:{"installedPosition.level": "1"}}, {multi:true}) > db.Beacons.update({},{$unset: {level:1}}, {multi: true}) Créer l'index 2DSphere pour les données de la carte db.collectionName.createIndex( { "features.geometry" : "2dsphere" } ) //page 569 mongo manual Map-Reduce natif dans Mongodb pour tracer les utilisateur Le fonction Map var mapF = function() { emit(this.currentPosition['addr:flats'], {count : 1, ids : [this._id]}); } 71 Le fonction Reduce var reduceF = function(key, values) { reducedVal = { count : 0, ids : []}; values.forEach(function(value) { reducedVal.count += value.count; value.ids.forEach(function(id){ reducedVal.ids.push(id); }); }); return reducedVal; } 72 ... 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... publié LỜI CAM ĐOAN Tơi cam đoan cơng trình nghiên cứu riêng Các số li ệu, k ết qu ả nêu Luận văn trung thực chưa công b ố b ất kỳ công trình khác Các thơng tin trích dẫn Luận văn rõ nguồn gốc... effet, cette collection se compose les Polygons, les Paths et les Points Et elle sera décomposé pour avoir les sous-collections Polygons, Paths, Points Nous nous intéressons aux attributs que nous

Ngày đăng: 28/09/2020, 23:53

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w