Escolar Documentos
Profissional Documentos
Cultura Documentos
Autor:
Equipe Informática e TI, Fernando
Pedrosa Lopes , Diego Carvalho
Aula 11
15 de Agosto de 2021
Sumário
Web Services..................................................................................................................................................2
5 – Especificação de Metadados............................................................................................................. 16
REST ............................................................................................................................................................ 30
WEB SERVICES
1 – Conceitos Básicos
Outra definição importante – citada por Heather Kreger – destaca que um Web Service é, na
verdade, uma interface que descreve uma coleção de operações que são acessíveis pela rede
através de mensagens XML padronizadas. Seu uso permite que plataformas heterogêneas de
software e hardware sejam integradas de forma transparente. Vejamos mais definições...
Web Service é a disponibilização de um serviço pela internet que pode ser acessado em qualquer
lugar. Clientes enviam requisições com informações bem definidas e recebem respostas que
podem ser síncronas ou assíncronas. Web Service é essencialmente a interoperabilidade entre
programas e aplicações – especialmente quando eles usam linguagens, ferramentas ou
plataformas diferentes.
Segundo a definição do Gartner, Web Services são componentes de software com baixo fator de
acoplamento, utilizado por meio de padrões de internet. Um Web Service representa uma
função/lógica de negócio ou um serviço que pode ser acessado por uma outra aplicação na
web, sobre redes públicas e, geralmente, disponibilizado por protocolos conhecidos.
A disponibilização de um serviço ocorre por meio de um contrato, que é uma interface que
disponibiliza suas funcionalidades, com uma infraestrutura leve e desacoplada de plataforma
que facilita a integração em diferentes tecnologias. Esta tecnologia possibilita que novas
aplicações possam interagir com aquelas que já existem e que sistemas desenvolvidos em
plataformas diferentes sejam compatíveis.
Não, um cliente pode invocá-lo de forma síncrona ou assíncrona. Possibilitar chamadas assíncronas é a chave
para permitir sistemas fracamente acoplados.
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.
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.
Sim, eles são independentes de plataforma, sistema operacional, arquitetura de processador, linguagem de
programação, entre outros.
Eles possuem granularidade grossa, provendo uma maneira natural de definir serviços que acessam a
quantidade correta de lógica de negócio.
Sommerville afirma que um Web Service é uma instância de uma noção mais geral de um serviço.
A plataforma de serviços web é definida através de uma série de padrões da indústria que são
suportados por toda a comunidade de fornecedores. Esta plataforma pode ser dividida em
duas gerações claramente identificáveis , cada uma associada com um conjunto de normas
e especificações:
1
O WS-I Basic Profile é um conjunto de especificações de serviços da Web não proprietários, juntamente com esclarecimentos e alterações a
essas especificações que promovem a interoperabilidade.
Uma das maiores lacunas de qualidade dos Web Services de Primeira Geração residia nas áreas
de segurança em nível de mensagem, transações entre serviços e mensageria confiável.
Surgiram, então, diversas extensões e especificações para fornecer um conjunto sofisticado
de componentes construídos sobre os Web Services de Primeira Geração – foram chamados
de WS-*.
O WS-* é composto atualmente por diversas especificações: Segurança (Ex: WS-Security, WS-
Trust, WS-Encryption, WS-SecureConversation); Políticas (Ex: WS-Policy, WS-
PolicyAssertions); Processos de Negócio (Ex: WS-CDL, WS-BPEL); entre outros. Galera, são
dezenas de especificações de diversos tipos – não vale a pena ver todos, vamos ver por
curiosidade apenas alguns deles:
Nessa aula, vamos nos ater aos Web Services de Primeira Geração! Utilizar serviços através da
rota dos Web Services basicamente envolve três categorias de participantes: Provedor de
Serviço, Solicitante do Serviço e Agente de Serviço (em inglês, Service Provider, Service
Requester e Service Broker) – basta lembrar do modelo arquitetônico triangular (Find-Bind-
Execute).
Um provedor de serviços seria, por exemplo, uma indústria, negócio ou empresa, capaz de criar
e fornecer serviços baseados em software. Do mesmo modo, um solicitante de serviços seria
uma empresa ou um negócio que gostaria de usar o serviço. Por outro lado, o agente seria um
lugar, entidade ou sistema, que ajuda o solicitante de serviços a descobrir o provedor de serviços.
Sabemos que 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 finais – em geral a
interação é máquina-máquina ou aplicação-aplicação. Além da definição, é bom saber a
descrição dos três padrões fundamentais que possibilitam as comunicações, isso sozinho
resolve uma pancada de questões:
No entanto, vocês verão algumas vezes as provas tratarem serviços apenas aqueles que
implementam SOAP, UDDI e WSDL. Não sejam muito rigorosos com isso...
Trata-se de uma das formas de comunicação para encapsular dados transferidos no formato XML para Web
Services.
Trata-se de um formato, baseado em XML, para intercâmbio de mensagens – é utilizado para realizar o
encapsulamento e o transporte de dados.
Trata-se de um formato para envio e recebimento de mensagens independentemente de plataforma e
tecnologia.
Trata-se de um protocolo baseado em XML que define uma organização para a troca estruturada de dados
entre Web Services.
Um dos motivos que tornam os Web Services atrativos é o fato de estes serem baseados em
tecnologias padrão, em particular XML e HTTP. Eles são comumente utilizados para
disponibilizar serviços interativos na web, podendo ser acessados por outras aplicações. O
SOAP é o protocolo mais comum para troca de mensagens, já que é escrito em XML e
transportado, via de regra, por HTTP.
Entre outras utilizações, SOAP foi desenhado para encapsular e transportar Chamadas RPC
e, para isto, utiliza-se dos recursos e flexibilidade do XML, sob HTTP. Por meio do RPC, pode-
se acessar os serviços de um objeto localizado em um outro ponto da rede, através de uma
chamada local a este objeto. Cada chamada ou requisição exige uma resposta.
Os blocos de cabeçalhos SOAP podem ser processados por nós intermediários SOAP e pelo nó
receptor SOAP final. No entanto, em um aplicativo real, nem sempre cada nó processa cada
bloco de cabeçalhos. Cada nó geralmente é projetado para processar determinados blocos de
cabeçalhos e cada bloco de cabeçalhos é processado por nós específicos.
Nós não dissemos ainda se SOAP é um protocolo Stateful ou Stateless, mas antes de
descobrir, temos que saber o que são esses conceitos. Stateful significa que o servidor
armazena informações sobre o cliente e as utiliza em diversas requisições. Stateless é justamente
o contrário, i.e., o estado do serviço não é persistido entre requisições subsequentes. O HTTP e
o SOAP, por default, são protocolos stateless.
O SOAP, definido pela W3C, consiste basicamente dos elementos descritos abaixo:
▪ Envelope (Envolope):
▪ Cabeçalho (Header):
serviços protegidos por senha. Podem ser definidos vários cabeçalhos. Ele é opcional, mas – caso
seja utilizado – deve ser o primeiro elemento do Envelope. Ele tem três atributos:
mustUnderstand, actor e encodingStyle.
▪ Corpo (Body):
Ele contém o payload, i.e., a mensagem SOAP. Trata-se de um elemento obrigatório que é capaz
de empacotar chamadas RPC, reportar erros, enviar operações UDDI, entre outros. O elemento
Body pode conter um elemento opcional Fault, usado para carregar mensagens de status e
mensagens de erros retornadas pelos nós ao processarem a mensagem. É obrigatório! Vejam
abaixo em negrito cada um desses elementos: Envelope, Header e Body.
<?xml version="1.0"?>
<soap:Envelope
xmlns:soap="http://www.w3.org/2003/05/soap-envelope/"
soap:encodingStyle="http://www.w3.org/2003/05/soap-encoding">
<soap:Header>
<m:Trans xmlns:m="https://www.w3schools.com/transaction/"
soap:mustUnderstand="1">234
</m:Trans>
</soap:Header>
<soap:Body xmlns:m="http://www.example.org/stock">
<m:GetStockPrice>
<m:StockName>IBM</m:StockName>
</m:GetStockPrice>
</soap:Body>
</soap:Envelope>
Trata-se de uma linguagem de descrição de Web Services, escrita em XML, para descrever serviços web,
especificar as formas de acesso, as operações e os métodos disponíveis.
Trata-se de uma linguagem para descrever serviços de rede como endpoints (ou portas) que operam em
mensagens que contêm informações orientadas à documento/procedimento.
Trata-se efetivamente de especificação que define como descrever serviços web em uma gramática XML.
Vocês já pensaram de que forma um cliente de um Web Service sabe qual formato dos métodos a
serem chamados? Quais os parâmetros que devem ser passados? Como se deve processar uma
requisição específica? Para responder essas questões, criou-se uma linguagem para padronizar
as descrições das funcionalidades oferecidas por um Web Service.
Essa linguagem, baseada em XML, é utilizada para descrever um Web Service e deve,
portanto, definir todas as suas interfaces, operações, métodos, esquemas de codificação, portas
de comunicação, protocolos, formatos de mensagens, entre outros, neste documento. Um
documento WSDL define um XML Schema (XSD) para descrever um Web Service.
Tão logo o cliente tenha acesso à descrição do serviço a ser utilizado, a implementação do Web
Service pode ser feita em qualquer linguagem de programação. Normalmente são utilizadas
linguagens construídas para interação com a Web, como Java Servlets ou ASP, que, em seguida,
chamam um outro programa ou objeto.
Quando o cliente deseja enviar uma mensagem para um Web Service, ele obtém a descrição do
serviço (em geral, por meio da localização do documento WSDL no UDDI), e em seguida constrói
a mensagem, passando os tipos de dados de acordo com a definição encontrada no
documento. Em seguida, a mensagem é enviada para o endereço onde o serviço está localizado,
a fim de que possa ser processada.
O Web Service, quando recebe esta mensagem, valida-a conforme as informações contidas
no documento WSDL. A partir daí, o serviço remoto sabe como tratar e processar a mensagem
e como responder ao cliente. O WSDL possui um elemento-raiz do documento chamado
Description, que se trata de um contêiner de duas categorias de alto nível: WSDL 2.0 e Type
System.
O WSDL 2.0 é formado pelos componentes Interface, Binding e Service; já o Type System é
formado pelos componentes Element Declaration e Type Definition. O Element Declarations
é um conjunto de declarações de elementos, como definido por um XML Schema. Já o Type
Esse componente descreve sequências de mensagens que um serviço envia e/ou recebe. Ele o
faz agrupando mensagens relacionadas em operações (é o antigo <portType>). Interface →
Operações → Mensagens
Esse componente descreve o formato de mensagens e protocolos de transmissão que podem
ser usados para definir um endpoint. Ele define detalhes de implementação necessários para
acessar um serviço.
Esse componente descreve um conjunto de endpoints em uma implementação particular do
serviço que é fornecido. Endpoints são lugares alternativos em que serviços são fornecidos.
De acordo com George Coulouris, os documentos WSDL completos podem ser acessados por
meio de seus URIs por clientes e servidores, direta ou indiretamente, por intermédio de um
serviço de diretório como o UDDI. Estão disponíveis ferramentas para gerar definições WSDL
a partir de informações fornecidas por meio de uma interface gráfica com o usuário.
Elas fazem isso ao eliminar a necessidade de envolvimento dos usuários com os detalhes
complexos e com a estrutura do WSDL. As definições WSDL também podem ser geradas a partir
de definições de interface escritas em outras linguagens, como JAX-RPC. Ele não define
características não-funcionais do serviço (Ex: tempo de resposta, escalabilidade, segurança).
Ademais, define quatro tipos de operações:
A operação pode receber uma mensagem, mas não retornará uma resposta.
A operação pode receber uma requisição e retornará uma resposta.
A operação pode enviar uma requisição e esperará por uma resposta.
A operação pode enviar uma mensagem, mas não esperará por uma resposta.
Trata-se de um serviço de diretório, baseado em XML, em que é possível registrar e localizar Web Services.
Trata-se de uma especificação técnica que tem como objetivo descrever, descobrir e integrar Web Services.
Quando se constrói um Web Service, ele deve ser disponibilizado em algum lugar para que seja
acessível por diversas aplicações-cliente. O UDDI é uma especificação técnica para descrever,
descobrir e integrar Web Services (alguns o chamam de protocolo também). Ele contém
informações genéricas sobre a organização que o detém e informações básicas sobre os serviços.
Vocês entenderam?
O UDDI descobre serviços por meio de registries, que são repositórios logicamente centralizados
e fisicamente distribuídos que contêm documentos descritores dos dados do negócio. As
informações capturadas no contexto do UDDI são classificadas em três categorias principais:
Páginas Brancas, Páginas Verdes ou Páginas Amarelas, como mostra a imagem abaixo com
seus respectivos exemplos:
As 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 (de preferência, em diversas
línguas). Utilizando essas informações, é possível encontrar algum serviço sobre o qual já se
pode conhecer algumas informações. Há também informações de contato do negócio (Ex:
Endereço, Telefone, Fax, Identificadores).
As Páginas Verdes contêm informações técnicas sobre como acessar um Web Service. Elas
são utilizadas para indicar os serviços oferecidos por cada negócio, incluindo todas as
informações técnicas envolvidas na interação com o serviço. Em geral, essas informações
incluem um ponteiro para uma especificação externa e um endereço para invocar o serviço.
Pessoal, não confundam uma coisa: WSDL não fica efetivamente no UDDI, mas lá existem
referências para ele! Ok? A UDDI 3.0.2 (versão mais recente) possui um Modelo de Informação
Estruturada: Core Data Structure. Ele é composto por uma estrutura hierárquica formada por:
Entidade de Negócio (Business Entity), Serviço de Negócio (Business Service), Template de
Ligação (Binding Template) e tModel.
O Business Entity representa o provedor de Web Services. Essa estrutura contém informações
sobre a organização, incluindo informações de contato, categorias de indústria, identificadores
de negócio e uma lista de serviços fornecidos. O Business Service representa um Web Service
individual fornecido por uma entidade de negócio – define tipo de serviço, conexão,
categorias, entre outros.
O Binding Template é um conjunto de descrições técnicas dos Web Services representados por
uma estrutura de serviços de negócio – ele indica, por exemplo, como se conecta ao serviço. Por
fim, o tModel representa um modelo técnico, i.e., uma maneira de descrever os vários
negócios, serviços, estruturas de template e informações externas (Ex: WSDL) armazenados
dentro de um Registro UDDI.
5 – Especificação de Metadados
Recentemente, com o surgimento dos periódicos eletrônicos, esse problema ainda persiste,
pois muitos só oferecem acesso aos artigos mediante pagamento. A cada dia, surgem
bibliotecas digitais e bases de dados públicas que constituem importante fonte de informação
para pesquisadores. O problema é o tempo que se gasta para reunir informações relevantes a um
dado assunto de pesquisa.
Seja visitando diversos portais de bibliotecas virtuais, seja utilizando a busca convencional
oferecida por sites como Google, Bing, entre outros. A pesquisa através de portais de busca
tradicionais é imprecisa e atinge apenas as páginas HTML, ignorando as bases de dados que se
encontram por trás de algumas destas páginas.
Por outro lado, ao tentar divulgar seus trabalhos através dos periódicos, em busca do impacto de
suas pesquisas, os pesquisadores esbarram em um processo burocrático e demorado, em que,
desde a submissão até a publicação, devido à lenta arbitragem que por vezes ocorre, pode
haver um intervalo de tempo tão longo que os efeitos daquela pesquisa já não tenham valor
quando de sua publicação.
Com a evolução da Internet, várias bibliotecas digitais começaram a surgir – algumas com a
finalidade de expor a produção de teses e dissertações das grandes universidades. Tudo isso
resultou em um grande avanço, em que informações científicas e acadêmicas já poderiam ser
obtidas livremente pela Internet, e disponibilizadas através da publicação nas páginas de seus
autores.
Com os recursos oferecidos pela iniciativa, é possível melhorar significativamente a precisão das
consultas eletrônicas e reduzir o tempo de procura, graças ao compartilhamento de informações
(metadados) entre os participantes da iniciativa. A interoperabilidade entre bases de dados
tem o objetivo de promover o acesso simultâneo aos dados contidos nestes repositórios de
forma a maximizar a pesquisa.
O protocolo OAI-PMH (Open Archives Initiative Protocol for Metadata Harvesting) vem se
consolidando como a base para a interoperabilidade entre bibliotecas e repositórios digitais
acadêmicos e científicos no mundo todo. Através do OAI-PMH, é possível proporcionar
visibilidade e integração de informações (metadados), com custos acessíveis à realidade de
países em desenvolvimento, como o Brasil.
Então, vamos lá! Em 1999, surgiu a Open Archives Initiative (OAI), que buscava desenvolver e
promover soluções de interoperabilidade que facilitassem uma disseminação eficiente de
conteúdo. Para tal, foi criado um protocolo aberto, independente de conteúdo, chamado
OAI-PMH que faz com que participantes da iniciativa possam compartilhar seus metadados.
Lembrando que metadados são dados sobre dados, isto é, informações que descrevem
informações dos registros dos repositórios (similar a um dicionário) – no caso, documentos
eletrônicos. Para tal, ele segue um padrão que contém, entre outros, título, autor, resumo,
palavras-chaves, etc. Os participantes da Iniciativa são divididos em Provedores de Dados (DP) e
Provedores de Serviços (SP).
O Harvesting (ou Colheita Automática de Metadados) é uma técnica ou processo unilateral para
extrair metadados de repositórios individuais e colocá-los em um catálogo central. Esse
processo é baseado nos metadados produzidos por humanos ou por processos
completamente automáticos ou semiautomáticos suportados por software. Bacana?
Provedores de Serviços (SP) realizam periodicamente uma busca a Provedores de Dados (DP) –
registrados em uma lista na OAI – para colher metadados para exibição sob a forma de consultas
efetuadas pelos usuários. Essa busca pode ser geral ou baseada em alguns critérios, tais como
Date-Based (baseados em data) ou Set-Based (baseados em conjuntos).
Na Federation, o usuário faz uma requisição síncrona a um repositório central (representado por
uma Biblioteca Digital) e espera a resposta. O repositório faz diversas requisições a outros
repositórios remotos e as respostas retornam para o repositório central onde são
consolidadas e devolvidas para o usuário. Bacana? Agora vamos ver como funciona a outra
abordagem.
Como a busca é executada em uma cópia local dos metadados, resultados podem ser
retornados com baixíssima latência. Além disso, como o harvesting é feito periodicamente,
mesmo que qualquer biblioteca esteja indisponível, ainda é possível buscar seus metadados.
Quanto à especificação de web services, existem diversas categorias de especificações
diferentes.
Estas especificações estão em diferentes graus de maturidade e são mantidas ou apoiadas por
vários órgãos e entidades de normatização. Esta variedade de especificações é a estrutura básica
de web services estabelecido pelos padrões de primeira geração representada por WSDL, SOAP
e UDDI. As especificações podem se complementar, se sobrepor e competir umas com as
outras.
Permite que web services utilizem XML para advertir sobre suas políticas (de
qualidade, segurança, etc) e também para que clientes possam especificar suas
políticas.
Especifica como integridade e confidencialidade podem ser aplicadas em
mensagens e permitir a comunicação com vários formatos de token de segurança.
6 – WS-Security (WSS)
Vamos lá! Pensem comigo: eu falei alguma vez sobre segurança de Web Services? Não, porque o
Protocolo SOAP não prevê a proteção de mensagens, deixando essa tarefa para
especificações estendidas! Ora, mas SOAP é um protocolo que roda (na maioria dos casos2) sobre
o protocolo HTTP! É verdade, você tem razão! Ele é utilizado para troca de mensagens entre dois
nós.
Você pode me perguntar: Professor, por que não é utilizado o Protocolo HTTPS para garantir mais
segurança para Web Services? Faz muito sentido a sua pergunta! Ora, o Protocolo SSL/TLS é
capaz de fornecer diversos mecanismos de segurança. No entanto, ele funciona bem para
fornecer segurança em comunicação ponto-a-ponto, e nós precisamos de segurança em
comunicação fim-a-fim. Bacana?
2
Eventualmente, pode rodar sobre outros protocolos (tais como: JMS e SMTP).
7 – Protocolo HTTP
A primeira coisa que vocês podem me perguntar é: professor, isso não é uma disciplina de Redes
de Computadores? Sim, você está certo! No entanto, nosso intuito aqui é dar uma visão muito
mais restrita, sob a perspectiva de desenvolvimento de sistemas. O Protocolo HTTP (HyperText
Transfer Protocol) é um protocolo de comunicação utilizado para transferência de
hipertextos.
O que seria um hipertexto? Trata-se de um texto que pode ser integrado a diversas outras
formas de informação, como imagens, sons e outras mídias, acessíveis por meio de
hiperlinks. Dito isso, o que importa de fato para o desenvolvimento de sistemas? Bem, esse
protocolo define oito métodos (ou verbos), que nós veremos em mais detalhes mais à frente.
Embora tenha sido projetado para utilização na Web, o protocolo foi criado de modo mais geral
que o necessário, visando às futuras aplicações orientadas a objetos. Por essa razão, são aceitas
essas operações chamadas Métodos, diferentes da simples solicitação de uma página da
web. Essa generalidade permitiu que o Protocolo SOAP viesse a existir.
Cada solicitação consiste em uma ou mais linhas de texto ASCII, sendo a primeira palavra da
primeira linha o nome do método solicitado – os métodos internos estão listados abaixo. Para
acessar objetos gerais, também podem estar disponíveis métodos adicionais específicos de
objetos. Os nomes diferenciam letras maiúsculas de minúsculas; portanto, GET é um método
válido, mas get não é.
Esse método solicita ao servidor que envie uma página (ou um objeto, no caso mais genérico; na
prática, apenas um arquivo). A grande maioria das solicitações a servidores da web tem a forma de
métodos GET. No CRUD, ele seria o R(ead).
Esse método solicita apenas o cabeçalho da mensagem, sem a página propriamente dita. Esse
método pode ser usado para se obter a data da última modificação feita na página, para reunir
informações destinadas à indexação, ou apenas para testar a validade de uma URL.
Esse método é o inverso do GET, i.e., em vez de ler, ele grava a página. Esse método possibilita a
criação de um conjunto de páginas da web em um servidor remoto – o corpo da solicitação contém
a página. No CRUD, ele seria o U(pdate).
Esse método é semelhante ao PUT – porque também transporta um URL –, no entanto, em vez de
substituir os dados existentes, os novos dados são "anexados" a ele, em um sentido mais genérico.
No CRUD, ele seria o C(reate).
1
Esse método faz exatamente isso: exclui uma página. 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 a página – 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).
Esse método serve para depuração. Ele instrui o servidor a enviar de volta a solicitação. Ele é útil
quando as solicitações não estão sendo processadas corretamente e o cliente deseja saber qual
solicitação o servidor, de fato, recebeu.
Esse método não é utilizado atualmente – ele é reservado para uso futuro.
Esse método fornece um meio para que o cliente consulte o servidor sobre suas propriedades ou
sobre as propriedades de um arquivo específico.
Esse método é bastante parecido com o PUT. No entanto, ele é utilizado para atualizar registros
parcialmente, enquanto o PUT atualiza o registro como um todo.
Galera, se chegar uma URL para o Servidor HTTP requisitando um serviço, o que ele fará? Ora, isso
depende do método utilizado! Quando chega a requisição, o servidor sempre implementará ao
menos dois métodos: HEAD e GET. Nosso interesse é no Método GET: ele é responsável por
solicitar recursos a um Servidor HTTP! Que recurso, professor? Pode ser qualquer coisa:
arquivos, scripts, etc.
Imagine que você faça a requisição acima! O que vem após a interrogação indica o início dos
dados passados através da URL, i.e., pelo Método GET! Observem o seguinte: eu requisitei
algum dado (arquivo, imagem, sons, etc) e para tal eu enviei algumas informações (aquilo após
Vocês percebem como isso é perigoso? Viram que a minha senha está visível? Ela fica visível na URL!
Deiltel já dizia: Uma solicitação get não deve ser utilizada para enviar dados sigilosos porque
os dados do formulário são colocados em uma string de consulta que é acrescentada ao URL
do navegador como texto simples e pode ser interceptada. Lembrando que, por padrão, é
utilizado o GET.
Para resolver esse problema, eu posso utilizar o POST. Ele funciona de modo bastante similar,
entretanto os dados são colocados no corpo da requisição e não aparece diretamente na URL!
Melhor, não? Só isso? Não! GET é utilizado para recuperar informações (em geral, poucas); POST
é utilizado para enviar informações (em geral, muitas – por meio de formulário). Vamos ver
outras diferenças: 9
Pode ser adicionado aos favoritos. Não pode ser adicionado aos favoritos.
Agora, vamos examinar como as conexões seguras podem ser alcançadas. Quando a web
repentinamente chegou ao público, ela foi usada no início apenas para distribuir páginas
estáticas, mas – em pouco tempo – algumas empresas tiveram a ideia de usá-la para transações
financeiras, como a compra de mercadorias por cartões de crédito; transações bancárias e
mercado de capitais eletrônico.
Essas aplicações criaram uma demanda por conexões seguras. Em 1995, a Netscape, que então
dominava o mercado de fabricantes de navegadores, respondeu introduzindo um pacote de
segurança chamado SSL (Secure Sockets Layer) para atender a essa demanda. Esse software
e seu protocolo agora também são amplamente utilizados por diversos navegadores.
A SSL constrói uma conexão segura entre dois soquetes, incluindo: negociação de parâmetros
entre cliente e servidor; autenticação mútua de cliente e servidor; comunicação secreta; e
proteção da integridade dos dados. Efetivamente, trata-se de uma nova camada colocada
entre a camada de aplicação e a camada de transporte, aceitando solicitações do navegador
e enviando-as para o servidor.
Por fim, vamos falar rapidamente sobre Idempotência. Méquié, professor? Um Método HTTP
idempotente é aquele que pode ser chamado muitas vezes sem resultados diferentes. Não
importa se o método for chamado apenas uma vez, ou dez vezes mais, o resultado deve ser o
mesmo! Mais uma vez, isso se aplica apenas ao resultado e não ao próprio recurso. Vamos ver
um exemplo bastante simples:
a = 4;
Eu posso executar esse comando 800 vezes e eu vou obter sempre o mesmo resultado – ele é
idempotente. Agora vejam o exemplo abaixo:
a++;
O resultado será sempre diferente: 5, 6, 7, etc – ele não é idempotente. Dito isso, nós
podemos imaginar quais Métodos HTTP são idempotentes:
SIM
NÃO
SIM
SIM
SIM
SIM
NÃO
Ué, professor! Por que o POST não é idempotente? Porque cada vez que eu insiro algum dado em
uma tabela, por exemplo, por meio do POST, eu aumento o tamanho dessa tabela, logo o
resultado não é sempre o mesmo. E quando o resultado não é sempre o mesmo, nós sabemos
que não se trata de um método o quê? Idempotente! Certinho?
SIM
NÃO
NÃO
NÃO
SIM
SIM
NÃO
A tabelinha acima mostra também os métodos que são seguros. O que é segurança nesse
contexto, galera? Um método é considerado seguro se ele não modifica os recursos. Logo,
POST, PUT, DELETE e PATCH são inseguros, visto que os recursos são modificados após a
execução desses métodos. Já GET, HEAD e OPTIONS são seguros, visto que não modificam os
recursos.
Sabemos que HTTP é um protocolo Stateless! Isso quer dizer que o Servidor Web, somente com
o que oferece nativamente o HTTP, não sabe se sua requisição de agora e outra daqui a 10s são
pertencentes a mesma sessão ou não. Então, como sempre que entro no Facebook, ele sabe meu
nome? Quando entro num site e parece que estava logado, mesmo eu tendo acabado de ligar o
computador?
Uma forma de trabalhar com dados stateful é justamente utilizar informações armazenadas em
cookies. O cookie HTTP, também chamado de cookie web, cookie de Internet, cookie de
A especificação de como os cookies funcionam foi publicada como a RFC 6265 e será nossa
grande fonte de informações (somente aquilo que é cobrado nos concursos, obviamente). Os
cookies foram criados como um mecanismo para sites se lembrarem de informações dentro
de uma sessão (Ex: como os itens num carrinho de compras).
Quer outro exemplo? Para armazenar as atividades de navegação do usuário (incluindo cliques
num determinado botão, ação de logar, quais páginas visitou no passado). Os dados
informados em preenchimento de formulários (endereços, senhas e até cartões de crédito)
também podem ser armazenados em cookies para utilização do servidor web.
O Servidor Web utiliza o campo Set-Cookie do cabeçalho HTTP para passar pares de
nome/valor com metadados associados (chamados cookies) para um User Agent
(navegadores em desktops, em celulares, etc). Quando o usuário envia requisições
subsequentes para o servidor, o seu User Agent utiliza os metadados e outras informações para
avaliar se envia ou não os pares nome/valor de volta ao servidor.
Por meio do campo Set-Cookie do cabeçalho um servidor pode enviar ao user agent uma
pequena string dentro da resposta HTTP para identificar, por exemplo, um identificador de
sessão, ou SID. Para identificar as próximas requisições como sendo daquela sessão, o usuário
(user agent) envia o SID com o mesmo identificador. Por exemplo:
Set-Cookie: SID=31d4d96e407aad42
Cookie: SID=31d4d96e407aad42
O servidor pode alterar o escopo do cookie para informar que o usuário pode enviar a resposta à
solicitação de cookie para todos as URLs de um certo subdomínio, ex:
Cookie: SID=31d4d96e407aad42
O servidor pode armazenas inúmeros cookies na máquina do usuário. Ele pode, por exemplo,
armazenar um identificador de sessão bem como o idioma do usuário.
Para isso, basta que envie dois campos Set-Cookie no cabeçalho HTTP. Percebam que o
cabeçalho define dois cookies, um com um identificador de sessão e outro que define o idioma e
o domínio para resposta do User Agent. O atributo Secure limita o escopo do cookie para
somente trafegar em canais seguros (o mais comum é usar o HTTP sobre Transport Layer
Security - TLS).
Apesar do atributo, é possível que um hacker ativo na rede corrompa a integridade do cookie. Já
o atributo HttpOnly limita o escopo do cookie para requisições HTTP somente. Caso o
servidor queira que o User Agent armazene o cookie por mais de uma sessão, ele pode especificar
uma data de expiração a partir do atributo Expires. Entendido isso?
Nada impede que o usuário delete o cookie antes da data de expiração manualmente ou pelo
descarte do navegador por chegar a um limite de cookies:
Finalmente, para remover um cookie, o servidor deve enviar o Set-Cookie com uma data de
expiração no passado. A remoção só funciona se os atributos Path e Domain forem iguais aos
definidos no momento da criação do cookie.
Cookie: SID=31d4d96e407aad42
Além do atributo Expires, existe o atributo Max-Age que indica quanto tempo deve durar a
vida de um cookie. Sim, você pode controlar isso! Claro que, mais uma vez, isso depende da
“boa vontade” do User Agent de manter esse cookie até o fim. Nem todos os User Agents
suportam esse atributo e, nesse caso, simplesmente a ignoram. Tranquilo?
Vocês já devem ter visto bastante os navegadores web que perguntam se você deseja salvar os
cookies, que podem ser utilizados de forma invasiva por hackers, sim? Pois é, o servidor envia o
cabeçalho Set-Cookie, mas o usuário pode simplesmente ignorar! Sai fora que não quero meus
dados de navegação indo para seu servidor, e minha privacidade?! ;)
REST
1 – Conceitos Básicos
O SOA tem seu nome utilizado de maneira bastante errada, eu imagino que isso ocorra devido
ao fato de que muitos ainda fazem uma forte associação entre o conceito abstrato e alto nível de
SOA e a tecnologia de Web Services, que – inicialmente – tornou-se a maneira mais popular de
implementá-lo. Percebam que muitas discussões na internet falam sobre "REST vs SOA"3.
Ora, isso é como comparar maçãs com laranjas! Por isso, vamos dar um passo atrás e olhar
para a motivação original do SOA. Em praticamente qualquer empresa, muitos sistemas
individuais compõem o cenário completo de TI. Eles rodam em diversas tecnologias e foram
construídos usando ferramentas diferentes. Alguns foram adquiridos de fornecedores
comerciais, outros foram desenvolvidos, etc.
Depois de um curto período de tempo, você vai querer conectá-los, porque obviamente há
muito valor em fazê-lo. É possível fazer isso de uma maneira ponto-a-ponto: a exportação de
alguns dados aqui, periodicamente importá-lo de lá; por meio de arquivos; bancos de dados
compartilhados; ou soluções de integração individuais. Essas soluções, em geral, levarão a uma
situação frágil e incontrolável.
Utilizar um middleware de integração centralizado não é uma boa solução (será um gargalo),
embora – em primeiro lugar - possa parecer tentador! Você se torna dependente do único
fornecedor, que pode ser comprado por outra organização, sair do negócio, ou tornar-se legado
após mesclar com um concorrente que tenha comprado outro produto deste tipo mais
recentemente.
Então, o que você faz em vez disso? Você trata o problema de uma forma razoável. Como?
Reduzindo a quantidade de esforço para integrar os sistemas individuais, limitando a quantidade
de diferentes tecnologias utilizadas na camada de interface, escolhendo uma boa interface de
abstração, e – principalmente - modularizando as grandes aplicações em pequenos pedaços.
E essa é a essência da arquitetura orientada a serviços: uma arquitetura de software que não é
aplicada a um sistema individual, mas a um conjunto de sistemas dentro de uma
organização; concentrando-se em interfaces e, não, em implementação; padronizando o que
for necessário para garantir uma comunicação fácil e um reúso casual, mas nada mais.
Bacana! Essa é a motivação do SOA! Nós vimos que é possível comunicar sistemas diferentes
de várias formas e que uma delas é por meio serviços. Você quer dizer Web Service, professor?
3
Uma comparação mais adequada seria entre os estilos: REST x WS-*.
Bem, não necessariamente! Você pode implementar serviços com outras tecnologias (Ex:
CORBA ou DCOM), mas – de fato – a implementação mais comum é por meio de Web Services.
É importante que vocês saibam que REST é diferente de SOA! Qual a diferença? SOA é uma
arquitetura e REST é um estilo arquitetural 4. E tem diferença, professor? Sim, meus caros! A
arquitetura é neutra; já o estilo arquitetural, não. REST pode ser visto como o fornecimento de
uma implementação de serviços com requisitos de design específicos para determinadas
tecnologias e arquiteturas.
O SOA pode ser visto como o fornecimento de uma abordagem tecnologicamente neutra ao
design de serviços que pode ser aplicada a um grande número de implementações, incluindo
Web Services e REST. Cada implementação possui sua coleção única de tecnologias, requisitos
de design, e artefatos/propriedades arquiteturais, algumas das quais suportam diferentes
princípios em diferentes níveis.
Grosso modo, podemos comparar com a arte! Se procurarmos a definição de arquitetura, vamos
encontrar: “(...) refere-se tanto ao processo quanto ao produto de projetar e edificar o ambiente
habitado pelo ser humano”. Percebam que não há limitações ou restrições, trata-se de um
conceito bastante amplo. E o que ocorre se procurarmos a definição de estilo arquitetural?
4
Muitas questões ainda afirmam que REST é uma arquitetura! Apesar de não estar completamente correto, não marquem errado apenas por
conta disso.
Responsabilidades devem ser separadas entre clientes e servidores. Isso permite que os
componentes do cliente e do servidor evoluam de forma independente e, por sua vez,
permite que o sistema seja escalável. Em outras palavras, busca-se separar a arquitetura e
responsabilidades em dois ambientes.
Dessa forma, o cliente não se preocupa com tarefas do tipo: comunicação com banco de
dados, gerenciamento de cache, log, etc; e o contrário também é válido, o servidor não se
preocupa com tarefas como: interface, experiência do usuário, etc. Permitindo, assim, a
evolução independente das duas arquiteturas.
A comunicação entre cliente e servidor deve ser stateless. O servidor não precisa lembrar o
estado do cliente. Em vez disso, os clientes devem incluir todas as informações necessárias
na requisição para que o servidor possa entendê-la e processá-la.
Em outras palavras, um mesmo cliente pode mandar várias requisições para o servidor,
porém cada uma delas deve ser independente, ou seja, toda requisição deve conter todas
as informações necessárias para que o servidor consiga entendê-la e processá-la
adequadamente (qualquer informação de estado deve ficar no cliente).
Múltiplas camadas hierárquicas, como gateways, firewalls e proxies podem existir entre o
cliente e o servidor. As camadas podem ser adicionadas, modificadas, reordenadas, ou
removidas de forma transparente para melhorar a escalabilidade – deve ser fácil, então,
manipular camadas (tornando o sistema mais flexível).
O cliente nunca deve chamar diretamente o servidor da aplicação sem antes passar por um
intermediador (Ex: Balanceador de Carga). Isso garante que o cliente se preocupe apenas
com a comunicação com o intermediador e o intermediador fique responsável por distribuir
as requisições aos servidores.
Isso significa que, quando um primeiro cliente solicita um determinado recurso ao servidor,
esse processa a requisição e o cliente a armazena temporariamente em cache. Quando
houver uma nova requisição, a resposta armazenada já está pronta para ser utilizada.
É basicamente um contrato para comunicação entre cliente e servidor. São regras para
fazer um componente o mais genérico possível, tornando-o muito mais fácil de ser
refatorado e melhorado. Obedece a quatro princípios: identificação de recursos;
representação de recursos; respostas auto-explicativas; e hypermídia.
Esse princípio é opcional, na medida em que não faz parte da arquitetura em si. Ele trata da
possibilidade de clientes poderem estender suas funcionalidades através do download e
execução do código sob demanda. Exemplos incluem scripts Javascript, Applets Java,
Silverlight, e assim por diante.
Em outras palavras, permite que o cliente possa executar algum código sob demanda, ou
seja, estender parte da lógica do servidor para o cliente, seja através de applets ou scripts.
Assim, diferentes clientes podem se comportar de maneiras específicas mesmo que
utilizando exatamente os mesmos serviços providos pelo servidor.
Aplicações que sigam essas restrições são consideradas Aplicações RESTful. Como vocês
devem ter notado, essas restrições não ditam a tecnologia a ser utilizada para o desenvolvimento
das aplicações. Em vez disso, a adesão a estas orientações e melhores práticas oferece a
oportunidade de uma aplicação escalável, visível, portátil, confiável e capaz de performar
melhor.
Em teoria, é possível que uma aplicação RESTful seja construída utilizando qualquer
infraestrutura de rede ou protocolo de transporte. Na prática, aplicações RESTful levam
vantagem ao utilizar características e recursos da web e o protocolo HTTP (e seus
métodos/verbos: GET, POST, PUT, DELETE5). Grosso modo, esses métodos servem
respectivamente para recuperar, inserir, atualizar e deletar um recurso.
Por exemplo, em um aplicativo de comércio eletrônico, o cliente pode fazer um pedido para
qualquer número de produtos. Neste cenário, os recursos de produtos estão relacionados com
o recurso de pedido correspondente. É também possível que recursos sejam agrupados em
conjuntos. Usando o mesmo exemplo de comércio eletrônico, uma ordem é uma coleção de
recursos individuais de pedidos.
5
O Protocolo HTTP possui diversos métodos (GET, POST, PUT, DELETE, OPTIONS, TRACE, HEAD, CONNECT), no entanto os quatro tem maior
relevância em nosso contexto.
E o que é uma URI? Trata-se do Uniform Resource Identifier, que nada mais é que uma string
de caracteres utilizada para identificar unicamente um recurso. Vocês já devem conhecer a
URL (Uniform Resource Locator) – trata-se de uma URI que, além de identificar um recurso da
web, também é capaz de localizá-lo (basta lembrar de endereços de sites). No REST, todo
recurso contém um identificador.
Já que entramos nesse assunto, vamos falar um pouco sobre WS-* (JAX-WS) e REST (JAX-RS).
Em sua implementação tradicional, desenvolvem-se Web Services utilizando o Protocolo
SOAP e, em geral, com a Linguagem XML – no Java, essa especificação foi denominada JAX-
WS (Java API for XML Web Services), presente a partir do Java EE 5. Tudo certo até aqui?
Na imagem acima, podemos ver REST e SOAP! No primeiro caso, se você quiser enviar uma
mensagem a alguém que está em outra cidade, você pode simplesmente subir no cavalo
(HTTP) e cavalgar! Simples assim... agora vejam o SOAP! Para você enviar a mesma mensagem,
você precisa de vários cavalos e uma carruagem imensa e pesada que envolve a mensagem.
Observem outra diferença importante! No SOAP, existe uma especificação que deve ser seguida
para todas as requisições/respostas – trata-se do WSDL. No REST, não existia nenhuma
especificação. Hoje em dia, podemos utilizar o WSDL2 ou WADL para descrever um serviço.
Bacana? Agora percebam a complexidade que é enviar uma mensagem no SOAP x REST! Vejam
o overhead que traz o envelope...
JavaScript pode chamar SOAP, mas é difícil de JavaScript pode facilmente chamar REST.
implementar.
QUESTÕES COMENTADAS
services
1. (CESPE - 2013 - CNJ) 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).
Comentários:
Trata-se de uma das formas de comunicação para encapsular dados transferidos no formato XML para Web
Services.
Ele realmente é uma forma de comunicação – dado que é um protocolo – para encapsular dados
transferidos no formato XML para aplicações web services.
Gabarito: Correto
2. (CESPE - 2013 - CNJ) A linguagem WSDL é utilizada para descrever web services limitadas ao
tipo request-response.
Comentários:
A operação pode receber uma mensagem, mas não retornará uma resposta.
A operação pode receber uma requisição e retornará uma resposta.
Não está limitada ao tipo request-response – existem quatri tipos diferentes de operações.
Gabarito: Errado
3. (CESPE - 2013 - CNJ) Nos registros de negócio UDDI, a descrição da forma de acesso aos web
services é um procedimento contido nas páginas verdes (green pages).
Comentários:
As Páginas Verdes contêm informações técnicas sobre como acessar um Web Service. Elas são
utilizadas para indicar os serviços oferecidos por cada negócio, incluindo todas as informações
técnicas envolvidas na interação com o serviço. Em geral, essas informações incluem um ponteiro
para uma especificação externa e um endereço para invocar o serviço.
Elas contêm descrições técnicas sobre as formas de acesso aos web services.
Gabarito: Correto
4. (CESPE - 2013 - TRE-MS) No que se refere a SOA e webservices, assinale a opção correta.
a) O WS-Security propõe uma série de extensões para aprimorar a segurança dos web
services no UDDI e no WSDL. Por questão de compatibilidade, essas extensões não afetam
os cabeçalhos do envelope SOAP.
c) WSDL é descrito em formato XML e tem por única função descrever os valores e formatos
dos dados que serão intercambiados entre os sistemas.
Comentários:
(a) Não é tema dessa aula, mas o erro desse item é afirmar que ele aprimora segurança no UDDI
e WSDL, quando ele aprimora a segunrança do SOAP.
(b) UDDI é realmente um serviço de diretório em que é possível registrar e localizar Web Services.
É uma linguagem de descrição de Web Services, escrita em XML, para descrever serviços web, especificar as
formas de acesso, as operações e os métodos disponíveis.
(c) Ele descreve o serviço, especifica como acessá-los e seus métodos e operações disponíveis.
Nós não dissemos ainda se SOAP é um protocolo Stateful ou Stateless, mas antes de descobrir,
temos que saber o que são esses conceitos. Stateful significa que o servidor armazena informações
sobre o cliente e as utiliza em diversas requisições. Stateless é justamente o contrário, i.e., o estado
do serviço não é persistido entre requisições subsequentes. O HTTP e o SOAP, por default, são
protocolos stateless.
(d) SOAP é – por default – stateless. Além disso, a questão escreveu statefull, em vez de stateful.
Ele realmente é independente de sistema operacional, mas pode realizar trocas de mensagens
de diversas maneiras – sendo o tipo Request-Response muito mais comum que o tipo One-Way.
Agora que já sabemos o que é uma arquitetura e o que é um serviço, podemos juntá-los! A OASIS6
define Arquitetura Orientada a Serviços como um paradigma para organização e utilização de
recursos distribuídos que estão sob o controle de diferentes domínios proprietários, permitindo
que funcionalidades implementadas sejam disponibilizadas na forma de serviços fracamente
acoplados.
(e) Não é uma arquitetura de desenvolvimento – é uma arquitetura corporativa. Além disso,
serviços devem ser fracamente acoplados.
Gabarito: Letra B
5. (CESPE - 2011 - MEC) O UDDI (Universal Description Discovery and Integration), que
corresponde a um registro de web services, é dividido em páginas brancas, amarelas e verdes,
nas quais são prestadas aos clientes informações sobre a empresa, os serviços por ela
oferecidos e as especificações WSDL desses serviços.
Comentários:
6
OASIS (Organization for the Advancement of Structured Information Standards) é um consórcio global que conduz o desenvolvimento,
convergência e adoção de padrões para e-business e web services.
O UDDI descobre serviços por meio de registries, que são repositórios logicamente centralizados e
fisicamente distribuídos que contêm documentos descritores dos dados do negócio. As informações
capturadas no contexto do UDDI são classificadas em três categorias principais: Páginas Brancas,
Páginas Verdes ou Páginas Amarelas, como mostra a imagem abaixo com seus respectivos
exemplos:
Gabarito: Correto
Comentários:
O antigo <portType> descreve as operações que podem ser realizadas e as mensagens trocadas.
Gabarito: Errado
7. (CESPE - 2011 - CBM-DF) Embora não tenha publicação automática, um web service permite
a utilização das regras de negócio através da rede e conecta aplicações de diferentes
fornecedores.
Comentários:
Gabarito: Errado
8. (CESPE - 2011 - PREVIC) No WSDL (Web Services Definition Language), é prescrito o leiaute
de banco de dados com descrições de serviços, por meio das quais os clientes de web service
podem procurar serviços relevantes.
Comentários:
WSDL é Web Service Description Language! Além disso, não se prescreve leiaute de banco de
dados. Essa descrição está mais para UDDI.
Gabarito: Errado
9. (CESPE - 2011 - PREVIC) 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
finais.
Comentários:
Sabemos que 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 finais – em geral a interação
é máquina-máquina ou aplicação-aplicação. Além da definição, é bom saber a descrição dos três
padrões fundamentais que possibilitam as comunicações, isso sozinho resolve uma pancada de
questões:
A maioria das aplicações são desenvolvidas para interagir com usuários; o usuário entra ou
procura um dado por meio de uma interface e a aplicação responde à entrada do usuário. Um
Web Service faz mais ou menos a mesma coisa, no entanto ele se comunica máquina à máquina
ou aplicação à aplicação - em geral, não se tem interação direta do usuário com o Web Service.
Logo, não se exige interação imediata de usuários finais.
Gabarito: Correto
10. (CESPE - 2010 - MPU) A descrição de um web service é feita utilizando-se WSDL (Web
Services Description Language), que é uma linguagem embasada em RPC (Remote
Procedure Call) e UDDI (Universal Description Discovery and Integration), com a qual se
descreve a forma de acesso dos serviços e seus parâmetros de entrada e de saída.
Comentários:
Entre outras utilizações, SOAP foi desenhado para encapsular e transportar Chamadas RPC e,
para isto, utiliza-se dos recursos e flexibilidade do XML, sob HTTP. Por meio do RPC, pode-se
acessar os serviços de um objeto localizado em um outro ponto da rede, através de uma chamada
local a este objeto. Cada chamada ou requisição exige uma resposta.
Esse item não faz o menor sentido! WSDL é uma linguagem de descrição – quem realiza
Chamadas RPC é o SOAP.
Gabarito: Errado
11. (CESPE - 2008 – TRT/BA) O UDDI é uma especificação técnica que tem como objetivo
descrever, descobrir e integrar web services; é embasado na tecnologia XML, que fornece
uma plataforma neutra de dados e permite descrever relações hierárquicas de modo natural.
Comentários:
Trata-se de uma especificação técnica que tem como objetivo descrever, descobrir e integrar Web Services.
Pessoal, não confundam uma coisa: WSDL não fica efetivamente no UDDI, mas lá existem
referências para ele! Ok? A UDDI 3.0.2 (versão mais recente) possui um Modelo de Informação
Estruturada: Core Data Structure. Ele é composto por uma estrutura hierárquica formada por:
Entidade de Negócio (Business Entity), Serviço de Negócio (Business Service), Template de
Ligação (Binding Template) e tModel.
Basta lembrar da sigla! UDDI é Universal Description, Discovery and Integration (Integração,
Descoberta e Descrição Universal). Dessa forma, trata-se realmente de uma especificação
técnica que tem como objetivo descrever, descobrir e integrar Web Services. É baseada em XML?
Sim! Permite descrever relações hierárquicas? Sim!
Gabarito: Correto
12. (CESPE - 2008 - STJ) O serviço UDDI fornece uma interface para publicar e atualizar
informações acerca de serviços web; possibilita pesquisar descrições WSDL pelo nome; provê
uma interface que possibilita executar consultas de modo a recuperar uma entidade que
corresponda a uma chave ou recuperar entidades que correspondam a um conjunto de
critérios de busca.
Comentários:
Gabarito: Correto
13. (CESPE - 2008 - STJ) O WSDL separa a parte abstrata de uma descrição de serviço da parte
concreta; nessa descrição, a parte concreta contém as definições de tipos usados pelo serviço
e a parte abstrata especifica como e onde o serviço pode ser contatado. Os documentos
WSDL podem ser acessados via um serviço de diretório como o UDDI; as definições WSDL
podem ser geradas a partir de definições de interfaces escritas em outras linguagens.
Comentários:
A perspectiva concreta trata da implementação do serviço. Em outras palavras, ela descreve como
realizará o serviço – protocolos de comunicação, codificação de dados, localização, portas,
endereço de rede, etc. A perspectiva concreta contém a perspectiva abstrata e adiciona
informações sobre como o serviço se comunicará e quem pode alcançá-lo. Professor, qual a
vantagem de haver essa separação?
Elas fazem isso ao eliminar a necessidade de envolvimento dos usuários com os detalhes complexos
e com a estrutura do WSDL. As definições WSDL também podem ser geradas a partir de definições
de interface escritas em outras linguagens, como JAX-RPC. Ele não define características não-
funcionais do serviço (Ex: tempo de resposta, escalabilidade, segurança). Ademais, define quatro
tipos de operações:
Gabarito: Errado
14. (CESPE - 2008 - STJ) O SOAP encapsula mensagens que podem ser transmitidas via HTTP;
permite o modelo de interação cliente-servidor; define como usar XML para representar
mensagens de requisição e resposta. Um documento XML é transportado no corpo de uma
mensagem SOAP; no modelo cliente-servidor, o corpo de uma mensagem SOAP pode conter
uma requisição, mas não uma resposta.
Comentários:
SOAP encapsula mensagens que podem ser transmitidas via HTTP? Sim, assim como outros
protocolos de comunicação. Permite o modelo de interação cliente-servidor? Define como usar
XML para representar mensagens de requisição e resposta? Sim, utiliza um paradigma de
requisição/resposta, típico de aplicacões cliente-servidor. Um documento XML é transportado no
corpo de uma mensagem SOAP? Sim, ele encapsula um documento XML. O corpo de uma
mensagem SOAP pode conter uma requisição, mas não uma resposta? Não, entre outras
utilizações, SOAP foi desenhado para encapsular em e transportar em seu corpo chamadas de
RPC, que faz uma requisição e exige uma resposta.
Gabarito: Errado
15. (CESPE - 2008 – TRT/BA) No SOA, os web services permitem que os aplicativos se
comuniquem entre si de modo independente da plataforma e da linguagem de programação.
Os web services utilizam WSDL para descrever interfaces de aplicativos na linguagem XML.
Comentários:
Vamos lá! Nessa questão, o sabixão do examinador encontrou – em algum lugar – a seguinte
frase: "Os Web Services utilizam XML para descrever as interfaces de aplicativos em uma linguagem
chamada WSDL". Ele, então, decidiu inverter XML com WSDL e dizer que o item estava errado.
No entanto, ele deu azar, porque mesmo com a inversão o item continua correto. Ora, web
services utilizam WSDL para descrever interfaces de aplicativos na linguagem XML? Sim, porque
WSDL é escrito em XML. Logo, a questão está correta! A banca voltou atrás? Não :(
Gabarito: Errado
16. (CESPE - 2008 – TRT/BA) Na visão do SOA, XML e WSDL são padrões abertos que permitem
que os serviços se comuniquem de maneira homogênea, independentemente da plataforma
de hardware, do sistema operacional e da linguagem de programação nos quais o serviço está
implementado.
Comentários:
Gabarito: Correto
17. (CESPE - 2009 - ANATEL) Os três padrões fundamentais que possibilitam comunicações
entre web services são: simple object access protocol (SOAP) — protocolo que define uma
organização para a troca estruturada de dados entre web services; web services description
language (WSDL) — protocolo que define como as interfaces dos web services podem ser
representadas; universal description, discovery and integration (UDDI) — padrão de
descoberta que define como são organizadas as informações de descrição do serviço,
permitindo que os solicitantes descubram os serviços. Um desses padrões não utiliza a XML
(extensible mark-up language).
Comentários:
Trata-se de um protocolo que define uma organização para a troca estruturada de dados entre Web Services.
Trata-se de um padrão de descoberta que define como são organizadas as informações de descrição do
serviço, permitindo que os solicitantes descubram os serviços.
Gabarito: Errado
18. (CESPE - 2009 – CEHAP/PB) São padrões de Web services o SOAP, o WSDL e o UDDI, todos
baseados em HTTP.
Comentários:
Baseado em XML, define uma organização para troca estruturada de dados entre Web Services.
Baseado em XML, define como as interfaces dos Web Services podem ser representadas.
Baseado em XML, trata-se do padrão de descobrimento que define como as informações podem ser
organizadas.
Gabarito: Errado
Comentários:
O UDDI descobre serviços por meio de registries, que são repositórios logicamente centralizados e
fisicamente distribuídos que contêm documentos descritores dos dados do negócio. As informações
capturadas no contexto do UDDI são classificadas em três categorias principais: Páginas Brancas,
Páginas Verdes ou Páginas Amarelas, como mostra a imagem abaixo com seus respectivos
exemplos:
Gabarito: Errado
20. (CESPE - 2009 - ANTAQ) Nos serviços web, clientes e servidores, direta ou indiretamente,
podem acessar documentos UDDI completos por meio de seus URIs (uniform resource
identifier), usando um serviço de diretório, tal como o WSDL.
Comentários:
De acordo com George Coulouris, os documentos WSDL completos podem ser acessados por meio
de seus URIs por clientes e servidores, direta ou indiretamente, por intermédio de um serviço de
diretório como o UDDI. Estão disponíveis ferramentas para gerar definições WSDL a partir de
informações fornecidas por meio de uma interface gráfica com o usuário.
Gabarito: Errado
21. (CESPE - 2009 – TCE/TO) Acerca da arquitetura orientada ao serviço (SOA), assinale a opção
incorreta.
e) Nos web services, utiliza-se SOAP sobre HTTP para se realizar a comunicação entre os
serviços.
Comentários:
Ele tenta diferenciar POO de SOA – essencialmente trata-se da diferença entre um objeto e um
serviço. O primeiro utiliza operações para empacotar dados em um objeto; e o segundo tenta
oferecer um serviço (que ofereça algum valor ao negócio). Em outros termos, serviços têm
acesso aos métodos dos objetos, mas quem de fato agrega valor é o serviço e, não, o método - o
serviço é o fim, o método é o meio.
O OASIS ainda afirma: "Ambos, a OO e o SOA são como formas de pensar sobre representação de
coisas e ações no mundo referindo-se especificamente sobre a construção de sistemas. A coisa
Qualquer coisa pode ser um serviço da mesma forma que qualquer coisa pode ser um objeto. O
desafio é aplicar o paradigma para melhorar a clareza e obter as coisas feitas. O SOA oferece a base
mais viável para sistemas de grande escala por que ele se enquadra melhor na forma como as
atividades humanas são gerenciadas – por delegação". Em outras palavras, os serviços são mais
abstratos; são mais próximos das atividades humanas do que os métodos dos objetos.
(c) De acordo com o Modelo de Referência OASIS/SOA: SOA oferece a base mais viável para
sistemas de grande escala por que ele se enquadra melhor na forma como as atividades humanas
são gerenciadas – por delegação.
Trata-se de um protocolo que é um dos maiores blocos de construção requeridos para construir Web Services
com sucesso (Sim, alguns o chamam de protocolo!)
(d) Conforme vimos em aula, está perfeito – alguns autores chamam Protocolo UDDI (eu
discordo dessa denominação).
Um dos motivos que tornam os Web Services atrativos é o fato de estes serem baseados em
tecnologias padrão, em particular XML e HTTP. Eles são comumente utilizados para disponibilizar
serviços interativos na web, podendo ser acessados por outras aplicações. O SOAP é o protocolo
mais comum para troca de mensagens, já que é escrito em XML e transportado, via de regra, por
HTTP.
(e) Conforme vimos em aula, está perfeito! Esse é um dos motivos de esse modelo ser tão
atrativo é ser baseado em tecnologias padrão, tais como XML e HTTP.
Gabarito: Letra B
Comentários:
Trata-se de um protocolo que é um dos maiores blocos de construção requeridos para construir Web Services
com sucesso (Sim, alguns o chamam de protocolo!)
Gabarito: Correto
23. (CESPE - 2010 - INMETRO) Em um sistema que adere a uma arquitetura orientada a serviços
(SOA), vários elementos da arquitetura estabelecem comunicações entre si, e recomenda-se
que adotem vários padrões e recursos para comunicação, como HTTP (hypertext transfer
protocol), WSDL (Web Services Description Language), SOAP (Single Object Acess Protocol),
WS-BPEL (Web Services – Business Processes Execution Language), UDDI (Universal
Description, Discover and Integration) e XML (eXtensible Markup Language), entre outros.
Assinale a opção que formula relação correta entre esses padrões e (ou) recursos.
a) Um documento escrito na linguagem WSDL adota formato com base na linguagem XML e
seu uso depende da existência do serviço UDDI.
b) UDDI é um protocolo para definição das interfaces de serviços ofertadas por um objeto que
presta serviços em uma arquitetura orientada a serviços.
e) HTTP, WSDL, UDDI, SOAP, WS-BPEL e SOA são tecnologias para a produção de
documentos digitais que adotam o XML como formato padronizado.
Comentários:
(a) Não, seu uso não depende da existência do UDDI; (b) Não, esse item trata do SOAP; (c) Sim,
ele encapsula mensagens que podem ser consideradas um documento XML. Ele é descrito em
WSDL, e WSDL é baseado em XML, logo ele é definido em XML; (d) Não, BPEL é uma linguagem
de execução e, não, uma notação; (e) Não, elas não são tecnologias para produção de
documentos digitais.
Gabarito: Correto
24. (CESPE - 2010 - MPU) A descrição de um web service é feita utilizando-se WSDL (Web
Services Description Language), que é uma linguagem embasada em RPC (Remote
Procedure Call) e UDDI (Universal Description Discovery and Integration), com a qual se
descreve a forma de acesso dos serviços e seus parâmetros de entrada e de saída.
Comentários:
Trata-se efetivamente de especificação que define como descrever serviços web em uma gramática XML.
Gabarito: Errado
25. (CESPE - 2010 – TRE/MT) Com relação a web services, assinale a opção correta.
b) SOAP (Simple Object Access Protocol) é um protocolo com base em HTML que permite
troca de informações entre aplicações em um ambiente distribuído.
d) A linguagem WSDL (Web Services Description Language) é utilizada para descrever web
services.
e) Segundo o W3C (World Wide Web Consortium), web services são apropriados somente
para aplicações em que componentes de um sistema distribuído são executados em
plataformas semelhantes de um mesmo fornecedor.
Comentários:
Trata-se de uma linguagem de descrição de Web Services, escrita em XML, para descrever serviços web,
especificar as formas de acesso, as operações e os métodos disponíveis.
(a) Errado, são fracamente acopladas; (b) Errado, com base em XML; (c) Errado, são descritas em
WSDL; (d) Correto, é para isso que ela serve; (e) Errado, eles são independente de tecnologias
(plataformas, hardware, etc).
Gabarito: Letra D
26. (CESPE - 2011 – MEC) Web Service é uma solução lógica que oferece a possibilidade de
recuperar informações remotamente por meio de cloud computing. Esse serviço utiliza a
definição WSDL em um ou mais XML Schemas, que são armazenados na UDDI.
Comentários:
O Binding Template é um conjunto de descrições técnicas dos Web Services representados por uma
estrutura de serviços de negócio – ele indica, por exemplo, como se conecta ao serviço. Por fim, o
tModel representa um modelo técnico, i.e., uma maneira de descrever os vários negócios,
serviços, estruturas de template e informações externas (Ex: WSDL) armazenados dentro de
um Registro UDDI.
XML Schemas não são armazenados na UDDI! E se ele dissesse que os documentos WSDL são
armazenados na UDDI? Ainda estaria errada, porque o UDDI só aponta para o documento WSDL,
mas não o armazena...
Gabarito: Errado
27. (CESPE - 2012 – PEFO/CE) SOAP é um protocolo leve destinado à troca de informações
estruturadas em um ambiente distribuído e descentralizado. Uma mensagem SOAP, por
exemplo, é um documento XML composto de três partes obrigatórias: envelope, cabeçalho
e corpo.
Comentários:
Não é possível afirmar que SOAP é um protocolo leve ou pesado sem uma referência. Além disso,
cabeçalho é opcional.
Gabarito: Errado
28. (CESPE - 2009 - ANTAQ) Web services é um tipo de arquitetura de sistema distribuído que
se caracteriza pela disponibilidade de serviços abstratos na Logical View, que se orienta pela
troca de mensagens entre requisitantes e provedores, independentemente das suas
plataformas de trabalho via XML.
Comentários:
Segundo a definição do Gartner, Web Services são componentes de software com baixo fator de
acoplamento, utilizado por meio de padrões de internet. Um Web Service representa uma
função/lógica de negócio ou um serviço que pode ser acessado por uma outra aplicação na web,
sobre redes públicas e, geralmente, disponibilizado por protocolos conhecidos.
Web Service implementa uma arquitetura distribuída, mas não é uma (por si só). Além disso, a
troca de mensagens ocorre via SOAP e, não, XML. O primeiro é um protocolo de comunicação;
o segundo é apenas uma linguagem de marcação.
Gabarito: Errado
29. (CESPE - 2012 – TJ/RO) Acerca de SOA e web services, assinale a opção correta.
a) Web service é projetado para operar dados entre máquinas, em redes de computadores,
mediante a linguagem UDDI.
d) Representational state transfer (REST), que utiliza o WSDL como linguagem de descrição
de serviços, é uma forma de implementação de SOA na web.
Comentários:
(a) Errado, opera dados mediante a linguagem XML; (b) Correto, o contrato pode ter vários
esquemas, com regras de nível de serviço – por exemplo; (c) Errado, o princípio é de acoplamento
fraco; (d) Errado, não é o tema da aula, mas não utiliza WSDL; (e) Errado, SOA não é um
aplicativo, mas – sim – uma arquitetura, e Web Service não é uma arquitetura, mas – sim – a
implementação de uma arquitetura.
Gabarito: Letra B
30. (CESPE - 2013 – CNJ) Um dos elementos de uma mensagem SOAP é o corpo (body), no qual
devem estar contidas as informações de erro e status.
Comentários:
Ele contém o payload, i.e., a mensagem SOAP. Trata-se de um elemento obrigatório que é capaz de
empacotar chamadas RPC, reportar erros, enviar operações UDDI, entre outros. O elemento Body
pode conter um elemento opcional Fault, usado para carregar mensagens de status e mensagens
de erros retornadas pelos nós ao processarem a mensagem. É obrigatório!
A redação torna o item polêmico: um dos elementos de uma mensagem SOAP é o Corpo (Body).
As informações de erro e status devem estar contidas no Fault, que fica dentro do Body. O Body
é obrigatório, mas o Fault é opcional. No entanto, a questão apenas afirma que, se houver as
informações de erro e status, elas devem estar presentes no corpo. Qual o erro da questão,
professor? Nenhum, ela está correta, mas o examinador não voltou atrás :(
Gabarito: Errado
31. (CESPE - 2013 – ANTT) Web Services provêm um meio padrão para interoperação entre
diferentes aplicativos de software, que podem ser executados em uma variedade de
plataformas e(ou) frameworks.
Comentários:
Sim, eles são independentes de plataforma, sistema operacional, arquitetura de processador, linguagem de
programação, entre outros.
Gabarito: Correto
Comentários:
Gabarito: Correto
33. (CESPE - 2013 – TCE/RO) O SOAP permite a troca de mensagens estruturadas em ambiente
distribuído e descentralizado, com o uso de tecnologias XML. Essas mensagens podem ser
trocadas por uma variedade de protocolos subjacentes como, por exemplo, o HTTP.
Comentários:
Gabarito: Correto
34. (CESPE - 2013 – SERPRO) A comunicação entre sistemas clientes e servidores para troca de
mensagens pode ser realizada por meio de SOAP (simple object access protocol), que é um
protocolo para troca de informações estruturadas independente de linguagem de
programação.
Comentários:
Um dos motivos que tornam os Web Services atrativos é o fato de estes serem baseados em
tecnologias padrão, em particular XML e HTTP. Eles são comumente utilizados para disponibilizar
serviços interativos na web, podendo ser acessados por outras aplicações. O SOAP é o protocolo
mais comum para troca de mensagens, já que é escrito em XML e transportado, via de regra, por
HTTP.
Gabarito: Correto
35. (CESPE - 2013 – CNJ) 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).
Comentários:
Trata-se de uma das formas de comunicação para encapsular dados transferidos no formato XML para Web
Services.
Gabarito: Correto
36. (CESPE - 2012 – MPE/PI) Em web services, utiliza-se o protocolo SOAP (simple object access
protocol) para a comunicação entre os serviços.
Comentários:
Trata-se de uma das formas de comunicação para encapsular dados transferidos no formato XML para Web
Services.
Gabarito: Correto
37. (CESPE - 2016 – TCE/PR) Em um web service, o termo namespace representa o nome do
elemento principal do maior nível hierárquico em um documento XML utilizado para troca de
mensagens.
Comentários:
No contexto de Web Services, o que é um “documento XML utilizado para troca de mensagens”? É
um Web Service SOAP! Nesse caso, o elemento principal do maior nível hierárquico é o Envelope
– que identifica a Mensagem SOAP. No entanto, um namespace é apenas um nome que
identifica um conjunto de outros nomes! Ele pode representar o nome do elemento de maior
nível hierárquico assim como quaisquer outros.
Gabarito: Errado
38. (CESPE - 2009 - ANTAQ) Em serviços web, o SOAP pode ser transportado por protocolos
como REST, HTTP, SMTP e JMS.
Comentários:
Essa questão foi anulada! REST não é um protocolo, mas um estilo arquitetural! Inclusive, ele
utiliza o Protocolo HTTP.
Gabarito: Anulada
39. (CESPE – 2017 – SE/DF) Serviços expressos por meio de contratos web services têm o
potencial de evitar completamente a transformação, objetivo-chave dos contratos de
serviços padronizados.
Comentários:
Galera, essa questão afirma que quando eu ofereço serviços por meio de Web Services e seus
contratos (i.e., suas interfaces), eu tenho um grande potencial de evitar a transformação. Isso é
verdade! Nós sabemos que mudar a implementação do serviço é irrelevante desde que se
mantenha sua interface. No entanto, eventualmente eu posso precisar alterar a interface de um
serviço – e, nesse caso, não dá para evitar a transformação do contrato do serviço.
Logo, o contrato não é imutável, ele realmente muda raramente, mas ele não é imune a
mudanças e não evita completamente transformações. No entanto, a questão afirma que o uso
de contratos tem o “potencial” de evitar completamente a transformação. Ter o potencial
significa ter a capacidade de realização ou execução de algo. E isso é verdadeiro nesse contexto.
Vejam o que diz a especificação:
“Regardless of the development approach you utilize for service development there is no question
that service contracts must be designed in an extensible manner to minimize disruptive versioning
changes. Service contracts should be designed with the assumption that once published, they
cannot be modified—this approach forces developers to build flexibility into their schema designs”.
Gabarito: Errado
40. (CESPE – 2017 – SE/DF) Por oferecerem um framework de comunicação com base em
contratos de serviços fisicamente desacoplados, os web services permitem que um contrato
de serviços seja totalmente padronizado, independentemente de sua implementação.
Comentários:
Conforme eu disse na questão anterior, contratos de serviços (interfaces) espalhadas pela rede e
desacopladas, permitindo que o contrato seja padronizado, sendo sua implementação
irrelevante.
Gabarito: Correto
41. (CESPE – 2017 – TRE/PE) A respeito de arquitetura orientada a serviços (SOA), assinale a
opção correta.
a) WS – Transaction é um padrão de suporte que garante que uma mensagem seja entregue
uma vez e apenas uma vez.
d) WSDL (web service definition language) na SOA para Web é uma linguagem utilizada
como padrão para troca de mensagens e para definição de componentes de web services.
e) WS – realiable messaging é um padrão SOA que define como as informações devem ser
representadas em uma mensagem SOAP.
Comentários:
Gabarito: Letra B
42. (CESPE – 2017 – TRE/BA) No que se refere a web services, assinale a opção correta.
a) As solicitações e respostas XML trafegam no protocolo HTTP, não sendo possível utilizá-
las nos protocolos FTP e SMTP.
b) Um dos componentes de um Web Service SOAP (Simple Object Access Protocol) é a UDDI
(Universal Description, Discovery and Integration), a qual é um arquivo do tipo XML que
descreve detalhadamente um Web Service, especificando como deve ser o formato de
entrada e saída de cada operação.
c) As duas formas de envio de mensagem para que um cliente possa efetuar solicitações a um
Web Service são One-Way Messaging e Request-Response Messaging.
Comentários:
(a) Errado. Via de regra, utiliza-se HTTP, mas não obrigatório; (b) Errado. Observem que a
questão não está afirmando que UDDI é um componente do SOAP. Ela afirma que o UDDI é um
componente do Web Service SOAP. Dito isso, quem descreve detalhadamente um serviço é o
WSDL; (c) Correto. Existem quatro tipos de operação: One-Way, Request/Response,
Solicit/Response e Notification. Para que o cliente possa efetuar solicitações, é adequado utilizar
as duas primeiras; (d) Errado, não é para desenvolvimento – é para descrição de Web Services;
(e) Errado, eles são independentes de tecnologia, logo não dependem de linguagem de
programação ou sistema operacional.
Gabarito: Letra C
43. (CESPE - 2013 – TRE/MS) O WS-Security propõe uma série de extensões para aprimorar a
segurança dos web services no UDDI e no WSDL. Por questão de compatibilidade, essas
extensões não afetam os cabeçalhos do envelope SOAP.
Comentários:
Na verdade, ele propõe extensões para aprimorar a segurança dos Web Services no SOAP! Ele
adiciona um elemento de cabeçalho de mensagem SOAP (<wsse:Security>)para anexar as
informações de segurança às mensagens, na forma de tokens, transmitindo diferentes tipos de
solicitações juntamente com informações de criptografia e assinatura digital.
Gabarito: Errado
Comentários:
Na Federation, o usuário faz uma requisição síncrona a um repositório central (representado por uma
Biblioteca Digital) e espera a resposta. O repositório faz diversas requisições a outros repositórios
remotos e as respostas retornam para o repositório central onde são consolidadas e devolvidas
para o usuário. Bacana? Agora vamos ver como funciona a outra abordagem.
No Harvesting, o usuário faz uma requisição a um motor de busca que procura em um repositório
central de metadados (Harvested Metadata) que contém metadados anteriormente coletados
assincronamente e automaticamente de outros repositórios. Em geral, os metadados são
codificados em XML. Esse método é menos sofisticado e acarreta menor sobrecarga sobre os
repositórios.
Gabarito: Correto
45. (CESPE - 2008 – MPE/AM) No protocolo HTTP (hypertext transfer protocol), o método GET
é utilizado em solicitações enviadas pelo servidor ao navegador para que este solicite dados
ao usuário de uma página ou para que o próprio navegador forneça os dados solicitados.
Comentários:
Esse método solicita ao servidor que envie uma página (ou um objeto, no caso mais genérico; na
prática, apenas um arquivo). A grande maioria das solicitações a servidores da web tem a forma de
métodos GET.
Gabarito: Letra E
46.(CESPE - 2011 – MEC) Em formulários HTML, apenas o método post é suportado; o método
get é utilizado em aplicações JavaScript.
Comentários:
Para resolver esse problema, eu posso utilizar o POST. Ele funciona de modo bastante similar,
entretanto os dados são colocados no corpo da requisição e não aparece diretamente na URL!
Melhor, não? Só isso? Não! GET é utilizado para recuperar informações (em geral, poucas); POST é
utilizado para enviar informações (em geral, muitas – por meio de formulário). Vamos ver outras
diferenças:
Não se enganem com isso! Formulários geralmente utilizam POST, mas nada impede que se
utilize GET.
Gabarito: Letra E
47. (FCC – 2010 – AL/SP) GET e POST são alguns dos principais métodos que determinam o que
o servidor deve fazer com o URL fornecido no momento da requisição de um recurso.
Relacionado a esses métodos, considere:
I. Dados enviados em uma requisição utilizando o método GET ficam visíveis na linha de
endereço do navegador.
III. O método GET é geralmente utilizado para enviar grandes quantidades de dados por meio
de um formulário.
IV. O método POST não exibe os dados enviados na linha de endereço do navegador.
a) I e II.
b) I e IV.
c) II, III e IV.
d) III.
e) IV.
Comentários:
Vocês percebem como isso é perigoso? Viram que a minha senha está visível? Ela fica visível na URL!
Deiltel já dizia: Uma solicitação get não deve ser utilizada para enviar dados sigilosos porque os
dados do formulário são colocados em uma string de consulta que é acrescentada ao URL do
navegador como texto simples e pode ser interceptada. Lembrando que, por padrão, é utilizado
o GET.
Vocês percebem como isso é perigoso? Viram que a minha senha está visível? Ela fica visível na URL!
Deiltel já dizia: Uma solicitação get não deve ser utilizada para enviar dados sigilosos porque os
dados do formulário são colocados em uma string de consulta que é acrescentada ao URL do
navegador como texto simples e pode ser interceptada. Lembrando que, por padrão, é utilizado o
GET.
Para resolver esse problema, eu posso utilizar o POST. Ele funciona de modo bastante similar,
entretanto os dados são colocados no corpo da requisição e não aparece diretamente na URL!
Melhor, não? Só isso? Não! GET é utilizado para recuperar informações (em geral, poucas); POST é
utilizado para enviar informações (em geral, muitas – por meio de formulário). Vamos ver outras
diferenças:
Para resolver esse problema, eu posso utilizar o POST. Ele funciona de modo bastante similar,
entretanto os dados são colocados no corpo da requisição e não aparece diretamente na URL!
Melhor, não? Só isso? Não! GET é utilizado para recuperar informações (em geral, poucas); POST é
utilizado para enviar informações (em geral, muitas – por meio de formulário). Vamos ver outras
diferenças:
Gabarito: Letra B
Comentários:
Esse método solicita ao servidor que envie uma página (ou um objeto, no caso mais genérico; na
prática, apenas um arquivo). A grande maioria das solicitações a servidores da web tem a forma
de métodos GET.
Esse método solicita apenas o cabeçalho da mensagem, sem a página propriamente dita. Esse
método pode ser usado para se obter a data da última modificação feita na página, para reunir
informações destinadas à indexação, ou apenas para testar a validade de uma URL.
Esse método é semelhante ao PUT – porque também transporta um URL –, no entanto, em vez
de substituir os dados existentes, os novos dados são "anexados" a ele, em um sentido mais
genérico. Na prática, nem PUT nem POST são muito utilizados hoje.
Gabarito: Letra C
a) input – output
b) post – get
c) push – pop
d) post – cat
e) push – pull
Comentários:
Gabarito: Letra B
50. (FUMARC - 2014 – AL/MG) Analise as seguintes afirmativas sobre os métodos HTML:
I. HTML POST é utilizado para enviar dados para serem processados em um servidor Web.
II. HTML GET solicita ao servidor apenas o cabeçalho de uma URL para que o cliente decida
se deve requisitar o conteúdo completo ou não.
III. HTML PUT é utilizado para criar recursos dentro de um servidor Web.
a) I e II, apenas.
b) I e III, apenas.
c) II e III, apenas.
d) I, II e III.
Comentários:
Esse método solicita ao servidor que envie uma página (ou um objeto, no caso mais genérico; na
prática, apenas um arquivo). A grande maioria das solicitações a servidores da web tem a forma
de métodos GET.
Esse método é o inverso do GET, i.e., em vez de ler, ele grava a página. Esse método possibilita a
criação de um conjunto de páginas da web em um servidor remoto – o corpo da solicitação
contém a página.
Esse método é semelhante ao PUT – porque também transporta um URL –, no entanto, em vez
de substituir os dados existentes, os novos dados são "anexados" a ele, em um sentido mais
genérico. Na prática, nem PUT nem POST são muito utilizados hoje.
Todos os itens estão corretos, exceto o segundo! Na verdade, o método que solicita o cabeçalho
de um recurso é o HEAD. Vocês já notaram o vacilo da banca? Pois é, esses métodos são do HTTP
e, não, HTML.
Gabarito: Letra B
51. (FAU - 2016 – JUCEPAR/PR) Que nome é dado aos pequenos arquivos que são gravados em
seu computador quando você acessa sites na Internet e que são reenviados a estes mesmos
sites quando novamente visitados?
a) Planilhas.
b) Cookies.
c) Trojan.
d) Virus.
e) Token.
Comentários:
Muito cuidado para não confundir cookies com algo nativamente inseguro. Qualquer recurso na
web pode conter vulnerabilidades e ser explorado por um hacker. Os cookies são muito
importantes e uma definição bem aceitável é apresentada no enunciado da questão, como vimos
na aula teórica.
Gabarito: Letra B
52. (IESES - 2015 – TRE/MA) Das definições abaixo sobre cookies, assinale a afirmativa correta.
b) Arquivo gerado pelo servidor WEB que fica armazenado na máquina do usuário e que
permite ao servidor buscar informações realizadas pelo usuário no site.
d) O cookie Web é arquivo que fica armazenado na máquina do usuário e que aumenta a
performance de navegação na WEB.
Comentários:
(a) Errado. É complicado dizer que ter um cookie habilitado reduz a segurança do usuário. Com
certeza reduz a privacidade, pois, no mínimo, eles são usados para enviar informações da
navegação do usuário aos servidores web. O contrário então, não tem como afirmar! Ou seja, os
cookies não aumentam a segurança do usuário; (b) Correto. Uma boa definição de cookies; (c)
Errado. Na verdade, vimos que o servidor web deve enviar, normalmente via HTTP, no cabeçalho
um elemento Set-Cookie; (d) Errado. O cookie não melhora a performance da navegação.
Gabarito: Letra B
53. (FAU - 2016 – JUCEPAR/PR) Assinale a alternativa correta que contenha a definição de
Cookie:
b) Vírus que captura informações do usuário digitadas no navegador e as envia por e-mail
para um computador receptor.
Comentários:
(a) Correto. Boa definição para cookies. Ele armazena muito mais que isso, mas também as
preferências do usuário; (b) Errado. Cookies não são vírus; (c) Errado. No máximo um atributo
Secure para dizer ao user agente para que, ele sim, “se vire” com a segurança. O cookie não
garante segurança; (d) Errado. Cookie não é um protocolo, e não garante segurança; (e) Errado.
Cookie não é um certificado digital.
Gabarito: Letra A
54. (FGV - 2016 - COMPESA) Quando um navegador solicita uma página da web, o servidor pode
fornecer informações adicionais junto com a página solicitada. Essas informações podem
incluir um cookie.
I. Uma linha no cabeçalho HTTP iniciada por Cookie: é a forma como os servidores enviam
cookies aos clientes. Espera-se que o cliente grave o cookie e o devolva em solicitações
subsequentes ao servidor.
II. Para remover um cookie do disco rígido do cliente, basta o servidor enviá-lo novamente
com uma data de expiração vencida.
III. Um cookie que não contém a informação de quando irá expirar permanece ativo por
tempo indeterminado.
a) I, apenas.
b) II, apenas.
c) III, apenas.
d) I e II, apenas.
e) I, II e III.
Comentários:
I – Errado. Na verdade, temos que incluir no cabeçalho Set-Cookie, e não somente Cookie;
II – Correto. Vimos na aula teórica que uma data vencida no atributo Expires faz com que o cookie
seja removido pelo User Agent;
III – Errado. Como vimos na aula teórica, o cookie ficará armazenado até o fim da sessão, pelo
tempo que o próprio User Agent definir. Ou seja, o tempo não é indefinido, mas sim definido pela
sessão do usuário.
Gabarito: Letra B
55. (IBFC / EBSERH – 2017) Assinale a alternativa que apresenta o serviço de diretório onde
empresas podem registrar (publicar) e buscar (descobrir) por Serviços Web (Web Services):
a) UDDI
b) NIS
c) WSDL
d) X.500
e) LDAP
Comentários:
Gabarito: Letra A
56. (IBFC / EBSERH – 2017) Web service é uma solução utilizada na integração de sistemas. Os
Web services são componentes que permitem às aplicações enviar e receber dados, como
padrão, em formato:
a) NAT
b) ARP
c) XML
d) TLS
e) XDR.
Comentários:
Galera, o formato padrão de Web Services (SOAP) é o XML! As outras opções não fazem o menor
sentido...
Gabarito: Letra C
57. (IBFC / EBSERH – 2017) Conforme o W3C (World Wide Web Consortium) pode-se definir um
Web Service como sendo:
Comentários:
(a) Errado, acredito que isso seria um modelo de processo de software; (b) Errado, acredito que
isso seria o processo de software de métodos formais; (c) Errado, acredito que isso seria mais
relacionado ao CMMI; (d) Correto, ele é extremamente útil para suportar interoperabilidade na
troca de informações entre máquinas da rede; (e) Errado, acredito que isso seria mais relacionado
ao modelo entidade relacionamento.
Gabarito: Letra D
58. (IBFC / EMDEC – 2016) Quanto as tecnologias aplicadas em um Web Service temos:
Comentários:
Gabarito: Letra D
59. (CESPE - 2011 – MEC) Um web service pode ser desenvolvido, também, com o uso de REST,
que utiliza o protocolo HTTP para comunicação entre emissor e destinatário, e o SOAP, para
encapsular as mensagens trafegadas.
Comentários:
Em teoria, é possível que uma aplicação RESTful seja construída utilizando qualquer infraestrutura
de rede ou protocolo de transporte. Na prática, aplicações RESTful levam vantagem ao utilizar
características e recursos da web e o protocolo HTTP (e seus métodos/verbos: GET, POST, PUT,
DELETE). Grosso modo, esses métodos servem respectivamente para recuperar, inserir, atualizar e
deletar um recurso.
Um Web Service pode ser desenvolvido de fato com uso de REST. REST realmente utiliza o
protocolo HTTP, mas não utiliza SOAP (que é parte da arquitetura WS-*)!
Gabarito: Errado
60.(CESPE - 2016 – TCE/SC) A JAX-RS 2.0 fornece APIs portáteis para o desenvolvimento de
aplicações Web em conformidade com os princípios do estilo arquitetônico REST.
Comentários:
O JAX-RS – como o próprio nome sugere – fornece APIs portáteis para o desenvolvimento de
aplicações web em conformidade com o REST.
Gabarito: Correto
Comentários:
Em teoria, é possível que uma aplicação RESTful seja construída utilizando qualquer infraestrutura
de rede ou protocolo de transporte. Na prática, aplicações RESTful levam vantagem ao utilizar
características e recursos da web e o protocolo HTTP (e seus métodos/verbos: GET, POST, PUT,
DELETE). Grosso modo, esses métodos servem respectivamente para recuperar, inserir, atualizar e
deletar um recurso.
Galera, a questão falou em REST, vocês têm que lembrar imediatamente de HTTP (e seus
métodos ou operações).
Gabarito: Errado
62. (CESPE - 2015 – MEC) Entre as restrições da REST está a interface uniforme, a qual requer
que um serviço ofereça várias operações e aguarde a solicitação dessas operações pelo
servidor.
Comentários:
É basicamente um contrato para comunicação entre cliente e servidor. São regras para
fazer um componente o mais genérico possível, tornando-o muito mais fácil de ser
refatorado e melhorado. Obedece a quatro princípios: identificação de recursos;
representação de recursos; respostas auto-explicativas; e hypermídia.
A questão não trata da restrição de Interface Uniforme. Acredito que a restrição que mais se
aproxima dessa descrição seja o Sistema em Camadas.
Gabarito: Errado
63. (CESPE - 2015 – MEC) A fim de implementar serviços em REST, recomenda-se utilizar os
WSDL já existentes com mínima alteração do cabeçalho, informando somente que o
protocolo a ser utilizado é o REST.
Comentários:
Em teoria, é possível que uma aplicação RESTful seja construída utilizando qualquer infraestrutura
de rede ou protocolo de transporte. Na prática, aplicações RESTful levam vantagem ao utilizar
características e recursos da web e o protocolo HTTP (e seus métodos/verbos: GET, POST, PUT,
DELETE). Grosso modo, esses métodos servem respectivamente para recuperar, inserir, atualizar e
deletar um recurso.
Quem utiliza WSDL é o estilo arquitetural WS-*. O estilo arquitetural REST utiliza o protocolo
HTTP.
Gabarito: Errado
I. REST é um protocolo para troca de mensagens entre componentes de uma aplicação web.
II. REST é uma arquitetura, onde cada aplicação é um conjunto de recursos sobre os quais
podemos realizar ações.
III. Os formatos dos arquivos utilizados numa aplicação que segue REST são JSON, XML ou
YAML.
a) Apenas I.
b) Apenas II.
c) Apenas III.
d) Apenas I e III.
e) Apenas II e III.
Comentários:
É importante que vocês saibam que REST é diferente de SOA! Qual a diferença? SOA é uma
arquitetura e REST é um estilo arquitetural. E tem diferença, professor? Sim, meus caros! A
arquitetura é neutra; já o estilo arquitetural, não. REST pode ser visto como o fornecimento de uma
implementação de serviços com requisitos de design específicos para determinadas tecnologias e
arquiteturas.
(I) Errado. REST não é um protocolo, é um estilo arquitetural; (II) Correto. Trata-se de um estilo
arquitetural (termo mais correto) baseado em recursos; (III) Correot. De fato, todos esses
formatos são utilizados.
Gabarito: Letra E
65. (CESPE - 2016 – MEC) A respeito dos conceitos de web services e REST, assinale a opção
correta.
b) Pode-se utilizar qualquer meio de transporte existente para o envio de uma requisição,
incluindo HTTP, SMTP e TCP.
e) As chamadas às URIs (uniform resource indicator) são feitas por meio de métodos HTTP,
os quais indicam para o serviço a ação a ser realizada com o recurso.
Comentários:
Em teoria, é possível que uma aplicação RESTful seja construída utilizando qualquer infraestrutura
de rede ou protocolo de transporte. Na prática, aplicações RESTful levam vantagem ao utilizar
características e recursos da web e o protocolo HTTP (e seus métodos/verbos: GET, POST, PUT,
DELETE). Grosso modo, esses métodos servem respectivamente para recuperar, inserir, atualizar e
deletar um recurso.
(a) Conforme vimos em aula, PUT é o método utilizado para atualizar recursos;
Em teoria, é possível que uma aplicação RESTful seja construída utilizando qualquer infraestrutura
de rede ou protocolo de transporte. Na prática, aplicações RESTful levam vantagem ao utilizar
características e recursos da web e o protocolo HTTP (e seus métodos/verbos: GET, POST, PUT,
DELETE). Grosso modo, esses métodos servem respectivamente para recuperar, inserir, atualizar e
deletar um recurso.
(b) Conforme vimos em aula, pode-se utilizar diversos meios de transporte, no entanto TCP não
é um meio de transporte (é um conjunto de protocolos).
(d) Na verdade, quando se requisita uma aplicação ao servidor, os recursos são transferidos pela
rede. Da maneira que está escrita, essa questão nem faz sentido.
(e) Conforme vimos em aula, a questão está impecável. Percebam que ela não limita o uso ao
HTTP – apenas o menciona.
Gabarito: Letra E
66. (CESPE - 2015 – TRE/MT) Acerca de REST (representational state transfer), assinale a
opção correta.
Comentários:
(a) Conforme vimos em aula, ele não utiliza esses formatos (além disso, não é um protocolo).
E o que é uma URI? Trata-se do Uniform Resource Identifier, que nada mais é que uma string de
caracteres utilizada para identificar unicamente um recurso. Vocês já devem conhecer a URL
(Uniform Resource Locator) – trata-se de uma URI que, além de identificar um recurso da web,
também é capaz de localizá-lo (basta lembrar de endereços de sites). No REST, todo recurso contém
um identificador.
(b) Conforme vimos em aula, ele utiliza – sim – recursos identificáveis (para isso, temos a URI).
Observem outra diferença importante! No SOAP, existe uma especificação que deve ser seguida
para todas as requisições/respostas – trata-se do WSDL. No REST, não existia nenhuma
especificação. Hoje em dia, podemos utilizar o WSDL2 ou WADL para descrever um serviço.
Bacana? Agora percebam a complexidade que é enviar uma mensagem no SOAP x REST! Vejam o
overhead que traz o envelope...
(c) Conforme vimos em aula, em relação ao SOAP, o REST tem baixíssimo overhead.
E o que é uma URI? Trata-se do Uniform Resource Identifier, que nada mais é que uma string de
caracteres utilizada para identificar unicamente um recurso. Vocês já devem conhecer a URL
(Uniform Resource Locator) – trata-se de uma URI que, além de identificar um recurso da web,
também é capaz de localizá-lo (basta lembrar de endereços de sites). No REST, todo recurso contém
um identificador.
Responsabilidades devem ser separadas entre clientes e servidores. Isso permite que os
componentes do cliente e do servidor evoluam de forma independente e, por sua vez,
permite que o sistema seja escalável. Em outras palavras, busca-se separar a arquitetura
e responsabilidades em dois ambientes.
Dessa forma, o cliente não se preocupa com tarefas do tipo: comunicação com banco de
dados, gerenciamento de cache, log, etc; e o contrário também é válido, o servidor não
se preocupa com tarefas como: interface, experiência do usuário, etc. Permitindo,
assim, a evolução independente das duas arquiteturas.
(e) Conforme vimos em aula, ele – de fato – utiliza uma interação cliente/servidor, no entanto ele
não é um estilo de desenvolvimento e não é uma interação complexa, pelo contrário: é bem
simples.
Gabarito: Letra C
67. (CESPE - 2016– TRE/PI) Acerca de REST (Representational State Transfer), assinale a opção
correta.
Comentários:
Em teoria, é possível que uma aplicação RESTful seja construída utilizando qualquer infraestrutura
de rede ou protocolo de transporte. Na prática, aplicações RESTful levam vantagem ao utilizar
características e recursos da web e o protocolo HTTP (e seus métodos/verbos: GET, POST, PUT,
DELETE). Grosso modo, esses métodos servem respectivamente para recuperar, inserir, atualizar e
deletar um recurso.
(a) Errado, claro que não! Você pode não ter permissão para acessar um recurso, por exemplo.
Nem todos os recursos respondem a todos os métodos; (b) Errado, ele permite obter, mas não
alterar o estado atual de um recurso; (c) Errado, esse método não existe; (d) Na minha opinião, é
impossível responder esse item. Modelo rígido em relação ao quê? O REST é um modelo flexível;
a comunicação pode ser considerada rígida ou flexível dependendo da comparação; (e) Errado,
esse método não existe. Portanto, para mim, essa questão deveria ter sido anulada, mas o
gabarito é Letra D.
Gabarito: Letra D
a) REST e WS-*
b) SOAP e WSDL
c) RPC e RMI
d) SGML e HTML
e) B2B e B2C
Comentários:
Já que entramos nesse assunto, vamos falar um pouco sobre WS-* (JAX-WS) e REST (JAX-RS). Em
sua implementação tradicional, desenvolvem-se Web Services utilizando o Protocolo SOAP e,
em geral, com a Linguagem XML – no Java, essa especificação foi denominada JAX-WS (Java API
for XML Web Services), presente a partir do Java EE 5. Tudo certo até aqui?
Gabarito: Letra A
69. (CESPE – 2013 – STF) A World Wide Web (WWW) é a maior implementação de um
sistema em conformidade com a arquitetura REST.
Comentários:
Conforme vimos em aula, a web é realmente uma implementação em conformidade com REST.
Por que, professor? Vejamos! Qual o principal protocolo da Web/REST? HTTP. Qual a melhor forma
de identificar um recurso na Web/REST? Por meio de um identificador único (URI). Qual é o formato
dos dados na Web/REST? HTML, JSON, XML, TXT, etc. Como são os estados das aplicações da
Web/REST? Ambos são stataless. Como é caracterizado Cache em Web/REST? Ambos permitem
que as respostas dos servidores sejam cacheable. Como é a divisão em camadas na Web/REST?
Ambos incentivam a utilização de camadas hierárquicas.
Gabarito: Correto
70. (CESPE – 2013 – BACEN) O estilo arquitetural REST define um conjunto de restrições para
uma aplicação, como, por exemplo, utilização de arquitetura par-a-par, manutenção de
informações de estado, não uso de cache no cliente e apresentação de uma interface
uniforme.
Comentários:
Responsabilidades devem ser separadas entre clientes e servidores. Isso permite que os
componentes do cliente e do servidor evoluam de forma independente e, por sua vez,
permite que o sistema seja escalável. Em outras palavras, busca-se separar a arquitetura
e responsabilidades em dois ambientes.
Dessa forma, o cliente não se preocupa com tarefas do tipo: comunicação com banco de
dados, gerenciamento de cache, log, etc; e o contrário também é válido, o servidor não
se preocupa com tarefas como: interface, experiência do usuário, etc. Permitindo, assim,
a evolução independente das duas arquiteturas.
A comunicação entre cliente e servidor deve ser stateless. O servidor não precisa lembrar
o estado do cliente. Em vez disso, os clientes devem incluir todas as informações
necessárias na requisição para que o servidor possa entendê-la e processá-la.
Em outras palavras, um mesmo cliente pode mandar várias requisições para o servidor,
porém cada uma delas deve ser independente, ou seja, toda requisição deve conter todas
as informações necessárias para que o servidor consiga entendê-la e processá-la
adequadamente (qualquer informação de estado deve ficar no cliente).
A questão deu três chances para acertá-la. As restrições são: utilização de uma arquitetura
Cliente/Servidor (e, não, Par-a-Par); não manutenção de informações de estado, i.e., Stateless;
e utilização de cache no cliente (Cacheable).
Gabarito: Errado
71. (CESPE – 2014 – ANTAQ) Em arquiteturas REST, nenhum contexto de cliente pode ser
mantido em servidor.
Comentários:
A comunicação entre cliente e servidor deve ser stateless. O servidor não precisa lembrar o
estado do cliente. Em vez disso, os clientes devem incluir todas as informações necessárias
na requisição para que o servidor possa entendê-la e processá-la.
Em outras palavras, um mesmo cliente pode mandar várias requisições para o servidor,
porém cada uma delas deve ser independente, ou seja, toda requisição deve conter todas
as informações necessárias para que o servidor consiga entendê-la e processá-la
adequadamente (qualquer informação de estado deve ficar no cliente).
REST é statless (sem estado), i.e., o servidor não guarda o estado/conteto do cliente.
Gabarito: Correto
72. (CESPE – 2016 – FUNPRESP) Conexões REST devem conter todas as informações
necessárias para que a conexão seja completada.
Comentários:
A comunicação entre cliente e servidor deve ser stateless. O servidor não precisa lembrar o
estado do cliente. Em vez disso, os clientes devem incluir todas as informações necessárias
na requisição para que o servidor possa entendê-la e processá-la.
Em outras palavras, um mesmo cliente pode mandar várias requisições para o servidor,
porém cada uma delas deve ser independente, ou seja, toda requisição deve conter todas
as informações necessárias para que o servidor consiga entendê-la e processá-la
adequadamente (qualquer informação de estado deve ficar no cliente).
O “ST” em REST significa “State Transfer”, i.e., as operações devem ser autocontidas e cada
requisição deve carregar consigo (Transferir) toda informação (Estado) que o servidor precisará
para processá-la. Então, de fato, conexões devem conter todas as informações necessárias para
que a conexão seja completada com sucesso.
Gabarito: Correto
73. (CESPE – 2013 – SERPRO) Um web service pode ocorrer sobre o HTTP (hypertext transfer
protocol), utilizando-se os serviços RESTfull (representational state transfer).
Comentários:
Aplicações que sigam essas restrições são consideradas Aplicações RESTfull. Como vocês
devem ter notado, essas restrições não ditam a tecnologia a ser utilizada para o desenvolvimento
das aplicações. Em vez disso, a adesão a estas orientações e melhores práticas oferece a
oportunidade de uma aplicação escalável, visível, portátil, confiável e capaz de performar melhor.
Questão perfeita – um Web Service pode ocorrer sobre HTTP, utilizando os serviços RESTful.
Sabe por que essa questão foi anulada?
"Houve prejuízo do julgamento objetivo do item, pois, onde se lê “RESTfull” deveria ler-se “RESTful”.
Dessa forma,opta-se pela anulação do item."
Galera, quantas questões vocês já viram com erros cavalares e que não foram anuladas? Pois é, e
essa foi por conta de uma letra!
Gabarito: Anulada
74. (CESPE – 2015 – TJDFT) Em um Web Service RESTful, cada método é identificado por uma
URL única. Assim, quando o servidor recebe uma solicitação, ele identifica de forma
inequívoca a operação que será executada.
Comentários:
Essa questão é bizarra! Ela afirma que cada método é identificado por uma URL única. Na
verdade, todos os métodos têm a mesma URL. Cada Web Service tem uma URL única e contém
vários métodos. Ao invocar um serviço web, é necessário especificar qual o método pretendido
e os parâmetros necessários para esse método. Cada método de serviço web retorna uma
resposta que contém os resultados da execução do cliente. Honestamente, não entendi esse
gabarito!
Gabarito: Correto
75. (COPEVE-UFAL – 2012 – ALGÁS) REST é uma técnica de engenharia de software utilizada
no desenvolvimento de sistemas hipermídia distribuídos e adequada para a Web.
Comentários:
Eu sei que é estranho falar em REST como uma técnica de engenharia de software, mas não há
nada de errado nisso! Ademais, de fato ele é utilizado no desenvolvimento de sistemas
hipermídia distribuídos e muito adequadra a Web.
Gabarito: Correto
76. (CESPE – 2014 – ANATEL) REST é uma técnica de engenharia de software para sistemas
hipermídia distribuídos. De acordo com essa técnica, o estado da informação deve ser
mantido no cliente, e o servidor não deve guardar o estado da comunicação de nenhum
cliente que se comunique com o servidor, além de uma única requisição.
Comentários:
A comunicação entre cliente e servidor deve ser stateless. O servidor não precisa lembrar o
estado do cliente. Em vez disso, os clientes devem incluir todas as informações necessárias
na requisição para que o servidor possa entendê-la e processá-la.
Em outras palavras, um mesmo cliente pode mandar várias requisições para o servidor,
porém cada uma delas deve ser independente, ou seja, toda requisição deve conter todas
as informações necessárias para que o servidor consiga entendê-la e processá-la
adequadamente (qualquer informação de estado deve ficar no cliente).
Novamente eu sei que é estranho falar em REST como uma técnica de engenharia de software,
mas não há nada de errado nisso! Ademais, de fato ele é utilizado no desenvolvimento de
sistemas hipermídia distribuídos. Por outro lado, o servidor não precisa lembrar o estado do
cliente. Em vez disso, os clientes devem incluir todas as informações necessárias na requisição
para que o servidor possa entendê-la e processá-la. Dentro de um mesmo contexto de conexão,
não existe mais de uma requisição HTTP, i.e., cada requisição HTTP é única e não reflete estado
no servidor.
Gabarito: Correto
77. (CESPE – 2013 – STF) A REST (Representational State Transfer), protocolo de comunicação
embasado em XML, permite a comunicação de mensagens entre aplicações por meio de
qualquer protocolo de comunicação em rede. Normalmente, esse protocolo é utilizado na
integração de sistemas legados.
Comentários:
REST não é um protocolo! Ele pode ser considerado um estilo arquitetural ou uma técnica de
engenharia de software. Além disso, ele não é embasado em XML – pode-se dizer que ele é
embasado (não obrigatoriamente) em HTTP.
Gabarito: Errado
78. (CESPE – 2015 – FUB) Em REST, os conectores precisam reter o estado das aplicações entre
as requisições, visto que eles dependem de informações de requisições que as antecederam
para entender determinada requisição.
Comentários:
A comunicação entre cliente e servidor deve ser stateless. O servidor não precisa lembrar o
estado do cliente. Em vez disso, os clientes devem incluir todas as informações necessárias
na requisição para que o servidor possa entendê-la e processá-la.
Em outras palavras, um mesmo cliente pode mandar várias requisições para o servidor,
porém cada uma delas deve ser independente, ou seja, toda requisição deve conter todas
as informações necessárias para que o servidor consiga entendê-la e processá-la
adequadamente (qualquer informação de estado deve ficar no cliente).
Não é necessário manter o estado das aplicações entre as requisições – essa é uma questão
recorrente.
Gabarito: Errado
79. (CESPE – 2011 – MEC) Um web service pode ser desenvolvido, também, com o uso de REST,
que utiliza o protocolo HTTP para comunicação entre emissor e destinatário, e o SOAP, para
encapsular as mensagens trafegadas.
Comentários:
A redação da questão a tornou ambígua. Um Web Service pode ser desenvolvido com uso de
REST ou com uso de SOAP, mas não ambos. Para mim, deveria ser anulada, mas a banca a
considerou errada.
Gabarito: Errado
80.(CESPE – 2010 – MPU) REST (Representationals State Transfer) é uma tecnologia que está
sendo utilizada em web services, como substituta das tecnologias SOAP (Simple Object
Access Protocol) e WSDL.
Comentários:
Não há um melhor! Além disso, REST não substitui SOAP – são tecnologias concorrentes e cada
um é utilizado em seu contexto.
Gabarito: Errado
81. (CESPE – 2013 – MPU) Web services é um método de comunicação entre serviços na Web
que aderem estritamente ao XML, como é o caso de serviços cuja comunicação é baseada na
interface da arquitetura REST.
Comentários:
Gabarito: Errado
82. (CESPE – 2010 – TCU) Uma equipe de desenvolvimento de software recebeu a incumbência
de desenvolver um sistema com as características apresentadas a seguir.
O líder da equipe iniciou, então, um extenso processo de coleta de dados com o objetivo de
identificar as condições limitantes da solução a ser desenvolvida e tomar decisões
arquiteturais e tecnológicas que impactarão várias características funcionais e não funcionais
do sistema, ao longo de seu ciclo de vida. A partir dessa coleta, o líder deverá apresentar à
equipe um conjunto de informações e de decisões. Com relação às diferentes arquiteturas e
tecnologias que, se escolhidas, impactarão as características do sistema descrito no texto,
julgue o item:
Comentários:
Observem outra diferença importante! No SOAP, existe uma especificação que deve ser seguida
para todas as requisições/respostas – trata-se do WSDL. No REST, não existia nenhuma
especificação. Hoje em dia, podemos utilizar o WSDL2 ou WADL para descrever um serviço.
Bacana? Agora percebam a complexidade que é enviar uma mensagem no SOAP x REST! Vejam o
overhead que traz o envelope...
Gabarito: Errado
83. (CESPE – 2015 – MEC) As principais características do REST (representationl state transfer)
são interface uniforme, stateless e cache.
Comentários:
A comunicação entre cliente e servidor deve ser stateless. O servidor não precisa lembrar o
estado do cliente. Em vez disso, os clientes devem incluir todas as informações necessárias
na requisição para que o servidor possa entendê-la e processá-la.
Em outras palavras, um mesmo cliente pode mandar várias requisições para o servidor,
porém cada uma delas deve ser independente, ou seja, toda requisição deve conter todas
as informações necessárias para que o servidor consiga entendê-la e processá-la
adequadamente (qualquer informação de estado deve ficar no cliente).
Isso significa que, quando um primeiro cliente solicita um determinado recurso ao servidor,
esse processa a requisição e o cliente a armazena temporariamente em cache. Quando
houver uma nova requisição, a resposta armazenada já está pronta para ser utilizada.
É basicamente um contrato para comunicação entre cliente e servidor. São regras para
fazer um componente o mais genérico possível, tornando-o muito mais fácil de ser
refatorado e melhorado. Obedece a quatro princípios: identificação de recursos;
representação de recursos; respostas auto-explicativas; e hypermídia.
Gabarito: Correto
Comentários:
Gabarito: Correto
85. (CESPE – 2012 – TJ/RO) Representational state transfer (REST), que utiliza o WSDL como
linguagem de descrição de serviços, é uma forma de implementação de SOA na web.
Comentários:
Observem outra diferença importante! No SOAP, existe uma especificação que deve ser seguida
para todas as requisições/respostas – trata-se do WSDL. No REST, não existia nenhuma
especificação. Hoje em dia, podemos utilizar o WSDL2 ou WADL para descrever um serviço.
Bacana? Agora percebam a complexidade que é enviar uma mensagem no SOAP x REST! Vejam o
overhead que traz o envelope...
Gabarito: Errado
Comentários:
Em teoria, é possível que uma aplicação RESTful seja construída utilizando qualquer infraestrutura
de rede ou protocolo de transporte. Na prática, aplicações RESTful levam vantagem ao utilizar
características e recursos da web e o protocolo HTTP (e seus métodos/verbos: GET, POST, PUT,
DELETE). Grosso modo, esses métodos servem respectivamente para recuperar, inserir, atualizar e
deletar um recurso.
Gabarito: Letra A
c) uma linguagem web voltada a definição de predicados que se apliquem a classes de objetos
e de interações em um modelo UML.
Comentários:
Pessoal, essa questão tem quatro itens que não fazem o menor sentido, logo vamos comentar
direto o primeiro item. Notem só o nosso dilema! Eu falei para vocês diversas vezes que o REST
é um Estilo Arquitetural. O gabarito da questão afirma que REST é um Estilo de
Desenvolvimento. Ora, na minha opinião, questão errada e ponto final! Simples assim...
Porééééééém esse item foi retirado diretamente da última versão do Sommerville (9ª Ed.) e ele
afirma exatamente assim:
“REST é um estilo de desenvolvimento baseado em interação simples de cliente /servidor e que usa
o protocolo HTTP. REST é baseado na ideia de recurso identificável, o qual possui uma URI. Todas
as interações com recursos são baseadas em HTTP POST, GET, PUT e DELETE. Atualmente é muito
usado para implementar web services de baixo overhead”.
O que isso significa? Isso significa que, a partir de agora, vamos ter que considerar o REST – pelo
menos no contexto de provas de concurso – também como um Estilo de Desenvolvimento. Eu
discordo veementemente, não vejo o menor sentido nessa afirmação. Porém, contudo, todavia,
entretanto, se o Sommerville diz, vira referência! Bacana?
Gabarito: Letra A
LISTA DE QUESTÕES
services
1. (CESPE - 2013 - CNJ) 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).
2. (CESPE - 2013 - CNJ) A linguagem WSDL é utilizada para descrever web services limitadas ao
tipo request-response.
3. (CESPE - 2013 - CNJ) Nos registros de negócio UDDI, a descrição da forma de acesso aos web
services é um procedimento contido nas páginas verdes (green pages).
4. (CESPE - 2013 - TRE-MS) No que se refere a SOA e webservices, assinale a opção correta.
a) O WS-Security propõe uma série de extensões para aprimorar a segurança dos web
services no UDDI e no WSDL. Por questão de compatibilidade, essas extensões não afetam
os cabeçalhos do envelope SOAP.
c) WSDL é descrito em formato XML e tem por única função descrever os valores e formatos
dos dados que serão intercambiados entre os sistemas.
5. (CESPE - 2011 - MEC) O UDDI (Universal Description Discovery and Integration), que
corresponde a um registro de web services, é dividido em páginas brancas, amarelas e verdes,
nas quais são prestadas aos clientes informações sobre a empresa, os serviços por ela
oferecidos e as especificações WSDL desses serviços.
7. (CESPE - 2011 - CBM-DF) Embora não tenha publicação automática, um web service permite
a utilização das regras de negócio através da rede e conecta aplicações de diferentes
fornecedores.
8. (CESPE - 2011 - PREVIC) No WSDL (Web Services Definition Language), é prescrito o leiaute
de banco de dados com descrições de serviços, por meio das quais os clientes de web service
podem procurar serviços relevantes.
9. (CESPE - 2011 - PREVIC) 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
finais.
10. (CESPE - 2010 - MPU) A descrição de um web service é feita utilizando-se WSDL (Web
Services Description Language), que é uma linguagem embasada em RPC (Remote
Procedure Call) e UDDI (Universal Description Discovery and Integration), com a qual se
descreve a forma de acesso dos serviços e seus parâmetros de entrada e de saída.
11. (CESPE - 2008 – TRT/BA) O UDDI é uma especificação técnica que tem como objetivo
descrever, descobrir e integrar web services; é embasado na tecnologia XML, que fornece
uma plataforma neutra de dados e permite descrever relações hierárquicas de modo natural.
12. (CESPE - 2008 - STJ) O serviço UDDI fornece uma interface para publicar e atualizar
informações acerca de serviços web; possibilita pesquisar descrições WSDL pelo nome; provê
uma interface que possibilita executar consultas de modo a recuperar uma entidade que
corresponda a uma chave ou recuperar entidades que correspondam a um conjunto de
critérios de busca.
13. (CESPE - 2008 - STJ) O WSDL separa a parte abstrata de uma descrição de serviço da parte
concreta; nessa descrição, a parte concreta contém as definições de tipos usados pelo serviço
e a parte abstrata especifica como e onde o serviço pode ser contatado. Os documentos
WSDL podem ser acessados via um serviço de diretório como o UDDI; as definições WSDL
podem ser geradas a partir de definições de interfaces escritas em outras linguagens.
14. (CESPE - 2008 - STJ) O SOAP encapsula mensagens que podem ser transmitidas via HTTP;
permite o modelo de interação cliente-servidor; define como usar XML para representar
mensagens de requisição e resposta. Um documento XML é transportado no corpo de uma
mensagem SOAP; no modelo cliente-servidor, o corpo de uma mensagem SOAP pode conter
uma requisição, mas não uma resposta.
15. (CESPE - 2008 – TRT/BA) No SOA, os web services permitem que os aplicativos se
comuniquem entre si de modo independente da plataforma e da linguagem de programação.
Os web services utilizam WSDL para descrever interfaces de aplicativos na linguagem XML.
16. (CESPE - 2008 – TRT/BA) Na visão do SOA, XML e WSDL são padrões abertos que permitem
que os serviços se comuniquem de maneira homogênea, independentemente da plataforma
de hardware, do sistema operacional e da linguagem de programação nos quais o serviço está
implementado.
17. (CESPE - 2009 - ANATEL) Os três padrões fundamentais que possibilitam comunicações
entre web services são: simple object access protocol (SOAP) — protocolo que define uma
organização para a troca estruturada de dados entre web services; web services description
language (WSDL) — protocolo que define como as interfaces dos web services podem ser
representadas; universal description, discovery and integration (UDDI) — padrão de
descoberta que define como são organizadas as informações de descrição do serviço,
permitindo que os solicitantes descubram os serviços. Um desses padrões não utiliza a XML
(extensible mark-up language).
18. (CESPE - 2009 – CEHAP/PB) São padrões de Web services o SOAP, o WSDL e o UDDI, todos
baseados em HTTP.
20. (CESPE - 2009 - ANTAQ) Nos serviços web, clientes e servidores, direta ou indiretamente,
podem acessar documentos UDDI completos por meio de seus URIs (uniform resource
identifier), usando um serviço de diretório, tal como o WSDL.
21. (CESPE - 2009 – TCE/TO) Acerca da arquitetura orientada ao serviço (SOA), assinale a opção
incorreta.
e) Nos web services, utiliza-se SOAP sobre HTTP para se realizar a comunicação entre os
serviços.
23. (CESPE - 2010 - INMETRO) Em um sistema que adere a uma arquitetura orientada a serviços
(SOA), vários elementos da arquitetura estabelecem comunicações entre si, e recomenda-se
que adotem vários padrões e recursos para comunicação, como HTTP (hypertext transfer
protocol), WSDL (Web Services Description Language), SOAP (Single Object Acess Protocol),
WS-BPEL (Web Services – Business Processes Execution Language), UDDI (Universal
Description, Discover and Integration) e XML (eXtensible Markup Language), entre outros.
Assinale a opção que formula relação correta entre esses padrões e (ou) recursos.
a) Um documento escrito na linguagem WSDL adota formato com base na linguagem XML e
seu uso depende da existência do serviço UDDI.
b) UDDI é um protocolo para definição das interfaces de serviços ofertadas por um objeto que
presta serviços em uma arquitetura orientada a serviços.
e) HTTP, WSDL, UDDI, SOAP, WS-BPEL e SOA são tecnologias para a produção de
documentos digitais que adotam o XML como formato padronizado.
24. (CESPE - 2010 - MPU) A descrição de um web service é feita utilizando-se WSDL (Web
Services Description Language), que é uma linguagem embasada em RPC (Remote
Procedure Call) e UDDI (Universal Description Discovery and Integration), com a qual se
descreve a forma de acesso dos serviços e seus parâmetros de entrada e de saída.
25. (CESPE - 2010 – TRE/MT) Com relação a web services, assinale a opção correta.
b) SOAP (Simple Object Access Protocol) é um protocolo com base em HTML que permite
troca de informações entre aplicações em um ambiente distribuído.
d) A linguagem WSDL (Web Services Description Language) é utilizada para descrever web
services.
e) Segundo o W3C (World Wide Web Consortium), web services são apropriados somente
para aplicações em que componentes de um sistema distribuído são executados em
plataformas semelhantes de um mesmo fornecedor.
26. (CESPE - 2011 – MEC) Web Service é uma solução lógica que oferece a possibilidade de
recuperar informações remotamente por meio de cloud computing. Esse serviço utiliza a
definição WSDL em um ou mais XML Schemas, que são armazenados na UDDI.
27. (CESPE - 2012 – PEFO/CE) SOAP é um protocolo leve destinado à troca de informações
estruturadas em um ambiente distribuído e descentralizado. Uma mensagem SOAP, por
exemplo, é um documento XML composto de três partes obrigatórias: envelope, cabeçalho
e corpo.
28. (CESPE - 2009 - ANTAQ) Web services é um tipo de arquitetura de sistema distribuído que
se caracteriza pela disponibilidade de serviços abstratos na Logical View, que se orienta pela
troca de mensagens entre requisitantes e provedores, independentemente das suas
plataformas de trabalho via XML.
29. (CESPE - 2012 – TJ/RO) Acerca de SOA e web services, assinale a opção correta.
a) Web service é projetado para operar dados entre máquinas, em redes de computadores,
mediante a linguagem UDDI.
d) Representational state transfer (REST), que utiliza o WSDL como linguagem de descrição
de serviços, é uma forma de implementação de SOA na web.
30. (CESPE - 2013 – CNJ) Um dos elementos de uma mensagem SOAP é o corpo (body), no qual
devem estar contidas as informações de erro e status.
31. (CESPE - 2013 – ANTT) Web Services provêm um meio padrão para interoperação entre
diferentes aplicativos de software, que podem ser executados em uma variedade de
plataformas e(ou) frameworks.
33. (CESPE - 2013 – TCE/RO) O SOAP permite a troca de mensagens estruturadas em ambiente
distribuído e descentralizado, com o uso de tecnologias XML. Essas mensagens podem ser
trocadas por uma variedade de protocolos subjacentes como, por exemplo, o HTTP.
34. (CESPE - 2013 – SERPRO) A comunicação entre sistemas clientes e servidores para troca de
mensagens pode ser realizada por meio de SOAP (simple object access protocol), que é um
protocolo para troca de informações estruturadas independente de linguagem de
programação.
35. (CESPE - 2013 – CNJ) 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).
36. (CESPE - 2012 – MPE/PI) Em web services, utiliza-se o protocolo SOAP (simple object access
protocol) para a comunicação entre os serviços.
37. (CESPE - 2016 – TCE/PR) Em um web service, o termo namespace representa o nome do
elemento principal do maior nível hierárquico em um documento XML utilizado para troca de
mensagens.
38. (CESPE - 2009 - ANTAQ) Em serviços web, o SOAP pode ser transportado por protocolos
como REST, HTTP, SMTP e JMS.
39. (CESPE – 2017 – SE/DF) Serviços expressos por meio de contratos web services têm o
potencial de evitar completamente a transformação, objetivo-chave dos contratos de
serviços padronizados.
40. (CESPE – 2017 – SE/DF) Por oferecerem um framework de comunicação com base em
contratos de serviços fisicamente desacoplados, os web services permitem que um contrato
de serviços seja totalmente padronizado, independentemente de sua implementação.
41. (CESPE – 2017 – TRE/PE) A respeito de arquitetura orientada a serviços (SOA), assinale a
opção correta.
a) WS – Transaction é um padrão de suporte que garante que uma mensagem seja entregue
uma vez e apenas uma vez.
d) WSDL (web service definition language) na SOA para Web é uma linguagem utilizada
como padrão para troca de mensagens e para definição de componentes de web services.
e) WS – realiable messaging é um padrão SOA que define como as informações devem ser
representadas em uma mensagem SOAP.
42. (CESPE – 2017 – TRE/BA) No que se refere a web services, assinale a opção correta.
a) As solicitações e respostas XML trafegam no protocolo HTTP, não sendo possível utilizá-
las nos protocolos FTP e SMTP.
b) Um dos componentes de um Web Service SOAP (Simple Object Access Protocol) é a UDDI
(Universal Description, Discovery and Integration), a qual é um arquivo do tipo XML que
descreve detalhadamente um Web Service, especificando como deve ser o formato de
entrada e saída de cada operação.
c) As duas formas de envio de mensagem para que um cliente possa efetuar solicitações a um
Web Service são One-Way Messaging e Request-Response Messaging.
43. (CESPE - 2013 - TRE-MS) O WS-Security propõe uma série de extensões para aprimorar a
segurança dos web services no UDDI e no WSDL. Por questão de compatibilidade, essas
extensões não afetam os cabeçalhos do envelope SOAP.
45. (CESPE - 2008 – MPE/AM) No protocolo HTTP (hypertext transfer protocol), o método GET
é utilizado em solicitações enviadas pelo servidor ao navegador para que este solicite dados
ao usuário de uma página ou para que o próprio navegador forneça os dados solicitados.
46.(CESPE - 2011 – MEC) Em formulários HTML, apenas o método post é suportado; o método
get é utilizado em aplicações JavaScript.
47. (FCC – 2010 – AL/SP) GET e POST são alguns dos principais métodos que determinam o que
o servidor deve fazer com o URL fornecido no momento da requisição de um recurso.
Relacionado a esses métodos, considere:
I. Dados enviados em uma requisição utilizando o método GET ficam visíveis na linha de
endereço do navegador.
III. O método GET é geralmente utilizado para enviar grandes quantidades de dados por meio
de um formulário.
IV. O método POST não exibe os dados enviados na linha de endereço do navegador.
a) I e II.
b) I e IV.
c) II, III e IV.
d) III.
e) IV.
a) input – output
b) post – get
c) push – pop
d) post – cat
e) push – pull
50. (FUMARC - 2014 – ALMG) Analise as seguintes afirmativas sobre os métodos HTML:
I. HTML POST é utilizado para enviar dados para serem processados em um servidor Web.
II. HTML GET solicita ao servidor apenas o cabeçalho de uma URL para que o cliente decida
se deve requisitar o conteúdo completo ou não.
III. HTML PUT é utilizado para criar recursos dentro de um servidor Web.
a) I e II, apenas.
b) I e III, apenas.
c) II e III, apenas.
d) I, II e III.
51. (FAU - 2016 – JUCEPAR/PR) Que nome é dado aos pequenos arquivos que são gravados em
seu computador quando você acessa sites na Internet e que são reenviados a estes mesmos
sites quando novamente visitados?
a) Planilhas.
b) Cookies.
c) Trojan.
d) Virus.
e) Token.
52. (IESES - 2015 – TRE/MA) Das definições abaixo sobre cookies, assinale a afirmativa correta.
b) Arquivo gerado pelo servidor WEB que fica armazenado na máquina do usuário e que
permite ao servidor buscar informações realizadas pelo usuário no site.
d) O cookie Web é arquivo que fica armazenado na máquina do usuário e que aumenta a
performance de navegação na WEB.
53. (FAU - 2016 – JUCEPAR/PR) Assinale a alternativa correta que contenha a definição de
Cookie:
b) Vírus que captura informações do usuário digitadas no navegador e as envia por e-mail
para um computador receptor.
54. (FGV - 2016 - COMPESA) Quando um navegador solicita uma página da web, o servidor pode
fornecer informações adicionais junto com a página solicitada. Essas informações podem
incluir um cookie.
I. Uma linha no cabeçalho HTTP iniciada por Cookie: é a forma como os servidores enviam
cookies aos clientes. Espera-se que o cliente grave o cookie e o devolva em solicitações
subsequentes ao servidor.
II. Para remover um cookie do disco rígido do cliente, basta o servidor enviá-lo novamente
com uma data de expiração vencida.
III. Um cookie que não contém a informação de quando irá expirar permanece ativo por
tempo indeterminado.
a) I, apenas.
b) II, apenas.
c) III, apenas.
d) I e II, apenas.
e) I, II e III.
55. (IBFC / EBSERH – 2017) Assinale a alternativa que apresenta o serviço de diretório onde
empresas podem registrar (publicar) e buscar (descobrir) por Serviços Web (Web Services):
a) UDDI
b) NIS
c) WSDL
d) X.500
e) LDAP
56. (IBFC / EBSERH – 2017) Web service é uma solução utilizada na integração de sistemas. Os
Web services são componentes que permitem às aplicações enviar e receber dados, como
padrão, em formato:
a) NAT
b) ARP
c) XML
d) TLS
e) XDR.
57. (IBFC / EBSERH – 2017) Conforme o W3C (World Wide Web Consortium) pode-se definir um
Web Service como sendo:
58. (IBFC / EMDEC – 2016) Quanto as tecnologias aplicadas em um Web Service temos:
59. (CESPE - 2011 – MEC) Um web service pode ser desenvolvido, também, com o uso de REST,
que utiliza o protocolo HTTP para comunicação entre emissor e destinatário, e o SOAP, para
encapsular as mensagens trafegadas.
60.(CESPE - 2016 – TCE/SC) A JAX-RS 2.0 fornece APIs portáteis para o desenvolvimento de
aplicações Web em conformidade com os princípios do estilo arquitetônico REST.
62. (CESPE - 2015 – MEC) Entre as restrições da REST está a interface uniforme, a qual requer
que um serviço ofereça várias operações e aguarde a solicitação dessas operações pelo
servidor.
63. (CESPE - 2015 – MEC) A fim de implementar serviços em REST, recomenda-se utilizar os
WSDL já existentes com mínima alteração do cabeçalho, informando somente que o
protocolo a ser utilizado é o REST.
I. REST é um protocolo para troca de mensagens entre componentes de uma aplicação web.
II. REST é uma arquitetura, onde cada aplicação é um conjunto de recursos sobre os quais
podemos realizar ações.
III. Os formatos dos arquivos utilizados numa aplicação que segue REST são JSON, XML ou
YAML.
a) Apenas I.
b) Apenas II.
c) Apenas III.
d) Apenas I e III.
e) Apenas II e III.
65. (CESPE - 2016 – MEC) A respeito dos conceitos de web services e REST, assinale a opção
correta.
b) Pode-se utilizar qualquer meio de transporte existente para o envio de uma requisição,
incluindo HTTP, SMTP e TCP.
e) As chamadas às URIs (uniform resource indicator) são feitas por meio de métodos HTTP,
os quais indicam para o serviço a ação a ser realizada com o recurso.
66. (CESPE - 2015 – TRE/MT) Acerca de REST (representational state transfer), assinale a
opção correta.
67. (CESPE - 2016– TRE/PI) Acerca de REST (Representational State Transfer), assinale a opção
correta.
a) REST e WS-*
b) SOAP e WSDL
c) RPC e RMI
d) SGML e HTML
e) B2B e B2C
69. (CESPE – 2013 – STF) A World Wide Web (WWW) é a maior implementação de um
sistema em conformidade com a arquitetura REST.
70. (CESPE – 2013 – BACEN) O estilo arquitetural REST define um conjunto de restrições para
uma aplicação, como, por exemplo, utilização de arquitetura par-a-par, manutenção de
informações de estado, não uso de cache no cliente e apresentação de uma interface
uniforme.
71. (CESPE – 2014 – ANTAQ) Em arquiteturas REST, nenhum contexto de cliente pode ser
mantido em servidor.
72. (CESPE – 2016 – FUNPRESP) Conexões REST devem conter todas as informações
necessárias para que a conexão seja completada.
73. (CESPE – 2013 – SERPRO) Um web service pode ocorrer sobre o HTTP (hypertext transfer
protocol), utilizando-se os serviços RESTfull (representational state transfer).
74. (CESPE – 2015 – TJDFT) Em um Web Service RESTful, cada método é identificado por uma
URL única. Assim, quando o servidor recebe uma solicitação, ele identifica de forma
inequívoca a operação que será executada.
75. (COPEVE-UFAL – 2012 – ALGÁS) REST é uma técnica de engenharia de software utilizada
no desenvolvimento de sistemas hipermídia distribuídos e adequada para a Web.
76. (CESPE – 2014 – ANATEL) REST é uma técnica de engenharia de software para sistemas
hipermídia distribuídos. De acordo com essa técnica, o estado da informação deve ser
mantido no cliente, e o servidor não deve guardar o estado da comunicação de nenhum
cliente que se comunique com o servidor, além de uma única requisição.
77. (CESPE – 2013 – STF) A REST (Representational State Transfer), protocolo de comunicação
embasado em XML, permite a comunicação de mensagens entre aplicações por meio de
qualquer protocolo de comunicação em rede. Normalmente, esse protocolo é utilizado na
integração de sistemas legados.
78. (CESPE – 2015 – FUB) Em REST, os conectores precisam reter o estado das aplicações entre
as requisições, visto que eles dependem de informações de requisições que as antecederam
para entender determinada requisição.
79. (CESPE – 2011 – MEC) Um web service pode ser desenvolvido, também, com o uso de REST,
que utiliza o protocolo HTTP para comunicação entre emissor e destinatário, e o SOAP, para
encapsular as mensagens trafegadas.
80.(CESPE – 2010 – MPU) REST (Representationals State Transfer) é uma tecnologia que está
sendo utilizada em web services, como substituta das tecnologias SOAP (Simple Object
Access Protocol) e WSDL.
81. (CESPE – 2013 – MPU) Web services é um método de comunicação entre serviços na Web
que aderem estritamente ao XML, como é o caso de serviços cuja comunicação é baseada na
interface da arquitetura REST.
82. (CESPE – 2010 – TCU) Uma equipe de desenvolvimento de software recebeu a incumbência
de desenvolver um sistema com as características apresentadas a seguir.
O líder da equipe iniciou, então, um extenso processo de coleta de dados com o objetivo de
identificar as condições limitantes da solução a ser desenvolvida e tomar decisões
arquiteturais e tecnológicas que impactarão várias características funcionais e não funcionais
do sistema, ao longo de seu ciclo de vida. A partir dessa coleta, o líder deverá apresentar à
equipe um conjunto de informações e de decisões. Com relação às diferentes arquiteturas e
tecnologias que, se escolhidas, impactarão as características do sistema descrito no texto,
julgue o item:
83. (CESPE – 2015 – MEC) As principais características do REST (representationl state transfer)
são interface uniforme, stateless e cache.
recursos para seus clientes, que são identificados através de ...II... . A manipulação dos recursos
se dá através de operações básicas como ...III... .
85. (CESPE – 2012 – TJ/RO) Representational state transfer (REST), que utiliza o WSDL como
linguagem de descrição de serviços, é uma forma de implementação de SOA na web.
c) uma linguagem web voltada a definição de predicados que se apliquem a classes de objetos
e de interações em um modelo UML.
GABARITO