internet de las cosas...ejemplos capas física y enlace de datos ... (colas de mensajes) ideal para...

Post on 07-Apr-2020

1 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

INTERNET DE LAS COSAS

Sistemas Embebidos Avanzados

Ing. Martín Castro

Evolución de la Internet

IoT puede pensarse como la última fase conocida de internet

ConexionesLos cuatro pilares

● PERSONA-PERSONA (P2P)

● MÁQUINA-PERSONA (M2P)

● MÁQUINA-MÁQUINA (M2M)

● PERSONAS

● PROCESOS

● DATOS

● OBJETOS

IoT se logra conectando los 4 pilares mediante una o varias conexiones distintas

¿Que es IoT?Es un sistema de dispositivos informaticos,

maquinas digitales y mecanicas, objetos,

personas o animales provistas de un

identificador único que poseen la habilidad de

transferir información a través de la red sin

intervención de tipo persona-persona (P2P) o

persona-máquina (P2M)

Hoy se predice que para el 2020, 50 billones de dispositivos estarán conectados a internet

Areas de aplicacion

Modelo

Comunicaciones (repaso)

Aplicación

Presentación

Sesión

Transporte

Red

Enlace de datos

Física

Mensaje enviado Mensaje recibido

Emisor Receptor

Capas Modelo ISO

Medio de comunicación

Comunicaciones: encapsulamiento

Cabecera de presentación

Mensaje de la capa de aplicación

Cabecera de sesión

Cabecera de transporte

Cabecera de red

Comunicaciones: TCP/IP

Mensajes (UDP) o Streams (TCP)

Aplicación

Transporte

Interred

Paquetes UDP o TCP

Datagramas IP

Marcos específicos de red

MensajeCapas

Red subyacente

Interfaz de red

Encapsulamiento bajo TCP/IP

Mensaje de aplicación

Cabecera TCP

Cabecera IP

Cabecera

Ethernet

Marco Ethernet / WiFi

Puerto

TCP

IP

Vista conceptual para programación

IP

Aplicación Aplicación

TCP UDP

Protocolos de comunicación

Physical and Local link

Internet Protocol

Transport

Application HTTPS

CoPA XMPP

MQTT

UDP TCP

IPv4/6 6LoWPANRPL

NFCWiFi Bluetooth

802.15.4ETH

ZigBee

GSMLTE

RFID

AMQPDDS

Application

Presentation

Session

Transport

Network

Data Link

Physical

OSI Model TCP/IP Model IoT Protocols

Ejemplos Capas Física y enlace de datos

● Velocidades: 10/100 Mbps, 1 Gbps, 10Gbps, 40Gbps, 40-00 Gbps (fibra)

● CSMA/CD

● Cada computadora debe tener Network interface card (NIC) y cada NIC tiene una dirección MAC (Media Access Control) única de 48 bits:

● Capacidad Broadcast y Multicast: mediante direcciones reservadas

● Best-effort delivery: No se no garantiza ni confirma recepción

● Control de errores básico

ETHERNET/802.3

● Velocidades: de 2 Mbps a 1.73 Gbps o más

● Existencia de múltiples formatos de tramas para soportar las funciones del protocolo (autenticación, asociación, data, management, etc.)

● Opera en spread-spectrum con canales en las bandas de 2.4 y 5 GHz

● Implementa encriptado de la información

802.11/WiFi

ETHERNET / 802.3 Frame

Carrier Sensing Multiple Access with Collection Detection (CSMA/CD):

● Originalment todas las estaciones conectadas a un cable

● Carrier sensing: Estaciones escuchan por la presencia de portadora.

● Multiple Access with Collision detection: Al detectarse una colisión, se reintenta con períodos crecientes.

(Comparación con protocolos tipo Token Ring)

802.11/WiFi FramesTrama genérica

Trama RTS

Stack TCP/IPDatagrama IP

Stack TCP/IPPaquetes UDP/TCP

Header UDP Header TCP

Stack TCP/IPIntercambio de Paquetes TCP

Stack TCP/IPIntercambio de Paquetes TCP

Capas superiores (aplicación)

● Protocolo liviano de mensajería

● Corre en la capa superior de software sobre tcp/ip

● Arquitectura de publish/subscribe

● Modelo de comunicación asincrónico con mensajes

(eventos)

● Desacople clientes-emisor y cliente-receptor a través de

subscripciones a tópicos (colas de mensajes)

● Ideal para dispositivos con baja capacidad

procesamiento

● Redes con baja tasa de transmisión, de alta latencia,

conexiones débiles, límites de datos

● Multiplicidad de niveles de servicios agregados al propio

de tcp (qos)

● Fácil de implementar con pocos comandos

MQTT (Message Queuing Telemetry Transport)

CLIENTES: Suscriben a los topics para enviar y recibir

información.

MQTT

BROKERS: Servidor que implementa el protocolo, hace

de mediación entre la comunicación entre clientes

(sensores y dispositivos) y la capa de integración del

usuario final.

TOPICS: Técnicamente es la cola de mensajes. Estos

permiten el intercambio de mensajería, obviamente

bajo cierta estructura semántica.

TRAMA:

2 bytes fijos para el encabezado

PUBLISH:

MQTT

SUBSCRIBE:

HTTP (Hypertext Transfer Protocol )● Protocolo para entregar mensajes hipermedia orientado a transacciones (document centric

MIME)

● Corre en la capa superior de software sobre tcp/ip

● Arquitectura de request/response

● Connectionless: Cliente se conecta hace el request, se desconecta y espera que el servidor,

procese y restablezca conexión para el response.

● Media independent: cualquier tipo de dato se puede transmitir. (cliente-servidor deben ser

capaces de procesarlo)

● Stateless: Cliente-Servidor son conscientes unos de otros solo en el momento de la conexión.

(cookies para sesión)

URI: Cadena de caracteres

que identifica los recursos

de una red de forma

unívoca

Pueden ser URL, URN o

ambos

HTTPMÉTODOS REQUEST

● GET

● POST

● PUT

● DELETE

● CONNECT

CÓDIGOS RESPONSE

● 1XX

● 2XX

● 3XX

● 4XX

● 5XX

TRAMA (HTTP/2 version)

● CABECERA de 9 bytes

● 16.384 < Largo < 16.777.215

AJAX

LLamadas JS +

XMLHttpRequest

API-REST

● Protocolo cliente/servidor

sin estado

● Operaciones definidas

(métodos)

● Sintaxis universal

(direccionalidad a través de

URIs)

● Uso de hipermedios (HTML,

XML, JSON, etc)

MQTT vs. HTTPMQTT HTTP

Orientación del dato Centrado en la información Centrado en el documento

Transacción del mensaje Publish/Subscribe Request/Response

Complejidad del protocolo Simple Complejo

Tamaño del mensaje Pequeño (header: 2 bytes) Mayor (usa formato de texto no

binario)

Nivel de servicios Tres configuraciones Todos los mensajes por igual

Librerías Librerías para: C (30 KB) Java

(100 KB)

Depende de la aplicación

(JSON, XML) pero normalmente

no muy pequeñas

Configuración de la

comunicacion

Soporta desde 1 a 0 a 1 a

muchos

Solo 1 a 1

● Protocolo de mensajería basado en XML

● Servidores y clientes gratuitos

● Adoptado por Facebook, Whatsapp, Nimbuzz etc

● Originalmente P2P, adoptado M2M para intercambio de mensajes XML

XMPP (Message Queuing Telemetry Transport)

Ventajas

1. Descentralizado

2. Seguridad

3. Flexibilidad

Desventajas

1. Sobrecarga de datos en presencia

2. Escalabilidad

3. Datos NO BINARIOS

DESCENTRALIZACIÓN Y DIRECCIONAMIENTO: Basada en servidores NO HAY NINGÚN SERVIDOR CENTRAL.

Existe un servidor XMPP publico en jabber.org cualquiera puede poner en marcha el propio, comúnmente a

través del puerto 5222.

Clientes Servidores Librerías

● Especificación industrial WPAN

● Diseñado para bajo consumo, corto alcance de emisión y

transceptores de bajo costo

● Opera en 2.4 GHz a 2.8 GHz

● Posibilidad de transmitir full-duplex

BLUETOOTH

POTENCIA DE TRANSMISIÓN

ANCHO DE BANDA

ESPECIFICACIÓN

SEGÚN MODELO OSI

BLE, ULP Y SMART BLUETOOTH

Transmite su información en rafagas,

economizando energía poniéndose a dormir

NFC● Comunicación por inducción de un campo magnético

● Frecuencia: 13,56 MHz, Proximidad: 10 cm, tiempo de

enlace NFC: 200 us, velocidad de transmisión: 106, 212,

424 o 848 Kb/s

● Basada en ISO 14433

● Dos modos: activo o pasivo

❏ Lectura/escritura

❏ Identificación

❏ Acceso físico

❏ Tarjetas de fidelización

❏ Pagos

Aplicaciones

RFID● Chip emite peticiones por radio

al lector, este responde y coteja

con una base de datos

❏ Pasivos

❏ Semiactivos

❏ Activos

TAGS

DISTANCIA Y FRECUENCIA

DE TRANSMISIÓN

APLICACIONES

❏ Logística

❏ Identificación de animales

❏ MErcadotecnia/ Eventos

BASES DE DATOSRELACIONALES

NO RELACIONALES

❖ Basadas en el modelo relacional,

relaciones: conjunto de datos

(tuplas)

❖ Garantiza duplicidad, integridad

referencial

❖ Comprensible y aplicable

❖ Deficiencias con datos gráficos

❖ No se manipulan eficientemente

como texto o tipo de dato

❏ SQLite

❏ PostgreSQL

❏ MySQL

❏ MongoDB

❏ Redis

❏ CouchDB

❏ LevelDB

❖ No contienen un esquema definido

❖ Mejor manejo de grandes

volúmenes de datos (1M registros)

❖ Escalado horizontal y estructura de

datos más simples

❖ Facilita la escalabilidad

❖ Orientadas a objetos (XML, JSON) o

claves.

SEGURIDAD1 - Deficiencia técnica

4 - Dificultad para monetizar

la seguridad

Aspectos a resolver por fabricantes de dispositivosAutomotriz Industria Casas/Edificios inteligentes

Componentes disponibles son ineficaces

Falta de componentes que ofrezcan soluciones end-to-end eficaces

Clientes no están dispuestos a pagar por productos mejorados en aspectos de seguridad

Las compañías tienen problemas para introducir soluciones de software

2 - Estándares de seguridad inmaduros

Grandes empresas compiten por desarrollarlos

Organizaciones industriales no crean estándares acorde a la velocidad de desarrollo de los nuevos dispositivos.

Las partes interesadas no saben quien y como van a ser establecidos

4 - Dificultad para apreciar el valor

de la seguridad

Falta de visión por parte de usuarios finales de IoT

Falta de visión por parte de de fabricantes de semiconductores

SEGURIDADPrincipales recursos:

1. Autentificación: 1. Protocolos que soportan a nivel de dispositivo

2. Encriptado:1. Asegurar privacidad e integridad de la

información en la comunicación entre protocolos

(WPA2, PPSK, etc)

3. Protección del puerto:1. Asegura que solo los puertos necesarios para

comunicarse con el gateway queden abiertos a

conexiones externas

2. Todos los demás deben ser protegidos por

firewalls

SEGURIDAD END-TO-END

Presentación de la informaciónMontaje local: ● Desarrollo de interfaz

multiplataforma (Página web)○ Implementación en plataformas

relativamente poco poderosas

○ Disponibilidad de librerías (JS) y técnicas de

programación (AJAX)

○ Generalmente JS, HTML y CSS (front-end)

o php (back-end)

● Servers locales + dashboards○ Necesidad de plataforma con SO

○ Herramientas poderosas (BDs,

dashboards)

○ Variedad lenguajes, librerías y paquetes a

trabajar (NodeJS, JSON, SQL, etc)

Arquitectura orientada a servicios SOA● Contrato de servicio estandarizado

● Bajo acoplamiento

● Abstracción

● Autonomía

● Sin estado

● Garantizar su descubrimiento

● Preparado para ser usado en composiciones

Monolíticos vs Microservicios● Libertad de desarrollar y desplegar de forma

independiente

● Se pueden usar diferentes lenguajes de programación

● Fácil de integrar

● Fácil de escalar e integrar con aplicaciones de terceros

● Funcionalidad modular

● Equipo de trabajo mínimo

● Web Services:

Componentes de aplicaciones web que permite resolver el problema de interoperabilidad dando a

distintas aplicaciones una manera de unir/distribuir su información según corresponda.

● HOSTING Y VISUALIZACIÓN DE LA INFORMACIÓN

● DISPARO DE EVENTOS (SMS, Telegram, e-mail, etc)

● DASHBOARD

● ANALITICA

● LIBRERÍAS PARA DISPOSITIVOS

● SOPORTE TÉCNICO

Montaje en la nube:

AZURE

Elección del Hardware

● Seguridad

● Facilidad de desarrollo

● Adquisición, procesamiento y almacenaje de la información

● Requerimientos de Conectividad

● Requerimientos energéticos

● Requerimientos del desarrollo del producto

● Requerimientos de costos

Requerimientos

Oferta de módulos disponibles en el mercado● ESP8266

○ Diversas versiones

○ Muy Económico (En argentina $140 ARS - Exterior desde $2 USD)

○ MCU de 32 Bits a 80 Mhz

○ RAM de instrucción de 64 KB, RAM de datos de 96 KB

○ Capacidad de memoria externa flash SPI (puede soportar hasta 16 MB)

● EMW3165○ MCU: Cortex M4 de STM a 100Mhz

○ RAM: 128KB

○ Flash interna: 512KB

○ Memoria SPI de 2MB incluida

○ Costo en Argentina $400 - Exterior $8 USD

Oferta de módulos disponibles en el mercado● Photon

○ MCU: Cortex M3 de STM a 120Mhz

○ RAM: 128KB

○ Flash interna: 1MB

○ Costo en Argentina $750 - Exterior $19 USD

○ API open source muy desarrollada

○ Opción de Web IDE

○ Plataforma en la nube “Particle”

● Photon P0 (Módulo solo)○ Costo $10 USD

Comparación HardwareBare-metal SO

Bibliografía● Introduccion a la Internet de las cosas (IdC) https://www.netacad.com/campaign/iot-es-

1?utm_source=Facebook&utm_medium=CPC&utm_campaign=IoTLook&utm_content=26

● Kolban’s book on ESP8266

● Building a smarter planet solutions with MQTT and IBM WebSphere MQ Telemetry

● https://ubidots.com/

● https://nodered.org/

● https://www.particle.io

● https://seeedstudio.com

● “Internetworking with TCP/IP, Vol. III: Client-Server Programming and Applications” - Douglas E.

Comer

● “An introduction to MQTT a protocol for M2M and IoT applications” - Peter R. Egli● https://www.ibm.com/developerworks/library/iot-lp101-best-hardware-devices-iot-project/index.html

¿PREGUNTAS?

top related