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.