Download IoT Posibilidades desde Java

Document related concepts
no text concepts found
Transcript
IoT
Posibilidades
desde Java
Marcelo Durán /
@bithumano
Internet of Things un concepto que se
refiere a la interconexión digital de
objetos cotidianos con internet.
El concepto de internet de las cosas lo
propuso Kevin Ashton en el Auto-ID
Center del MIT en 1999,7 donde se
realizaban investigaciones en el campo de
la identificación por radiofrecuencia en
red (RFID) y tecnologías de sensores.
Libros, termostatos, refrigeradores, zapatillas,
lámparas, botiquines, partes automotrices, etc.
estuvieran conectados a Internet y equipados con
dispositivos de identificación, no existirían, en
teoría, cosas fuera de stock o carencia de
medicinas o caducadas, sabríamos exactamente la
ubicación, cómo se consumen y se compran
productos en todo el mundo.
En 2012 había en el mundo aproximadamente 26
mil millones de dispositivos con un sistema de
adaptación al internet de las cosas.
En 2016 serán 100 mil millones de dispositivos.
Internet 0
Es un nivel o capa física de baja velocidad
diseñada con el fin de asignar “direcciones
IP sobre cualquier cosa”. Fue desarrollado
en el Centro de Bits y Átomos del MIT por
Neil Gershenfeld, Raffi Krikorian y Danny
Cohen.
INTELIGENCIA
CONOCIMIENTO
INFORMACIÓN
DATOS
Derivados de IoT
SIot (Social Internet of Things)
https://www.youtube.com/watch?v=N1hSNg37K38
WoT (Web of Things)
http://www.w3.org/WoT/
https://www.w3.org/community/wot/
Estándares IoT
●
●
●
●
●
M2M
MQTT
CoAP
LWM2M
OneM2M
M2M
Machine 2 Machine, intercambio de
información o comunicación en formato
de datos entre dos máquinas remotas.
● Computación ubicua
● Inteligencia ambiental
MQTT
Message Queue Telemetry Transport
(MQTT) es un protocolo de conectividad
abierto Machine-to-Machine (M2M) que
permite enviar datos estilo telemetría
como mensajes a través de redes de alta
latencia o con restricciones.
MQTT
Este protocolo está orientado a la comunicación
de sensores, debido a que consume muy poco
ancho de banda y puede ser utilizado en la
mayoría de los dispositivos disponibles con pocos
recursos (CPU, RAM). Un ejemplo de uso de este
protocolo es la aplicación de Facebook Messenger
tanto para Android y Iphone.
MQTT
La arquitectura de MQTT sigue una topología de
estrella, con un nodo central que hace de servidor o
“broker” con una capacidad de hasta 10000 clientes. El
broker es el encargado de gestionar la red y de
transmitir los mensajes, para mantener activo el canal,
los clientes mandan periódicamente un paquete
(PINGREQ) y esperan la respuesta del broker
(PINGRESP). La comunicación puede ser cifrada entre
otras muchas opciones.
MQTT
MQTT
La comunicación se basa en unos “topics” (temas), que el
cliente que publica el mensaje crea y los nodos que deseen
recibirlo deben subscribirse a él. La comunicación puede
ser de uno a uno, o de uno a muchos.
Un “topic” se representa mediante una cadena y tiene una
estructura jerárquica. Cada jerarquía se separa con ‘/’. Por
ejemplo,
“edificio1/planta5/sala1/raspberry2/temperatura” o
“/edificio3/planta0/sala3/arduino4/ruido”.
MQTT
www.mqtt.org
CoAP
CoAP (Constrained Application Protocol) es un
protocolo software a nivel de aplicación pensado
para ser usado en dispositivos electrónicos
simples permitiendo que puedan comunicarse
sobre Internet.
CoAP
Está pensado especialmente para sensores de baja
potencia, se ha diseñado para trasladar el modelo
HTTP pero incluyendo otros requisitos como
multicast, bajo overhead y simplicidad, que son
muy importantes para el Internet de las cosas (IoT)
y Machine-to-Machine (M2M).
CoAP
CoAP implementa el modelo REST de HTTP (con
las primitivas GET, POST, PUT y DELETE), usa
cabeceras reducidas, y limita el intercambio de
mensajes, añadiendo soporte UDP y otras
modificaciones como mecanismos de seguridad
específicos.
CoAP
www.coap.technology
OneM2M / OMA LVM2M
Open Mobile Alliance LightWeight
Machine 2 Machine
Implementación leshan para Java
https://github.com/eclipse/leshan
www.onem2m.org
Otros
IEEE
standards.ieee.org/innovate/iot/index.html
www.hypercat.io
Java
●
●
●
●
●
●
1993, Jame Gosling lidera el Proyecto Oak.
Green Team busca interconectar dispositivos
Cambia de nombre a Java
WORA (Write Once Run Everywhere)
De Sun a Oracle
JAVA SE 8 (2014)
La propuesta desde Java
Kura
Documentación Kura
http://eclipse.github.io/kura/
Integración con HW
Intel + Eclipse
https://software.intel.com/en-us/installing-the-eclipse-ide
Intel + Arduino + Eclipse
https://software.intel.com/en-us/get-started-arduino-install
Raspberry + Java
http://pi4j.com/
https://www.raspberrypi.org/blog/oracle-java-on-raspberry-pi/
http://www.oracle.com/technetwork/es/articles/java/java-se-embedded-raspberry-pi-1940405-esa.html
Arduino
https://www.arduino.cc/en/main/software
http://playground.arduino.cc/Interfacing/Java
Notas desde Java
https://community.java.net/community/iot
http://www.oracle.com/us/solutions/internetofthings/java-iot-connected-vehiclewp-2401533.pdf
https://www.oracle.com/solutions/internet-of-things/index.html
Brillo / Weave /
Lo próximo de Google para IoT
https://developers.google.com/brillo/
Gracias.