Windows and the Internet of things

Download Report

Transcript Windows and the Internet of things

WINDOWS AND THE INTERNET
OF THINGS
PABLO C GARCÍA (@PC_GARCIA)
PRINCIPAL PLATFORM SPECIALIST
MICROSOFT
HTHTTP://DEV.WINDOWS.COM/ENUS/FEATURED/WINDOWS-DEVELOPER-PROGRAM-FOR-IOT
¿QUE ES LA INTERNET DE LAS COSAS?
Es la red de los objetos
físicos que contienen
tecnología embebida para
comunicarse e interactuar
con sus estados internos o
con el ambiente exterior.
Source: Gartner
“”
PERO... ENTONCES... ¿QUE ES LA ”IOT”?
Dispositivos, no
personas
Billiones
Grandes y
complejos flujos
de datos
Valor en la
información
Patients
Cars Aircraft
Traffic
Trains
Smart
Mobility
Pollution
Control
Nursing
Homes
Emergency
Renewables
Bikes
Vessels
Trucks
Predictive and
Reactive
Maintenance
Water
Waste
Games
Letters
Packages
Smart
Logistics
Bulkware
Smart
Cities
Public
Safety
Oil/Gas/Coal
Recovery and
Distribution
Smart
Energy
Grid
Law
Enforcement
SMART PRODUCTS
Automation
Hotels
Events
Sports
Containers
Tanks
Smart Pro
Services
Mobile
Care
Hospitals
Fire
Smart
Factory
Buses
Clinics
Manufacturing
Integration and
Automation
Remote
Servicing
Smart
Healthcare
Streaming
Smart
Entertainment
Television
Comfort
Smart
Building
Home
Security
Lighting
Smart
Retail
Safety
Restaurants
Fuel
Stations
Points
of Sale
FUENTES DE EVENTOS
>10B
1B
Connected/
Smart TVs
2.5B
>5B
Personal
computers
Smartphones
and tablets
Aplicaciones
Apps y servicios
Connected internet
of things
Fuentes de Ingreso
Contenido
Source: Gartner, IDC, Strategy Analytics, Machina Research, Company filings, BI Intelligence, Accenture analysis
Copyright © 2013 Microsoft and Accenture Confidential
Servicios por
verticales
THE INTERNET OF THINGS (IOT)
De acuerdo a IDC el Mercado de IoT fue de $1.9T en 2013
Y será un Mercado de $7.1T para el 2020
IoT es un ecosistema diverso, con muchos vendedores
Poca estandarización
Microsoft soporta esta diversidad
EN ESTA PRESENTACION
• Windows en los dispositivos
• Integración con Azure EventHub / Azure ISS
• Machine Learning
DEMO: WINDOWS ON INTEL GALILEO
NUESTRAS SOLUCIONES IMPLICARAN
Muchos
dispoitivos
Escala
Seguridad
Seguridad
Muchos datos
Integración
PATRONES DE INTEGRACION DE LA IOT
Telemetry
La información fluye de un
dispositivo hacia otro
Sistema notificando estado
del dispoitivo y del
entorno
Inquiries
Requerimientos desde los
disposiitivos buscando
obtener información o
solicitando se inicien
acciones
Commands
Comandos enviados desde
otros sistemas a un
dispositivo o a un grupo de
dispoitivos para que
ejecuten determinada
actividad
Notifications
Información fluyendo de
otros sistemas hacia un
dispositivo acarreando
información
DESAFIOS
Patrones de comunicación
Sencillo …
Telemetry
Ingest
•
Volumen de
entrada
Hagamos las cuentas …
6
maquinas
X
20
sensores
x
máquina
=
120
sensores
X línea de
producción
DESAFIOS
Patrones de comunicación
Sencillo …
Telemetry
Ingest
•
Volumen de
entrada
Hagamos las cuentas …
120
sensores
x línea de
producción
X
4
Líneas
de
producci
ón x
planta
=
480
sensores
X planta
DESAFIOS
Patrones de comunicación
Sencillo …
Telemetry
Ingest
•
Volumen de
entrada
Hagamos las cuentas …
480
sensores
X planta
X
60
Telemetr
ía.
Envíos x
minuto
= 1,728,000
Envíos x
hora
DESAFIOS
Patrones de comunicación
Sencillo …
Telemetry
Ingest
•
Volumen de
entrada
Hagamos las cuentas …
1,728,000
Envíos x
hora
X
50
Clientes
= 86,400,000
Envíos x
hora
Y todo 7 x 24!!!!
AZURE SERVICES
Azure ISS (Intelligent System Service)
Solución completa y pre-configurada
-
Agente para dispositivos
Portal
Telemetria
Comando
AZURE SERVICES
Event Hub (Procesamiento de entradas y salidas escaable)
Legacy IoT
„IP“ devices
Event Hub
EVENT HUB INGESTIÓN: ESCALABLE CON PUB-SUS
Variedad:
> millones de dispositivos conectados HTTP/AMQP/(MQTT)
Velocidad: > milliones de mensajes EventData por segundo
Volumen:
> GB/s de ingreso
Egreso:
Pub-sub: multiples consumidores concurrentes
Securidad: basada en SAS, token único x publicador
Buffer:
Cada consumidor tiene su propio cursor/offset
Durable:
Desde 1 a 30 días de retención
Latencia:
50ms end-to-end durable, <10ms para volátiles
Económ.:
Servicio PaaS, pay-as-you-go
EVENT HUB PARA IOT, BIG DATA
Storage &
Analytics
Custom Code & 3rd
Party Services
Event Hub
Web/Mobile User
Interfaces
Event Sources
- Hyper Scale - Fully Managed - Interoperable - Secure - Cost Effective -
Integration
Services
Cloud Services
PROTOCOLOS Y CONECTIVIDAD DE LA PLATAFORMA
https://github.com/windowsAzure/
Proton-C
AMQP 1.0
AMQP 1.0
Azure
Service Bus
/azure-sdk-for-java/
Queues
Topics
/azure-sdk-for-node/
/azure-sdk-for-php/
/azure-sdk-for-ruby/
/azure-sdk-for-python/
AMQP
1.0
Event hubs
HTTP(S)
Embedded
AZURE INTELLIGENT SYSTEMS SERVICE
Throughput unit
(1 MB/s Ingress, 2 MB/s Egress)
Ingress events
(Event consumption is free)
$10 / month
$20 / month
$0.028 per million incoming events (outgoing free)
Message retention
Additional Storage for message
retention
50% de descuento en el preview
1 day
1 day
No
Up to 7 days
DEMO
Azure EventHub y Windows for IoT
MICROSOFT AZURE MACHINE LEARNING
• La simplicidad de la nube
• Algoritmos potentes
Churn
analysis
Social network
analysis
Recommenda-tion
engines
Location-based
tracking and
services
IT infrastructure
and web app
optimization
Weather
forecasting for
business planning
Legal
discovery and
document archiving
Equipment
monitoring
Pricing analysis
Fraud
detection
Personalized
Insurance
• Habilidad de poner en producción
• Integración con R
• Ecosistema
Advertising analysis
DEMO
AZURE ML Y LA IOT
APLICABILIDAD: MANTENIMIENTO
Reactive
Preventive
Predictive
CASOS DE USO TIPICOS
Degradación
Desviaciones
Step
RECAP…
• Windows estará disponible para la IoT, hoy estamos en una etapa temprana
• Azure está listo para proveer todo el andamiaje necesario para una solución
con la escalabilidad que requiere la IoT
• Azure ML democratiza el acceso a una poderosa plataforma de Machine
Learning
FIN
AZURE SERVICES
Event Hub (Ingest / Egress at scale)
Create Publisher
EventHubClient eventHubClient = EventHubClient.Create("event hub name");
EventHubClient eventHubClient = EventHubClient.Create("/event hub
name/Publishers/foo");
Publish Message
EventData ed = new EventData();
ed.PartitionKey = "deviceID";
eventHubClient.Send(m);
messageSender.Send(m);
CREATE AN EVENT HUB
NamespaceManager nm = NamespaceManager.Create();
EventHubDescription ed = new EventHubDescription(“My Event Hub")
{ PartitionCount = 32 };
ed = await nm.CreateEventHubAsync(ed);
EVENT HUB SEND
// Create the client.
EventHubClient ec = EventHubClient.Create(“My Event Hub");
// Create an event to send.
EventData ed = new EventData();
ed.PartitionKey = "deviceID";
//.. Add other event properties.
// Send the event.
ec.Send(ed);
EVENT HUB RECEIVE (DIRECT)
// Create the client.
EventHubClient ec = EventHubClient.Create(“My Event Hub");
// Get the default Subscriber Group.
EventHubSubscriberGroup subscr = ec.GetDefaultSubscriberGroup();
for (partitionId = 0; partitionId < numPartitions; partitionId++)
{
// One receiver per partition.
// You can optionally pass a starting Offset (Id or Time) – go back in time!!
EventHubReceiver consumer = await subscr.CreateReceiverAsync(partitionId,
DateTime.New.AddDays(-1));
// Keep receiving in a loop..
var message = await consumer.ReceiveAsync();
}
EVENT HUB RECEIVE (SIMPLE – PUSH STYLE)
EventProcessorHost host = new EventProcessorHost(WorkerName, EventHubName, …, blobConnectionString);
host.RegisterEventProcessorAsync<SimpleEventProcessor>();
public class SimpleEventProcessor : IEventProcessor
{
……
public async Task ProcessEventsAsync(PartitionContext context, IEnumerable<EventData> messages)
{
foreach (EventData message in messages)
{
var newData = new StreamReader(message.GetBody<Stream>()).ReadToEnd();
string key = message.PartitionKey;
// Process event.
}
await context.CheckpointAsync();
}
}