sr. pablo garcía, internet de las cosas y big data: ¿hacia dónde va la industria?
TRANSCRIPT
El desafío de crear soluciones de Internet de
las Cosas
@pc_garcia Pablo García
¿Cuanto nos impactarán estas cosas en el futuro cercano?
TALE
NTO
AGIL
SCR
UM
TECN
OLO
GÍA
DAT
A SC
IEN
CE
CENTRO I+D
CAN’T DO EPIC SHIT
WITH BASIC PEOPLE…
DISCOVER, DISRUPT, DELIVER
MA
RK
ET
IDEA CONCEPTO(hito G/NG)
RELEASE PROTOTIPO
(hito RFA)
RELEASE PRODUCTO
(hito TA)
Entender viabilidad y definir
concepto
Crear un nuevo Release del
Producto
Adaptar y entregar producto al cliente
Kanban Sprint 0 Sprint 1 Sprint n
Descubir y comprender al
cliente
…. ….Sprint n+1
Deseable, factible tecnicamente y viable
económicamente.
Release listo para ser desplegado.
Release listo para ser comercializado.
Product life cycle
Ámbito teórico CID
Kanban
KANBAN PORTAFOLIO DE OPORTUNIDADES
Investigación &
Ideación GO
/NO
G
OConceptualización Construcción
Conocimiento del cliente. Oportunidad de
mercado. Estado del Arte.
MA
RK
ETPU
LL Implantación
DISCOVER, DISRUPT, DELIVER
Product Backlog
Demanda
Cadena de valor
OfertaTo do Doing QA Done
Velocidad comprometida
Tiempo medio ciclo-tarea
Tasa de llegada
Tasa de error
Tiempo medio E2E-tarea
Utilización
Cumplimiento cronograma
Índice de conformidad Cliente/PO
Recursos
t
OK?
Velocidad real (troughput)
Cumplimiento presupuesto
Productividad
CalidadCapacidadEficienciaServicio
Tiempo medio espera-tarea
Q Devs
Tasa deimpedimentosSprint Backlog
QA index
Calidad US
DISCOVER, DISRUPT, DELIVER
Elev
ator
Sta
tem
ent
Scrum Framework
ProductBacklog
SprintPlannin
g SprintBacklog
Sprint3 sem
Sprint Revie
w
potentially shippable
product increment
24 hrs
Burndown ChartTask board
User Stories
Sprint Retro
Vision
IdeaDaily
Scrum
Roles Clientes Product Owner Scrum Master
Team
Ceremonias 1. Sprint Planning 2. Daily Scrum 3. Sprint Review 4. Sprint Retro
Artefactos Product Backlog Sprint Backlog Product increment
DISCOVER, DISRUPT, DELIVER
Sustainability ensured
Driven by implementatio
n
FIWARE: An Open Standard Platform for Future Internet applications
DISCOVER, DISRUPT, DELIVER
A FIWARE application is based on a set of GEs + SEsApplications may be developed in various vertical
domains
FIWARE
GEs
SMART CityApps
SMART Factory Apps
SMART Agrifood Apps
Domain specific enablers
SomeVerticalSectors
http://fiware-iot-stack.readthedocs.org/en/latest/index.html
https://github.com/telefonicaid/fiware-orion
OMA/NGSI• OMA NGSI-9/10 API: a simple yet powerful standard API for managing Context
information• The FIWARE NGSI API is RESTful: any web/backend programmer gets quickly used to
it
Context Broker
NGSI APINGSI API
GET <Oauth token>/V1/contextEntities/lamp1/attributes/presenceSensor
PUT <Oauth token>/V1/contextEntities/lamp1/attributes/status“light on”
Setting up the value of attribute “status” to “light on” triggers execution of a function in the IoT device that switches the lamp on
Issuing a get operation on the “presenceSensor” attribute enables the application to get info about presence of people near the lamp
12
200 OK... { "contextResponses": [ { "attributes": [ { "name": "temperature", "type": "float", "value": "" }, { "name": "pressure", "type": ”integer", "value": "" } ], "statusCode": { "code": "200", "reasonPhrase": "OK" } } ], "id": "Room1", "isPattern": "false", "type": "Room"}
Quick Usage Example: Room Create (1)POST <cb_host>:1026/v1/contextEntities... { "id": "Room1", "type": "Room", "attributes": [ { "name": "temperature", "type": "float", "value": "24" }, { "name": "pressure", "type": “integer", "value": "718" } ] }
13
200 OK... { "contextResponses": [ { "attributes": [ { "name": "temperature", "type": "float", "value": "" }, { "name": "pressure", "type": "integer", "value": "" } ], "statusCode": { "code": "200", "reasonPhrase": "OK" } } ], "id": "Room1", "isPattern": "false", "type": "Room"}
Quick Usage Example: Room UpdateContext (1)
14
PUT <cb_host>:1026/v1/contextEntities/type/Room/id/Room1... { "attributes": [ { "name": "temperature", "type": "float", "value": "25" }, { "name": "pressure", "type": "integer", "value": "720" } ] }
Quick Usage Example: Room QueryContext (1)
15
200 OK... { "attributes": [ { "name": "temperature", "type": "float", "value": "25" } ], "statusCode": { "code": "200", "reasonPhrase": "OK" }}
GET <cb_host>:1026/v1/contextEntities/type/Room/id/Room1/attributes/temperature
Orion Context Broker in a nutshell
Orion Context Broker
ContextProducers
ContextConsumers
subscriptions
update
query
notify
notify
update
update
DB
1026
1026
16
IoT Consumers: Northbound Single Point (API/Protocol): ContextBroker
17
Developers need to know/discover the Ecosystem conventions. Examples:
Developers may:•Query an Entity (whole set or specific attributes) or Subscribe to changes of attributes of Entities.•Discover all Entities (entity_IDs) or all Entities with a specific “type”.•Discover all Attributes of an specific Entity (entity_ID).
My FIWARE-App
ContextBroker
OAuth2.0
OMA NGSI10 - QueryContext
OMA NGSI10 - SubscribeContext
(type, entity_ID, attributes)
Entities
Y… ¿cómo resolvemos las comunicaciones?
• Tecnologías de redes celulares, de 2G a 5G
• Redes Mesh (zigbee 802.15.4 vs 6LowPAN)
• Redes de baja energía (ej sigfox)
• Narrow Band IoT
IoT Providers: Connect any “Thing”/IoT-System to FIWARE Lab
19
ContextBroker
OAuth2.0
Your IoT IoT
Backend
Gateway GEs Backend GEs
NGSI9/10
A) NGSI Agent
B) IoT BE (IDAS/SBC -> IoT Agents)
C) Advanced Scenarios
SML, UL2.0, MQTT, ETSIM2M, CoAP/OMA-LW
NGSI
PropietaryZigbeeZwave
CoAP/MTRunnerETSIM2M
CoAP/LWM2M
Estándares y tecnologías de IoT
IoT Applications
IoT StandardsOMA LWM2M
Hyper-Constrained
Source: ARM
¿Y COMO ADMINISTRAMOS ESTO?
Demo: Mi portal de sensores
1 – Creo una Cuenta de FIWARE
2 – Defino el modelo de mi “sensor”
3 – Lo pruebo enviando mediciones
4 – Observo la entidad que se creó en el context broker
5 – Leo esa entidad programáticamente
6 – Creo una cuenta en freeboard.io y creo un tablero
7 – Conecto al fuente de datos con el context broker
8 – Creo mis tableros
9 – Visualizo mis sensores
10 - Le doy inteligencia al sistema
Research / Data Science
¿Qué es Data Science?
Utiliza teorías y técnicas de muchos campos y disciplinas para ayudar a los tomadores de decisiones en muchas industrias, como la ciencia , la ingeniería, la economía, la política, las
finanzas y la educación
Manejar, maniuplar, extraer, interpretar y generar conocimiento a partir de grandes volumnes de
datos heterogenos
Data ScientistEs un profesional con formación
multidisciplinaria capaz de tomar datos y poder darles
vida, sacar información y una historia a partir de ellos
Formación de pregrado:
36
Ej1: Control de riego
Sensor humedad y estación meteorológica
Datos meteorológicos: humedad, temperatura, radiación solar y velocidad del viento.
37
Ej1: Control de riego
¿Y que recibe el usuario final?
DISCOVER, DISRUPT, DELIVER39
Deep Learning, Estado del arte
DISCOVER, DISRUPT, DELIVER40
NVIDIA Tesla
Up to 2.91 TFlops double precision performance and Up to 8.74 TFlops single precision performance on the Tesla K80 GPU Accelerator
Costo: USD 1.60 x hora
41
Ej 2: Lobesia Botrana
Proyectos en los que estamos trabajando / Ecosistema?
Muchas Gracias