Internet of Things
BizTalk Summit France
10/03/2015
Exemple d’objets connectés
• Portable sur soi, à la maison
• Infrastructure intelligente, domotique
• Sécurité et surveillance
• Santé
• Transport
• Agriculture
• …
Des objets qui n’étaient pas
connectés jusqu’à présent
Qui ne disposent souvent pas
d’un accès réseau spécifique
Qui envoient des données de
façon continue (stream)
The Internet of Things (IoT)
Les services Microsoft Azure pour l’IoT
Acheter
Construire
Acheter une partie,
Construire le spécifique
• Si le développement logiciel n’est pas une
compétence primaire
• Focus sur la rapidité d’implémentation
• Le développement logiciel est une force
• Focus sur la flexibilité et le control, minimization
du coût
• La plateforme est vue comme un investissement
stratégique
• Expérimentation
• Analytics et traitement des données spécifiques
• Composer des services à haute valeur ajoutée
“Intelligent Systems
Service” (ISS)
Outils “Platform as a
Service” (PaaS)
Plateforme ISS +
Services
Caractéristiques de l’organisation Services AzureComment approcher l’IoT
PaaS?
Technet
Quel type d’infrastructure est nécessaire?
Supporte la varieté (> million d’apparails concurrents)
Supporte la rapidité (> million événements/s)
Supporte le volume (> 100s de TB)
Buffering (pour gérer la variabilité)
Durabilité
Latence basse
Sécurité
Et pas trop cher!
Grid
Renewables
Oil/Gas/Coal
Recovery and
Distribution
Points
of Sale
Restaurants
Hotels
Fuel
Stations
Patients
Clinics
Hospitals
Nursing
Homes
Mobile
Care
Safety
Security
Comfort
Lighting
Automation
Manufacturing
Integration and
Automation
Remote
Servicing
Predictive and
Reactive
Maintenance
Water
Waste
Pollution
Control
Fire
Emergency
Public
Safety
Law
Enforcement
Letters
Packages
Containers
Tanks Bulkware
Games
Events
Sports
Television
Streaming
Traffic Buses
Cars
Trucks
Trains
Vessels
Aircraft
Bikes
Smart
Energy
Smart
Retail
Smart
Mobility
Smart
Logistics
Smart
Factory
Smart
Cities
Smart
Entertain-
ment
Smart
Health-
care
Smart
Building
Home
Architecture de référence pour le traitement
d’événements
Présentation et
action
-
Search and query
Data analytics
Web/thick
client dashboards
Stockage long
terme
External
data sources
Azure Storage
Transformation
Real-time analytics
(Storm/Orleans,
NRT/ASA)
Batching/storage
adapters
Ingestion
(broker)
Scalable
Event Broker
Field Gateways
Collection
Cloud Gateways
(WebAPIs)
Applications
Producteurs
Devices
Event Hub c’est un service d’ingestion en mode
publisher-subscriber (éditeur/abonné)
Variété: > million appareils with HTTP/AMQP/(MQTT)
Vitesse: > million lignes ingress/second
Volume: > GB/s ingress
Egress: Pub-sub: Consommateurs concurrents
Securité: SAS based, token unique par publisher
Buffer: Chaque consommateur possède son propre cursor/offset
Durable: Entre 1 and 30 jours de rétention
Latence: 50ms end-to-end en mode durable, pointes <10ms
Prix: Compétitif en mode PaaS, payer ce que vous consommer
Event Hub pour l’IoT: Ingestion Big Data
Sources Services Cloud
Stockage &
Analytics
Code spécifique
& Outils tiers
Web/Mobile
User Interfaces
Services
D’integration
Event Hub
- Hyper Scale -
- Mode Managé -
- Interopérable -
- Sécurisé -
L’avantage avec Azure
Storm sur Linux dans une VM
HDInsight sur Azure
Web Sites & Power BI
Scénarios Event Hub
Présentation et
action
TransformationBroker Stockage long
terme
CollectionProducteurs
Devices
Appareils entrée
de gamme
(RTOS)
Appareils
compatibles IP
(Windows/Linux)
Field Gateway
(Raspberry PI/
Galileo)
(Embedded .Net/
ThreadX)
Event Hub
Legacy IoT
(Protocoles
spécifiques)
Cloud Gateway
spécifique
AMQP/HTTP
C, .NET, Java…
MQTT/COAP/Custom
Rétention des données dans
le temps,
Groupes de consommateurs,
Réception partitionnée,
Check-point,
…
Plus basse latence end-to-end
Intégration facile avec les
frameworks (SDK)
Custom code
(Storm/Orleans
)
Storage
adapters
App insights
Data Analytics
Statistiques
Dashboard
Service
Recherche
Distributed
tracing
-
Applications
AMQP/HTTP, C, .NET, Java… Scalabilité sur la bande
passante (GB/s)
et le nombre de producteurs
concurrents
Azure Dbs
Azure Storage
HDInsight
Event Hub : Envoyer des données
Partition 1
Partition 2
Partition “n”
Event 1
PartitionKey=A
Event 1
PartitionKey=B
Event Hub : Consommation
Partition 1
Partition 2
Partition “n”
Event 1
Pkey = A
Event 2
Pkey = B
Receiver 6
Receiver 2
Worker “n”
Receiver 1
Receiver “n”
Worker 1
Event Hub : Consommation multiple
Partition 1
Partition 2
Partition “n”
Consumer Group C
Callback for prtn. 6
Callback for prtn. 2
Worker “n”
Callback for prtn. 1
Callback “n”
Worker 1Consumer Group B
Callback for prtn. 6
Callback for prtn. 2
Worker “n”
Callback for prtn. 1
Callback “n”
Worker 1Consumer Group A
Worker “n”
Callback for prtn. 6
Callback for prtn. 2
Callback for prtn. 1
Callback “n”
Worker 1
17
Données au repos
SELECT count(*) FROM ParkingLot
WHERE type = 'Auto'
AND color = 'Red'
Question
“Combien de voitures rouges dans le parking?”
Répondre avec une base de donnée relationnelle
Marcher jusqu’au parking
Compter les véhicules qui sont: Rouge, Voiture
18
Données en Mouvement
La question est différente
“Combien de voitures rouges sont passées au marqueur 18A sur l’A-10 dans
la dernière heure?”
Répondre avec une base de donnée relationnelle
S’arrêter, faire se garer toutes les voitures qui arrivent pendant l’heure dans
un parking, les compter
Pas la meilleure des solutions…
19
Développent et Management dans le portail Azure
Toutes les opérations de management exposées via des endpoints REST (API)
Aussi connu sous le nom « Complex Event Processing », « Traitement d’événements
complexes »
S’alimente des flux continus d’événements provenant d’IoT (Event Hub)…
Préparation des données (jointures, filtrage, agrégation, détection de patterns)
Permet le dashboarding en temps réel, les alertes, la maintenance préventive…
Azure Stream Analytics!
20
Pourquoi le faire dans le cloud?
Event data is already
in the Cloud
Event data is
globally distributed
Coût d’opération
moindre
Scale Services managés, pas
d’infrastructure
Déplacer les traitements vers la
données, et pas l’inverse!
21
Architecture complète
Data Source Collect Process Consume
Entrées
- Event Hubs
- Azure Storage
Blobs
Transformer
- Temporal joins
- Filter
- Aggregates
- Projections
- Windows
- etc.
Enrichir
- Join with reference
data
Préparer
- Output to storage
for further
processing
Sorties
- Azure SQL DB
- Azure Storage
Blobs
- Event Hubs
Azure
Storage
• Temporal Semantics
• Guaranteed delivery
• Guaranteed up time
Azure Stream Analytics
Données de
référence
- Azure Storage
Blobs
- …
22
L’avantage définitif
SELECT count(*) FROM A-10
WHERE Type = ‘Voiture’ and Color = ‘Rouge’
GROUP BY TumblingWindow(hour, 1)
La question est différente
“Combien de voitures rouges sont passées au marqueur 18A sur l’A-10 dans
la dernière heure?”
23
Agrégation temporelle, en SQL
TumblingWindow(minute,5) HoppingWindow(minute, 10 , 5)
SlidingWindow(minute, 3)
Internet of Things avec Microsoft Azure
Présentation et
action
TransformationBroker Stockage long
terme
CollectionProducteur
Appareil
compatible IP
(Windows/Linux)
Event Hub
AMQP/HTTP
C, .NET, Java…
Azure Stream
Analytics
Azure SQL DB
Power BI
Langage Arduino (C/C++)
+
Azure : Python SDK
Pseudo SQL
Arduino.cc : hardware open source
Pour aller plus loin
• Arduino.cc : Starter Kit / Arduino Yun (Linux+Wifi)
• Arduino + Event Hub
Ola Loogman (Kloud) : The IoT with Arduino, Event Hubs and the Azure Python
SDK (blog)
• Event Hub et Stream Analytics
Dipanjan Banik – Stream Analytics Hands on Lab : TollApp (télécharger)
Visual Studio 2013 Community Edition (télécharger)
Azure 1 mois gratuit : 150€ (activer)
• Power BI : PowerBI.com (preview uniquement aux US, mais l’Europe
bientôt)

Biztalk summit - IOT

  • 1.
    Internet of Things BizTalkSummit France 10/03/2015
  • 2.
    Exemple d’objets connectés •Portable sur soi, à la maison • Infrastructure intelligente, domotique • Sécurité et surveillance • Santé • Transport • Agriculture • … Des objets qui n’étaient pas connectés jusqu’à présent Qui ne disposent souvent pas d’un accès réseau spécifique Qui envoient des données de façon continue (stream)
  • 3.
    The Internet ofThings (IoT)
  • 4.
    Les services MicrosoftAzure pour l’IoT Acheter Construire Acheter une partie, Construire le spécifique • Si le développement logiciel n’est pas une compétence primaire • Focus sur la rapidité d’implémentation • Le développement logiciel est une force • Focus sur la flexibilité et le control, minimization du coût • La plateforme est vue comme un investissement stratégique • Expérimentation • Analytics et traitement des données spécifiques • Composer des services à haute valeur ajoutée “Intelligent Systems Service” (ISS) Outils “Platform as a Service” (PaaS) Plateforme ISS + Services Caractéristiques de l’organisation Services AzureComment approcher l’IoT
  • 5.
  • 6.
    Quel type d’infrastructureest nécessaire? Supporte la varieté (> million d’apparails concurrents) Supporte la rapidité (> million événements/s) Supporte le volume (> 100s de TB) Buffering (pour gérer la variabilité) Durabilité Latence basse Sécurité Et pas trop cher! Grid Renewables Oil/Gas/Coal Recovery and Distribution Points of Sale Restaurants Hotels Fuel Stations Patients Clinics Hospitals Nursing Homes Mobile Care Safety Security Comfort Lighting Automation Manufacturing Integration and Automation Remote Servicing Predictive and Reactive Maintenance Water Waste Pollution Control Fire Emergency Public Safety Law Enforcement Letters Packages Containers Tanks Bulkware Games Events Sports Television Streaming Traffic Buses Cars Trucks Trains Vessels Aircraft Bikes Smart Energy Smart Retail Smart Mobility Smart Logistics Smart Factory Smart Cities Smart Entertain- ment Smart Health- care Smart Building Home
  • 7.
    Architecture de référencepour le traitement d’événements Présentation et action - Search and query Data analytics Web/thick client dashboards Stockage long terme External data sources Azure Storage Transformation Real-time analytics (Storm/Orleans, NRT/ASA) Batching/storage adapters Ingestion (broker) Scalable Event Broker Field Gateways Collection Cloud Gateways (WebAPIs) Applications Producteurs Devices
  • 9.
    Event Hub c’estun service d’ingestion en mode publisher-subscriber (éditeur/abonné) Variété: > million appareils with HTTP/AMQP/(MQTT) Vitesse: > million lignes ingress/second Volume: > GB/s ingress Egress: Pub-sub: Consommateurs concurrents Securité: SAS based, token unique par publisher Buffer: Chaque consommateur possède son propre cursor/offset Durable: Entre 1 and 30 jours de rétention Latence: 50ms end-to-end en mode durable, pointes <10ms Prix: Compétitif en mode PaaS, payer ce que vous consommer
  • 10.
    Event Hub pourl’IoT: Ingestion Big Data Sources Services Cloud Stockage & Analytics Code spécifique & Outils tiers Web/Mobile User Interfaces Services D’integration Event Hub - Hyper Scale - - Mode Managé - - Interopérable - - Sécurisé -
  • 11.
    L’avantage avec Azure Stormsur Linux dans une VM HDInsight sur Azure Web Sites & Power BI
  • 12.
    Scénarios Event Hub Présentationet action TransformationBroker Stockage long terme CollectionProducteurs Devices Appareils entrée de gamme (RTOS) Appareils compatibles IP (Windows/Linux) Field Gateway (Raspberry PI/ Galileo) (Embedded .Net/ ThreadX) Event Hub Legacy IoT (Protocoles spécifiques) Cloud Gateway spécifique AMQP/HTTP C, .NET, Java… MQTT/COAP/Custom Rétention des données dans le temps, Groupes de consommateurs, Réception partitionnée, Check-point, … Plus basse latence end-to-end Intégration facile avec les frameworks (SDK) Custom code (Storm/Orleans ) Storage adapters App insights Data Analytics Statistiques Dashboard Service Recherche Distributed tracing - Applications AMQP/HTTP, C, .NET, Java… Scalabilité sur la bande passante (GB/s) et le nombre de producteurs concurrents Azure Dbs Azure Storage HDInsight
  • 13.
    Event Hub :Envoyer des données Partition 1 Partition 2 Partition “n” Event 1 PartitionKey=A Event 1 PartitionKey=B
  • 14.
    Event Hub :Consommation Partition 1 Partition 2 Partition “n” Event 1 Pkey = A Event 2 Pkey = B Receiver 6 Receiver 2 Worker “n” Receiver 1 Receiver “n” Worker 1
  • 15.
    Event Hub :Consommation multiple Partition 1 Partition 2 Partition “n” Consumer Group C Callback for prtn. 6 Callback for prtn. 2 Worker “n” Callback for prtn. 1 Callback “n” Worker 1Consumer Group B Callback for prtn. 6 Callback for prtn. 2 Worker “n” Callback for prtn. 1 Callback “n” Worker 1Consumer Group A Worker “n” Callback for prtn. 6 Callback for prtn. 2 Callback for prtn. 1 Callback “n” Worker 1
  • 17.
    17 Données au repos SELECTcount(*) FROM ParkingLot WHERE type = 'Auto' AND color = 'Red' Question “Combien de voitures rouges dans le parking?” Répondre avec une base de donnée relationnelle Marcher jusqu’au parking Compter les véhicules qui sont: Rouge, Voiture
  • 18.
    18 Données en Mouvement Laquestion est différente “Combien de voitures rouges sont passées au marqueur 18A sur l’A-10 dans la dernière heure?” Répondre avec une base de donnée relationnelle S’arrêter, faire se garer toutes les voitures qui arrivent pendant l’heure dans un parking, les compter Pas la meilleure des solutions…
  • 19.
    19 Développent et Managementdans le portail Azure Toutes les opérations de management exposées via des endpoints REST (API) Aussi connu sous le nom « Complex Event Processing », « Traitement d’événements complexes » S’alimente des flux continus d’événements provenant d’IoT (Event Hub)… Préparation des données (jointures, filtrage, agrégation, détection de patterns) Permet le dashboarding en temps réel, les alertes, la maintenance préventive… Azure Stream Analytics!
  • 20.
    20 Pourquoi le fairedans le cloud? Event data is already in the Cloud Event data is globally distributed Coût d’opération moindre Scale Services managés, pas d’infrastructure Déplacer les traitements vers la données, et pas l’inverse!
  • 21.
    21 Architecture complète Data SourceCollect Process Consume Entrées - Event Hubs - Azure Storage Blobs Transformer - Temporal joins - Filter - Aggregates - Projections - Windows - etc. Enrichir - Join with reference data Préparer - Output to storage for further processing Sorties - Azure SQL DB - Azure Storage Blobs - Event Hubs Azure Storage • Temporal Semantics • Guaranteed delivery • Guaranteed up time Azure Stream Analytics Données de référence - Azure Storage Blobs - …
  • 22.
    22 L’avantage définitif SELECT count(*)FROM A-10 WHERE Type = ‘Voiture’ and Color = ‘Rouge’ GROUP BY TumblingWindow(hour, 1) La question est différente “Combien de voitures rouges sont passées au marqueur 18A sur l’A-10 dans la dernière heure?”
  • 23.
    23 Agrégation temporelle, enSQL TumblingWindow(minute,5) HoppingWindow(minute, 10 , 5) SlidingWindow(minute, 3)
  • 25.
    Internet of Thingsavec Microsoft Azure Présentation et action TransformationBroker Stockage long terme CollectionProducteur Appareil compatible IP (Windows/Linux) Event Hub AMQP/HTTP C, .NET, Java… Azure Stream Analytics Azure SQL DB Power BI Langage Arduino (C/C++) + Azure : Python SDK Pseudo SQL
  • 26.
  • 28.
    Pour aller plusloin • Arduino.cc : Starter Kit / Arduino Yun (Linux+Wifi) • Arduino + Event Hub Ola Loogman (Kloud) : The IoT with Arduino, Event Hubs and the Azure Python SDK (blog) • Event Hub et Stream Analytics Dipanjan Banik – Stream Analytics Hands on Lab : TollApp (télécharger) Visual Studio 2013 Community Edition (télécharger) Azure 1 mois gratuit : 150€ (activer) • Power BI : PowerBI.com (preview uniquement aux US, mais l’Europe bientôt)

Notes de l'éditeur

  • #3 Fitbit, lampes, frigo… Routes Prise de sang pour les diabétiques (…) Voiture connectée (…) La vache connectée (…)
  • #14 PartitionKey: spécifique à mon organisation, déployée sur le terrain Partition : interne à EventHub, peut changer dans le temps en fonction du scaling Couche d’abstraction
  • #15 >> Et justement, poursuivons la chaîne, et détaillons un des meilleurs consommateurs pour Event Hub : ASA