Logo Passei Direto
Buscar
Material
páginas com resultados encontrados.
páginas com resultados encontrados.
left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Prévia do material em texto

PROGRAMAÇÃO 
BACK-END
E-book 4
Ariel da Silva Dias
Neste E-Book:
INTRODUÇÃO ���������������������������������������������� 3
INTERNET DAS COISAS ����������������������������4
Introdução ao conceito de internet das coisas ������4
O que é uma “coisa”? �����������������������������������������������7
Sensor-usuário ���������������������������������������������������������9
Segurança em Internet das Coisas ���������������������� 12
ARQUITETURA ORIENTADA A 
SERVIÇO �������������������������������������������������������15
Stand-Alone ����������������������������������������������������������� 16
Cliente-Servidor e web ������������������������������������������ 16
Definição de SOA �������������������������������������������������� 18
O que é serviço? ���������������������������������������������������� 19
Implementações SOA ������������������������������������������� 20
MICROSERVIÇOS �������������������������������������� 22
JAVASCRIPT OBJECT NOTATION ��������24
Diferença entre SOA e microsserviço ������������������ 25
NODE-RED E DESENVOLVIMENTO 
DE APLICAÇÕES ���������������������������������������28
Primeira aplicação ������������������������������������������������ 30
Serviço de cálculo matemático ���������������������������� 33
CONSIDERAÇÕES FINAIS ���������������������� 35
SÍNTESE �������������������������������������������������������36
2
INTRODUÇÃO
Estudaremos os principais conceitos referentes à 
Internet das Coisas (do inglês Internet of Things — 
IoT), um conceito disruptivo que está cada vez mais 
em voga� Diversos outros conceitos surgiram a partir 
da IoT, como cidades inteligentes, casas inteligentes, 
fazendas inteligentes, entre outros�
Estudaremos, ainda, dois conceitos importantís-
simos: Arquitetura Orientada a Serviço (SOA) e 
Microsserviço� Ambos têm o objetivo de integração 
e modularidade; entretanto, há diferenças entre eles, 
que fazem com que o microsserviço seja mais utili-
zado do que SOA nos dias de hoje�
Na sequência, abordaremos o Node-Red, uma ferra-
menta desenvolvida pela IBM cujo foco é a Internet 
das Coisas. Por fim, teremos a possibilidade de de-
senvolver dois serviços e consumi-los�
Bons estudos!
3
INTERNET DAS COISAS
Introdução ao conceito de 
internet das coisas
O sonho de uma casa inteligente, na qual a geladeira 
avise quando o leite estiver acabando ou que uma 
torradeira entregue uma torrada quentinha todos 
os dias pontualmente às 7 horas da manhã, ocupa 
a imaginação popular há anos� Filmes e desenhos 
animados deram vida às casas automatizadas, com 
robôs fazendo tudo para os humanos em uma vida 
100% conectada�
Alguns inventores deram vida a essas ideias, que 
outrora eram apenas ficção científica, e começa-
ram a expô-las em feiras ao redor do mundo, como 
aspiradores de pó inteligentes que limpam a casa 
automaticamente, móveis autolimpantes que podiam 
se movimentar para seus ocupantes etc�
De um modo geral, o benefício desses aparelhos visa 
a libertar os ocupantes da casa do trabalho domés-
tico� Em 1959 ocorreu uma exposição em Moscou 
(Rússia), a Whirlpool criou uma feira futurística cha-
mada Miracle Kitchen, com o intuito de mostrar aos 
Soviéticos como era a vida na chamada “América 
Capitalista”� Dentre os equipamentos do futuro ex-
postos na feira, havia uma lavadora de louças que 
limpava a mesa, e um robô que varria o chão�
4
Teve um diálogo muito interessante entre Richard 
Nixon e Nikita Khrushchev nessa feira, que ficou co-
nhecida como The Kitchen Debate� Durante essa con-
versa, Nixon mostrava o lado bom do capitalismo e 
as facilidades de que os soviéticos estavam privados� 
Por seu turno, Khrushchev dizia que não esperava ser 
surpreendido com tais facilidades, e que o conjunto 
de coisas apresentadas já fazia parte do cotidiano 
das pessoas na União Soviética�
SAIBA MAIS
Saiba mais sobre esse diálogo, consultando So-
viet Citizens See the Future, disponível em: ht-
tps://flashbak.com/soviet-citizens-see-the-future-
-photos-from-the-1959-kitchen-debate-381510/�
As primeiras invenções tornaram a casa mais inteli-
gente e possibilitaram que seus ocupantes ativassem 
ou desativassem alguma “coisa” sem se levantar 
e, em alguns casos, sem mexer um dedo� Porém, 
apesar de serem inteligentes, essas invenções não 
se conectavam a mais nada; logo, toda a sua funcio-
nalidade era limitada�
Em 1983, a ARPANET adotou um conjunto de pro-
tocolos da Internet: TCP/IP� O protocolo estabelece 
padrões de como os dados digitais devem ser trans-
mitidos, recebidos e roteados� Com isso, iniciaram-se 
as bases da internet moderna, bem como a possibi-
lidade de conectar estas “coisas” e fazerem elas se 
comunicarem�
5
https://flashbak.com/soviet-citizens-see-the-future-photos-from-the-1959-kitchen-debate-381510/
https://flashbak.com/soviet-citizens-see-the-future-photos-from-the-1959-kitchen-debate-381510/
https://flashbak.com/soviet-citizens-see-the-future-photos-from-the-1959-kitchen-debate-381510/
Em 1990, o engenheiro de software John Romkey 
construiu uma torradeira para uma feira de compu-
tadores da Interop� Não era uma simples torradeira, 
pois foi a primeira “coisa” a se conectar à internet e 
a fazer o uso do protocolo TCP/IP� Romkey inseriu 
algumas fatias de pão na torradeira e, com um co-
mando no computador, a ligou� A torradeira mágica 
de Romkey, que não exigia apertar qualquer botão 
para ser ligada, mostrou a todos como seria o mundo 
de “coisas” conectadas à internet�
Apesar disso, ainda não existia o termo “internet 
das coisas”, que foi cunhado em uma apresentação 
por Kevin Ashton em 1999, da empresa Procter & 
Gamble� Nessa apresentação, Ashton descreveu um 
sistema em que os sensores agiam como os olhos 
e os ouvidos de um computador, uma maneira nova 
dos computadores verem e sentirem o ambiente em 
sua volta�
Os anos se passaram, tivemos o aumento de residên-
cias com internet, acelerado crescimento do Wi-Fi e 
o custo de sensores e componentes computacionais 
caindo�
Nesse cenário, as empresas começaram a explo-
rar a criatividade e os recursos disponíveis� Assim, 
iniciou-se a produção de invenções que eram ape-
nas sonhos ou cenas de filmes de ficção científica: 
cafeteiras inteligentes que entregava o café pronto 
e quentinho em um horário predeterminado, fornos 
com precisão em temperatura que não deixava o 
bolo queimar, concluindo a operação assim que o 
6
bolo estivesse totalmente assado e geladeiras que 
avisam quando o leite está acabando�
SAIBA MAIS
Em 2000, a LG lançou um refrigerador que era co-
nectado à internet e que, por meio de sensores e 
câmeras, analisava o conteúdo presente nas pra-
teleiras internas� Esta “coisa” custava, na época, 
US$ 20 mil�
O que é uma “coisa”?
Para que um sistema seja considerado um sistema 
Internet das Coisas (IoT), ele precisa de uma combi-
nação de três componentes: sensores (e atuadores), 
conectividade e pessoas/processos� O mais impor-
tante é ter a “coisa”, que pode ser qualquer coisa 
equipada com sensores, desde uma caneta até uma 
máquina em uma indústria�
O objeto, para ser considerado uma “coisa”, precisa 
possuir um sensor, bem como ser rastreado no tem-
po ou no espaço� Por exemplo, ao monitorar uma 
caneta, além de saber a sua carga de tinta atual, 
também deve ser possível saber em qual lugar do 
mundo ela está, bem como quando (tempo) e por 
quem ela foi utilizada�
Nesse exemplo da caneta, só há uma condição para 
rastreá-la: precisa estar conectada em uma rede� 
7
Essa conexão pode ser por Wi-Fi, Bluetooth, satélite, 
NFC, Zigbee ou qualquer outro meio que possibilite 
os sensores da caneta de enviarem dados�
Outro componente importante são as pessoas ou 
processos� Quem está interessado nos dados le-
vantados sobre a caneta? Pode ser uma pessoa que 
precisa saber, exatamente, quando está acabando 
a tinta da caneta, ou pode ser um sistema de uma 
empresa (processo) que monitora quais são as re-
giões do planeta que mais compram e usam suas 
canetas, bem como qual é a frequência de compra de 
um cliente, númerode vendas por mês e até rastrear, 
cliente por cliente, o nível de tinta�
Observe outro exemplo, que está ilustrado na Figura 1�
Figura 1: Geladeira inteligente. Fonte: SensorWeb (2015).
Temos uma pessoa que, ao sair de casa, é avisada 
pela geladeira: “Não esquecer de comprar leite!”� Esse 
8
simples aviso/comando da geladeira pode envolver 
um processamento muito mais complexo do que 
imaginamos�
Nessa relação, temos um sensor-usuário e um sen-
sor-objeto (a geladeira); temos um processo que usa 
as informações dos sensores para tomar uma de-
cisão. Por fim, temos a comunicação, que é a ação 
de informar ao usuário sobre a decisão tomada pela 
geladeira�
Vamos então analisar cada um dos itens envolvidos 
nessa relação e possíveis perguntas que podem sur-
gir a respeito de cada componente:
Podcast 1 
Sensor-usuário
Qual é o tipo de sensor que verificou se a pessoa 
estava saindo de casa? Foi um sensor na porta, GPS 
ou uma triangulação de antenas do celular? É neces-
sário definir o tipo de sensor que rastreará as ações 
e interações do usuário�
A pessoa que está saindo é responsável por realizar 
as compras? Note que essa é uma questão importan-
te que o projetista deve considerar� Se a geladeira en-
viar uma mensagem para todas as pessoas da casa, 
talvez esteja gastando processamento desnecessá-
rio, pois pode enviar uma informação para alguém 
9
https://famonline.instructure.com/files/954641/download?download_frd=1
que não é responsável direto pela compra� Também 
deve distinguir crianças e adultos, bem como pesso-
as capazes ou não de realizar uma compra�
Qual é a razão de a pessoa sair de casa? Trata-se de 
outra questão importante, afinal, a pessoa pode sair 
de casa para levar o lixo até a lixeira ou para pegar 
uma correspondência� Não necessariamente, ao sair, 
a pessoa vai ao mercado ou padaria�
Note que uma simples ação de sair de casa leva a 
geladeira a processar uma série de informações, 
todas com base em um contexto� Somente conhe-
cendo o contexto geral da família e da casa, por meio 
de cruzamento de informações, é que será possível 
enviar uma notificação.
Geladeira avisa que não há leite
Qual é o tipo de sensor que está na geladeira? 
Precisamos definir que tipo de sensor usar. Na pra-
teleira da geladeira, por exemplo, pode haver um lugar 
para colocar o leite e, nesse lugar, ter uma célula de 
carga� Logo, supondo que uma caixa de leite pese 
1kg, se a célula de carga informar o peso de 500g, 
isso significa que o leite está pela metade.
O leite é necessário? Pode ser que 500g ainda su-
pram a necessidade da família� Porém, pode ser que 
900g seja um sinal de alerta de que o leite está aca-
bando� Tudo depende de um histórico de consumo, 
por isso chamamos a atenção novamente para o 
contexto�
10
Por fim, vale analisar: tem pouco leite ou não tem lei-
te? Aqui entra a questão de prever� Em quanto tempo 
não teremos mais leite, com base nos dados atuais 
medidos? Isso é possível através de algoritmos de 
rede neural ou machine learning, por exemplo�
Informação dos sensores para tomar uma 
decisão
Quais são as regras? Aqui, entra o uso do tão falado 
contexto. As regras podem ser fixas, por exemplo, 
sempre envie a notificação quando a quantidade de 
leite estiver em 50% ou envie uma notificação às 
segundas-feiras, independentemente da quantidade 
de leite� As regras podem ser dinâmicas e, nesse 
caso, utilizaríamos machine learning� Por exemplo, 
mediante o consumo de leite dos últimos três meses, 
qual é a ação a ser tomada agora? Note que, neste 
ponto, entra a previsão associada ao contexto�
Informar o usuário sobre a decisão
Como será realizada a comunicação? É necessário 
definir o “como”, por exemplo, será uma mensagem 
SMS ou por WhatsApp, um e-mail ou uma notificação 
em aplicativo no celular?
Quando será realizada a comunicação? Refere-se à 
frequência do envio de notificação. Por exemplo, se 
enviar uma mensagem de madrugada, certamente 
não adiantará muito, a não ser que a pessoa esteja 
na rua e próximo a um mercado� Mais uma vez o 
contexto é importante�
11
Nessa simples comunicação entre a geladeira e o 
usuário, repare quantas análises são possíveis�
Podcast 2 
Segurança em Internet das 
Coisas
Todas as facilidades e possibilidades de utilizar os 
dispositivos conectados à internet eventualmente 
nos faz pagar um alto custo� Podemos controlar a 
luminosidade de lâmpadas e regular os termostatos 
através de smartphones, com comandos de voz ou 
piscar de olho� Tudo isso graças aos dispositivos 
estarem conectados à internet� Conseguimos entrar 
em casa abrindo a fechadura digital com nossa bio-
metria; é possível monitorar o quarto do bebê a quilô-
metros de distância de casa, entre outros exemplos� 
Considere os caprichos da conectividade com a in-
ternet: quando o Wi-Fi cai, seus dispositivos também 
caem� Problemas com o roteador ou provedor de 
internet, que resolveu fazer uma parada técnica� Isso 
significa que você não pode regular o calor com o 
termostato inteligente ou desbloquear a fechadura 
da porta inteligente�
As coisas que costumavam ser fáceis tornam-se po-
tencialmente defeituosas, ou impraticáveis, quando 
exigem um comando por smartphone em vez de um 
botão físico� Muitos desses dispositivos também 
12
https://famonline.instructure.com/files/954642/download?download_frd=1
são executados em software proprietário, ou seja, 
se o serviço com o seu prestador de software da 
fechadura eletrônica for interrompido, você não entra 
nem sai de casa�
Acrescenta-se ainda o risco de conectar estas coisas 
à internet, uma vez que tudo o mais que estiver no 
seu Wi-Fi estará vulnerável a hackers� O risco não 
é de mudar o horário da entrega de sua torrada de 
7 horas da manhã para as 10 horas� O risco é um 
hacker, acessando a fechadura inteligente, abrir a 
porta da frente de sua casa ou, no caso da torradeira, 
enviar uma série de comandos gerando um possível 
superaquecimento e, consequentemente, um incên-
dio na sua cozinha�
Ao desenvolver dispositivos para a internet das coi-
sas, devemos pensar prioritariamente na segurança� 
Nesse sentido, podemos perceber que as empresas 
desenvolvedoras não estão preocupadas em colocar 
uma faixa de proteção ou um “antivírus” no dispo-
sitivo, afinal, a desenvolvedora da máquina de lavar 
roupa não detém conhecimentos e técnicas espe-
cíficos para gerar sistemas seguros em ambientes 
cibernéticos�
É precisamente neste ponto que entra o desenvolve-
dor de aplicações web� Cada “coisa” é uma aplicação 
web, desse modo, deve-se preocupar em primeiro 
lugar com a segurança�
Outra questão importante é a da privacidade� 
Câmeras e microfones de notebooks, celulares, bem 
como as câmeras de segurança espalhadas pela 
13
sua casa estão assistindo e ouvindo você de modo 
intermitente, ou seja, estão coletando dados a todo 
momento e, de um modo ou de outro, esses dados 
têm valor� Google e Apple admitiram recentemente 
que as gravações capturadas por seus alto-falantes 
inteligentes são revisadas pelos contratados, incluin-
do trechos de áudio estranhos e íntimos�
A internet das coisas está em constante expansão, 
e isso não traz consequências apenas para a pri-
vacidade pessoal� Pode criar uma rede de olhos e 
ouvidos em computadores onde quer que estejamos� 
E qual é o impacto de esses dados caírem em mãos 
indevidas? Fica aqui uma questão para se refletir.
14
ARQUITETURA 
ORIENTADA A SERVIÇO
Os sistemas web cresceram em importância nos 
últimos anos, devido à integração dos dados e à pos-
sibilidade de acessar dados e recursos em qualquer 
lugar e a qualquer momento� Se o número de siste-
mas aumenta, aumentam igualmente os paradigmas 
para desenvolvimento de sistemas, de modo a aten-
der as necessidades de mudanças�
Com o passar dos anos, desde o advento dos com-
putadores até os tempos atuais com o surgimento 
das “coisas”, saímos dos sistemas monolíticos, pas-
samos pela arquitetura cliente/servidor, arquitetura 
três camadas e chegamos ao chamado sistemasbaseados em serviços�
A Figura 2 representa essa evolução� Em seguida, 
analisamos cada etapa�
Standalone ClienteServidor Web SOA Futuro���
Figura 2: Evolução dos sistemas. Fonte: Autoria própria.
15
Stand-Alone
 ● Definição: Nesta arquitetura, o sistema de software 
funciona em apenas um único hardware local, sem 
compartilhar informações pela rede�
 ● Característica: A característica principal é a arqui-
tetura monolítica�
 ● Exemplo: Atualmente, são raros os sistemas stand 
-alone, são encontrados nos chamados “softwares 
de caixinha”, como o controle de estoque, controle 
financeiro, entre outros.
Cliente-Servidor e web
 ● Definição: É a presença de um computador tido 
como o centralizador ou servidor que, através da 
rede, compartilha informações com os computado-
res clientes�
 ● Característica: Pode ser de duas, três camadas ou 
multicamadas�
 ● Exemplo: Aplicações web, servidor de banco de 
dados, servidor de arquivos� O modelo de aplicativo 
web vai depender do número total de servidores e 
bancos de dados usados, podendo ser um dos três 
seguintes:
 ○ Com um servidor e um banco de dados: modelo de 
componente de aplicativo web mais simples e menos 
confiável. Esse modelo usa um único servidor e um 
único banco de dados� Um aplicativo da web baseado 
16
nesse modelo será desativado caso o servidor seja 
desativado. Portanto, não é muito confiável. Esse 
modelo de componente de aplicativo normalmen-
te não é usado para aplicativos reais, sendo usado 
principalmente para executar testes�
 ○ Com dois ou mais servidores e um banco de dados: 
o objetivo desse tipo de modelo de componente de 
aplicativo web é que o servidor não armazena ne-
nhum dado� Quando o servidor obtém as informações 
de um cliente, ele as processa e as grava no banco de 
dados, que é gerenciado fora do servidor� Às vezes, 
isso também é chamado de arquitetura sem estado� 
São necessários pelo menos dois servidores da web 
para esse modelo, pois são suficientes para evitar 
falhas� Mesmo quando um dos servidores da web 
fica inoperante, o outro assume o controle. Todas 
as solicitações feitas são redirecionadas automa-
ticamente para o novo servidor e o aplicativo web 
continua a execução. Portanto, a confiabilidade é 
maior em comparação ao servidor único com modelo 
de banco de dados inerente� No entanto, se o banco 
de dados travar, o aplicativo web também trava�
 ○ Com múltiplos servidores e múltiplos banco de 
dados: modelo de componente de aplicativo web 
mais eficiente, porque nem os servidores da web nem 
os bancos de dados têm um único ponto de falha� 
Existem duas opções para esse tipo de modelo, que 
armazenam os dados idênticos em todos os bancos 
de dados empregados ou distribuí-los igualmente 
entre eles� No geral, não são necessários mais do que 
dois bancos de dados no primeiro caso, enquanto 
17
no segundo caso alguns dados podem ficar indispo-
níveis no cenário de uma falha no banco de dados� 
Quando a escala é grande, ou seja, tem mais de cinco 
servidores da web ou bancos de dados ou ambos, 
é recomendável instalar balanceadores de carga�
Definição de SOA
A Arquitetura Orientada a Serviço (SOA) é um fra-
mework que permite que os serviços se comuniquem 
entre si em diferentes plataformas e idiomas, im-
plementando o que é conhecido como “sistema de 
acoplamento flexível”. Embora o conceito de SOA 
exista há muitos anos, foi somente na última década 
que ele teve destaque nas tecnologias relacionadas 
a software�
Os sistemas de acoplamento flexível permitem que 
um cliente — “coisa” ou computador cliente que por 
si só pode ser um serviço — possa se comunicar 
com outro serviço, mesmo que não haja uma relação 
direta ou que eles não estejam intimamente relacio-
nados� Essa comunicação facilitada é alcançada 
através da implementação de uma interface espe-
cífica, capaz de executar as ações necessárias para 
permitir a transmissão de dados�
Considere o seguinte exemplo: três pessoas estão 
em uma sala para conversarem, um brasileiro, um 
alemão e um japonês� Eles não sabem falar a língua 
um do outro� Entretanto, os três sabem falar uma 
18
língua em comum, o inglês� Nesse exemplo, não é 
necessário que o brasileiro aprenda japonês ou que o 
alemão aprenda o português, basta que falem aquela 
língua em comum� Em linhas gerais, é assim que o 
SOA trabalha�
A comunicação sem as restrições dos serviços en-
volve conversa entre um serviço e outros� Há uma 
variedade de linguagens de programação a partir 
das quais os sistemas web são criados, sendo que 
nem todas essas linguagens podem interagir fluen-
temente, sem problemas de comunicação� Ao usar 
o framework SOA, não é necessário que o cliente 
entenda a linguagem que está sendo usada pelo ser-
viço, mas sim uma interface estruturada capaz de 
processar a transmissão entre o serviço e o cliente�
O que é serviço?
Um serviço é uma funcionalidade que pode ser aces-
sada remotamente, com atuação e atualização inde-
pendentes, como recuperar um extrato do cartão de 
crédito online� Um serviço possui quatro proprieda-
des, segundo uma das definições de SOA:
 ● Representa logicamente uma atividade de negócios 
com um resultado especificado.
 ● É independente�
 ● É uma caixa preta para seus consumidores�
 ● Pode consistir em outros serviços subjacentes�
19
Um serviço é reutilizável, fácil de programar e inde-
pendente da linguagem ou plataforma de programa-
ção� Pode ser pensado como uma função de apli-
cativo reutilizável, usada como um componente em 
um processo de negócios� Um serviço é, portanto, 
capaz de fornecer essa função repetidamente a vá-
rios solicitantes de serviço� É essa capacidade de 
reutilizar o serviço e a prática de dividir cada proces-
so de negócios em uma série de serviços que geram 
os benefícios de eficiência de SOA.
Implementações SOA
SOA é independente de fornecedores e tecnologias� 
Isso significa que uma grande variedade de produ-
tos pode ser usada para implementar a arquitetura� 
A decisão do que usar ou de qual plataforma usar 
depende do objetivo final do sistema.
Normalmente, SOA é implementada com serviços da 
web, como Simple Object Access Protocol (Soap) e 
Web Services Description Language (WSDL)� Outras 
opções de implementação disponíveis incluem:
 ● Windows Communication Foundation (WCF)�
 ● gRPC�
 ● Sistema de mensagens (Java Message Service, 
JMS; ActiveMQ e RabbitMQ)�
As implementações de SOA podem usar um ou mais 
protocolos e uma ferramenta de sistema de arquivos 
20
para comunicar dados� Os protocolos são indepen-
dentes da plataforma e da linguagem de programa-
ção subjacentes� A chave para uma implementação 
bem-sucedida é o uso de serviços independentes que 
executam tarefas de maneira padronizada, sem preci-
sar de informações sobre o aplicativo de chamada e 
sem que o aplicativo de chamada exija conhecimento 
das tarefas que o serviço executa�
21
MICROSERVIÇOS
A arquitetura de microsserviços é mais comumente 
chamada de Microsserviços� Em contraste com o 
ambiente monolítico tradicional, os microsserviços 
abrangem qualquer maneira de projetar aplicativos 
como um conjunto de serviços, que podem ser im-
plantados independentemente�
A arquitetura microsserviço permite o desenvolvi-
mento de uma única aplicação (web, desktop, mobile 
etc�) com um conjunto de pequenos serviços, cada 
um sendo executado em seu próprio tempo e se co-
municando com mecanismos leves, explorando os 
recursos HTTP�
Por exemplo, vamos supor que você deseja criar uma 
nova aplicação web� Nela você terá que apresentar 
a temperatura atual do local onde o usuário está� Se 
não tivéssemos o conceito de microsserviços, você 
teria que colocar sensores em todas as cidades do 
mundo e capturar a informação� Complexo, não é?
Porém, existem muitas empresas que já fazem essa 
aferição, então, você não precisa se preocupar com 
isso� E essas empresas compartilham (algumas me-
diante pagamento) os dados do clima, como tempe-
ratura, velocidade do vento, humidade, entre outros, 
no formatode microsserviços� O seu aplicativo rea-
liza uma solicitação e o serviço web de clima retorna 
as informações� Bem mais simples, não é?
22
Agora, considere outro exemplo� Você está desenvol-
vendo um sistema web e possui uma ideia de algorit-
mo: em um formulário de cadastro, quando o usuário 
digitar o CEP, automaticamente será carregado o 
nome da rua, cidade, estado e bairro� Desse modo, 
você precisa ter o CEP do Brasil todo cadastrado no 
banco de dados da sua aplicação web� Não parece 
ser a maneira mais prática�
Existem alguns sites, como o ViaCep, que, se você 
enviar o CEP, eles retornam para o seu sistema os 
dados completos referentes ao CEP informado� Com 
isso, você não precisa ter uma base de dados com 
todos os CEP do Brasil, basta apenas consumir esse 
microsserviço�
23
JAVASCRIPT OBJECT 
NOTATION
O JavaScript Object Notation (JSON) é um formato 
legível e mínimo para a estruturação de dados� É 
usado principalmente para transmitir dados entre 
um servidor e um aplicativo da web, como uma al-
ternativa ao Extensible Markup Language (XML)� 
Essa é uma possibilidade na comunicação entre a 
aplicação web e um microsserviço� O JSON, como 
o nome indica, é um objeto JavaScript que segue o 
formato da Figura 3:
Figura 3: Arquivo JSON.Fonte: Autoria própria.
24
A figura mostra um arquivo JSON gerado no ViaCep. 
As duas partes principais que compõem o JSON são 
chaves e valores� Juntos, formam um par de chave 
/ valor�
 ● Chave: uma chave é sempre uma cadeia de carac-
teres entre aspas à esquerda do sinal de dois pontos� 
Na Figura 3, “cep”, “logradouro”, “complemento” e 
“bairro” são exemplos de chaves�
 ● Valor: um valor pode ser uma sequência, número, 
expressão booleana, matriz ou objeto� Na Figura 3, 
temos como valores “010001-000”, “Praça da Sé” e 
“São Paulo” como exemplos�
 ● Par chave : valor: um par de chave valor segue 
uma sintaxe específica, com a chave seguida de dois 
pontos seguida pelo valor� Os pares chave / valor são 
separados por vírgula, conforme consta na Figura 3�
Em geral, com o JSON a comunicação entre aplicati-
vo web e microsserviços fica mais prática. O uso do 
JSON tem sido a grande opção dos desenvolvedores 
e das empresas�
Diferença entre SOA e 
microsserviço
Nas duas arquiteturas, cada serviço tem uma certa 
responsabilidade, diferentemente de uma arquitetura 
monolítica. Assim, os desenvolvedores têm a flexi-
bilidade para desenvolver os serviços em diferentes 
tecnologias, o que permite à equipe escolher o caso 
25
de uso mais relevante para um serviço� No entanto, 
as duas arquiteturas diferem nos seguintes aspectos:
 ● Implantação e escalabilidade de serviços: A implan-
tação do serviço pode ser atribuída e gerenciada em 
várias equipes� No entanto, cada membro da equipe 
precisa conhecer o mecanismo de comunicação co-
mum em SOA, que não é uma dependência ao criar 
um aplicativo com arquitetura de microsserviços� 
No caso de microsserviços, os serviços podem ser 
operados e implantados independentemente, o que 
difere da SOA� Portanto, é mais fácil implantar uma 
nova versão de serviços com frequência e, assim, 
dimensionar o aplicativo de acordo�
 ● Tolerância a falhas: Em SOA, um Enterprise Service 
Bus (ESB) pode ser um ponto único de falha, o que 
afeta o funcionamento de todo o aplicativo� Um ESB 
implementa a comunicação entre aplicativos que 
interagem mutuamente no SOA� Os microsserviços 
são tolerantes a falhas, pois todos os serviços e sua 
implantação são independentes um do outro�
 ● Compartilhando armazenamento de dados: Em 
SOA, os serviços compartilham o armazenamento 
de dados, ao passo que nos microsserviços cada 
serviço pode ter um armazenamento de dados in-
dependente� O armazenamento de dados traz seu 
próprio conjunto de vantagens e desvantagens� Por 
exemplo, embora os dados possam ser reutilizados 
entre todos os serviços, podem trazer dependência 
entre os serviços devido ao acoplamento rígido�
26
 ● Tamanho e escopo do serviço: Uma das principais 
diferenças entre microsserviços e SOA é o tamanho 
e o escopo dos serviços� Os microsserviços são 
significativamente menores em tamanho. Por outro 
lado, uma SOA pode ser monolítica ou ter vários 
microsserviços�
27
NODE-RED E 
DESENVOLVIMENTO DE 
APLICAÇÕES
O Node-Red é uma ferramenta de desenvolvimento 
visual, baseada em um navegador desenvolvido ori-
ginalmente pela IBM para projetos da Internet das 
Coisas� Entretanto, com o tempo, tem sido utilizado 
para desenvolver outros tipos de aplicativos�
O Node-Red permite que os desenvolvedores cons-
truam serviços e os disponibilizem na web� Isso pode 
ser feito com uma interface visual de arrastar e soltar� 
Vários componentes no Node-Red são conectados 
juntos para criar um fluxo. A maior parte do código 
necessário é criada automaticamente�
Para começar a instalar o Node-Red, é necessário, 
primeiramente, instalar o NodeJS e o NPM� Depois 
de terem sido instalados e configurados, podemos 
prosseguir e instalar o Node-Red�
Para instalá-lo, faça o seguinte comando no prompt 
de comandos:
sudo npm install -g --unsafe-perm node-red
Em seguida, você pode executar o Node-Red digitan-
do o comando node-red no prompt de comandos� A 
Figura 4 apresenta a tela principal do Node-Red, onde 
você pode interagir e desenvolver suas aplicações�
28
Figura 4: Tela principal do Node-Red. Fonte: Autoria própria.
Observe a descrição de cada um dos componentes 
enumerados:
1. Palheta com os nós: neste campo, você encontra 
os nós necessários para o desenvolvimento de suas 
aplicações� Os principais são input, output e function�
2. Fluxo: é o espaço de fluxo, onde realizamos o de-
senvolvimento de um aplicativo web� Vamos arrastar 
os nós da palheta de nós para cá�
3. Aba de fluxos: podemos criar mais de um fluxo, 
por isso, são listadas as abas. Nesse caso, a fluxo 
Flow 1 está ativo�
4. Guia Info: esta guia mostra as informações sobre 
o fluxo e sobre o nó.
5. Guia debug: quando executamos o aplica-
tivo, na guia debug apresentamos a saída dos 
processamentos�
6. Deploy: sempre que desejamos implantar (exe-
cutar) um aplicativo, ou quando fazemos alguma 
alteração, clicamos nesse botão. O botão só fica 
29
vermelho se forem realizadas alterações; caso con-
trário, fica desativado.
Primeira aplicação
Vamos desenvolver a primeira aplicação, para isso, 
utilizaremos o nó http (de input) e o nó debug (em 
output). Arraste-os para a área de fluxo. Vamos edi-
tar o nó http conforme a Figura 5, para isso, dê dois 
cliques sobre o nó�
Figura 5: Nó HTTP. Fonte: Autoria própria.
Após aplicar essas configurações, clique em DONE. 
Em seguida, ligue os nós HTTP e DEBUG (agora 
está escrito msg�payload)� Depois disso, clique 
no botão deploy para implantar o serviço� Desse 
modo, temos um serviço web que recebe dados 
por HTTP utilizando o método GET� Para testarmos, 
30
abra o navegador web e digite: localhost:1880/meu-
-servico?mensagem=”Olá Mundo”�
Vamos separar cada um dos valores presentes neste 
comando URL:
 ● localhost:1880: é o endereço web do seu servidor�
 ● /meu-servico: é o nome do serviço web que está 
sendo consumido�
 ● ?: separa o endereço web do conteúdo que está 
sendo passado como GET�
 ● mensagem=”Olá Mundo”: mensagem é a variável 
que recebe o conteúdo “Olá Mundo”�
Já estudamos o método GET, aquele que passa o 
conteúdo pela URL� Faça o teste digitando esse en-
dereço completo no navegador e pressionando Enter� 
Você perceberá que, na página web, nada ocorrerá� 
Entretanto, volte para o Node-Red e encontre a guia 
Debug� Lá você terá o conteúdo da Figura 6�
Figura 6: Saída debug. Fonte: Autoria própria.
31
Temos, assim, um objeto JSON� A chave é “mensa-
gem” e o valor é “Olá Mundo”� Para que possamos 
apresentar apenas a mensagem “Olá Mundo” no de-
bug, precisamos modificar o nó verde debug (MSG.
PAYLOAD)�
Ao receber a mensagem, a variável msg�payload re-
cebe o objeto JSON� Para que possamos apresen-
tar somente o valor “Olá Mundo”, precisamos deixar 
como msg�payload�mensagem�Analise a Figura 7 
com a configuração do nó debug:
Figura 7: Nó debug.Fonte: Autoria própria.
Depois dessa alteração, pressione DONE e, em se-
guida, pressione o botão deploy� Repita o processo 
anterior de digitar a URL no navegador e, em seguida, 
pressione ENTER� Retorne ao Node-Red e observe, 
na guia de debug, a mensagem “Olá Mundo”�
32
Serviço de cálculo matemático
Neste tópico, prestaremos um serviço que, ao receber 
dois valores pela URL, fará o seu cálculo matemático� 
Para isso, utilizaremos um nó a mais, é o nó function� 
Façamos a seguinte ligação da Figura 8� Note, po-
rém, que temos três nós: (i) HTTP, que agora tem o 
endereço URL como /segundo-servico, (ii) function, 
que vamos editar logo mais e (iii) DEBUG que estará 
como MSG�PAYLOAD�
Figura 8: Fluxo do novo serviço. Fonte: Autoria própria.
Vamos editar o nó function� Utilizaremos nele o códi-
go JavaScript para realizar as operações (Figura 9):
Figura 9: Nó Function. Fonte: Autoria própria.
Vamos analisar linha a linha:
 ● Linha 1: uma variável n1 vai receber o resultado que 
virá da URL� Observe que estamos pegando o valor 
inserido na barra de endereços, o que é retornado em 
msg�payload�valor1� Esse valor, apesar de ser um nú-
mero, o que vem é um caractere do tipo texto� Logo, 
é necessário converter o conteúdo de msg�payload�
valor1 para inteiro, utilizando o comando parseInt�
33
 ● Linha 2: realiza-se a mesma operação da linha 
anterior, porém, nesta vamos capturar o valor da 
URL referente ao valor2 pelo comando msg�payload�
valor2�
 ● Linha 3: nesta linha, o conteúdo msg�payload, mos-
trado no debug, vai receber a soma de n1 + n2�
 ● Linha 4: por fim, vamos retornar o objeto msg.
Ao realizar essa configuração, clique em DONE e, em 
seguida, em DEPLOY�
Acesse o navegador novamente e digite o seguinte 
endereço URL:
localhost:1880/segundo-servico?valor1=44&valor2=55
Neste comando, temos duas coisas diferentes: a 
presença do símbolo e-comercial e uma segunda 
variável� O e-comercial (&) é utilizado quando deseja-
mos passar mais de um parâmetro pela URL� Nesse 
caso, o & separa a variável valor1 e seu conteúdo, da 
variável valor 2 e seu conteúdo�
Ao retornar ao Node-Red, teremos na guia de debug 
o resultado da operação�
SAIBA MAIS
Saiba mais sobre essa ferramenta tão utilizada 
em IoT e também para criar microsserviços que 
agilizem seu trabalho, acessando https://node-
red.org/docs/getting-started/local�
34
https://nodered.org/docs/getting-started/local
https://nodered.org/docs/getting-started/local
CONSIDERAÇÕES FINAIS
Iniciamos com a apresentação de conceitos sobre 
Internet das Coisas, o qual cresce dia após dia graças 
ao número massivo de dispositivos que, diariamen-
te, estão conectados à web� A internet das coisas 
possibilita diversas oportunidades para empresas, 
desenvolvedores e usuários, uma vez que integra os 
sistemas e coisas em um canal único�
Em seguida, estudamos o padrão arquitetural SOA, 
um framework utilizado para integrar sistemas e que 
foi muito utilizado no início dos anos 2010, porém, 
com o surgimento do conceito de microsserviços, 
tem sido pouco utilizada, pois possui grande poder 
por trás de seu conceito�
Por fim, conhecemos o Node-Red, um ambiente de-
senvolvido pela IBM para o desenvolvimento no estilo 
“Puxe e solte”� São diversos nós que, ao serem liga-
dos, possibilitam o desenvolvimento de aplicações 
diversas� É utilizada principalmente no desenvolvi-
mento de serviços web e massivamente utilizado em 
Internet das Coisas�
35
SÍNTESE
Microsserviços
• JSON;
• Diferença entre SOA e Microsserviço.
Node-Red e desenvolvimento de aplicações
• Primeira aplicação;
• Serviço de cálculo matemático.
INTERNET DAS COISAS
Introdução ao conceito de IoT
• O que é uma “coisa”?;
• Segurança em IoT.
• Definição de SOA;
• O que é serviço?;
• Implementações SOA.
Arquitetura orientada a serviço (SOA)
PROGRAMAÇÃO 
BACK-END
Neste e-book, estudamos os conceitos de Internet das coisas e aprendemos a 
aplicá-los em desenvolvimento. Para isso, abordamos os seguintes tópicos:
Referências Bibliográficas 
& Consultadas
AGUILAR, L� J� Fundamentos de programação: 
algoritmos, estruturas de dados e objetos� 3� ed� 
Porto Alegre: AMGH, 2011 [Biblioteca Virtual]�
ALVES, W� P� Linguagem e lógica de programação� 
São Paulo: Erica, 2014� [Biblioteca Virtual]�
BARRETO, J� S�; ZANIN, A�; MORAIS, I� S�; 
VETTORAZZO, A� S� Fundamentos de segurança da 
informação� Porto Alegre: SAGAH, 2018�
ELDER, J� O primeiro aparelho da Internet das 
Coisas: a torradeira “inteligente” de John Romkey� 
Disponível em: https://blog.avast.com/pt-br/the-
-internets-first-smart-device� Acesso em: 18 abr� 
2020�
ELMASRI, R�; NAVATHE, S� B� Sistema de banco de 
dados. 6� ed� São Paulo: Pearson Addison-Wesley, 
2011 [Biblioteca Virtual]�
FLANAGAN, D� JavaScript: o guia definitivo� 6� ed� 
Porto Alegre: Bookman, 2013 [Biblioteca Virtual]�
FLASHBAK� Soviet Citizens See The Future: Photos 
From The 1959 Kitchen Debate� Disponível em: 
https://flashbak.com/soviet-citizens-see-the-future-
https://blog.avast.com/pt-br/the-internets-first-smart-device
https://blog.avast.com/pt-br/the-internets-first-smart-device
-photos-from-the-1959-kitchen-debate-381510/� 
Acesso em: 18 abr� 2020�
HEUSER, C� A� Projeto de banco de dados. 6� ed� 
Porto Alegre: Bookman, 2009 [Biblioteca Virtual]�
MEDEIROS, L� F� Banco de dados: princípios e 
prática� Curitiba: InterSaberes, 2013 [Biblioteca 
Virtual]�
NIEDERAUER, J� Desenvolvendo websites com 
PHP� São Paulo: Novatec� 2004�
PARDES, A� The WIRED Guide to the Internet of 
Things� Disponivel em: https://www.wired.com/
story/wired-guide-internet-of-things/� Acesso em: 
18/04/2020�
PRESSMAN, R�; MAXIM, B� Engenharia de 
Software: uma abordagem profissional� 8� ed� 
Porto Alegre: AMGH, 2016�
PUGA, S�; FRANÇA, E�; GOYA, M� Banco de dados: 
implementação em SQL, PL/SQL e Oracle 11g� 
São Paulo: Pearson Education do Brasil, 2013 
[Biblioteca Virtual]�
SENSORWEB� IoT: A tecnologia e o 
Monitoramento Contínuo� 22 jul� 2015� Disponível 
em: https://sensorweb.com.br/tecnologia-monitora-
mento-continuo-iot-1/� Acesso em: 18 abr� 2020�
https://www.wired.com/story/wired-guide-internet-of-things/
https://www.wired.com/story/wired-guide-internet-of-things/
SOARES, W� PHP 5: Conceitos, Programação e 
Integração com Banco de Dados� 7� ed� São Paulo: 
Erica, 2013 [Minha Biblioteca]�
W3SCHOOL� Métodos de solicitação HTTP� 
Disponível em: https://www.w3schools.com/tags/
ref_httpmethods.asp� Acesso em: 15 abr� 2020�
	INTRODUÇÃO
	INTERNET DAS COISAS
	Introdução ao conceito de internet das coisas
	O que é uma “coisa”?
	Sensor-usuário
	Segurança em Internet das Coisas
	ARQUITETURA ORIENTADA A SERVIÇO
	Stand-Alone
	Cliente-Servidor e web
	Definição de SOA
	O que é serviço?
	Implementações SOA
	MICROSERVIÇOS
	JAVASCRIPT OBJECT NOTATION
	Diferença entre SOA e microsserviço
	NODE-RED E DESENVOLVIMENTO DE APLICAÇÕES
	Primeira aplicação
	Serviço de cálculo matemático
	CONSIDERAÇÕES FINAIS
	Síntese

Mais conteúdos dessa disciplina