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