Article image
Jucelaine Silva
Jucelaine Silva24/10/2021 21:59
Compartilhe

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!!!

Compartilhe
Comentários (4)
Jucelaine Silva
Jucelaine Silva - 27/10/2021 21:43

Obrigada galera, espero muito que possa ajudar a todos!

William Fernandes
William Fernandes - 25/10/2021 08:48

Parabéns Jucelaine pelo artigo, conteúdo sensacional!

Marcio Santos
Marcio Santos - 25/10/2021 03:11

Obrigado pelo Post.

Com certeza irá me ajudar muito.

DF

Domingos Ferreira - 24/10/2021 22:59

Jucelaine Silva seu material didatico esta bom e sempre bom rever material didatico sempre fica alguma duvida