Mind map
SOA, WEB SERVICES, HTTP E REST - Tema de discursivas
Map content
SOA, WEB SERVICES, HTTP E REST - Tema de discursivas
WEB SERVICES
- • Web Services são um conjunto de protocolos e tecnologias que têm como objetivo integrar sistemas heterogêneos • São componentes de aplicativos autocontidos, autodescritos e não proprietários • Utilizam XML para a troca de mensagens padronizadas
- 1. O que são Web Services? Em termos simples, é uma maneira de acesso uma aplicação ou lógica de negócio utilizando protocolos padronizados da internet 2. Web Services realizam apenas chamadas síncronas? Não, um cliente pode invocá-lo de forma síncrona e assíncrona. Possibilitar chamadas assíncronas é a chave para permitir sistemas fracamente acoplados. 3. Web Services são baseados em HTML? Não, eles são baseados em XML (para representação e transporte de dados). Nesse último caso, ele elimina qualquer dependência com rede e sistema operacional. 4. Web Services possuem fraco ou forte acoplamento? Eles são fracamente acoplados. A interface de um serviço web pode mudar durante o tempo sem comprometer a habilidade do cliente de interagir com o serviço.
- Padrões Fundamentais
- SOAP – Simple Object Access Protocol
- Define uma organização para a troca estruturada de dados entre Web Services (Messaging)
- • É o protocolo de encapsulamento e transferência estruturada de dados em formato XML • Via de regra, utiliza HTTP como mecanismo de transporte • Independe de tecnologia ou linguagem de programação • Consiste de três elementos: • Envelope, Cabeçalho e Corpo
- Elementos
- Envelope
- • Elemento-raiz do documento XML: identifica o documento como uma mensagem SOAP • Funciona como um recipiente que contém os demais elementos da mensagem (Header/Body) • Possui como atributos namespace e encodingStyle • É elemento obrigatório na mensagem SOAP
- Cabeçalho (Header)
- • Carrega informações adicionais para a aplicação, como Autenticação, Autorização, assinatura digital, etc. • Define como o receptor deve processar a mensagem • Podem ser definidos vários cabeçalhos • É opcional – caso seja utilizado deve ser o primeiro elemento do envelope
- Corpo (Body)
- • Contém a mensagem SOAP propriamente dita • É obrigatório – capaz de empacotar chamadas RPC, reportar erros, enviar operações • Pode conter um elemento opcional Fault, usado para carregar mensagens de status e erros retornados
- Envelope
- WSDL – Web Services Description Language
- Define como as interfaces (funções, parâmetros, etc.) dos Web Services podem ser representadas
- • Web Services Description Language • Linguagem de descrição de Web Services, baseada em XML, que especifica formas de acesso das operações e métodos disponíveis • Os serviços são descritos como endpoints (portas) que operam em mensagens com informações orientadas a documentos e procedimentos
- • Com a descrição do serviço, a implementação do Web Service pode ser feita em qualquer linguagem de programação • Define um XML Schema para descrever o Web Service • É possível gerar um WSDL a partir de definições de interface escritas em linguagens de programação
- Componentes
- types
- Contém a especificação dos tipos de dados trocados entre o cliente e o Web Service. Por padrão, esses tipos de dados são descritos por meio de um XML Schema
- interface
- Descreve quais operações o Web Service tem, e quais mensagens são trocadas em cada operação (entrada/saída). Também descreve possíveis mensagens de falha (Fault).
- binding
- Descreve como o Web Service é acessado pela rede. Tipicamente, esse elemento associa o Web Service ao protocolo HTTP
- service
- Descreve onde o Web Service pode ser acessado na rede. Tipicamente associa o Web Service a uma URL
- types
- tipos de operação
- One-way
- O Web Service pode receber uma requisição do Cliente, mas não retornará uma resposta.
- Request-Response
- O Web Service pode receber uma requisição do cliente e retornará uma resposta.
- Solicit-response
- O Web Service pode enviar uma requisição ao Cliente e esperará uma resposta
- Notification
- O Web Service pode enviar uma requisição ao Cliente e não esperará uma resposta
- One-way
- UDDI – Universal Description, Discovery and Integration
- Padrão de descobrimento que define como as informações podem ser organizadas
- • Universal Description, Discovery and Integration • Serviço de diretório, baseado em XML, em que é possível registrar e localizar Web Services • Estabelece um padrão de descoberta que define como são as organizadas as informações de descrição dos serviços, permitindo sua descoberta • Possui interfaces para Publicação (Publisher Interface) e Busca (Inquiry Interface)
- Estrutura
- Páginas brancas
- Páginas Brancas contêm informações gerais sobre a organização que está oferecendo o serviço, tais como: nome do negócio e descrição do negócio
- Páginas amarelas
- Páginas Amarelas contêm uma classificação do serviço ou negócio disponíveis baseado em taxonomias padronizadas
- Páginas verdes
- Páginas Verdes contêm informações técnicas sobre como acessar um Web Service
- Páginas brancas
- SOAP – Simple Object Access Protocol
HTTP
- • Hyper Text Transfer Protocol • Protocolo de comunicação utilizado para a transferência de hipertextos • Pode ser integrado a diversos tipos de informação, como imagens, sons e outras mídias acessíveis por hiperlinks • Possui diversas operações (métodos) que vão além da simples solicitação de uma página web
- HTTP – Conexões Seguras • Inicialmente, a Web servia apenas páginas estáticas, mas em pouco tempo vieram transações financeiras, compras de mercadorias, etc. • É necessário ter um caminho seguro para essas transações • SSL (Secure Sockets Layer) surgiu como protocolo criptográfico para a comunicação segura em uma rede de computadores na web
- HTTP – Conexões Seguras (Cont.) • SSL foi sucedido por TLS (Transport Layer Security), e inclui: • Negociação de parâmetros entre cliente e servidor • Autenticação mútua • Comunicação secreta (criptografada) • Proteção e integridade de dados • HTTP sobre TLS/SSL é denominado HTTPS (porta 443)
- Métodos
- Get
- Utilizado para solicitar dados de uma página. No CRUD, ele seria o R(ead).
- Post
- Utilizado para enviar dados para uma página. As informações vão encapsuladas no corpo da requisição, e não na URL. No CRUD, ele seria o C(reate).
- PUT
- Utilizado para enviar dados para uma página. As informações vão encapsuladas no corpo da requisição, e não na URL. No CRUD, ele seria o U(pdate).
- Delete
- Esse método faz exatamente isso: exclui um recurso.. A exemplo do PUT, a permissão e a autenticação têm papel fundamental. Não há garantia de que DELETE seja bem-sucedida, pois – mesmo que o Servidor HTTP Remoto esteja pronto para excluir um recurso – o arquivo subjacente pode ter um modo que impeça o Servidor HTTP de modificá-lo ou excluí-lo. No CRUD, ele seria o D(elete).
- Get
- Cookies
- • HTTP é um protocolo stateless, isto é, ele não sabe que duas requisições pertencem a uma mesma sessão, porque ele não guarda estado • Uma maneira de guardar informações sobre um usuário é armazenar um Cookie no navegador do usuário • Cookie é um pequeno conjunto de dados enviado por um servidor web e armazenado no navegador do usuário • Cookies são um mecanismo para sites se lembrarem de informações dentro de uma sessão
- Cookies – funcionamento e controle de sessão • O servidor web utiliza o campo Set-Cookie do cabeçalho HTTP para passar pares de nome/valor com metadados associados • Na “conversa” entre servidor e cliente, é possível configurar um ID de Sessão para identificar o agente que está na transação
- alguns atributos...
- Secure - Limita o escopo do cookie para somente trafegar em canais seguros (HTTPS) HttpOnly - Limita o escopo do cookie para requisições HTTP somente Expires - Configura uma data de expiração para o cookie (ex: Expires=Wed, 09 Jun 2021 10:18:14 GMT) Max-Age - Configura um tempo para a expiração do cookie, em segundos (ex: Max- Age=60)
REST
- • Representational State Transfer • O desenvolvimento inicial de Web Services foi baseado em padrões com uso de XML (SOAP, WSDL, UDDI, etc.) • Isso permitia desenvolver serviços altamente confiáveis e complexos, com controle de qualidade • O problema é que os padrões de Web Services são considerados “pesados” e muitas vezes ineficientes • Não se adequam bem a desenvolvimento Mobile, por exemplo
- • REST é uma alternativa “leve” para desenvolver serviços web, bem mais simples do que os padrões tradicionais • Não são exclusivamente dependentes de XML • Utilizam operações padrões do protocolo HTTP • Na arquitetura REST, tudo pode ser representado como um Recurso • Recursos são como objetos com operações associadas de Create, Read, Update e Delete
- Princípios
- Cliente/Servidor
- • A responsabilidade deve ser separada entre cliente e servidor. • Cliente se preocupa com interface e experiência com usuário • Servidor faz comunicação com BD, gerenciamento de cache, segurança, etc.
- Stateless
- • A comunicação entre cliente e servidor não deve guardar estado, cada requisição é independente
- Sistema em Camadas
- • Múltiplas camadas hierárquicas, como gateways, firewalls e proxies podem existir entre o cliente e o servidor • O cliente nunca deve chamar diretamente o servidor da aplicação sem antes passar por um intermediador
- Cache
- • Respostas do servidor devem ser declaradas como cacheable ou noncacheable • Isso permite que o cliente armazene em cache as respostas do servidor, reutilizando em requisições posteriores
- Interface Uniforme
- • É um contrato de comunicação entre cliente e servidor, que especifica interfaces claras entre os componentes
- Código sob demanda (opcional)
- • Possibilidade do cliente estender sua funcionalidade por meio de execução de código sob demanda (Javascript, Applets, etc.) • Permite que clientes se comportem de maneira diferente de acordo com a necessidade
- Cliente/Servidor
- Características
- • Uma aplicação RESTful não depende de tecnologia, e visa a ter uma aplicação escalável, visível, confiável e com melhor desempenho • Na prática, a maioria das aplicações RESTful utiliza os recursos da web e protocolo HTTP: • GET, POST, PUT, DELETE, etc.
- Recurso
- • Recurso é qualquer coisa que possa ser manipulada ou acessada – vídeo, imagem, página web, arquivo, etc. • Cada recurso é identificado unicamente por uma URI – Uniform Resource Identifier • Em Web Services o formato de representação da informação é XML • Em REST, um recurso pode ter diversas representações • HTML, JSON, XML, TXT, etc.
- Críticas
- • Quando um serviço REST tem uma interface complexa, não é um recurso simples, pode ser difícil representá-lo • Não há padrões para a descrição de interfaces REST, então os clientes devem confiar em documentações informais • Quando você implementa REST, você deve prover a sua própria infraestrutura para monitorar a qualidade e confiabilidade dos serviços • SOAP-based Services têm vários padrões que ajudam nisso
Images and files in the map
Information
- Description
- Concursos Públicos Engenharia de Software (Web Services) Mind Map on SOA, WEB SERVICES, HTTP E REST - Tema de discursivas, created by Luis Felipe Guariento on 30/11/2021.
- Created by
- Luis Felipe Guariento
- Views
- 0
- Rating