SlideShare uma empresa Scribd logo
1 de 57
Baixar para ler offline
Messaging for IoT
October 2015
Martyn	
  Taylor,	
  Dejan	
  Bosanac
Presenters
Martyn	
  Taylor
•  Senior	
  So4ware	
  Engineer	
  at	
  Red	
  Hat
•  Apache	
  Ac>veMQ	
  CommiCer
•  Mainly	
  working	
  on	
  Apache	
  Artemis
•  Keen	
  interest	
  in	
  IoT
Bosanac	
  Dejan
•  Senior	
  So4ware	
  Engineer	
  at	
  Red	
  Hat
•  Apache	
  Ac>veMQ	
  commiCer	
  and	
  PMC	
  member
•  Co-­‐author	
  of	
  Ac>veMQ	
  in	
  Ac>on
Agenda
•  IoT	
  messaging	
  basics
•  Tasks	
  and	
  challenges
•  PaCerns	
  and	
  protocols
•  IoT	
  messaging	
  brokers
•  Apache	
  Ac>veMQ
•  Ac>veMQ	
  Artemis
•  IoT	
  messaging	
  scaling
•  Ver>cal	
  and	
  horizontal
•  Qpid	
  Dispatch	
  Router
•  Scalable	
  deployments
IoT Messaging Basics
•  IoT	
  Topology
•  Messaging	
  tasks
•  Messaging	
  challenges
IoT Topology
	
  Big	
  Data
Messaging	
  
Infrastructure
Analy>cs
Enterprise	
  
Middleware
Devices
IoT Messaging Infrastructure
Task
•  Provides	
  connec>vity	
  between	
  devices	
  and	
  backend	
  systems
Challenges
•  Interoperability
•  Deployment	
  environment
•  High	
  Availability
•  Scalability
IoT connectivity patterns
•  IoT	
  Communica>on	
  PaCerns
•  Telemetry,	
  Command	
  &	
  Control,	
  Enquiry,	
  No>fica>ons
•  Protocols	
  and	
  Technologies
•  JMS
•  MQTT
•  AMQP
Telemetry
•  Device	
  →	
  Service
•  One	
  way	
  (push)
•  Failures	
  tolerable
•  Lots	
  of	
  small	
  data
Command	
  and	
  Control
•  Service	
  →	
  Device
•  Two	
  way	
  (Req/Resp)
•  Less,	
  more	
  important	
  data
•  1	
  →	
  1	
  and	
  1	
  →	
  many	
  
•  grouping	
  
Enquiry
•  Device	
  →	
  Service
•  1	
  →	
  1
•  Two	
  way	
  (Req/Resp)
No>fica>on
•  Service	
  →	
  Device
•  One	
  Way	
  (push)
•  1	
  →	
  Many
•  Grouping
Requirements	
  on	
  the	
  transport
•  Communica>on	
  from/to	
  devices
•  1	
  →	
  1
•  Device	
  Addressing
•  1	
  →	
  Many
•  Group	
  Addressing
•  Push
•  Request	
  →	
  Response
IoT	
  Networks
•  Unreliable
•  Handle	
  network	
  failures
•  Expensive	
  and	
  Constrained
•  Low	
  network	
  overhead
IoT	
  Devices
•  Limited	
  Resources
•  Low	
  processing	
  overhead
•  Large	
  scale	
  and	
  varied
•  Inter-­‐operable
•  BaCery	
  powered
•  Work	
  offline
IoT	
  Environment	
  Challenges
•  Interoperable
•  Connec>on	
  Failure	
  Handling
•  Offline
•  Low	
  network	
  overhead
•  Low	
  Processing	
  overhead
JMS
•  Addresses	
  majority	
  of	
  requirements
•  1-­‐1,	
  1-­‐Many,Grouping,Device	
  address
•  Queues,	
  Topics,	
  Message	
  Selectors
•  Push
•  Req/Resp
•  Reply	
  to	
  queues
•  Inter-­‐operable
•  JVM
•  Connec>on	
  failures
•  Durable	
  Messages	
  and	
  Various	
  ACK	
  Modes
JMS
•  Inter-­‐operability
•  Java	
  Run>me	
  only
•  Protocol	
  vs	
  API
•  Vendor	
  specific
•  Rich	
  feature	
  set
•  Complexity	
  on	
  the	
  client
•  Large	
  footprint
•  Vendor	
  protocols
•  High	
  network	
  overhead
MQTT
•  OASIS	
  standard	
  (v3.1.1)
•  Created	
  by	
  IBM
•  Light	
  weight
•  Low	
  network	
  message
•  Simple	
  protocol
•  Pub	
  /	
  Sub
•  Quality	
  of	
  Service
•  Connec>on	
  failures
•  Very	
  popular	
  in	
  IoT	
  scenarios
QoS	
  Levels
Overheads
•  Sending	
  /	
  Receiving	
  messages
•  QoS	
  0	
  =	
  8	
  bytes
•  QoS	
  1	
  =	
  min	
  12	
  bytes
•  QoS	
  2	
  =	
  min	
  20	
  bytes
•  Clients	
  have	
  small	
  code	
  foot	
  print
•  Simple	
  protocol
•  Burden	
  on	
  the	
  broker
Failures
Reconnects
Subscrip>ons
•  Topics
•  Hierarchical	
  addresses
•  e.g.	
  building/core/floor/2/office/1
•  Supports	
  wild	
  cards
•  building/core/floor/#
•  building/core/floor/+/toilet/+
•  QoS	
  per	
  topic
•  Outlives	
  a	
  connec>on
AMQP	
  1.0
•  Interna>onal	
  Standard	
  (ISO/IEC	
  ISO	
  19464)
•  Binary	
  Protocol
•  Rich	
  feature	
  set:
•  conversa>on	
  mul>plexing
•  advanced	
  flow	
  control
•  Type	
  system
•  QoS	
  Guarantees
•  Symmetrical	
  message	
  exchange
•  No	
  Broker	
  required
QoS	
  Guarantees
	
  
	
  
Quality	
  of	
  Service	
  guarantees
•  At	
  most	
  once
•  Fire	
  and	
  Forget
•  At	
  least	
  once
•  Retry
•  Exactly	
  once
•  3	
  Way	
  Ack
Type	
  System
•  Highly	
  Interoperable
•  Rich	
  Type	
  Set
•  Primi>ves
•  integer,	
  long
•  lists,	
  maps
•  Descrip>ve	
  types
•  Allow	
  applica>on	
  defined	
  types
•  Mappings	
  in	
  most	
  languages
Symmetrical	
  Protocol
•  Client	
  -­‐>	
  Broker
•  Broker	
  less	
  message
•  Client	
  -­‐>	
  Client
•  Client	
  -­‐>	
  Router
•  Interes>ng	
  features
•  Smart	
  rou>ng
Flow	
  control	
  and	
  Mul>	
  Channels
•  Limit	
  producer	
  and	
  consumer	
  flow
•  Each	
  channel	
  (link)	
  can	
  be	
  controlled	
  individually
•  Limit	
  telemetry	
  flow	
  for	
  command	
  messages
Protocols	
  Overview
•  Lots	
  of	
  IoT	
  protocol	
  choices	
  including	
  several	
  not	
  discussed	
  here
•  The	
  right	
  choice	
  depends	
  of	
  the	
  scenario
•  Scenarios	
  may	
  combine	
  protocols
CoAP
Target	
  usecase Long-­‐haul	
  (&	
  
local)
Long-­‐haul Local	
  (&	
  long-­‐
haul)
Long-­‐haul
Compactness High Medium Highest Verbose
Security SSL SSL DTLS SSL
Flow	
  control No Yes No No
Structured	
  
message
No Yes No Yes
Complexity Medium High Low Lowest
IoT Messaging Brokers
•  Apache	
  Ac>veMQ
•  Ac>veMQ	
  Artemis
Apache ActiveMQ
•  Apache	
  Ac>veMQ	
  is	
  a	
  high-­‐performance,	
  scalable	
  messaging	
  broker
•  Started	
  as	
  an	
  open	
  source	
  JMS	
  broker
•  Moved	
  to	
  Apache	
  So4ware	
  Founda>on	
  in	
  2006
•  Now	
  widely	
  used	
  open	
  source	
  messaging	
  system
Apache ActiveMQ
•  Mul>-­‐Protocol/Mul>-­‐Language	
  Support
•  Invented	
  Stomp	
  protocol	
  in	
  2006
•  Now	
  supports	
  AMQP	
  1.0,	
  MQTT	
  3.1.1,	
  HTTP,	
  STOMP	
  protocols
•  Broad	
  range	
  of	
  supported	
  client	
  libraries	
  for	
  all	
  kinds	
  of	
  device	
  
hardware
Apache ActiveMQ
•  Benefits
•  Feature	
  rich
•  BaCle-­‐tested	
  in	
  many	
  produc>on	
  environments
•  Good	
  security	
  support
•  Flexible
•  Configurable
•  Embeddable
Apache ActiveMQ
•  Limita>ons
•  Broker	
  core	
  gepng	
  old
•  WriCen	
  using	
  synchronous	
  thread-­‐locking	
  model
•  It	
  limits	
  ver>cal	
  scalability	
  of	
  the	
  broker
•  Number	
  of	
  threads	
  raise	
  with	
  number	
  of	
  connec>ons	
  and	
  des>na>ons
Ac>veMQ	
  Artemis
•  Mul>	
  Protocol	
  Broker
•  AMQP,	
  MQTT,	
  STOMP,	
  OpenWire,	
  Artemis	
  Core
•  JMS	
  (API)
•  Started	
  as	
  HornetQ	
  JBoss	
  project	
  in	
  2009
•  Embedded	
  WildFly	
  (JBoss	
  AS)	
  JMS	
  messaging	
  service
•  In	
  2014	
  donated	
  to	
  Apache	
  Ac>veMQ
•  Sub	
  project	
  Ac>veMQ	
  Artemis.
•  Latest	
  Release	
  1.1.0
Ac>veMQ	
  Artemis:	
  Core
•  Contains	
  Broker	
  Business	
  logic
•  Core	
  maintains	
  a	
  >ght	
  scope
•  Message	
  Rou>ng
•  Persistence
•  Protocol	
  u>lity	
  API
•  HA	
  and	
  Scaling
•  Highly	
  Performance
•  Protocols	
  are	
  plugged	
  in
Ac>veMQ	
  Artemis:	
  Architecture
Artemis
Core
Apache	
  Artemis	
  Summary
•  Great	
  performance	
  due	
  to
•  Reac>ve	
  Architecture
•  Efficient	
  Append	
  only	
  Journal
•  Mul>	
  -­‐	
  Protocol	
  Broker
•  AMQP,	
  MQTT,	
  STOMP,	
  CORE,	
  OpenWire
•  JMS
•  HA	
  and	
  Scalability	
  built	
  in
Apache	
  Artemis	
  Next	
  Steps
•  Take	
  features	
  from	
  Ac>veMQ
•  Enhance	
  OpenWire	
  support	
  for	
  Ac>veMQ	
  compa>bility
•  JDBC	
  Journal	
  implementa>on
•  More	
  protocols
•  CoAP
•  Your	
  protocol	
  here….
IoT Messaging Scaling
•  Ver>cal	
  and	
  Horizontal	
  scaling	
  of	
  Brokers
•  Qpid	
  Dispatch	
  Router
•  Scalable	
  Deployment
Broker – Vertical Scaling
•  Give	
  broker	
  enough	
  resources
•  Reduce	
  thread	
  usage
•  NIO	
  transport
•  Reac>ve	
  architecture
•  Improve	
  monitoring	
  under	
  stress
•  Advisory	
  messages
•  Selec>ve	
  Mbean	
  registra>on
Broker – Horizontal Scaling
•  One	
  broker	
  can	
  only	
  do	
  so	
  much
•  Horizontal	
  scaling	
  by	
  using	
  networks	
  of	
  brokers
•  Load	
  balance	
  connec>ons
•  Limita>ons
•  All	
  des>na>ons	
  on	
  all	
  brokers
•  Broker	
  network	
  is	
  the	
  boCleneck
Qpid Dispatch Router
•  Lightweight	
  AMQP	
  1.0	
  message	
  router	
  wriCen	
  in	
  C
•  hCp://qpid.apache.org/components/dispatch-­‐router/	
  
•  Provides	
  flexible	
  and	
  scalable	
  interconnect	
  between	
  AMQP	
  
endpoints
Qpid Dispatch Router
•  It	
  is	
  not	
  a	
  broker
•  It	
  never	
  owns	
  a	
  message	
  
•  It	
  propagates	
  AMQP	
  transfer,	
  seClement	
  and	
  disposi>on	
  frames	
  
between	
  endpoints
•  Message	
  based	
  or	
  link	
  based	
  rou>ng
Router/device1
/device2
Qpid Dispatch Router
•  It	
  can	
  be	
  deployed	
  in	
  mul>ple	
  router-­‐broker-­‐endpoint	
  topology
•  Redundant	
  paths
Router
Broker
Router
Qpid Dispatch Router
•  Cost-­‐based	
  route	
  computa>on
Router
Broker
Router
Qpid Dispatch Router
•  Automa>c	
  re-­‐rou>ng	
  on	
  failure
Router
Broker
Router
Qpid dispatch router
•  Benefits
•  BeCer	
  scaling	
  due	
  to	
  more	
  focused	
  tasks
•  Smart	
  rou>ng	
  can	
  be	
  used	
  to	
  par>>on	
  the	
  traffic
•  Ideal	
  candidate	
  for	
  gateway	
  into	
  the	
  system
Scalable deployments
•  Combina>on	
  of	
  brokers	
  and	
  routers	
  provides	
  powerful	
  tool	
  box
•  Brokers	
  should	
  focus	
  on	
  storing	
  messages
•  Routers	
  should	
  do	
  the	
  rest
•  Allows	
  for	
  horizontal	
  scaling	
  topologies	
  that	
  can	
  solve	
  IoT	
  
challenges
Scalable deployments
•  Smarter	
  scaling	
  techniques	
  using	
  routers
•  Connec>ons	
  concentra>on
•  Des>na>ons	
  concentra>on
•  Des>na>on	
  sharding
•  Smart	
  rou>ng
Connection Concentration
Router
Broker
•  Challenge:	
  	
  Reduce	
  the	
  number	
  of	
  connec>ons	
  on	
  the	
  broker
Destination Concentration
Router
Broker
/building1/room1
/building1
/building1/room2
/building1/room2
•  Challenge:	
  	
  Reduce	
  the	
  number	
  of	
  des>na>ons	
  on	
  the	
  broker
Destination Sharding
Router
Broker
Queue.A
Broker
Queue.B
•  Challenge:	
  	
  Distribute	
  des>na>ons	
  across	
  brokers
Deployments – Smart Routing
Router
Broker
QoS	
  0
•  Challenge:	
  	
  Decrease	
  the	
  load	
  of	
  messages	
  on	
  the	
  broker
Deployments – Smart Routing
Router
Broker
QoS	
  1
Summary
•  IoT	
  offers	
  a	
  new	
  set	
  of	
  problems	
  for	
  communica>on
•  Messaging	
  is	
  a	
  good	
  fit
•  We	
  need	
  new	
  tools	
  and	
  technologies	
  to	
  help
•  Protocols	
  such	
  as	
  AMQP	
  and	
  MQTT	
  help	
  address	
  some	
  of	
  these	
  
problems
•  Ac>veMQ	
  and	
  Artemis	
  are	
  evolving	
  to	
  meet	
  IoT	
  demands
•  New	
  tools	
  such	
  as	
  Apache	
  Dispatch	
  Router	
  allow	
  us	
  to	
  do	
  some	
  
novel	
  things	
  to	
  help	
  scale	
  to	
  really	
  high	
  numbers
Resources
•  Slides
•  hCp://hCp://www.slideshare.net/dejanb/messaging-­‐for-­‐iot	
  	
  
•  MQTT
•  Spec:	
  hCp://www.mqC.org	
  
•  Libraries	
  and	
  tutorials:	
  hCp://www.eclipse.org/paho/	
  
•  AMQP
•  Spec:	
  hCp://www.amqp.org/	
  
•  Libraries	
  and	
  tutorials:	
  hCp://qpid.apache.org/	
  
•  Ac>veMQ	
  and	
  Artemis
•  hCp://ac>vemq.apache.org/	
  
•  Dispatch	
  Router
•  hCp://qpid.apache.org/components/dispatch-­‐router/	
  

Mais conteúdo relacionado

Mais procurados

Mais procurados (20)

gRPC Design and Implementation
gRPC Design and ImplementationgRPC Design and Implementation
gRPC Design and Implementation
 
The Full Stack Web Development
The Full Stack Web DevelopmentThe Full Stack Web Development
The Full Stack Web Development
 
Kafka PPT.pptx
Kafka PPT.pptxKafka PPT.pptx
Kafka PPT.pptx
 
jstl ( jsp standard tag library )
jstl ( jsp standard tag library )jstl ( jsp standard tag library )
jstl ( jsp standard tag library )
 
DDD Tactical Design with Clean Architecture - Ivan Paulovich
DDD Tactical Design with Clean Architecture - Ivan PaulovichDDD Tactical Design with Clean Architecture - Ivan Paulovich
DDD Tactical Design with Clean Architecture - Ivan Paulovich
 
Kafka as Message Broker
Kafka as Message BrokerKafka as Message Broker
Kafka as Message Broker
 
Understanding react hooks
Understanding react hooksUnderstanding react hooks
Understanding react hooks
 
Introduction of java
Introduction  of javaIntroduction  of java
Introduction of java
 
React JS - A quick introduction tutorial
React JS - A quick introduction tutorialReact JS - A quick introduction tutorial
React JS - A quick introduction tutorial
 
MQTT IOT Protocol Introduction
MQTT IOT Protocol IntroductionMQTT IOT Protocol Introduction
MQTT IOT Protocol Introduction
 
Overview of Message Queues
Overview of Message QueuesOverview of Message Queues
Overview of Message Queues
 
Learn react-js
Learn react-jsLearn react-js
Learn react-js
 
The RabbitMQ Message Broker
The RabbitMQ Message BrokerThe RabbitMQ Message Broker
The RabbitMQ Message Broker
 
Intro to Java
Intro to JavaIntro to Java
Intro to Java
 
The Clean Architecture
The Clean ArchitectureThe Clean Architecture
The Clean Architecture
 
Message Broker System and RabbitMQ
Message Broker System and RabbitMQMessage Broker System and RabbitMQ
Message Broker System and RabbitMQ
 
Introduction to Swagger
Introduction to SwaggerIntroduction to Swagger
Introduction to Swagger
 
React & Redux JS
React & Redux JS React & Redux JS
React & Redux JS
 
Introduction to APIs (Application Programming Interface)
Introduction to APIs (Application Programming Interface) Introduction to APIs (Application Programming Interface)
Introduction to APIs (Application Programming Interface)
 
Java Basics
Java BasicsJava Basics
Java Basics
 

Destaque

Hacking Web 2.0 - Defending Ajax and Web Services [HITB 2007 Dubai]
Hacking Web 2.0 - Defending Ajax and Web Services [HITB 2007 Dubai]Hacking Web 2.0 - Defending Ajax and Web Services [HITB 2007 Dubai]
Hacking Web 2.0 - Defending Ajax and Web Services [HITB 2007 Dubai]
Shreeraj Shah
 
Responsive Web Design - Introduction & Workflow Overview
Responsive Web Design - Introduction & Workflow OverviewResponsive Web Design - Introduction & Workflow Overview
Responsive Web Design - Introduction & Workflow Overview
Aidan Foster
 
M2M Protocol Interoperability using IoT Toolkit
M2M Protocol Interoperability using IoT ToolkitM2M Protocol Interoperability using IoT Toolkit
M2M Protocol Interoperability using IoT Toolkit
Michael Koster
 
Iot Toolkit and the Smart Object API - Architecture for Interoperability
Iot Toolkit and the Smart Object API - Architecture for InteroperabilityIot Toolkit and the Smart Object API - Architecture for Interoperability
Iot Toolkit and the Smart Object API - Architecture for Interoperability
Michael Koster
 

Destaque (20)

Creating the Internet of Your Things
Creating the Internet of Your ThingsCreating the Internet of Your Things
Creating the Internet of Your Things
 
Better Living Through Messaging - Leveraging the HornetQ Message Broker at Sh...
Better Living Through Messaging - Leveraging the HornetQ Message Broker at Sh...Better Living Through Messaging - Leveraging the HornetQ Message Broker at Sh...
Better Living Through Messaging - Leveraging the HornetQ Message Broker at Sh...
 
Messaging for IoT
Messaging for IoTMessaging for IoT
Messaging for IoT
 
MongoDB IoT City Tour EINDHOVEN: Sharding in MongoDB
MongoDB IoT City Tour EINDHOVEN: Sharding in MongoDBMongoDB IoT City Tour EINDHOVEN: Sharding in MongoDB
MongoDB IoT City Tour EINDHOVEN: Sharding in MongoDB
 
World of IoT by Microsoft Co #iotconfua
World of IoT by Microsoft Co #iotconfuaWorld of IoT by Microsoft Co #iotconfua
World of IoT by Microsoft Co #iotconfua
 
Internet of Things: Get the whole picture
Internet of Things: Get the whole pictureInternet of Things: Get the whole picture
Internet of Things: Get the whole picture
 
Hacking Web 2.0 - Defending Ajax and Web Services [HITB 2007 Dubai]
Hacking Web 2.0 - Defending Ajax and Web Services [HITB 2007 Dubai]Hacking Web 2.0 - Defending Ajax and Web Services [HITB 2007 Dubai]
Hacking Web 2.0 - Defending Ajax and Web Services [HITB 2007 Dubai]
 
RESTful services and OAUTH protocol in IoT
RESTful services and OAUTH protocol in IoTRESTful services and OAUTH protocol in IoT
RESTful services and OAUTH protocol in IoT
 
Protocols for IoT
Protocols for IoTProtocols for IoT
Protocols for IoT
 
Responsive Web Design - Introduction & Workflow Overview
Responsive Web Design - Introduction & Workflow OverviewResponsive Web Design - Introduction & Workflow Overview
Responsive Web Design - Introduction & Workflow Overview
 
M2M Protocol Interoperability using IoT Toolkit
M2M Protocol Interoperability using IoT ToolkitM2M Protocol Interoperability using IoT Toolkit
M2M Protocol Interoperability using IoT Toolkit
 
Iot Toolkit and the Smart Object API - Architecture for Interoperability
Iot Toolkit and the Smart Object API - Architecture for InteroperabilityIot Toolkit and the Smart Object API - Architecture for Interoperability
Iot Toolkit and the Smart Object API - Architecture for Interoperability
 
Scaling Internet of Things
Scaling Internet of ThingsScaling Internet of Things
Scaling Internet of Things
 
Responsive webdesign
Responsive webdesignResponsive webdesign
Responsive webdesign
 
Ajax ppt - 32 slides
Ajax ppt - 32 slidesAjax ppt - 32 slides
Ajax ppt - 32 slides
 
Introduction to Responsive Web Design
Introduction to Responsive Web DesignIntroduction to Responsive Web Design
Introduction to Responsive Web Design
 
Internet of Things (IoT) protocols COAP MQTT OSCON2014
Internet of Things (IoT) protocols  COAP MQTT OSCON2014Internet of Things (IoT) protocols  COAP MQTT OSCON2014
Internet of Things (IoT) protocols COAP MQTT OSCON2014
 
How to make Ajax work for you
How to make Ajax work for youHow to make Ajax work for you
How to make Ajax work for you
 
What's the Right Messaging Standard for the IoT?
What's the Right Messaging  Standard for the IoT?What's the Right Messaging  Standard for the IoT?
What's the Right Messaging Standard for the IoT?
 
THE INTERNET OF THINGS
THE INTERNET OF THINGSTHE INTERNET OF THINGS
THE INTERNET OF THINGS
 

Semelhante a Messaging for IoT

Hacking apache cloud stack
Hacking apache cloud stackHacking apache cloud stack
Hacking apache cloud stack
Nitin Mehta
 

Semelhante a Messaging for IoT (20)

Rami Sayar - Node microservices with Docker
Rami Sayar - Node microservices with DockerRami Sayar - Node microservices with Docker
Rami Sayar - Node microservices with Docker
 
Hacking apache cloud stack
Hacking apache cloud stackHacking apache cloud stack
Hacking apache cloud stack
 
CloudStack Overview
CloudStack OverviewCloudStack Overview
CloudStack Overview
 
Messaging For the Cloud and Microservices
Messaging For the Cloud and MicroservicesMessaging For the Cloud and Microservices
Messaging For the Cloud and Microservices
 
Microservices deck
Microservices deckMicroservices deck
Microservices deck
 
AWS re:Invent 2016: Advanced Tips for Amazon EC2 Networking and High Availabi...
AWS re:Invent 2016: Advanced Tips for Amazon EC2 Networking and High Availabi...AWS re:Invent 2016: Advanced Tips for Amazon EC2 Networking and High Availabi...
AWS re:Invent 2016: Advanced Tips for Amazon EC2 Networking and High Availabi...
 
IBM MQ vs Apache ActiveMQ
IBM MQ vs Apache ActiveMQIBM MQ vs Apache ActiveMQ
IBM MQ vs Apache ActiveMQ
 
UNIT2_PPT.ppt
UNIT2_PPT.pptUNIT2_PPT.ppt
UNIT2_PPT.ppt
 
pps Matters
pps Matterspps Matters
pps Matters
 
Picking a message queue
Picking a  message queuePicking a  message queue
Picking a message queue
 
CoAP Talk
CoAP TalkCoAP Talk
CoAP Talk
 
The Future of SDN in CloudStack by Chiradeep Vittal
The Future of SDN in CloudStack by Chiradeep VittalThe Future of SDN in CloudStack by Chiradeep Vittal
The Future of SDN in CloudStack by Chiradeep Vittal
 
Application layer Security in IoT: A Survey
Application layer Security in IoT: A SurveyApplication layer Security in IoT: A Survey
Application layer Security in IoT: A Survey
 
Fabric8 mq
Fabric8 mqFabric8 mq
Fabric8 mq
 
ITB2019 Multi-language / multi-OS communication using RabbitMQ - Wil de Bruin
ITB2019 Multi-language / multi-OS communication using RabbitMQ - Wil de BruinITB2019 Multi-language / multi-OS communication using RabbitMQ - Wil de Bruin
ITB2019 Multi-language / multi-OS communication using RabbitMQ - Wil de Bruin
 
Multi-language/multi-OS communication using RabbitMQ
Multi-language/multi-OS communication using RabbitMQMulti-language/multi-OS communication using RabbitMQ
Multi-language/multi-OS communication using RabbitMQ
 
Beyond REST and RPC: Asynchronous Eventing and Messaging Patterns
Beyond REST and RPC: Asynchronous Eventing and Messaging PatternsBeyond REST and RPC: Asynchronous Eventing and Messaging Patterns
Beyond REST and RPC: Asynchronous Eventing and Messaging Patterns
 
.NET Conf 2022 - Networking in .NET 7
.NET Conf 2022 - Networking in .NET 7.NET Conf 2022 - Networking in .NET 7
.NET Conf 2022 - Networking in .NET 7
 
IBM Messaging in the Cloud
IBM Messaging in the CloudIBM Messaging in the Cloud
IBM Messaging in the Cloud
 
OpenStack and Windows
OpenStack and WindowsOpenStack and Windows
OpenStack and Windows
 

Mais de dejanb

Scaling out eclipse hono
Scaling out eclipse honoScaling out eclipse hono
Scaling out eclipse hono
dejanb
 
Messaging for Web and Mobile with Apache ActiveMQ
Messaging for Web and Mobile with Apache ActiveMQMessaging for Web and Mobile with Apache ActiveMQ
Messaging for Web and Mobile with Apache ActiveMQ
dejanb
 
Apache ActiveMQ - Enterprise messaging in action
Apache ActiveMQ - Enterprise messaging in actionApache ActiveMQ - Enterprise messaging in action
Apache ActiveMQ - Enterprise messaging in action
dejanb
 

Mais de dejanb (9)

How is this sausage made
How is this sausage madeHow is this sausage made
How is this sausage made
 
Messaging for the cloud
Messaging for the cloudMessaging for the cloud
Messaging for the cloud
 
Scaling out eclipse hono
Scaling out eclipse honoScaling out eclipse hono
Scaling out eclipse hono
 
Building Open Source IoT Cloud
Building Open Source IoT CloudBuilding Open Source IoT Cloud
Building Open Source IoT Cloud
 
Messaging for Web and Mobile with Apache ActiveMQ
Messaging for Web and Mobile with Apache ActiveMQMessaging for Web and Mobile with Apache ActiveMQ
Messaging for Web and Mobile with Apache ActiveMQ
 
Introduction to ActiveMQ Apollo
Introduction to ActiveMQ ApolloIntroduction to ActiveMQ Apollo
Introduction to ActiveMQ Apollo
 
Deploying FuseMQ with Fuse Fabric
Deploying FuseMQ with Fuse FabricDeploying FuseMQ with Fuse Fabric
Deploying FuseMQ with Fuse Fabric
 
Advanced messaging with Apache ActiveMQ
Advanced messaging with Apache ActiveMQAdvanced messaging with Apache ActiveMQ
Advanced messaging with Apache ActiveMQ
 
Apache ActiveMQ - Enterprise messaging in action
Apache ActiveMQ - Enterprise messaging in actionApache ActiveMQ - Enterprise messaging in action
Apache ActiveMQ - Enterprise messaging in action
 

Último

%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
masabamasaba
 
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
chiefasafspells
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
Health
 
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
VictoriaMetrics
 
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
Medical / Health Care (+971588192166) Mifepristone and Misoprostol tablets 200mg
 

Último (20)

%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
 
%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand
 
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
 
WSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go PlatformlessWSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go Platformless
 
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdfPayment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
 
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
 
%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg
%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg
%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg
 
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
 
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
 
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
 
What Goes Wrong with Language Definitions and How to Improve the Situation
What Goes Wrong with Language Definitions and How to Improve the SituationWhat Goes Wrong with Language Definitions and How to Improve the Situation
What Goes Wrong with Language Definitions and How to Improve the Situation
 
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
 
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
 
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
 
%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in soweto%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in soweto
 
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
 
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
 

Messaging for IoT

  • 1. Messaging for IoT October 2015 Martyn  Taylor,  Dejan  Bosanac
  • 2. Presenters Martyn  Taylor •  Senior  So4ware  Engineer  at  Red  Hat •  Apache  Ac>veMQ  CommiCer •  Mainly  working  on  Apache  Artemis •  Keen  interest  in  IoT Bosanac  Dejan •  Senior  So4ware  Engineer  at  Red  Hat •  Apache  Ac>veMQ  commiCer  and  PMC  member •  Co-­‐author  of  Ac>veMQ  in  Ac>on
  • 3. Agenda •  IoT  messaging  basics •  Tasks  and  challenges •  PaCerns  and  protocols •  IoT  messaging  brokers •  Apache  Ac>veMQ •  Ac>veMQ  Artemis •  IoT  messaging  scaling •  Ver>cal  and  horizontal •  Qpid  Dispatch  Router •  Scalable  deployments
  • 4. IoT Messaging Basics •  IoT  Topology •  Messaging  tasks •  Messaging  challenges
  • 5. IoT Topology  Big  Data Messaging   Infrastructure Analy>cs Enterprise   Middleware Devices
  • 6. IoT Messaging Infrastructure Task •  Provides  connec>vity  between  devices  and  backend  systems Challenges •  Interoperability •  Deployment  environment •  High  Availability •  Scalability
  • 7. IoT connectivity patterns •  IoT  Communica>on  PaCerns •  Telemetry,  Command  &  Control,  Enquiry,  No>fica>ons •  Protocols  and  Technologies •  JMS •  MQTT •  AMQP
  • 8. Telemetry •  Device  →  Service •  One  way  (push) •  Failures  tolerable •  Lots  of  small  data
  • 9. Command  and  Control •  Service  →  Device •  Two  way  (Req/Resp) •  Less,  more  important  data •  1  →  1  and  1  →  many   •  grouping  
  • 10. Enquiry •  Device  →  Service •  1  →  1 •  Two  way  (Req/Resp)
  • 11. No>fica>on •  Service  →  Device •  One  Way  (push) •  1  →  Many •  Grouping
  • 12. Requirements  on  the  transport •  Communica>on  from/to  devices •  1  →  1 •  Device  Addressing •  1  →  Many •  Group  Addressing •  Push •  Request  →  Response
  • 13. IoT  Networks •  Unreliable •  Handle  network  failures •  Expensive  and  Constrained •  Low  network  overhead
  • 14. IoT  Devices •  Limited  Resources •  Low  processing  overhead •  Large  scale  and  varied •  Inter-­‐operable •  BaCery  powered •  Work  offline
  • 15. IoT  Environment  Challenges •  Interoperable •  Connec>on  Failure  Handling •  Offline •  Low  network  overhead •  Low  Processing  overhead
  • 16. JMS •  Addresses  majority  of  requirements •  1-­‐1,  1-­‐Many,Grouping,Device  address •  Queues,  Topics,  Message  Selectors •  Push •  Req/Resp •  Reply  to  queues •  Inter-­‐operable •  JVM •  Connec>on  failures •  Durable  Messages  and  Various  ACK  Modes
  • 17. JMS •  Inter-­‐operability •  Java  Run>me  only •  Protocol  vs  API •  Vendor  specific •  Rich  feature  set •  Complexity  on  the  client •  Large  footprint •  Vendor  protocols •  High  network  overhead
  • 18. MQTT •  OASIS  standard  (v3.1.1) •  Created  by  IBM •  Light  weight •  Low  network  message •  Simple  protocol •  Pub  /  Sub •  Quality  of  Service •  Connec>on  failures •  Very  popular  in  IoT  scenarios
  • 20. Overheads •  Sending  /  Receiving  messages •  QoS  0  =  8  bytes •  QoS  1  =  min  12  bytes •  QoS  2  =  min  20  bytes •  Clients  have  small  code  foot  print •  Simple  protocol •  Burden  on  the  broker
  • 23. Subscrip>ons •  Topics •  Hierarchical  addresses •  e.g.  building/core/floor/2/office/1 •  Supports  wild  cards •  building/core/floor/# •  building/core/floor/+/toilet/+ •  QoS  per  topic •  Outlives  a  connec>on
  • 24. AMQP  1.0 •  Interna>onal  Standard  (ISO/IEC  ISO  19464) •  Binary  Protocol •  Rich  feature  set: •  conversa>on  mul>plexing •  advanced  flow  control •  Type  system •  QoS  Guarantees •  Symmetrical  message  exchange •  No  Broker  required
  • 25. QoS  Guarantees     Quality  of  Service  guarantees •  At  most  once •  Fire  and  Forget •  At  least  once •  Retry •  Exactly  once •  3  Way  Ack
  • 26. Type  System •  Highly  Interoperable •  Rich  Type  Set •  Primi>ves •  integer,  long •  lists,  maps •  Descrip>ve  types •  Allow  applica>on  defined  types •  Mappings  in  most  languages
  • 27. Symmetrical  Protocol •  Client  -­‐>  Broker •  Broker  less  message •  Client  -­‐>  Client •  Client  -­‐>  Router •  Interes>ng  features •  Smart  rou>ng
  • 28. Flow  control  and  Mul>  Channels •  Limit  producer  and  consumer  flow •  Each  channel  (link)  can  be  controlled  individually •  Limit  telemetry  flow  for  command  messages
  • 29. Protocols  Overview •  Lots  of  IoT  protocol  choices  including  several  not  discussed  here •  The  right  choice  depends  of  the  scenario •  Scenarios  may  combine  protocols CoAP Target  usecase Long-­‐haul  (&   local) Long-­‐haul Local  (&  long-­‐ haul) Long-­‐haul Compactness High Medium Highest Verbose Security SSL SSL DTLS SSL Flow  control No Yes No No Structured   message No Yes No Yes Complexity Medium High Low Lowest
  • 30. IoT Messaging Brokers •  Apache  Ac>veMQ •  Ac>veMQ  Artemis
  • 31. Apache ActiveMQ •  Apache  Ac>veMQ  is  a  high-­‐performance,  scalable  messaging  broker •  Started  as  an  open  source  JMS  broker •  Moved  to  Apache  So4ware  Founda>on  in  2006 •  Now  widely  used  open  source  messaging  system
  • 32. Apache ActiveMQ •  Mul>-­‐Protocol/Mul>-­‐Language  Support •  Invented  Stomp  protocol  in  2006 •  Now  supports  AMQP  1.0,  MQTT  3.1.1,  HTTP,  STOMP  protocols •  Broad  range  of  supported  client  libraries  for  all  kinds  of  device   hardware
  • 33. Apache ActiveMQ •  Benefits •  Feature  rich •  BaCle-­‐tested  in  many  produc>on  environments •  Good  security  support •  Flexible •  Configurable •  Embeddable
  • 34. Apache ActiveMQ •  Limita>ons •  Broker  core  gepng  old •  WriCen  using  synchronous  thread-­‐locking  model •  It  limits  ver>cal  scalability  of  the  broker •  Number  of  threads  raise  with  number  of  connec>ons  and  des>na>ons
  • 35. Ac>veMQ  Artemis •  Mul>  Protocol  Broker •  AMQP,  MQTT,  STOMP,  OpenWire,  Artemis  Core •  JMS  (API) •  Started  as  HornetQ  JBoss  project  in  2009 •  Embedded  WildFly  (JBoss  AS)  JMS  messaging  service •  In  2014  donated  to  Apache  Ac>veMQ •  Sub  project  Ac>veMQ  Artemis. •  Latest  Release  1.1.0
  • 36. Ac>veMQ  Artemis:  Core •  Contains  Broker  Business  logic •  Core  maintains  a  >ght  scope •  Message  Rou>ng •  Persistence •  Protocol  u>lity  API •  HA  and  Scaling •  Highly  Performance •  Protocols  are  plugged  in
  • 38. Apache  Artemis  Summary •  Great  performance  due  to •  Reac>ve  Architecture •  Efficient  Append  only  Journal •  Mul>  -­‐  Protocol  Broker •  AMQP,  MQTT,  STOMP,  CORE,  OpenWire •  JMS •  HA  and  Scalability  built  in
  • 39. Apache  Artemis  Next  Steps •  Take  features  from  Ac>veMQ •  Enhance  OpenWire  support  for  Ac>veMQ  compa>bility •  JDBC  Journal  implementa>on •  More  protocols •  CoAP •  Your  protocol  here….
  • 40. IoT Messaging Scaling •  Ver>cal  and  Horizontal  scaling  of  Brokers •  Qpid  Dispatch  Router •  Scalable  Deployment
  • 41. Broker – Vertical Scaling •  Give  broker  enough  resources •  Reduce  thread  usage •  NIO  transport •  Reac>ve  architecture •  Improve  monitoring  under  stress •  Advisory  messages •  Selec>ve  Mbean  registra>on
  • 42. Broker – Horizontal Scaling •  One  broker  can  only  do  so  much •  Horizontal  scaling  by  using  networks  of  brokers •  Load  balance  connec>ons •  Limita>ons •  All  des>na>ons  on  all  brokers •  Broker  network  is  the  boCleneck
  • 43. Qpid Dispatch Router •  Lightweight  AMQP  1.0  message  router  wriCen  in  C •  hCp://qpid.apache.org/components/dispatch-­‐router/   •  Provides  flexible  and  scalable  interconnect  between  AMQP   endpoints
  • 44. Qpid Dispatch Router •  It  is  not  a  broker •  It  never  owns  a  message   •  It  propagates  AMQP  transfer,  seClement  and  disposi>on  frames   between  endpoints •  Message  based  or  link  based  rou>ng Router/device1 /device2
  • 45. Qpid Dispatch Router •  It  can  be  deployed  in  mul>ple  router-­‐broker-­‐endpoint  topology •  Redundant  paths Router Broker Router
  • 46. Qpid Dispatch Router •  Cost-­‐based  route  computa>on Router Broker Router
  • 47. Qpid Dispatch Router •  Automa>c  re-­‐rou>ng  on  failure Router Broker Router
  • 48. Qpid dispatch router •  Benefits •  BeCer  scaling  due  to  more  focused  tasks •  Smart  rou>ng  can  be  used  to  par>>on  the  traffic •  Ideal  candidate  for  gateway  into  the  system
  • 49. Scalable deployments •  Combina>on  of  brokers  and  routers  provides  powerful  tool  box •  Brokers  should  focus  on  storing  messages •  Routers  should  do  the  rest •  Allows  for  horizontal  scaling  topologies  that  can  solve  IoT   challenges
  • 50. Scalable deployments •  Smarter  scaling  techniques  using  routers •  Connec>ons  concentra>on •  Des>na>ons  concentra>on •  Des>na>on  sharding •  Smart  rou>ng
  • 51. Connection Concentration Router Broker •  Challenge:    Reduce  the  number  of  connec>ons  on  the  broker
  • 53. Destination Sharding Router Broker Queue.A Broker Queue.B •  Challenge:    Distribute  des>na>ons  across  brokers
  • 54. Deployments – Smart Routing Router Broker QoS  0 •  Challenge:    Decrease  the  load  of  messages  on  the  broker
  • 55. Deployments – Smart Routing Router Broker QoS  1
  • 56. Summary •  IoT  offers  a  new  set  of  problems  for  communica>on •  Messaging  is  a  good  fit •  We  need  new  tools  and  technologies  to  help •  Protocols  such  as  AMQP  and  MQTT  help  address  some  of  these   problems •  Ac>veMQ  and  Artemis  are  evolving  to  meet  IoT  demands •  New  tools  such  as  Apache  Dispatch  Router  allow  us  to  do  some   novel  things  to  help  scale  to  really  high  numbers
  • 57. Resources •  Slides •  hCp://hCp://www.slideshare.net/dejanb/messaging-­‐for-­‐iot     •  MQTT •  Spec:  hCp://www.mqC.org   •  Libraries  and  tutorials:  hCp://www.eclipse.org/paho/   •  AMQP •  Spec:  hCp://www.amqp.org/   •  Libraries  and  tutorials:  hCp://qpid.apache.org/   •  Ac>veMQ  and  Artemis •  hCp://ac>vemq.apache.org/   •  Dispatch  Router •  hCp://qpid.apache.org/components/dispatch-­‐router/