Ce diaporama a bien été signalé.
Nous utilisons votre profil LinkedIn et vos données d’activité pour vous proposer des publicités personnalisées et pertinentes. Vous pouvez changer vos préférences de publicités à tout moment.
From the Internet of Things to
Intelligent Systems:
A Developer's Primer
Rick G. Garibay
Distinguished Engineer, Neudesic
...
About Me
• Distinguished Engineer, Neudesic working on IoT,
Intelligent Transportation and Hospitality & Gaming
• Microsof...
What is the Internet of Things?
The Internet of Things: By the
Numbers
B5075212
This change is happening
more rapidly than anyone
imagined.
This change could bring
tremendous opportunity to your
business, industry and you as
a technologist.
The Internet of Things is the
network of physical objects that
contain embedded technology to
communicate and interact wit...
OEM Revenue Opportunity |
Market Forecast CY17
Auto & Trans Retail Manufacturing Healthcare Energy Computing Telecom Consu...
Smart
Products
Grid
Renewables
Oil/Gas/Coal
Recovery and
Distribution
Points
of Sale
Restaurants
Hotels
Fuel
Stations
Pati...
IoT Device Taxonomy
Large
Mobile
Micro
Small
POS terminal, ATM, MRI
x86, PC-like, apps
Industry handheld, POS tablet
ARM a...
Raspberry Pi
Intel Galileo
Gadgeteer Fez Spider
5mm 5mm
Arduino Uno
Netduino Plus 2
Spark
Beyond the garage, the true
significance of IoT is the foundation it
provides for enabling new business
capabilities.
From
Information Technology
to
Operational Technology
IT
Servers,
Applications,
Systems
IT
Servers,
Applications,
Systems
...
Data-Driven Insight
• Data –> Information –> Insight ($+)
–Make more efficient use of resources
(reduce cost, environmenta...
Action at a Distance
• Data isn’t the only raw material being unlocked by the IoT
– The ability to act remotely – automati...
From IoT to Intelligent Systems
Large
Mobile
Micro
Small
M2M/
Device to
Cloud
Various Communication Protocols
2G2G
Wi-
Fi
Wi-
Fi
Bluetooth/
BLE
Bluetooth/
BLE
RFIDRFID
GPRSGPRS
SMSSMS
3G3G
LTELTE
Wi
M...
Various Application Protocols
AMQPAMQP MQTTMQTT
CoAPCoAP
CustomCustom
HTTPHTTP
……
MQ Telemetry Tranport (MQTT)
• Born out of IBM MQ Series messaging middleware product
• Compact binary protocol – min. 7 b...
Constrained Application Protocol
(CoAp)
• Embedded web transfer protocol (coap://)
• Asynchronous transaction model
• UDP ...
Advanced Message Queuing
Protocol 1.0 (AMQP)
• Efficient – binary connection-oriented protocol
• Reliable – fire-and-forge...
Message Types
Voluntary
information flow
from device to
another system.
Requests for
information from
device to other
syst...
Default Connectivity Model
• Connectivity (IPv6 + VPN)
– Give every device a routable IP address
– Devices expose services...
Default Connectivity Model
Connections are
command source
initiated.
Connections are
command source
initiated.
Device expo...
DEMO 1
Device Commands with the Default IoT Connectivity Model
Default Connectivity Model
Challenges
• Addressability
– Requires network-layer intervention
– Doesn’t work for devices th...
On-Premise Brokered Device
Communications
• Connectivity (IPv6 + VPN)
– Give every device a routable IP address.
– Devices...
On-Premise Brokered Device
Communications
Device subscribes to
broker via TCP, etc.
Device subscribes to
broker via TCP, e...
DEMO 2
Brokered Commands with MQTT & RabbitMQ
On-Premise Brokered Device
Communications Challenges
• Addressability
– Device and broker are intimately connected.
– Does...
Service Assisted Communications
• Devices connect via open standard protocols
– AMQP 1.0 and HTTP supported natively by th...
Service-Assisted Communications
Connections are
device-initiated and
outbound
Connections are
device-initiated and
outboun...
IoT Cloud Platform “Stack” –
Abstract Model
Non-IP
Capable
Devices
IP
Capable
Devices
CloudGateway
Custom
Code
CloudPlatfo...
Azure Hosting Options
Non-IP
Capable
Devices
IP
Capable
Devices
CloudGateway
Custom
Code
CloudPlatform
Services
Enterprise...
Azure Platform Services
Non-IP
Capable
Devices
IP
Capable
Devices
CloudGateway
Custom
Code
CloudPlatform
Services
Enterpri...
Azure – IoT Cloud Gateway
Non-IP
Capable
Devices
IP
Capable
Devices
CloudGateway
Custom
Code
CloudPlatform
Services
Enterp...
Telemetry Routing with the Azure
Service Bus
 Split the stream
 Enable parallel processing
 Implement different Q QoS l...
Routing Commands with the
Azure Service Bus
TopicSubs Filters
Service Bus
Device 2
Device 1
Device 3
Sender 2
Model A
Devi...
DEMO 3
Service-Assisted Device-Direct Commands over Azure Service Bus
Service Assisted Custom/Cloud
Gateway Challenges
• Connectivity
– Addressability (non-IP devices, firewalls/NATs, online/o...
Additional Key Considerations
• Device Provisioning
• Security
• Performance
• Scale
• Redundancy
Service Bus MessagingService Bus Messaging
Device Gateway Accelerator –
Reference Architecture
(Reykjavík)
1. Custom Proto...
Device Gateway – Partition
Topology
• The “Partition” is a set of resources dedicated to a specific
device population (or ...
Device Gateway – Customer
Topology
• Global coverage achieved by spreading partitions across multiple Azure
regions
• Refe...
DEMO 4
Provisioning and Exercising Reykjavik
Device
Device
Event
Hub
Azure
Event
Processing
Azure
Storage
Azure
Customer Apps
HDInsight
BI Systems
3rd Party Solutions
...
Device
(Non-ISS)
Device
(Non-ISS)
Event
Hub
Azure
Storage
Rich Device Registry & Object Model of “Things”Rich Device Regis...
More on ISS
• //build 2014: Windows and the Internet of Things:
http://bit.ly/1ijTeyW
• Internetofyourthings.com
More on Reykjavik/Device
Gateway
• //build 2014: Internet of Things with Azure Service Bus:
http://bit.ly/1m4MMME
• Neudes...
References
• Internet of Things with Azure Service Bus:
http://bit.ly/1m4MMME
• Windows and the Internet of Things:
http:/...
About Me
• Distinguished Engineer, Neudesic working on IoT,
Intelligent Transportation and Hospitality & Gaming
• Microsof...
From the Internet of Things to Intelligent Systems: A Developer's Primer
From the Internet of Things to Intelligent Systems: A Developer's Primer
Prochain SlideShare
Chargement dans…5
×

From the Internet of Things to Intelligent Systems: A Developer's Primer

7 301 vues

Publié le

https://github.com/rickggaribay/IoT

Publié dans : Technologie, Business
  • Identifiez-vous pour voir les commentaires

From the Internet of Things to Intelligent Systems: A Developer's Primer

  1. 1. From the Internet of Things to Intelligent Systems: A Developer's Primer Rick G. Garibay Distinguished Engineer, Neudesic MVP, Microsoft Azure @rickggaribay Level: Intermediate
  2. 2. About Me • Distinguished Engineer, Neudesic working on IoT, Intelligent Transportation and Hospitality & Gaming • Microsoft MVP, Microsoft Azure • Co-Author, “Windows Server AppFabric Cookbook” by Packt Pub. • Chairman, Co-Founder Phoenix Connected Systems User Group (PCSUG.org) • twitter: @rickggaribay • blog: http://rickgaribay.net • email: rick.garibay@neudesic.com | b-rigari@microsoft.com
  3. 3. What is the Internet of Things?
  4. 4. The Internet of Things: By the Numbers B5075212
  5. 5. This change is happening more rapidly than anyone imagined.
  6. 6. This change could bring tremendous opportunity to your business, industry and you as a technologist.
  7. 7. The Internet of Things is the network of physical objects that contain embedded technology to communicate and interact with their internal states or the external environment.
  8. 8. OEM Revenue Opportunity | Market Forecast CY17 Auto & Trans Retail Manufacturing Healthcare Energy Computing Telecom Consumer $7 B $16 B $197 B $3 B $27 B $908 B $179 B $356 B System Revenue Intelligent Systems 1.7T$
  9. 9. Smart Products 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 Mobility Smart Logistics Smart Logistics Smart Factory Smart Factory Smart Cities Smart Cities Smart Entertain- ment Smart Entertain- ment Smart Health- care Smart Building Home Smart Building Home
  10. 10. IoT Device Taxonomy Large Mobile Micro Small POS terminal, ATM, MRI x86, PC-like, apps Industry handheld, POS tablet ARM and x86, shell experience, apps Gateways, wearables, panels, cars ARM and x86, diverse hardware, no shell Controllers, fixed-use, sensors, actuators ARM, constrained hardware, headless
  11. 11. Raspberry Pi
  12. 12. Intel Galileo
  13. 13. Gadgeteer Fez Spider
  14. 14. 5mm 5mm
  15. 15. Arduino Uno
  16. 16. Netduino Plus 2
  17. 17. Spark
  18. 18. Beyond the garage, the true significance of IoT is the foundation it provides for enabling new business capabilities.
  19. 19. From Information Technology to Operational Technology IT Servers, Applications, Systems IT Servers, Applications, Systems OT Devices, Telemetry, Command & Control OT Devices, Telemetry, Command & Control Data-Driven Insight + Action at a Distance
  20. 20. Data-Driven Insight • Data –> Information –> Insight ($+) –Make more efficient use of resources (reduce cost, environmental impact) Example: Power management in buildings and data centers –Provide more targeted products and services (increase revenue, social impact) Example: Preventive maintenance, optimal usage analytics for expensive machines • “Things” = a rapidly expanding source of raw material for the Insight pipeline
  21. 21. Action at a Distance • Data isn’t the only raw material being unlocked by the IoT – The ability to act remotely – automatically and intelligently – Remote control is a source of efficiency – Enables new forms of customer interaction and engagement • IoT extends customer engagement opportunities to physical products • Taking engagement with customers beyond the point of sale – Preventive maintenance – Best practices guidance – Proactive sales – Remote servicing • From CRM to PRM – “Product Relationship Management”
  22. 22. From IoT to Intelligent Systems Large Mobile Micro Small M2M/ Device to Cloud
  23. 23. Various Communication Protocols 2G2G Wi- Fi Wi- Fi Bluetooth/ BLE Bluetooth/ BLE RFIDRFID GPRSGPRS SMSSMS 3G3G LTELTE Wi Max Wi Max ZigBeeZigBee
  24. 24. Various Application Protocols AMQPAMQP MQTTMQTT CoAPCoAP CustomCustom HTTPHTTP ……
  25. 25. MQ Telemetry Tranport (MQTT) • Born out of IBM MQ Series messaging middleware product • Compact binary protocol – min. 7 byte overhead per message sent • No structured message – message bodies are byte arrays • Simple topic name based pub/sub messaging model – Send to topic name, e.g., “/a/b/c/d” or “/a/b/e/f” – Subscribe to topic name, e.g., “/a/b/c/d” or use wildcard, e.g., “/a/b/#” • Reliable – fire-and-forget to reliable, exactly-once delivery • Two innovative, device-oriented features: – Retain – mark a message to be delivered to new subscribers on connection – Last will and testament – register message to be sent on abrupt disconnect • Not general purpose – lacking key features, e.g., flow control • Standardization in progress through OASIS
  26. 26. Constrained Application Protocol (CoAp) • Embedded web transfer protocol (coap://) • Asynchronous transaction model • UDP binding with reliability and multicast support • GET, POST, PUT, DELETE methods • URI support • Small, simple 4 byte header • DTLS based PSK, RPK and Certificate security • Subset of MIME types and HTTP response codes • Built-in discovery • Optional observation and block transfer
  27. 27. Advanced Message Queuing Protocol 1.0 (AMQP) • Efficient – binary connection-oriented protocol • Reliable – fire-and-forget to reliable, exactly-once delivery • Portable data representation and structured message definition • Flexible – peer-peer, client-broker, and broker-broker topologies • Broker-model independent – no requirements on broker internals • Rich flow control – multiplex multiple data streams over a connection • OASIS Standard (Oct 2012); International Standardization in progress – Somewhat controversial…
  28. 28. Message Types Voluntary information flow from device to another system. Requests for information from device to other systems. Instructions from other systems to a device. Information flow from other systems to the device. Telemetry Inquires Commands Notifications
  29. 29. Default Connectivity Model • Connectivity (IPv6 + VPN) – Give every device a routable IP address – Devices expose services for control/query operations – Command Source is either on premise or remote, enabled by a bridge of some sort. – Remote access is enabled within the VPN’s routing domain
  30. 30. Default Connectivity Model Connections are command source initiated. Connections are command source initiated. Device exposes a service/API Device exposes a service/API Command Source Command Source
  31. 31. DEMO 1 Device Commands with the Default IoT Connectivity Model
  32. 32. Default Connectivity Model Challenges • Addressability – Requires network-layer intervention – Doesn’t work for devices that are loosely connected (roaming, frequently offline) • Security – By default, every protocol that can be routed over Ethernet can flow – and between any two nodes – SSL/TLS is not an option on many small devices. – VPN controls access to IP addresses and ports, not application endpoints (lack of granular authorization) – Many devices are not VPN-capable due to resource/bandwidth constraints • Efficient scale – VPN infrastructure is expensive and costly to maintain – Does not address device management. Think 1K, 10K, 100K+ devices
  33. 33. On-Premise Brokered Device Communications • Connectivity (IPv6 + VPN) – Give every device a routable IP address. – Devices participate in pub-sub messaging on-prem or via VPN using industry standard protocol like MQTT. – Command Source is either on premise or remote, enabled by a bridge of some sort. – Remote access is enabled within the VPN’s routing domain.
  34. 34. On-Premise Brokered Device Communications Device subscribes to broker via TCP, etc. Device subscribes to broker via TCP, etc. Device BrokerDevice Broker Typically a socket connection. Typically a socket connection. Messaging happens on premise, attack surface minimized. Messaging happens on premise, attack surface minimized. MQTT, etc. Command Source Command Source Must be on premise or somehow bridged. Must be on premise or somehow bridged.
  35. 35. DEMO 2 Brokered Commands with MQTT & RabbitMQ
  36. 36. On-Premise Brokered Device Communications Challenges • Addressability – Device and broker are intimately connected. – Doesn’t work for devices that are loosely connected (roaming, frequently offline). • Security – SSL/TLS is not an option on many small devices. – Many devices are not VPN-capable due to resource/bandwidth constraints. • Efficient scale – VPN infrastructure is expensive and costly to maintain. – External commands require some kind of a gateway service. – Does not address device management. Think 1K, 10K, 100K+ devices
  37. 37. Service Assisted Communications • Devices connect via open standard protocols – AMQP 1.0 and HTTP supported natively by the Service Bus – MQTT, CoAP and others can be implemented via custom gateway/adapter model – Sockets secured via TLS (or a lightweight variant) • Each device has a dedicated Inbox/Outbox on the Gateway – Device sends telemetry/alerts and routes service invocations via its Outbox – Device receives commands and queries from its Inbox – Correlated request/reply patterns can be implemented on top of these two messaging channels – The device knows, and has access to, only its own specific inbox/outbox endpoints (URI’s) Backend Components Backend Components Cloud GatewayCloud Gateway InboxInbox OutboxOutbox CommandAPICommandAPI ProtocolHeadProtocolHead
  38. 38. Service-Assisted Communications Connections are device-initiated and outbound Connections are device-initiated and outbound NAT/Firewall Device (Router) NAT/Firewall Device (Router) IP NAT Cloud Gateway Cloud Gateway Command Source Command Source Port mapping is automatic, outbound Port mapping is automatic, outbound Device does not listen for unsolicited traffic Device does not listen for unsolicited traffic No inbound ports open, attack surface is minimized No inbound ports open, attack surface is minimized Access-controlled command API Secure, managed hosting platform Access-controlled command API Secure, managed hosting platform DNS myapp.cloudapp.net
  39. 39. IoT Cloud Platform “Stack” – Abstract Model Non-IP Capable Devices IP Capable Devices CloudGateway Custom Code CloudPlatform Services Enterprise Systems Third-Party Data and Services A B C D E F Field Gateway
  40. 40. Azure Hosting Options Non-IP Capable Devices IP Capable Devices CloudGateway Custom Code CloudPlatform Services Enterprise Systems Third-Party Data and Services A B C D E F Web SitesWeb Sites Mobile ServicesMobile Services Cloud ServicesCloud Services External CodeExternal Code VM RolesVM Roles Field Gateway
  41. 41. Azure Platform Services Non-IP Capable Devices IP Capable Devices CloudGateway Custom Code CloudPlatform Services Enterprise Systems Third-Party Data and Services A B C D E F HD InsightHD Insight Azure Databases Azure Databases Table/Blob Storage Table/Blob Storage BizTalk ServicesBizTalk Services Service BusService Bus Field Gateway Media ServicesMedia Services
  42. 42. Azure – IoT Cloud Gateway Non-IP Capable Devices IP Capable Devices CloudGateway Custom Code CloudPlatform Services Enterprise Systems Third-Party Data and Services Field Gateway A B C D E F ServiceBus A/B ServiceBus A/B Custom GWRole Pattern 1: Device Direct Pattern 2: Custom Gateway
  43. 43. Telemetry Routing with the Azure Service Bus  Split the stream  Enable parallel processing  Implement different Q QoS levels  Level and balance the load Topic SubsFilters Service Bus Device 2 Receiver 2b Device 1 Device 3 Receiver 2a Alerts Data Receiver 1 Alert Processor Storage Pre-processor
  44. 44. Routing Commands with the Azure Service Bus TopicSubs Filters Service Bus Device 2 Device 1 Device 3 Sender 2 Model A Device 3 Sender 1 Model T Model T Model A  Target individuals or groups  Set delivery timeouts (TTL)  Deal with spotty connectivity  Traverse NATs/firewalls securely
  45. 45. DEMO 3 Service-Assisted Device-Direct Commands over Azure Service Bus
  46. 46. Service Assisted Custom/Cloud Gateway Challenges • Connectivity – Addressability (non-IP devices, firewalls/NATs, online/offline, roaming) – Heterogeneity (OS/firmware, power/network constraints, protocols) – Security (identity, authorization, privacy, data integrity) – Efficient Scale (millions of devices per tenant, at a reasonable cost) • Messaging – Telemetry (collection, filtering, routing, throughput, per- message QoS) – Notifications (targeting devices/device groups within large populations) – Command/Query and Inquiries (correlation, sessions/batching)
  47. 47. Additional Key Considerations • Device Provisioning • Security • Performance • Scale • Redundancy
  48. 48. Service Bus MessagingService Bus Messaging Device Gateway Accelerator – Reference Architecture (Reykjavík) 1. Custom Protocol Gateway 2. Telemetry Pump and Adapters 3. Command Gateway 4. Provisioning Service and Metadata Store Custom Protocol Gateway HostCustom Protocol Gateway Host MQTTMQTT CoAPCoAP …… Telemetry/Request Router Telemetry/Request Router Notification/Command Router Notification/Command Router AdaptersAdapters Command API HostCommand API Host Provisioning Service Device Metadata and Key Store HDInsightHDInsight BizTalkBizTalk OrleansOrleans AzureStorageAzureStorage AzureDbsAzureDbs ServiceBusServiceBus HTTP HTTP DevicesDevices AMQP 11 22 33 44 ConfigurationConfiguration HTTP YourProcessYourProcess
  49. 49. Device Gateway – Partition Topology • The “Partition” is a set of resources dedicated to a specific device population (or subset thereof). • The “Master” role manages partition deployment and device provisioning into the partitions. PartitionMaster Partition Repo Partition Repo Command TopicsCommand Topics Service Bus Standard ProtocolService Bus Standard Protocol Custom ProtocolCustom Protocol Device RepoDevice Repo in0000in0000 inFFFFinFFFF…in0001in0001 in0002in0002 AMQPAMQP HTTPHTTP MQTTMQTT Custom Protocol HostCustom Protocol Host Protocol AdaptersProtocol Adapters diagdiagallall diagdiagallall diagdiagallall diagdiagallall Telemetry Pump/RouterTelemetry Pump/Router N Instances Telemetry Adapter Telemetry Adapter Telemetry Adapter Telemetry Adapter Telemetry Adapter Telemetry Adapter Deployment Runtime Deployment Runtime out0000out0000 outFFFFoutFFFF…out0001out0001 out0002out0002 s0001s0001 s0002s0002 s03E7s03E7 s0001s0001 s0002s0002 s03E7s03E7 s0001s0001 s0002s0002 s03E7s03E7 s0001s0001 s0002s0002 s03E7s03E7 g0000/ rte0000 g0000/ rte0000 g0000/ rte0001 g0000/ rte0001 out0out0 out1out1 out2out2 n Groups of m Routers out0out0 out1out1 out2out2 g0001/ rte0000 g0001/ rte0000 g0001/ rte0001 g0001/ rte0001 out0out0 out1out1 out2out2 out0out0 out1out1 out2out2 Provisioning Runtime Provisioning Runtime Ingestion Topics (Telemetry)Ingestion Topics (Telemetry) Command API Host Command API Host
  50. 50. Device Gateway – Customer Topology • Global coverage achieved by spreading partitions across multiple Azure regions • Reference architecture supports up to 1000 distinct partitions • Number and distribution of partitions driven by data volumes, business continuity, legal and proximity considerations
  51. 51. DEMO 4 Provisioning and Exercising Reykjavik
  52. 52. Device Device Event Hub Azure Event Processing Azure Storage Azure Customer Apps HDInsight BI Systems 3rd Party Solutions Data Flow SQL Azure Event Hub Basic Device Registry Command & Control Microsoft Azure Stack for IoT
  53. 53. Device (Non-ISS) Device (Non-ISS) Event Hub Azure Storage Rich Device Registry & Object Model of “Things”Rich Device Registry & Object Model of “Things” Azure ISS Customer Apps HDInsights BI Systems 3rd Party Solutions Data Flow ISS Solution built on Azure SQL Azure Event Hub Basic Device Registry ISSSecurity, Privacy& SharingControls IoT Rule Templates IoT Rule Templates Natural Language Query Natural Language Query ISS Agents ISS Agents ISS Agents ISS Solution SingleAccount,PerdeviceBilling, etc. SingleAccount,PerdeviceBilling, etc. Command & Control Azure Event Processing ISS Portal ISS Portal
  54. 54. More on ISS • //build 2014: Windows and the Internet of Things: http://bit.ly/1ijTeyW • Internetofyourthings.com
  55. 55. More on Reykjavik/Device Gateway • //build 2014: Internet of Things with Azure Service Bus: http://bit.ly/1m4MMME • Neudesic is currently offering industry-specific briefings on IoT. • The Azure M2M team is very interested in working with early adopters. • If you or your organization think you’re a candidate for Device Gateway and are interested in learning more connect with us: http://neudesic.com/iot Invitation code: VSLChicago
  56. 56. References • Internet of Things with Azure Service Bus: http://bit.ly/1m4MMME • Windows and the Internet of Things: http://bit.ly/1ijTeyW • Subscribe!: http://channel9.msdn.com/Blogs/Subscribe • Service Assisted Communications: http://vasters.com/clemensv/CategoryView,category,Ar chitecture.aspx • Internet of Things & Azure Service Bus: http://bit.ly/1jFf5k5 and http://bit.ly/1jFf5k5 • M2MQTT Library for .NET MF: http://m2mqtt.codeplex.com/ • Special thanks to Clemens Vaster, Markus Horseman and Todd Holmquist-Sutherland on the Microsoft Azure M2M team.
  57. 57. About Me • Distinguished Engineer, Neudesic working on IoT, Intelligent Transportation and Hospitality & Gaming • Microsoft MVP, Microsoft Azure • Co-Author, “Windows Server AppFabric Cookbook” by Packt Pub. • Chairman, Co-Founder Phoenix Connected Systems User Group (PCSUG.org) • twitter: @rickggaribay • blog: http://rickgaribay.net • email: rick.garibay@neudesic.com | b-rigari@microsoft.com

×