ebook img

Smart ecoMobility Disseny d'una solució IoT basada en Fog/Edge Computing aplicada a l'àmbit PDF

114 Pages·2017·6.48 MB·English
by  
Save to my drive
Quick download
Download
Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.

Preview Smart ecoMobility Disseny d'una solució IoT basada en Fog/Edge Computing aplicada a l'àmbit

Escola Tècnica Superior d’Enginyeria Informàtica Universitat Politècnica de València Smart ecoMobility Disseny d’una solució IoT basada en Fog/Edge Computing aplicada a l’àmbit del trànsit sostenible a les ciutats intel·ligents TREBALL FI DE GRAU Grau en Enginyeria Informàtica Autor: Daniel Pedrós i Oliver Tutor: Joan Fons i Cors Vicente Pelechano i Ferragud Curs 2017-2018 Resum L’objectiu d’aquest projecte és el desenvolupament d’un sistema aplicable a l’àmbit de les ciutats intel·ligents que permeta la computació distribuïda de ma- neraseguraenunaxarxadedispositiusIoT.Elfogcomputingésl’arquitecturaem- pradapertaldedistribuirlacomputació(ilaintel·ligènciadelsistema)iapropar- la on realment són aplicables les mesures que aquesta prenga. Gràcies a aquest repartiment de la intel·ligència, és possible l’aplicació de mesures efectives en tempsreal. Una ciutat no és un ent estàtic, sinó que varia les condicions dinàmicament. L’adaptabilitat i escalabilitat del sistema és un factor crític que es busca des del primermomentdeldisseny. Delamateixamanera,laseguretatdelescomunica- cions és un factor crític també. Per això, aquest projecte desenvolupa també una capadeseguretatqueblindalescomunicacionsiasseguralainformaciód’aques- tes. El resultat del desenvolupament d’aquest projecte és un prototip format per un conjunt de components que poden ser desplegats distribuïdament en un en- tornreal. Aquestdocumenttracta,desdel’anàlisidelaproblemàticaieldisseny de la solució, fins el desplegament dels diferents components finals, passant per totelprocésd’implementació. Paraules clau: IoT, ciutats intel·ligents, fog computing, escalabilitat, adaptabilitat, seguretat,comunicacions Resumen Elobjetivodeesteproyectoeseldesarrollodeunsistemaaplicableenelámbi- todelasciudadesinteligentesquepermitalacomputacióndistribuidademanera segura en una red de dispositivos IoT. El fog computing es la arquitectura utiliza- da para distribuir la computación (i la inteligencia del sistema) i acercarla donde realmente son aplicables las medidas que ésta tome. Gracias a éste reparto de la inteligencia,esposiblelaaplicacóndemedidasefectivasentiemporeal. Una ciudad no es un ente estático, sinó que varia las condiciones dinámica- mente. La adaptabilidad y escalabilidad del sistema es un factor crítico que se busca desde el primer momento del diseño. Del mismo modo, la seguridad de las comunicaciones es un factor crítico también. Por eso, éste proyecto desarro- lla también una capa de seguridad que blinda las comunicaciones y asegura la informacióndeéstas. El resultado del desarrollo de este proyecto es un prototipo formado por un conjunto de componentes que pueden ser desplegados distribuidamente en un entorno real. Este documento trata, desde el análisis de la problemática y el di- seño de la solución, hasta el despliegue de los diferentes compoenentes finales, pasandoportodoelprocesodeimplementación. Palabras clave: IoT, ciudades inteligentes, fog computing, escalabilidad, adaptabi- lidad,seguridad,comunicaciones iii iv Abstract The objective of this project is the development of a system applicable in the field of smart cities that allows securely distributed computing on a network of IoTdevices. Fogcomputingisthearchitectureusedtodistributecomputing(and system intelligence) and bring it closer to where the measures it takes are really applicable. Thanks to this distribution of the intelligence, it is possible to apply effectivemeasuresinrealtime. A city is not a static entity, but one that varies conditions dynamically. The adaptability and scalability of the system is a critical factor that is considered from the very beginning of the design. Similarly, the security of communications is a critical factor as well. This project also develops a security layer that shields communicationsandsecurestheirinformation. The result of this project development is a prototype formed by a set of com- ponentsthatcanbedeployedinarealenvironment. Thisdocumentcovers,from the analysis of the problem and the design of the solution, to the deployment of thedifferentfinalcomponents,goingthrougthewholeimplementationprocess. Key words: IoT, smart cities, fog computing, scalability, adaptability, security, communications Índex Índex v Índexdefigures ix 1 Introducció 1 1.1 Motivació . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1.2 Problemàtica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 1.3 Objectius . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 1.4 Pladetreballimetodologia . . . . . . . . . . . . . . . . . . . . . . . 3 2 Contexttecnològic 5 2.1 Desenvolupament: entorn,llenguatgeiframework . . . . . . . . . . 5 2.1.1 EclipseIDE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 2.1.2 Java . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 2.1.3 OSGi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 2.2 Desenvolupament: controldeversionsigestiódeprojectes . . . . . 9 2.2.1 GitHub+GitHubDesktop . . . . . . . . . . . . . . . . . . . . 9 2.2.2 Asana . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 2.3 Comunicacions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 2.3.1 RabbitMQ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 2.3.2 LoRa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 2.4 Hardware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 2.4.1 RaspberryPi . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 2.4.2 Arduino . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 2.5 Desplegament . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 2.5.1 Docker . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 2.5.2 Shellscript . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 2.6 Amenacesreals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 2.6.1 BotnetMirai . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 3 Plantejamentinicialdelproblema 21 3.1 SobredispositiusIoT . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 3.2 Fogcomputing: dissenyiaplicació . . . . . . . . . . . . . . . . . . . . 22 3.3 Comunicacionsenelfogambl’IoT . . . . . . . . . . . . . . . . . . . 23 3.4 Conclusionsprèvies . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 4 Anàlisidelproblema 27 4.1 Organitzaciódelsistema . . . . . . . . . . . . . . . . . . . . . . . . . 27 4.1.1 Segmentacióbasadaenlageografia . . . . . . . . . . . . . . 27 4.1.2 Segmentacióbasadaenlafuncionalitat . . . . . . . . . . . . 29 4.2 Estratègiesdecomunicació . . . . . . . . . . . . . . . . . . . . . . . . 30 4.2.1 Comunicaciósíncronaodirecta . . . . . . . . . . . . . . . . . 30 4.2.2 Comunicacióassíncronaoindirecta . . . . . . . . . . . . . . 31 4.3 Organitzaciódelescomunicacions . . . . . . . . . . . . . . . . . . . 32 v vi ÍNDEX 4.3.1 Segmentaciópertipusdedispositiu . . . . . . . . . . . . . . 32 4.3.2 Segmentacióperfuncionalitat . . . . . . . . . . . . . . . . . . 33 4.3.3 Segmentacióperabast . . . . . . . . . . . . . . . . . . . . . . 34 4.4 Organitzaciódelesdades . . . . . . . . . . . . . . . . . . . . . . . . 34 4.4.1 Tipusdedades . . . . . . . . . . . . . . . . . . . . . . . . . . 35 4.4.2 Campsdelesdades . . . . . . . . . . . . . . . . . . . . . . . . 35 4.5 Establimentdeclausiprotocolsdexifrat . . . . . . . . . . . . . . . . 37 4.5.1 Criptografiadeclausimètricavs. clauassimètrica . . . . . . 37 4.5.2 Assignacióestàticadeclauvs. derivacióapartirdetoken . . 39 4.5.3 Valoraportatpelsecretcompartitopeltoken . . . . . . . . . 39 4.6 Modelconceptual . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 4.6.1 Componentsprincipals . . . . . . . . . . . . . . . . . . . . . . 40 4.6.2 Componentscomplementaris . . . . . . . . . . . . . . . . . . 41 4.6.3 Reestructuraciódel’esquema . . . . . . . . . . . . . . . . . . 43 4.6.4 Diagramad’anàlisi . . . . . . . . . . . . . . . . . . . . . . . . 43 5 Dissenydelasolució 45 5.1 Dissenydelsdispositius . . . . . . . . . . . . . . . . . . . . . . . . . 45 5.1.1 Sensorsiactuadors . . . . . . . . . . . . . . . . . . . . . . . . 45 5.1.2 Nodecentralogateway . . . . . . . . . . . . . . . . . . . . . . 46 5.2 Dissenydelescomunicacions . . . . . . . . . . . . . . . . . . . . . . 46 5.2.1 APIsREST . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 5.2.2 Cuesdemissatgeria . . . . . . . . . . . . . . . . . . . . . . . . 47 5.3 Capesdecomunicació . . . . . . . . . . . . . . . . . . . . . . . . . . 49 5.3.1 Capa1-Comunicacióintrafog . . . . . . . . . . . . . . . . . . 50 5.3.2 Capa2-Comunicacióinterfog . . . . . . . . . . . . . . . . . . 50 5.3.3 Capa3-Comunicaciódegestió . . . . . . . . . . . . . . . . . 51 5.4 Formatdelesdades . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 5.4.1 JSON . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 5.4.2 XML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 5.5 Dissenydelacapadeseguretat . . . . . . . . . . . . . . . . . . . . . 54 5.5.1 Dissenydelprotocoldehandshake . . . . . . . . . . . . . . . . 54 5.5.2 Xifratidesxifratdedades . . . . . . . . . . . . . . . . . . . . 55 5.6 Componentització/modularització . . . . . . . . . . . . . . . . . . 55 5.6.1 Components . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 5.6.2 Diagramadeclasses . . . . . . . . . . . . . . . . . . . . . . . 58 6 Implementació 61 6.1 Programacióorientadaacomponents . . . . . . . . . . . . . . . . . 61 6.1.1 Definiciódelparadigma . . . . . . . . . . . . . . . . . . . . . 61 6.1.2 DesenvolupamentbasatenOSGi . . . . . . . . . . . . . . . . 62 6.2 Implementaciódelescomunicacions . . . . . . . . . . . . . . . . . . 63 6.2.1 ServidorRabbitMQ . . . . . . . . . . . . . . . . . . . . . . . . 63 6.2.2 Exchangesicues . . . . . . . . . . . . . . . . . . . . . . . . . . 64 6.3 Implementaciódelagestiódelesdades . . . . . . . . . . . . . . . . 66 6.3.1 Llibreriaorg.json . . . . . . . . . . . . . . . . . . . . . . . . . 66 6.3.2 Llibreriaorg.dom4j . . . . . . . . . . . . . . . . . . . . . . . . 67 6.4 Implementaciódelacapadeseguretat . . . . . . . . . . . . . . . . . 68 6.4.1 AdaptaciódelprotocolDiffie-HellmanKeyExchange . . . . . 68 6.4.2 XifratidesxifratambAdvancedEncryptionStandard . . . . . 69 ÍNDEX vii 6.5 Componentsfinalsdelsistema . . . . . . . . . . . . . . . . . . . . . 70 6.5.1 Gateways . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70 6.5.2 CO Sensors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70 2 6.5.3 TrafficLights . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71 7 Escenariconcretd’ús 73 7.1 Organitzaciódelsistema . . . . . . . . . . . . . . . . . . . . . . . . . 73 7.1.1 Particionatdelaciutat . . . . . . . . . . . . . . . . . . . . . . 73 7.1.2 Elecciódefogs . . . . . . . . . . . . . . . . . . . . . . . . . . . 74 7.2 Organitzaciódelsfogs . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 7.2.1 Benimacletfog . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 7.2.2 Extramursfog . . . . . . . . . . . . . . . . . . . . . . . . . . . 78 7.3 Exemplefuncional . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80 7.3.1 Derivaciódeclaussimètriques . . . . . . . . . . . . . . . . . 80 7.3.2 Produccióiconsumiciódemissatges . . . . . . . . . . . . . . 81 7.3.3 Xifratidesxifratdedades . . . . . . . . . . . . . . . . . . . . 83 7.3.4 Modificacionsdel’estatdelfog . . . . . . . . . . . . . . . . . 85 8 Conclusions 89 8.1 Objectiusassolits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89 8.2 Objectiusnoassolits . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90 8.3 Futursprojectes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90 8.4 Valoraciópersonal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91 Bibliografia 93 Apèndixs A Formatdelesdades 95 A.1 DadesenformatJSON . . . . . . . . . . . . . . . . . . . . . . . . . . 95 A.2 DadesenformatXML . . . . . . . . . . . . . . . . . . . . . . . . . . 97 B Empaquetamentdelscomponents 99 B.1 Estructuradelsdirectorisiarxius . . . . . . . . . . . . . . . . . . . . 99 B.2 Configuraciódedependències . . . . . . . . . . . . . . . . . . . . . . 100 B.3 Configuraciópròpiadelscomponents . . . . . . . . . . . . . . . . . 102 C DesplegamentdeservidorsRabbitMQambDocker 103 Índex de figures 1.1 Cicledevidadeldissenyiteratiuiincremental. . . . . . . . . . . . . 3 1.2 DiagramadeGanttamblaplanificaciótemporaldelprojecte. . . . . 4 2.1 Logotipd’EclipseIDE. . . . . . . . . . . . . . . . . . . . . . . . . . . 5 2.2 Workbenchd’Eclipse. . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 2.3 LogotipdeJava. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 2.4 Cicledevidad’unbundleOSGi. . . . . . . . . . . . . . . . . . . . . . 8 2.5 LogotipdeGitHub. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 2.6 ExemplederevisiódecanvisutilitzantGitHubDesktop. . . . . . . 10 2.7 Logotipd’Asana. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 2.8 Detalld’unatascaalaplataformaAsana. . . . . . . . . . . . . . . . 11 2.9 LogotipdeRabbitMQ. . . . . . . . . . . . . . . . . . . . . . . . . . . 12 2.10 LogotipdeLoRa. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 2.11 LogotipdeRaspberryPi. . . . . . . . . . . . . . . . . . . . . . . . . . 13 2.12 Fotografiad’unaRaspberryPi3ModelB. . . . . . . . . . . . . . . . 14 2.13 Logotipd’Arduino. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 2.14 Fotografiad’unaplacaArduinoUNO. . . . . . . . . . . . . . . . . . 15 2.15 Diferències entre utilització de contenidors Docker i virtualització ambmàquinesvirtuals. . . . . . . . . . . . . . . . . . . . . . . . . . . 16 2.16 Exempledeshellscript. . . . . . . . . . . . . . . . . . . . . . . . . . . 17 3.1 Diferènciesentrelacomputaciócloudilacomputaciófog. . . . . . . 23 4.1 DistrictesdelaciutatdeValència. . . . . . . . . . . . . . . . . . . . . 28 4.2 Esquema d’interacció entre dos dispositius utilitzant comunicació síncrona. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 4.3 Esquema d’interacció entre dos dispositius utilitzant comunicació assíncrona. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 4.4 Esquemadelasegmentacióperfuncionalitatutilitzadaal’exemple. 33 4.5 Esquemadelasegmentacióperabastutilitzadaal’exemple. . . . . 34 4.6 Esquemadexifratidesxifratambcriptografiadeclausimètrica. . . 38 4.7 Esquema de xifrat i desxifrat amb criptografia de clau assimètrica opública. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 4.8 Diagramad’anàlisiambelmodelatd’unfog. . . . . . . . . . . . . . 44 5.1 Esquema d’una cua de missatgeria basada en publicadors i subs- criptors. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 5.2 Esquemadelescapesdecomunicacióielsdispositiusqueinterve- nen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 5.3 ExemplededadesenformatJSON. . . . . . . . . . . . . . . . . . . . 52 5.4 ExemplededadesenformatXML. . . . . . . . . . . . . . . . . . . . 53 ix x ÍNDEX DE FIGURES 5.5 Esquemadelfuncionamentdelprotocoldehandshake. . . . . . . . . 54 5.6 Diagramadeclassessimplificatdelprojecte. . . . . . . . . . . . . . . 58 6.1 Relacionsentrediferentsbundlesd’OSGi. . . . . . . . . . . . . . . . . 63 6.2 Representació de les relacions de comunicacions establides entre components. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65 6.3 Exchangeslayer1ilayer3alservidorRabbitMQ. . . . . . . . . . . . . 65 6.4 Cuescontingudesdinsdel’exchangelayer1. . . . . . . . . . . . . . . 66 6.5 Esquemadel’intercanvideclausDiffie-Hellman. . . . . . . . . . . . 69 7.1 MapadeldistrictedeBenimaclet. . . . . . . . . . . . . . . . . . . . . 74 7.2 Mapadeldistricted’Extramurs. . . . . . . . . . . . . . . . . . . . . . 75 7.3 DistribuciódelsdiferentsdispositiusqueformenelBenimacletfog. 77 7.4 Distribuciódelsdiferentsdispositiusqueformenl’Extramursfog. . 79 7.5 Derivació de la clau compartida entre un sensor i un node central perpartdelnodecentral. . . . . . . . . . . . . . . . . . . . . . . . . . 80 7.6 Derivació de la clau compartida entre un sensor i un node central perpartdelsensor. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81 7.7 Generaciód’unamesuraperpartd’unsensor. . . . . . . . . . . . . . 82 7.8 Consumiciód’uncomandamentperpartd’unactuador. . . . . . . . 82 7.9 Mesuraoriginalgeneradaperunsensor. . . . . . . . . . . . . . . . . 83 7.10 Dadesxifradesrebudesidesxifradesperunnodecentral. . . . . . . 84 7.11 Desxifratmanualdelesdades. . . . . . . . . . . . . . . . . . . . . . 84 7.12 Conversiódedecimalahexadecimaldelaclausimètrica. . . . . . . 85 7.13 GatewayfuncionantenmodeOPEN. . . . . . . . . . . . . . . . . . . 86 7.14 Canvidefuncionamentd’unagatewayd’OPENaCNGSTAV. . . . . 86 B.1 Arbre de directoris i arxius que formen part d’un component em- paquetat. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99 B.2 ConsultadelesdependènciesalaRunconfigurationd’Eclipse. . . . 100 B.3 ArxiusJARambelspluginsnecessarisexportats. . . . . . . . . . . . 101 B.4 Arxiudeconfiguraciódelesdependènciesdelspluginsd’OSGi. . . 101 B.5 Scriptdeconfiguracióiarrancdelcomponent. . . . . . . . . . . . . 102 C.1 Dockerfile que permet la construcció d’una imatge modificada de RabbitMQ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103 C.2 ScriptdeconfiguracióidesplegamentdelsservidorsRabbitMQ. . . 104

Description:
The objective of this project is the development of a system applicable in the field of smart cities that allows securely distributed computing on a network of analysis of the problem and the design of the solution, to the deployment of .. forma i pot ser utilitzat tant en macOS, com en Windows i
See more

The list of books you might like

Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.