Arquiteturas de Sistemas - Fundamentos
- #REST
- #Arquitetura de Sistemas
Fundamentos de Arquitetura de Sistemas
Vantagens e desenvolvimento de Web Services
O que são Web Services
Serviços Web ou Web Services são soluções para aplicações se comunicarem independente de linguagem, softwares e hardwares utilizados.
Inicialmente Serviços Web foram criados para troca de mensagens utilizando a linguagem XML sobre o protocolo HTTP sendo identificado por URI (Uniform Resource Identifier).
Podemos dizer que Serviços Web são API’s que se comunicam por meio de redes sobre o protocolo HTTP.
Vantagens
- Linguagem comum
- Integração
- Reutilização de implementação
- Segurança
- Custos
Principais Tecnologias
- SOAP
- REST
- XML
- JSON
Estrutura SOAP
SOAP
SOAP - Simple Object Access Protocol
É um protocolo baseado em XML para acessar serviços web principalmente por HTTP`.
Pode-se dizer que SOAP é uma definição de como serviços web se comunicam.
Foi desenvolvido para facilitar integração entre aplicações.
Vantagens
- Permite integração entre aplicações, independente de linguagem, pois usa como linguagem comum o XML.
- É independente de plataforma e software.
- Meio de transporte genérico, ou seja, pode ser usado por outros protocolos além do HTTP.
XML
- XML - Extensible Markup Language.
- É uma linguagem de marcação criada na década de 90 pela W3C.
- Facilita a separação de conteúdo.
- Não tem limitação de criação de tags.
- Linguagem comum para interações entre aplicações.
Estrutura SOAP
O “SOAP Message” possui uma estrutura única que deve sempre ser seguida.
SOAP Envelope (tag pai)
SOAP Header
SOAP Body
- SOAP Envelope - é o primeiro elemento de documento e é usado para encapsular toda a mensagem SOAP. (tem como padrão o endereço http w3 e todos os elementos da Header e Body estão encapsulados no Envelope).
- SOAP Header - é o elemento onde possui informações de atributos e metadados de requisição. (exemplo, tokens e credenciais de autenticação).
- SOAP Body - é o elemento que contém os detalhes da mensagem. (todos os atributos de um método).
Entendendo o que é WSDL e XSD
WSDL
- WSDL - Web Services Description Language.
- Usado para descrever Web Services, funciona como um contrato do serviço.
- A descrição é feita em um documento XML, onde é descrito o serviço, especificações de acesso, operações e métodos.
- Exemplo, acesse a página soapclient.com/xml/soapresponder.wsdl e veja um exemplo de wsdl (página completa).
XSD
- XSD - XML Schema Definition.
- É um schema no formato XML usado para definir a estrutura de dados que será validada no XML.
- O XSD funciona como uma documentação de como deve ser montado o SOAP Message (XML) que será enviado através de Web Service.
SoapUI - ferramenta que auxilia na criação de um SOAP Message, com versões gratuita e pago.
Aprenda o que são REST, API e JSON
REST
- REST - Representational State Transfer (Transferência do objeto em determinado estado)
- É um estilo de arquitetura de software que define a implementação de um serviço web (design de arquitetura para serviços web).
- Podem trabalhar com os formatos XML, JSON ou outros.
Vantagens do REST
- Permite integração entre aplicações e também entre cliente e servidor em páginas web e aplicações (Exemplo uma aplicação web desenvolvida em HTML, CSS e JavaScript consumindo serviços do backend desenvolvida em Java).
- Utiliza dos métodos HTTP para definir a operação que está sendo efetuada.
- Arquitetura de fácil compreensão.
Estrutura do REST
1 - CLIENTE requisita um serviço (Requisição HTTP (GET, POST, PUT, DELETE...)).
2 - SERVIDOR retorna um código de operação.
3 - SERVIDOR retorna mensagem (Texto, JSON, XML...).
API
- API - Application Programming Interface.
- São conjuntos de rotinas documentadas e disponibilizados por uma aplicação para que outras aplicações possam consumir suas funcionalidades.
- Ficou popular com o aumento dos serviços web.
- As maiores plataformas de tecnologia disponibilizam APIs para acessos de suas funcionalidades, algumas delas são: Facebook, Twitter, Telegram, WhatsApp, GitHub…
Principais Métodos HTTP
- GET - Solicita a representação de um recurso (buscar uma informação).
- POST - Solicita a criação de um recurso.
- DELETE - Solicita a exclusão de um recurso.
- PUT - Solicita a atualização de um recurso.
JSON
- JSON - JavaScript Object Notation.
- Formatação leve utilizada para troca de mensagens entre sistemas.
- Usa-se de uma estrutura de chave e valor e também de listas ordenadas.
- Um dos formatos mais populares e mais utilizados para troca de mensagens entre sistemas.
Veja sobre integração com REST e métodos HTTP na prática
Código de Estado
- Usado pelo servidor para avisar o cliente sobre o estado da operação solicitada.
- 1xx - Informativo
- 2xx - Sucesso
- 3xx - Redirecionamento
- 4xx - Erro do cliente (quando o cliente colocou uma informação errada ou uma página que não existe).
- 5xx - Erro do Servidor (falha no serviço).
A arquitetura de aplicações móveis e internet das coisas
Conceitos da Internet das Coisas
Objetos do mundo real (coisas) começam a utilizar a rede mundial de internet.
Por que conectar as coisas?
- Embutir sensores em objetos do dia-a-dia.
- Coletar dados dos sensores.
- Usar o dado para tomar decisão.
3 Fases da Internet das Coisas
- Things (coisas) - onde se adiciona os sensores para se coletar dados.
- Cloud(a nuvem) - para processamento e armazenamento dos dados coletados.
- Intelligence (Inteligência) - processo de utilizar todos os dados gerados, se beneficiar e utilizar esses dados de forma inteligente.
Exemplo real de Iot:
- Smart Home - onde tenho diversos sensores em uma casa, exemplo: sensor de temperatura, fechadura digital, sistema de alarme e etc.
- Wearables - são os dispositivos vestíveis, exemplos: os smart watch, são objetos colocados ao nosso corpo e que acabam coletando dados sobre a nossa saúde, hábitos, localização, horários e outros. E que pode trazer benefícios ao nosso cotidiano.
- Agriculture - processos produtivos mais rentáveis, exemplo: sensor para medir a umidade do solo, onde você pode verificar se é preciso aplicar menos ou mais irrigação em uma determinada planta.
- Smart Transportation - os veículos passam a ser agentes que coletam dados de trânsito, exemplo: os carros autônomos da Tesla, que coletam dados de trânsito e conversam com veículos ao seu redor para proteção dos motoristas.
- RFID Supply Chain - cadeia de suprimentos, onde nasceu o RFID, em que você coloca uma etiqueta de radiofrequência em um determinado produto e esse produto passa por determinados escanes de radiofrequência e esse produto é detectado e sabe-se a localização do produto.
- Energy Efficiency - integra dados de fontes geradoras de energia quanto de consumidoras, criando uma rede de informações importantes para uma eficiência energética.
Desafios da Internet das Coisas
1 - Privacidade e Segurança.
2 - Quantidade exponencial de dispositivos conectados na rede.
3 - Ser capaz de processar e armazenar uma enorme quantidade de informações.
4 - Gerar valor a partir dos dados coletados.
Arquitetura da internet das coisas e protocolo de comunicação
Considere esses atributos na escolha para soluções Iot
- Baixo consumo de energia.
- Rede de dados limitado.
- Resiliência.
- Segurança.
- Customização.
- Baixo Custo.
Exemplo de plataforma utilizada:
- Arduino:
- Plataforma de Prototipagem.
- Com entradas/saídas.
- Desenvolvedor escreve em C/C + +.
- Interface serial ou USB.
- Shields.
- Embarcados:
- MCUs
- Microcontrolador de chip único.
- Sistema operacional real time.
- Embarcado.
- Uso industrial, médico, militar, transporte.
- Minicomputadores:
- Raspberry Pi
- Computador completo.
- Hardware integrado em uma única placa.
- Roda SO Linux ou Windows.
- Uso doméstico e comercial.
O protocolo MQTT
Protocolo de comunicação único, o MQTT. É o protocolo que faz a comunicação de um sistema criado em Kotlin(exemplo) e o Cloud (nuvem).
É o servidor intermediário da informação. É ele quem recebe os dados enviados pelos sensores e é nele onde esses dados são tratados e passados adiante.
MQTT
- Base na pilha do TCP/IP.
- Protocolo de mensagem assíncrona (M2M).
- Criado pela IBM para conectar sensores de pipelines de petróleo a satélites.
- Padrão OASIS suportado pelas linguagens de programação mais populares.
Flexibilidade dos tópicos e Cloud
Subscribe
É a capacidade que um client, MQTT, um software ou device tem de se conectar ao Broker e passar a ouvir o Broker.
QoS
Níveis diferentes de qualidade de serviços
QoS 0
- Nível mínimo de menor esforço
- Sem garantia de entrega
- Mensagem não é transmitida
QoS 1
- Garante que a mensagem foi entregue no mínimo uma vez ao recebedor
- Mensagem pode ser retransmitida se não houver confirmação de entrega
QoS 2
- Nível mais alto e caro, mas que tem garantias de que sua mensagem vai chegar
- Garante que a mensagem foi entregue no mínimo uma vez ao recebedor
- Mensagem pode ser retransmitida se não houver confirmação de entrega
Cloud
- Grande e cada vez maior número de devices conectados.
- TBs(Terabytes) ou PBs(Petabytes) de informações.
- Potencial de escala global.
Com intuito de facilitar e ajudar nos estudos dos novos devs aqui. Espero que seja útil.
E se houver algo que tenha errado, por favor deixe seu comentário que ajustarei.
Bons estudos!!!