Buscar

Prévia do material em texto

https://t.me/kakashi_copiador
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
https://t.me/kakashi_copiador
Web Services – Perguntas 
Frequentes
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.
https://t.me/kakashi_copiador
Web Services – Padrões Gerais
WS-Reliable Messaging,
WS-Transactions, etc.
https://t.me/kakashi_copiador
Web Services – Padrões 
Fundamentais
❏ SOAP – Simple Object Access Protocol
• De*ne uma organização para a troca estruturada de dados 
entre Web Services (Messaging)
❏ WSDL – Web Services Description Language
• De*ne como as interfaces (funções, parâmetros, etc.) dos 
Web Services podem ser representadas
❏ UDDI – Universal Description, Discovery and Integration
• Padrão de descobrimento que de*ne como as informações 
podem ser organizadas
https://t.me/kakashi_copiador
Web Services – Padrões 
Fundamentais
https://t.me/kakashi_copiador
Exercícios
(CESPE - 2019 - SLU-DF - Analista de Gestão de Resíduos Sólidos 
- Informática) Um web service pode assumir o papel de provedor de 
serviço e de consumidor de serviço.
(CESPE - 2018 - STJ - Técnico Judiciário - Suporte Técnico) Web 
service é uma solução utilizada na integração de sistemas e na 
comunicação entre aplicações diferentes.
(CESPE - 2011 - PREVIC - Analista de Tecnologia da Informação) 
Web Services são sistemas embasados na Web que oferecem serviços 
gerais para aplicações remotas, não requerendo interações imediatas de 
usuários *nais.
https://t.me/kakashi_copiador
https://t.me/kakashi_copiador
SOAP
❏ É 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
https://t.me/kakashi_copiador
SOAP - Envelope
❏ Elemento-raiz do documento XML: identi*ca 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
https://t.me/kakashi_copiador
SOAP – Cabeçalho (Header)
❏ Carrega informações adicionais para a aplicação, 
como Autenticação, Autorização, assinatura digital, 
etc.
❏ De*ne como o receptor deve processar a mensagem
❏ Podem ser de*nidos vários cabeçalhos
❏ É opcional – caso seja utilizado deve ser o primeiro 
elemento do envelope
https://t.me/kakashi_copiador
SOAP – 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
https://t.me/kakashi_copiador
SOAP - Exemplo
https://t.me/kakashi_copiador
Exercícios
(CESPE - 2018 - BNB - Especialista Técnico - Analista de Sistema) 
SOAP utiliza um sistema de mensagens SMTP sobre a camada de 
transporte.
(CESPE - 2018 - STM - Técnico Judiciário - Programação de 
Sistemas) O SOAP é um tipo de modelo de dados XML elaborado para 
facilitar a inserção de campos HTML em páginas web.
(CESPE - 2013 - CNJ - Técnico Judiciário - Programação de 
Sistemas) Uma das formas de comunicação para encapsular dados 
transferidos no formato XML para aplicações serviço web (Webservice) é 
o SOAP (Simple Object Access Protocol).
https://t.me/kakashi_copiador
https://t.me/kakashi_copiador
WSDL
❏ Web Services Description Language
❏ Linguagem de descrição de Web Services, baseada 
em XML, que especi*ca 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
https://t.me/kakashi_copiador
WSDL (Cont.)
❏ Com a descrição do serviço, a implementação do 
Web Service pode ser feita em qualquer linguagem 
de programação
❏ De*ne um XML Schema para descrever o Web 
Service
❏ É possível gerar um WSDL a partir de de*nições de 
interface escritas em linguagens de programação
https://t.me/kakashi_copiador
WSDL 2.0 - Componentes
❏
COMPONENTE DESCRIÇÃO
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
https://t.me/kakashi_copiador
Exemplo
https://t.me/kakashi_copiador
WSDL – Tipos de Operação
TIPO DEFINIÇÃ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
https://t.me/kakashi_copiador
Exercícios
(CESPE - 2015 - TJ-DFT - Analista Judiciário - Analista de 
Sistemas) As linguagens XML e SOAP são utilizadas para descrever os 
tipos e as estruturas de dados em SOA; a linguagem WSDL é utilizada 
para descrever os serviços.
(CESPE - 2015 - STJ - Técnico Judiciário - Tecnologia da 
Informação) A WSDL (Web Services Description Language) permite 
descrever web services em XML, tornando-os disponíveis para usuários e 
programas web.
(CESPE - 2014 - TJ-SE - Analista Judiciário - Análise de Sistemas) 
WSDL, uma linguagem com a mesma sintaxe e semântica da HTML, tem 
por objetivo descrever a forma como deve ser realizada a comunicação 
com Web Services.
https://t.me/kakashi_copiador
https://t.me/kakashi_copiador
UDDI
❏ 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 de*ne 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)
https://t.me/kakashi_copiador
UDDI - Estrutura
❏ 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 contêm uma classi*cação do 
serviço ou negócio disponíveis baseado em 
taxonomias padronizadas
❏ Páginas Verdes contêm informações técnicas sobre 
como acessar um Web Service
https://t.me/kakashi_copiador
UDDI - Estrutura
https://t.me/kakashi_copiador
Exercícios
(FCC - 2019 - TRF - 4ª REGIÃO - Analista Judiciário - Sistemas de 
Tecnologia da Informação) I. De*ne os componentes de uma especi*cação de 
serviço que pode ser usada para descobrir sua existência. Esses componentesincluem informações sobre o provedor de serviço, os serviços fornecidos, o local 
da descrição da interface de serviço e informações sobre os relacionamentos de 
negócios.
II. Padrão de trocas de mensagens que oferece suporte à comunicação entre os 
serviços. De*ne os componentes essenciais e opcionais das mensagens passadas 
entre serviços.
III. Linguagem de de*nição de serviço Web, que é um padrão para a de*nição de 
interface de serviço. De*ne como as operações de serviço (nomes de operação, 
parâmetros e seus tipos) e associações de serviço devem ser de*nidas.
https://t.me/kakashi_copiador
Exercícios
As descrições I, II e III correspondem, correta e respectivamente, a
A) WSDL, UDDI e SOAP.
B) SOAP, WSDL e UDDI.
C) SOAP, UDDI e WSDL.
D) UDDI, WSDL e SOAP.
E) UDDI, SOAP e WSDL.
https://t.me/kakashi_copiador
https://t.me/kakashi_copiador
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
https://t.me/kakashi_copiador
HTTP – Principais Métodos
 
MÉTODO
 
DESCRIÇÃO
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).
https://t.me/kakashi_copiador
HTTP – PUT, POST, GET, 
DELETE
https://t.me/kakashi_copiador
HTTP – GET vs POST
 
 
 
Método GET
 
Método POST
 
Botão 
Voltar/Recarregar
Sem problemas. Dados deverão ser retransmitidos.
Favoritos Pode ser adicionado aos favoritos. Não pode ser adicionado aos 
favoritos.
Cache Pode ser armazenado em Cache. Não pode ser armazenado em 
Cache.
Histórico Parâmetros permanecem no 
histórico do browser.
Parâmetros não permanecem no 
histórico do browser.
Restrições de 
Tamanho
Limitado a 2048 caracteres (enviado 
na URL).
Sem restrições de tamanho.
Restrições de Tipo de 
Dados
Somente caracteres ASCII. Sem restrições de tipo de dados.
Segurança É menos seguro, devido a 
visibilidade.
É mais seguro, devido a visibilidade.
 
https://t.me/kakashi_copiador
HTTP – Conexões Seguras
❏ Inicialmente, a Web servia apenas páginas estáticas, mas em 
pouco tempo vieram transações *nanceiras, compras de 
mercadorias, etc.
❏ É necessário ter um caminho seguro para essas transações
❏ SSL (Secure Sockets Layer) surgiu como protocolo criptográ*co 
para a comunicação segura em uma rede de computadores na 
web
https://t.me/kakashi_copiador
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)
https://t.me/kakashi_copiador
HTTP – 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
https://t.me/kakashi_copiador
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 con*gurar 
um ID de Sessão para identi*car o agente que está na 
transação
https://t.me/kakashi_copiador
Cookies – alguns atributos comuns
 
ATRIBUTO
 
DESCRIÇÃO
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)
https://t.me/kakashi_copiador
Exercícios
(IESES - 2015 - TRE-MA - Técnico Judiciário - Operação de 
Computadores) Das de*nições abaixo sobre cookies, assinale a 
a*rmativa correta.
 
a) O cookie ou cookie HTTP é um aplicativo que quando é executado 
aumenta a segurança do usuário na Internet. 
b) Arquivo gerado pelo servidor WEB que *ca armazenado na máquina 
do usuário e que permite ao servidor buscar informações realizadas pelo 
usuário no site.
 c) Para o servidor WEB gravar no cookie é necessário realizar o 
comando setCookie("nomedocookie"). 
d) O cookie Web é arquivo que *ca armazenado na máquina do usuário e 
que aumenta a performance de navegação na WEB.
https://t.me/kakashi_copiador
https://t.me/kakashi_copiador
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 con*áveis e 
complexos, com controle de qualidade
❏ O problema é que os padrões de Web Services são 
considerados “pesados” e muitas vezes ine*cientes
• Não se adequam bem a desenvolvimento Mobile, por 
exemplo
https://t.me/kakashi_copiador
REST (cont.)
❏ 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
https://t.me/kakashi_copiador
REST - 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
https://t.me/kakashi_copiador
REST – Princípios (Cont.)
❏ Sistema em Camada
• Múltiplas camadas hierárquicas, como gateways, *rewalls 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
https://t.me/kakashi_copiador
REST – Princípios (Cont.)
❏ Interface Uniforme
• É um contrato de comunicação entre cliente e servidor, que 
especi*ca 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
https://t.me/kakashi_copiador
REST - Características
❏ Uma aplicação RESTful não depende de tecnologia, 
e visa a ter uma aplicação escalável, visível, 
con*á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.
https://t.me/kakashi_copiadorREST - Recurso
❏ Recurso é qualquer coisa que possa ser manipulada ou 
acessada – vídeo, imagem, página web, arquivo, etc.
❏ Cada recurso é identi*cado unicamente por uma URI – Uniform 
Resource Identi*er
❏ 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.
https://t.me/kakashi_copiador
REST – Transmissão da 
Informação
https://t.me/kakashi_copiador
SOAP vs REST
 
SOAP
SIMPLE OBJECT ACCESS PROTOCOL
 
 
REST
REPRESENTATIONAL STATE TRANSFER
- É um protocolo de comunicação.
 
- É um estilo arquitetural ou uma técnica de engenharia de 
software.
 
- Utiliza um Envelope (Cabeçalho + Corpo) enviado por 
HTTP (FTP, SMTP, etc.) para transmitir dados.
- Utiliza os recursos oferecidos nativamente pelo HTTP 
(apesar de poder utilizar outros protocolos).
- Suporta somente o formato XML.  - Suporta XML, JSON, YAML, TXT, etc.
- Apresenta desempenho e escalabilidade menor, devido 
ao alto overhead.
- Apresenta desempenho e escalabilidade maior, devido ao 
baixo overhead. 
- Não permite fazer Caching. - Permite fazer Caching. 
 
- JavaScript pode chamar SOAP, mas é difícil de 
implementar.
- JavaScript pode facilmente chamar REST.
 
https://t.me/kakashi_copiador
Exemplo
Acessando um recurso via 
GET…
Resposta 
(JSON)
https://t.me/kakashi_copiador
REST - 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 con*ar em documentações informais
❏ Quando você implementa REST, você deve prover a sua 
própria infraestrutura para monitorar a qualidade e 
con*abilidade dos serviços
• SOAP-based Services têm vários padrões que ajudam nisso
https://t.me/kakashi_copiador
Exercícios
(FCC - 2017 - DPE-RS - Técnico - Informática) REST é frequentemente 
aplicado à web services para acessar serviços na web. Uma das características do 
REST é que 
A) utiliza o protocolo RESP para estabelecer a comunicação entre cliente e 
servidor, utilizando métodos como GET e PUT para acessar o serviço.
B) usa o protocolo SOAP para expor a estrutura do serviço e o método RESTful 
para que os clientes possam acessá-lo.
C) o cliente precisa ter a visão clara de como o servidor recebe e armazena os 
dados, assim como da interface do serviço a ser acessado.
D) é stateless e, por isso, o envio de dados ao servidor deve conter toda a 
informação necessária para ser compreendida.
E) utiliza uma notação HTML especí*ca para transferência de dados, semelhante à 
notação usada na linguagem XHTML.
https://t.me/kakashi_copiador
Exercícios
(FGV - 2018 - AL-RO - Analista Legislativo - Análise e 
Desenvolvimento de Sistemas) O padrão REST de*ne um conjunto de 
restrições e propriedades baseado em HTTP. Sobre REST, analise as 
a*rmativas a seguir.
I. Web services que obedecem ao padrão REST precisam utilizar o 
formato JSON para encapsular os dados da resposta às requisições dos 
sistemas solicitantes.
II. Os métodos GET, POST, PUT e DELETE do protocolo de comunicação 
HTTP são compatíveis com operações CRUD para a persistência de 
dados.
III. O padrão REST pressupõe que requisições de um mesmo sistema 
solicitante são dependentes, permitindo manter o estado de cada 
solicitante durante várias solicitações.
https://t.me/kakashi_copiador
OBRIGADO
Prof. Fernando Pedrosa
https://t.me/kakashi_copiador
https://t.me/kakashi_copiador