SlideShare a Scribd company logo
Palestrante: Alexandre Brandão Lustosa
IoT Service Bus - High availability with
Internet of Things (IoT)/ API Rest/ Message Broker
http://www.compsulmt.com.br/
IoT Service Bus - High availability with
Internet of Things (IoT)/ API Rest/ Message Broker
abrandao@stone.com.br
"A única maneira de fazer um excelente trabalho é amar o que você faz." (Steve Jobs)
Bacana!! :)
Clientes MundiPagg - 40% MarketShare
LOJAS DEPARTAMENTO MODA ENTRETENIMENTO ALIMENTOS
Temos mais de 1500 lojas em nosso portfólio, algumas delas são as maiores marcas brasileiras e internacionais.
ÓLEO TV
Vamos dominar o mundo!!
Quer jogar?
Relaxa!! D boa, você vai achar a solução!
{ Seja criativo!! :) =)
Quer um café?
IoT Service Bus - High availability with Internet of Things (IoT)/ API Rest/ Message Broker
C# .Net
jQuery
PHP
Magento
Angular.js
Node.js
Gulp
Java
Ruby
SQL Server
MongoDB
Kibana
Log Stash
Redis
RabbitMQ
Cassandra
Scala Akka.Net
Python
TFS
Git
Apache
Jira
SentryMonitis
Python
New Relic
Azure
Nosso Stack
MVC
REST
Web APIGo
Vamos dominar o
mundo!!!!
Faça parte do nosso time!
querotrabalhar@stone.com.br
abrandao@stone.com.br
"A única maneira de fazer um excelente trabalho é amar o que você faz." (Steve
Jobs)
Faça parte do nosso time!
abrandao@mundipagg.com
{ TEMOS VAGAS }
"A única maneira de fazer um excelente trabalho é amar o que você faz." (Steve Jobs)
Alexandre
Brandão
{ Microsoft C# .Net Solution Developer,
C++ Linux Developer, C/C++ Embedded Programmer }
<contatos>
<twitter>
@abrandaolustosa
</twitter>
<skype>
abrandao@stone.com.br
</skype>
</contatos>
Gerente de TI
Arquiteto de Sistemas
Analista Desenvolvedor Sênior
curl -data “experiencia=16_anos&motivacao=inovacao%20e%20pesquisa” http://www.stone.com.br
Internet Of Things
{ IoT }
“Definição” : “É uma revolução tecnológica a
fim de conectar dispositivos eletrônicos utilizados
no dia-a-dia
(como aparelhos eletrodomésticos, eletroportáteis,
máquinas industriais, meios de transporte, etc) à
Internet,
cujo desenvolvimento depende da inovação técnica
dinâmica em campos tão importantes como os
sensores wireless, a inteligência artificial e a
nanotecnologia.”
{
}
IoT Service Bus - High availability with Internet of Things (IoT)/ API Rest/ Message Broker
IoT Service Bus - High availability with Internet of Things (IoT)/ API Rest/ Message Broker
https://www.youtube.com/watch?v=Q3ur8wzzhBU
Intel IoT
What Does The Internet of Things Mean?
IoT Service Bus - High availability with Internet of Things (IoT)/ API Rest/ Message Broker
IoT Service Bus - High availability with Internet of Things (IoT)/ API Rest/ Message Broker
IoT Service Bus - High availability with Internet of Things (IoT)/ API Rest/ Message Broker
IoT
Medicina
Militar
At Home
Produção
FabrilDesenvolvimento
Transporte
Mobilidade
Pesquisa
Educação
Acessibilidade
Agro
IoT
Share Data Integration Systems
Cloud Service
Real Time
FabrilBI
Artificial Intelligence
Dataware House
Pesquisa
Media
Big Data
Sensores
• Temperatura
• Luminosidade
• Humidade
• Reconhecimento de voz
• Sensor de proximidade
• Radar
• Ultrasom
• Infrared
• Relay
Sensores Industriais
{ Microsoft Kinect }
{
Microsoft
Kinect
}
Microsoft IoT RoadShow
Redmond – Washington/USA - Out/2016
Microsoft IoT RoadShow
Redmond – Washington/USA - Out/2016
Microsoft IoT RoadShow
Redmond – Washington/USA - Out/2016
Microsoft IoT RoadShow
Redmond – Washington/USA - Out/2016
Microsoft IoT RoadShow
Redmond – Washington/USA - Out/2016
Intel Edison – Arduino Platform
• 1 GB DDR3 RAM, 4 GB eMMC flash
• 40 multiplexed GPIO interfaces
• Bluetooth* 4.0, Wi-Fi*
• Yocto Project*, Brillo*
• Arduino* compatible
• Open-source software development environment
• C/C++, Python*, Node.js*, HTML5, JavaScript*
Intel Edison – Arduino Platform
Intel Edison – Arduino Platform
Intel Edison Groove Kit
Raspberry Pi 3
IoT Service Bus - High availability with Internet of Things (IoT)/ API Rest/ Message Broker
Beaglebone
Beaglebone
Arduino Kit - Ebay
Fonte: ebay.com – 16/nov/2016
Arduino Kit - Ebay
Fonte: ebay.com – 16/nov/2016
Arduino Kit - Ebay
Fonte: ebay.com – 16/nov/2016
Intel XDK IDE
https://software.intel.com/pt-br/intel-xdk
Microchip PIC18 / PIC24 / PIC32 / DsPIC
Node.js is a JavaScript Runtime Built...
IoT - High Availability
IoT API Rest
Service Bus
Message Broker
Persistence
Layer
Databases
Devices
Devices
Devices
Devices
Devices
Sensors
Sensors
Sensors
Sensors
Sensors
Cloud Service / On Premise Cluster Service
IoT with Slack API
IoT with Slack API
https://github.com/alexandrebl
Método principal
//Main function
function main(){
//Setup configurations
config();
//Set loop process each 4 seconds
setInterval(function () {
//Set led process indicator on
ledProcessOn();
//Read Sensor
var data = readTempSensor();
//Post data on Slack
postOnSlack(data);
//Set led process indicator on
ledProcessOff();
},
4000);}
Define o pino como
saída para o LED
//Setup configuration
function config(){
//Set pin direction
ledProcess.dir(mraa.DIR_OUT);
}
//Set led process indicator on
function ledProcessOn(){
//Write signal to up
ledProcess.write(1);
}
//Set led process indicator off
function ledProcessOff(){
//Write signal to down
ledProcess.write(0);
}
Envia o sinal alto
Acende o LED
Envia o sinal baixo
Apaga o LED
function postOnSlack(data){
//Set options and message
var options = {
//Webhook uri, replace by your uri Slack web hook integration
uri: https://hooks.slack.com/services/T0FES4821jluMzasy',
method: 'POST', //Request type
json: data //Data
};
//Do post request
request(options, function (error, response, body) {
//Verify response
if (!error && response.statusCode == 200)
console.log("Success");
}else
console.log(error);
}
});
} Exemplo de integração com API Rest
Repositório de códigos
https://github.com/alexandrebl
Message Broker
“Definição” : “An enterprise service bus
(ESB) is a software architecture model used for
designing and implementing communication
between mutually interacting software applications
in a service-oriented architecture (SOA)”
{
}
Integração
de
Sistemas
Recursos
<wrong>
Não utilize workflows
centralizados e dependentes
do banco de dados
</wrong>
“Repense sua
arquitetura”
Pipeline – Service Bus
{ Soluções – Service Bus }
- RabbitMQ
- CloudAMQP (RabbitMQ)
- Azure ServiceBus
- IBM MQ Series
- Amazon SQS
- SQL Server Service Broker
- Microsoft Message Queue
- OpenShift
- Kafka
https://www.rabbitmq.com/
• Robust messaging for applications
• Easy to use
• Runs on all major operating systems
• Supports a huge number of developer platforms
• Open source and commercially supported
• Multiplatform for Windows, Linux and Mac OS
• Erlang
RabbitMQ - SDKs
C# .Net
PHP
Java
Ruby
ErlangPerl
Javascript
Go
Python
Scala
Haskell
The Advanced Message Queuing Protocol
(AMQP) is an open standard application layer
protocol for message-oriented middleware. The
defining features of AMQP are message
orientation, queuing, routing (including point-
to-point and publish-and-subscribe), reliability
and security.
AMQP
To become the standard protocol for interoperability
between all messaging middleware
AMQP
Plugins
Management
• Gerenciamento
• Configuração
• Monitoramento
STOMP/ MQTT
• Integrações utilizando outros protocolos de comunicação
Federation / Shovel
• Configuração de cluster em redes não confiáveis
Características do RabbitMQ
• Queue
• Consumer
• Public/Subscriber
• Exchange
• Channel
• Persitent
• Durável / Transiente
• Atomicidade
• Round-Robin
• Acknolodge
• Ack/Nack
• TTL (Time to Live)
Tipos de fila do RabbitMQ
• Basic
• Work
• Topic
• Route
• Fanout
• RPC
Basic - RabbitMQ
P – Producer
C – Consumer
Queue in Red
The simplest thing that does something
Work - RabbitMQ
Distributing tasks among workers
Automatic - Round-Robin
Publish/Subscribe (FanOut)- RabbitMQ
Sending messages to many consumers at once
Exchange Types: direct, topic, headers and fanout
channel.exchange_declare(exchange='direct_logs', type=‘fanout')
Routing - RabbitMQ
Receiving messages selectively
channel.exchange_declare(exchange='direct_logs', type='direct')
channel.basic_publish(exchange='direct_logs', routing_key=severity,
body=message)
Topics - RabbitMQ
Receiving messages based on a pattern
channel.exchange_declare(exchange='direct_logs', type=‘topic')
RPC Async WorkFlow - RabbitMQ
Remote procedure call implementation
Define properties: CorrelationId and ReplyTo (QueueName to reply message)
Install Client - RabbitMQ
{
"require": {
"php-amqplib/php-amqplib": "2.5.*"
}
}
$composer install or update
Tutorial: https://www.rabbitmq.com/tutorials/
API de Autorização { Stack }
Repositório de código:
• https://github.com/alexandrebl
• https://github.com/alexandrebl/IMastersPHPExp2016
• NoSQL
• Cache de dados
• Dicionário (Chave/Valor)
• Dados em memória
• Persistência como opção
• Stand Alone
• Cluster
• Replicação
• Redis-cli
• Redis Manager
• NoSQL
• Json Format Data
• Dados em disco
• Stand Alone
• Shard
• Replica
• Mongo Shell
• RoboMongo
• MongoChef
• PHP Framework
• MVC
• Open-source
• REST API
• Event/handle
• Console
• Composer
Fluxo da API de Autorização
Sending message with PHP
require_once __DIR__ . '/vendor/autoload.php';
use PhpAmqpLibConnectionAMQPStreamConnection;
use PhpAmqpLibMessageAMQPMessage;
$connection = new AMQPStreamConnection(
'localhost', 5672, 'guest', 'guest');
$channel = $connection->channel();
Sending message with PHP
$channel->queue_declare('hello', false, false, false, false);
$msg = new AMQPMessage('Hello World!');
$channel->basic_publish($msg, '', 'hello');
$channel->close();
$connection->close();
Receiving message with PHP
$callback = function($msg) {
echo " [x] Received ", $msg->body, "n"; };
$channel->basic_consume('hello', '', false, true, false, false,
$callback);
while(count($channel->callbacks)) {
$channel->wait();
}
Sending message with C# .Net
using RabbitMQ.Client;
var factory = new ConnectionFactory() {
HostName = "localhost"
};
using(var connection = factory.CreateConnection())
using(var channel = connection.CreateModel()){ }
Sending message with C# .Net
channel.QueueDeclare(
queue: "hello",
durable: false,
exclusive: false,
autoDelete: false,
arguments: null);
Sending message with C# .Net
var body = Encoding.UTF8.GetBytes(message);
channel.BasicPublish(exchange: "",
routingKey: "hello",
basicProperties: null,
body: body);
RabbitMQ - Tutoriais
https://www.rabbitmq.com/getstarted.html
RabbitMQ – Curso on-line
https://www.pluralsight.com/courses/rabbitmq-
dotnet-developers
RabbitMQ Manager
• Free
• Gestão de objetos
• Queue
• Exchange
• Channels
• Routing
• Taxa de tranferência
• Simulação
• Recursos de hardware
Cloud AMPQ based on RabbitMQ
https://www.cloudamqp.com/
Instalação do RabbitMQ Manager
rabbitmq-plugins enable rabbitmq_management
http://server-name:15672/
Azure Service Bus
Azure Service Bus Documentation
Azure Service Bus
•Queue
•Notification Services
•Service Bus Pipeline
•IoT Hub Messaging
•Dashboard Admin
Microsoft Azure Service Bus Manager
{
Seja hoje uma pessoa
melhor do que
você foi ontem
}
Pesquise...
Pesquise...
Estude...
Pesquise...
Estude...
Domine...
Pesquise...
Estude...
Influencie...
Domine...
Alexandre
Brandão
Twitter: @abrandaolustosa
E-mail: abrandao@stone.com.br
Tel: +55 (21) 97367-6161
https://br.linkedin.com/in/abrandaol
Obrigado :)
Linkedin: abrandaol
https://github.com/alexandrebl
Alexandre
Brandão
Twitter: @abrandaolustosa
E-mail: abrandao@stone.com.br
Tel: +55 (21) 97367-6161
https://github.com/alexandrebl
Perguntas?
Linkedin: abrandaol
https://br.linkedin.com/in/abrandaol

More Related Content

PDF
Mac ruby deployment
PPTX
HTML5 Real-Time and Connectivity
PPTX
Apache camel overview dec 2011
PDF
Elastic ESB - Cloud Bursting with webMethods ESB - Cobus Boshoff
PPTX
BEDCon 2016 - Kay Lerch on "Will trade an ESB for an agile integration soluti...
PDF
Appseconnect Integration Platform - Technical and Conceptual Details
PPTX
Azure service bus based on cloud computing
PPTX
Cloud Interoperability
Mac ruby deployment
HTML5 Real-Time and Connectivity
Apache camel overview dec 2011
Elastic ESB - Cloud Bursting with webMethods ESB - Cobus Boshoff
BEDCon 2016 - Kay Lerch on "Will trade an ESB for an agile integration soluti...
Appseconnect Integration Platform - Technical and Conceptual Details
Azure service bus based on cloud computing
Cloud Interoperability

Viewers also liked (20)

PDF
Systems Integration in the Cloud Era - API vs. Integration Framework vs. Ente...
PDF
IoT Architecture - are traditional architectures good enough?
PPT
IBM WebSphere MQ: Managing Workloads, Scaling and Availability with MQ Clusters
PPTX
Introduction to MessageSight - gateway to the internet of things and mobile m...
PPTX
IoT - Internet Of Things/Node.js/API Rest/Service Bus - IMasters Dev Week Por...
PDF
WebSphere Message Broker installation guide
PDF
Industria 4.0 y Big Data
PPTX
Some thoughts on IoT, HKNOG 4.0
PDF
GetShift - IoT Devices Done Right.
PPTX
Get a Better Understanding of the Internet of Things (IoT)
PPTX
Continual Improvement Process-Basic Idea
PDF
Hia 1689-techinical introduction-to_iib
PDF
ITIL implementation and Service Management Best Practices – useful informatio...
PDF
Iomote - professional IoT and Industry 4.0 solutions
PDF
Industria 4.0
PPT
Introduction to WebSphere Message Broker
PDF
ECONOMIC DEVELOPMENT 4.0: Wisdom Networks crowdcreate economic development
PPTX
Key challenges facing the future of IoT
PDF
IoT Best practices
PDF
Solving the Industry 4.0 challenges on the logistics domain using Apache Meso...
Systems Integration in the Cloud Era - API vs. Integration Framework vs. Ente...
IoT Architecture - are traditional architectures good enough?
IBM WebSphere MQ: Managing Workloads, Scaling and Availability with MQ Clusters
Introduction to MessageSight - gateway to the internet of things and mobile m...
IoT - Internet Of Things/Node.js/API Rest/Service Bus - IMasters Dev Week Por...
WebSphere Message Broker installation guide
Industria 4.0 y Big Data
Some thoughts on IoT, HKNOG 4.0
GetShift - IoT Devices Done Right.
Get a Better Understanding of the Internet of Things (IoT)
Continual Improvement Process-Basic Idea
Hia 1689-techinical introduction-to_iib
ITIL implementation and Service Management Best Practices – useful informatio...
Iomote - professional IoT and Industry 4.0 solutions
Industria 4.0
Introduction to WebSphere Message Broker
ECONOMIC DEVELOPMENT 4.0: Wisdom Networks crowdcreate economic development
Key challenges facing the future of IoT
IoT Best practices
Solving the Industry 4.0 challenges on the logistics domain using Apache Meso...
Ad

Similar to IoT Service Bus - High availability with Internet of Things (IoT)/ API Rest/ Message Broker (20)

PPTX
StrongLoop Overview
PDF
C# Client to Cloud
PDF
C# - Azure, WP7, MonoTouch and Mono for Android (MonoDroid)
PDF
Seattle StrongLoop Node.js Workshop
PDF
ITCamp 2012 - Alessandro Pilotti - Web API, web sockets and RSignal
PPTX
Building modern web sites with ASP .Net Web API, WebSockets and RSignal
PPTX
.NET Core Today and Tomorrow
PPTX
SignalR Intro + WPDev integration @ Codetock
PDF
End to End .NET Development on Mac
PDF
Matrix.org decentralised communication, Matthew Hodgson, TADSummit
PPTX
SharePoint for the .NET Developer
PDF
Ibm_interconnect_restapi_workshop
PDF
Past, Present and Future of APIs of Mobile and Web Apps
PPTX
The next step from Microsoft - Vnext (Srdjan Poznic)
PDF
Comunicando nuestras apps con el mundo exterior
PDF
Choisir entre une API RPC, SOAP, REST, GraphQL? 
Et si le problème était ai...
PDF
Design & Deploy a data-driven Web API in 2 hours
PDF
The Hitchhiker's Guide to Serverless JavaScript
PPTX
An introduction to the API for OnTime for IBM
PPTX
CocoaConf: The Language of Mobile Software is APIs
StrongLoop Overview
C# Client to Cloud
C# - Azure, WP7, MonoTouch and Mono for Android (MonoDroid)
Seattle StrongLoop Node.js Workshop
ITCamp 2012 - Alessandro Pilotti - Web API, web sockets and RSignal
Building modern web sites with ASP .Net Web API, WebSockets and RSignal
.NET Core Today and Tomorrow
SignalR Intro + WPDev integration @ Codetock
End to End .NET Development on Mac
Matrix.org decentralised communication, Matthew Hodgson, TADSummit
SharePoint for the .NET Developer
Ibm_interconnect_restapi_workshop
Past, Present and Future of APIs of Mobile and Web Apps
The next step from Microsoft - Vnext (Srdjan Poznic)
Comunicando nuestras apps con el mundo exterior
Choisir entre une API RPC, SOAP, REST, GraphQL? 
Et si le problème était ai...
Design & Deploy a data-driven Web API in 2 hours
The Hitchhiker's Guide to Serverless JavaScript
An introduction to the API for OnTime for IBM
CocoaConf: The Language of Mobile Software is APIs
Ad

More from Alexandre Brandão Lustosa (19)

PPTX
Akka.Net - Implementing distributed systems with Akka.net and .Net Core
PPTX
Akka. Net - Desenvolvimento de sistemas distribuídos com Akka.Net
PPT
Akka.Net & .Net Core - .Net Inside 4° MeetUp
PPT
Akka.Net and .Net Core - The Developer Conference 2018 Florianopolis
PPT
Azure CosmosDB - TDC2018 Florianopolis
PPTX
Arquitetura de Microcontroladores Microchip PIC
PDF
MS_Learning_Transcript.PDF
PDF
PDF
PDF
PDF
PDF
PDF
PDF
PPTX
FEUC Tec 2016 - Desacoplando WorkFlows com RabbitMQ
PPTX
FEUC Tec 2016 - Iot with Slack using Intel Edison
PPTX
PHP with Service BUS (RabbitMQ/Redis/MongoDB) - IMasters PHP Experience 2016
PPTX
IMaster Developer Week RJ - Qualidade de software: SOLID/DDD
ODP
IMasters DevWeek BH - Cross Platform, Ferramentas e Integração Microsoft com ...
Akka.Net - Implementing distributed systems with Akka.net and .Net Core
Akka. Net - Desenvolvimento de sistemas distribuídos com Akka.Net
Akka.Net & .Net Core - .Net Inside 4° MeetUp
Akka.Net and .Net Core - The Developer Conference 2018 Florianopolis
Azure CosmosDB - TDC2018 Florianopolis
Arquitetura de Microcontroladores Microchip PIC
MS_Learning_Transcript.PDF
FEUC Tec 2016 - Desacoplando WorkFlows com RabbitMQ
FEUC Tec 2016 - Iot with Slack using Intel Edison
PHP with Service BUS (RabbitMQ/Redis/MongoDB) - IMasters PHP Experience 2016
IMaster Developer Week RJ - Qualidade de software: SOLID/DDD
IMasters DevWeek BH - Cross Platform, Ferramentas e Integração Microsoft com ...

Recently uploaded (20)

PDF
Network Security Unit 5.pdf for BCA BBA.
PDF
Empathic Computing: Creating Shared Understanding
PDF
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
PPTX
MYSQL Presentation for SQL database connectivity
PDF
Chapter 3 Spatial Domain Image Processing.pdf
PDF
Unlocking AI with Model Context Protocol (MCP)
PDF
Spectral efficient network and resource selection model in 5G networks
PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PDF
Review of recent advances in non-invasive hemoglobin estimation
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PPTX
ACSFv1EN-58255 AWS Academy Cloud Security Foundations.pptx
PDF
Machine learning based COVID-19 study performance prediction
PPT
Teaching material agriculture food technology
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PDF
Encapsulation theory and applications.pdf
PDF
Building Integrated photovoltaic BIPV_UPV.pdf
PDF
Approach and Philosophy of On baking technology
PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PPTX
Understanding_Digital_Forensics_Presentation.pptx
Network Security Unit 5.pdf for BCA BBA.
Empathic Computing: Creating Shared Understanding
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
MYSQL Presentation for SQL database connectivity
Chapter 3 Spatial Domain Image Processing.pdf
Unlocking AI with Model Context Protocol (MCP)
Spectral efficient network and resource selection model in 5G networks
Dropbox Q2 2025 Financial Results & Investor Presentation
Review of recent advances in non-invasive hemoglobin estimation
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
ACSFv1EN-58255 AWS Academy Cloud Security Foundations.pptx
Machine learning based COVID-19 study performance prediction
Teaching material agriculture food technology
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
Encapsulation theory and applications.pdf
Building Integrated photovoltaic BIPV_UPV.pdf
Approach and Philosophy of On baking technology
Diabetes mellitus diagnosis method based random forest with bat algorithm
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
Understanding_Digital_Forensics_Presentation.pptx

IoT Service Bus - High availability with Internet of Things (IoT)/ API Rest/ Message Broker