Baixe o app para aproveitar ainda mais
Prévia do material em texto
Integração de Aplicações Ver: 1.0 Tecnologias de integração entre sistemas e aplicações 1. Os métodos de uma API REST utilizam o protocolo HTTP a partir da versão 1.1. Qual método é utilizado para atualizar apenas parte dos dados de um objeto em uma requisição? A. GET. B. PUT. C. PATCH. D. DELETE. E. POST. Resposta: C Motivo: O método que é utilizado para atualizar apenas parte dos dados é o PATCH. O GET é utilizado para buscar dados. O PUT é utilizado para editar todos os dados dos objetos. O DELETE é utilizado para apagar um objeto. A POST é utilizada para criar um novo objeto. 2. JSON vem substituindo o XML no mercado, devido à sua simplicidade de escrita e por ser mais leve. Marque a opção que representa o elemento da estrutura de dados JSON que é um conjunto com um ou mais pares nome/valor: A. String. B. Número. C. Valor. D. Array. E. Objeto. Resposta: E Motivo: O elemento da estrutura de dados JSON que é um conjunto de um ou mais pares nome e valor é o objeto. O array é uma coleção de valores. Um valor pode ser do tipo string, número, objeto, array, null, true ou false. O número representa os valores numéricos. Uma string é a representação de um valor na forma de texto. 3. Existem constraints que definem uma API REST. Marque a constraint que diz que "cada par requisição e resposta deve ser tratado de forma independente em relação a requisições anteriores ou posteriores". A. Cliente-servidor. B. Stateless. C. Interface uniforme. D. Cache. E. Código sob demanda. Resposta: B Motivo: A constraint que diz que as requisições devem ser tratadas de forma independente de requisições anteriores ou posteriores é a stateless. A cliente-servidor diz que o cliente faz requisições e o servidor responde. A interface uniforme diz que a troca de mensagens deve ocorrer por meio de interfaces uniformes. A cache diz que é possível implementar estratégias de cache para melhorar o desempenho. O código sob demanda trata da capacidade do servidor de fornecer um código que seja executado no cliente. 4. A requisição de serviços em APIs REST resulta em um código junto à resposta. Marque a categoria de códigos que representa erro no cliente: A. 1xx. B. 2xx. C. 3xx. D. 4xx. E. 5xx. Resposta: D Motivo: A categoria de códigos que representa erro no cliente é a 4xx. A 1xx é um código informativo. A 2xx representa confirmação. A 3xx representa redirecionamento. A 5xx é a categoria para erro no servidor. 5. Diversos código de erros são apresentados para os clientes, a ponto de muitos os conhecerem mesmo sem entender seu significado. Marque a opção que representa o código lançado quando o usuário tentar acessar uma rota não existente: A. 404. B. 403 C. 500 D. 503 E. 401 Resposta: A Motivo: Quando um usuário tenta acessar uma rota não existente, ele recebe o erro 404, para Not Found. O código 403, para Forbidden, é para avisar que o usuário não tem permissão para acessar o servidor. O código 500, para Internal Server Error, representa erro interno no servidor. O 503, para Service Unavailable, representa serviço temporariamente indisponível. O 401, para Unauthorized, representa que o usuário tem acesso ao servidor, mas não a algum recurso específico. SOAP 1. Uma empresa de desenvolvimento de sistemas Web está considerando a adoção do protocolo SOAP para a comunicação entre sistemas. Indique a alternativa que explique corretamente um recurso oferecido pelo protocolo SOAP. A. Um padrão para a definição de chamadas de procedimentos remotos que são uma forma comum de invocação de funções utilizada em serviços distribuídos. B. Um mecanismo de representação de dados flexível possibilitando que sejam serializados em formato e desserializados em outro formato. C. Um recurso para o tratamento de erros tornando possível que os sistemas façam o diagnóstico de eventuais falhas e sugiram soluções. D. Um mecanismo de vinculação ou binding que permite a associação entre mensagens SOAP a tecnologias específicas dos clientes. E. Uma forma de estender os seus elementos permitindo que o protocolo possa ser processado de forma mais eficiente. Resposta: A Motivo: O SOAP oferece uma convenção para a representação de chamadas remotas ou RPCs que são largamente utilizadas em computação distribuída. Embora possibilitem uma representação de dados flexível, a serialização e a desserialização desses dados sempre são feitas em um mesmo formato. O recurso de tratamento de erros também é oferecido, porém o diagnóstico de causa e proposição de soluções é resultado de análise humana. Outro recurso é o de binding, que vincula mensagens SOAP com um mecanismo de transmissão pela rede. O SOAP é agnóstico quanto à tecnologia dos clientes. Além disso, o SOAP pode ter seus elementos estendidos. No entanto, isso implica mais cabeçalhos sendo adicionados à sua pilha de elementos, o que tende a comprometer a eficiência de seu processamento. 2. O protocolo SOAP é comumente conhecido por ser um protocolo pesado em razão de toda a estrutura demandada para seu funcionamento. Assinale a alternativa que indique uma estratégia válida para tentar melhorar a eficiência na interpretação das mensagens SOAP. A. Substituir o formato XML das mensagens por outro mais simples. B. Reduzir ou eliminar os elementos de cabeçalho passados nas mensagens. C. Colocar os elementos para o tratamento de falhas diretamente no envelope. D. Vincular as mensagens SOAP a uma linguagem de programação específica. E. Transmitir as mensagens SOAP por meio de outros protocolos, como o Corba. Resposta: B Motivo: Como os elementos de cabeçalho são opcionais em uma mensagem SOAP, a redução deles ou até sua eliminação melhoraria o desempenho no processamento dessas mensagens. Porém, não seria possível trocar o formato das mensagens para outro mais simples, já que as mensagens SOAP são definidas exclusivamente em formato XML. Além disso, como os elementos dentro de uma mensagem SOAP têm organização predefinida, não seria possível trocar o posicionamento dos elementos de tratamento de falhas. Outra ação inviável seria a vinculação do SOAP com qualquer tecnologia, já que uma de suas premissas de funcionamento é a independência de linguagem. Por fim, a transmissão de mensagens SOAP sobre outros protocolos não seria tecnicamente viável, tendo em vista essas mensagens serem interpretáveis apenas pelo próprio protocolo em que foram definidas. 3. Embora o rigor do protocolo SOAP tenha significado uma de suas principais fraquezas, há cenários nos quais essa característica é bem explorada. Indique a alternativa que descreve corretamente uma situação em que o uso do protocolo SOAP se mostra adequado. A. Quando o canal de comunicação entre dois end-points tem largura de banda muito restrita e as mensages precisam trafegar de forma eficiente. B. Quando mudanças na estrutura das mensagens não podem gerar qualquer impacto no código dos clientes que usam o serviço. C. Quando a mensagem trafega sobre outros end-points antes de chegar ao seu destino e cada um deles precisa verificar a autenticidade da mensagem. D. Quando o formato de descrição da mensagem precisa ser modificado para outro cujo processamento seja mais eficiente. E. Quando as mensagens precisam estar associadas a uma tecnologia ou linguagem de programação específica. Resposta: C Motivo: Cenários em que a verificação da identidade da mensagem precisa ser feita em end-points intermediários são bem atendidos pelo protocolo SOAP. Porém, em virtude da sobrecarga de elementos em cada mensagem, quando a largura de banda do canal é limitada, ele não seria a melhor escolha. Como qualquer alteração em mensagens SOAP gera a necessidade de atualização do código de clientes, um cenário em que isso deve ser evitado não seria adequado para o SOAP, assim como o processamento de mensagens em formatos distintos do XML. O SOAP é estritamente descrito nesse formato sem a possibilidade de alteração. E, como ele é agnóstico às tecnologias de clientes, não é possível fazer a sua vinculação a qualquer linguagem de programação. 4. A arquiteturaREST surgiu como alternativa mais leve ao robusto protocolo SOAP. Assinale a alternativa que indique uma vantagem válida dessa abordagem sobre o SOAP. A. Requsições REST podem utilizar a sessão no lado do servidor para otimizar ou personalizar respostas. B. A arquitetura REST propõe que funcionalidades de interface e serviço sejam combinadas para fins de reaproveitamento de componentes. C. Como um serviço REST é sem estado, uma requisição pode aproveitar dados das diversas camadas do sistema. D. Modificações em uma API REST não impactam diretamente no código de aplicações de clientes. E. A ausência do WSDL na arquitetura REST faz com que a interface de comunicação seja livre entre cliente e servidor. Resposta: D Motivo: Como a arquitetura REST não tem algo análogo ao WSDL SOAP, as modificações em uma API REST podem ser transparentes às aplicações clientes. Porém, um dos princípios REST é o de uma interface uniforme de comunicação entre cliente-servidor, ou seja, são impostas várias restrições a essa interface para que a comunicação seja consistente. Embora o REST seja stateless (sem estado), uma requisição não deve poder ter acesso a qualquer outra camada além daquela com a qual está interagindo e não deve armazenar nenhum dado de sessão do usuário no lado do servidor. Outro princípio REST é o de que haja clara separação de responsabilidades de interface e servidor (como armazenamento de dados), ou seja, estas jamais devem ser combinadas. 5. Uma API REST tem seu funcionamento baseado no uso dos verbos ou ações do protocolo HTTP. Indique a alternativa que explique corretamente o funcionamento de uma dessas operações disponíveis. A. POST para atualização dos dados armazenados nas diferentes caches criadas para a otimização do serviço. B. GET para recuperação das informações de eventuais falhas ou erros ocorridos durante a comunicação entre cliente e sevidor. C. DELETE para a exclusão dos dados da sessão do usuário que estejam armazenados no lado do cliente. D. PUT para adição de uma nova função à interface externa do serviço, que, por usa vez, seria acessada via API REST. E. POST para a criação de um registro não previamente existente em uma base de dados usada pelo serviço REST. Resposta: E Motivo: O verbo ou ação POST é utilizado para o envio de dados para o lado do servidor. Logo, estes podem ser persistidos em alguma base de dados. Nenhuma ação REST é capaz de alterar a interface ou API do serviço, o que inclui a ação PUT. Todas as ações REST estão relacionadas aos dados manipulados pelo serviço. Logo, nem a ação DELETE é capaz de alterar a sessão do usuário, nem a ação POST é capaz de alterar informações de qualquer cache. E, como o REST não tem mecanismo de controle de falhas, esse tipo de informação não pode ser recuperado via operação GET. Estrutura SOAP 1. O SOAP possui diversos tipos de dados simples ou genéricos e alguns podem ser utilizados para mapear dados de um mesmo tipo específico. Assinale a alternativa que indique a troca de tipo de dado SOAP que não traz nenhum risco para a integridade do dado mapeado: A. substituir o tipo short por int. B. substituir o tipo doublepor float. C. substituir o tipo float por int. D. substituir os valores booleanos 0 e 1 por F (falso) e V (verdadeiro). E. substituir o tipo hexBinarypor byte. Resposta: A Motivo: Como os tipos short e int são utilizados para mapear números inteiros, e short tem menor poder de armazenamento do que int, essa troca pode ser feita sem qualquer risco. Embora double e float sejam empregados para números decimais, double comporta 64 bits e float, apenas 32 bits. Logo, essa substituição poderia acarretar perda de alguma precisão dos números mapeados. Float por int e hexBinary por byte são incompatíveis; logo, não podem ser substituídos. E valores booleanos comportam apenas 0 e 1 ou true e false, mas não os caracteres V e F. 2. Uma empresa precisa modelar os pedidos que recebe em uma struct SOAP. Cada pedido tem uma data de recebimento e um item. O item é composto de um texto para descrição do pedido, um número indicando a quantidade pedida e o valor total do pedido. Assinale a alternativa que modela a struct SOAP corretamente. A. Confira a alternativa A: <element name="Pedido" type="xsd:complex"> <element name="recebimento" type="xsd:date"/> <element name="Item" type="xsd:complex"> <element name="descricao" type="xsd:string"/> <element name="quantidade" type="xsd:int"/> <element name="valorTotal" type="xsd:float"/> </element> </element> B. Confira a alternativa B: <element name="Pedido"> <complexType> <element name="recebimento" type="xsd:date"/> <element name="Item"> <complexType> <element name="descricao" type="xsd:string"/> <element name="quantidade" type="xsd:int"/> <element name="valorTotal" type="xsd:float"/> </complexType> </element> </complexType> </element> C. Confira a alternativa C: <complexType name="Pedido"> <element name="recebimento" type="xsd:date"/> <complexType name="Item"> <element name="descricao" type="xsd:string"/> <element name="quantidade" type="xsd:int"/> <element name="valorTotal" type="xsd:float"/> </complexType> </complexType> D. Confira a alternativa D: <element name="Pedido"> <complexType="struct"> <element name="recebimento" type="xsd:date"/> <element name="Item"> <complexType="struct"> <element name="descricao" type="xsd:string"/> <element name="quantidade" type="xsd:int"/> <element name="valorTotal" type="xsd:float"/> </complexType> </element> </complexType> </element> E. Confira a alternativa E: <element name="Pedido"> <complexType> <element name="recebimento" type="xsd:string"/> <element name="Item"> <complexType> <element name="descricao" type="xsd:desc"/> <element name="quantidade" type="xsd:short"/> <element name="valorTotal" type="xsd:int"/> </complexType> </element> </complexType> </element> Resposta: B Motivo: A struct Pedido deve ser composta de um tipo simples recebimento (tipo xsd:date) e outra struct Item. Ambas as structs devem ser definidas com as tags element, com o atributo name informando o nome do campo (não é permitido o uso do atributo type) e complexTypesem qualquer atributo para indicar o início da struct. Internos à struct Item, os três elementos simples devem ser definidos: descricao (type="xsd:string"), quantidade (type="xsd:int") e valorTotal (type="xsd:float"). O tipo xsd:desc não existe na especificação SOAP e o uso do tipo xsd:int no elemento valorTotal implicaria que apenas valores inteiros fossem armazenados, comprometendo as casas decimais dos valores dos pedidos. 3. O seguinte array foi definido para modelar a lista de compras de um cliente: <element name="listaDeCompras"> <complexType> <listaDeCompras SOAP-ENC:arrayType="xyz:ur-type[4]"> <Ordem> <Produto>Maçã</Produto> <Preco>1.56</Preco> </Ordem> <Ordem> <Produto>Pera</Produto> <Preco>1.48</Preco> <Quantidade>5</Quantidade> </Ordem> <Cliente> <Nome>Thiago Nascimento</Nome> <Celular>99999-9999</Celular> </Cliente> <complexType> </element> O esquema utilizado para descrever o array acima foi: <element name="listaDeCompras" type="SOAP-ENC:Array"/> Indique a alternativa que aponta as correções que devem ser feitas no array para que ele esteja de acordo com o esquema definido e seja um tipo de dado composto válido de acordo com a especificação SOAP. A. O elemento Cliente subordinado à listaDeCompras deve ser removido juntamente com seus respectivos elementos internos e o tipo do array deve ser modificado de ur-type para Ordem. B. Um atributo type="xsd:array" deve ser adicionado ao elemento complexType e o atributo arrayType="xyz:ur-type[4]" deve ser movido da listaDeCompras para o elemento complexType. C. O elemento composto Cliente deve ser renomeado para Ordem e a quantidade de elementos permitida no array deve ser ajustada de 4 para 3 no atributo arrayType do elemento listaDeCompras. D. Os dois primeiros elementos devem ser removidos (element e complexType) e a quantidade de elementos permitidano array deve ser ajustada de 4 para 3 no atributo arrayType do elemento listaDeCompras. E. O primeiro elemento <element name="listaDeCompras"> deve ser removido e o elemento complexType deve ser movido de modo a ficar posicionado internamente ao elemento listaDeCompras. Resposta: D Motivo: Uma das maneiras de se definir um array no SOAP é explicitando seu nome e tipo conforme o esquema fornecido para a lista de compras. Neste caso, o array deve começar com o elemento cujo nome está no esquema, ou seja, listaDeCompras. Os elementos iniciais element e complexType não podem ser utilizados como elementos-raízes na modelagem de um array. Como o tipo do array foi definido como ur-type, ele aceita elementos de diferentes tipos. Logo, não há a necessidade de ser converter o elemento Cliente em Ordem. Além disso, como estão presentes 3 elementos no array, o limitador de elementos no atributo arrayType deve ser alterado de 4 para 3. 4. Uma livraria disponibilizou um web service SOAP no endereço http://livro.com.brpara que clientes possam consultar o preço de livros. O método consultarPreco espera que os clientes informem os parâmetros isbn, titulo e anoPublicacao do livro, nessa ordem, para que possa retornar o preço. Indique qual requisição SOAP é capaz de se comunicar corretamente com o web service da livraria. A. Confira a alternativa A: <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/> <SOAP-ENV:Body> <ns1:obterPreco xmlns:ns1="http://livro.com.br" SOAPENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"> <isbn xsi:short="xsd:string">0596000686</isbn> <titulo xsi:type="xsd:string">Java And Web Services</titulo> <anoPublicacao xsi:type="xsd:int">2020</anoPublicacao> </ns1:getPrice> </SOAP-ENV:Body> </SOAP-ENV:Envelope> B. Confira a alternativa B: <SOAP-ENV:Envelope SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/> <SOAP-ENV:Body> <ns1:consultarPreco SOAP-ENV:encodingStyle= "http://schemas.xmlsoap.org/soap/encoding/"> <isbn xsi:type="xsd:string">0596000686</isbn> <titulo xsi:type="xsd:string">Java And Web Services</titulo> <anoPublicacao xsi:type="xsd:int">2020</anoPublicacao> </ns1:getPrice> </SOAP-ENV:Body> </SOAP-ENV:Envelope> C. Confira a alternativa C: <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/> <SOAP-ENV:Body> <ns1:consultarPreco xmlns:ns1="http://livro.com.br" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"> <anoPublicacao xsi:type="xsd:int">2020</anoPublicacao> <titulo xsi:type="xsd:string">Java And Web Services</titulo> <isbn xsi:type="xsd:string">0596000686</isbn> </ns1:getPrice> </SOAP-ENV:Body> </SOAP-ENV:Envelope> D. Confira a alternativa D: <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/> <SOAP-ENV:Body> <ns1:consultarPreco xmlns:ns1="http://livro.com.br" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"> <isbn xsi:type="xsd:string">0596000686</isbn> <titulo xsi:type="xsd:string">Java And Web Services</titulo> <anoPublicacao xsi:type="xsd:int">2020</anoPublicacao> </ns1:getPrice> </SOAP-ENV:Body> </SOAP-ENV:Envelope> E. Confira a alternativa E: <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/> <SOAP-ENV:Head> <ns1:consultarPreco xmlns:ns1="http://livro.com.br" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"> <isbn xsi:type="xsd:string">0596000686</isbn> <titulo xsi:type="xsd:string">Java And Web Services</titulo> <anoPublicacao xsi:type="xsd:int">2020</anoPublicacao> </ns1:getPrice> </SOAP-ENV:Head> </SOAP-ENV:Envelope> Resposta: D Motivo: Toda requisição SOAP deve ser iniciada com o elemento SOAP-ENV:Envelope com os dois atributos de namespace e encodingStyle. Ambos os atributos são obrigatórios. Na sequência, deve aparecer o elemento SOAP-ENV:Body. O elemento SOAP-ENV:Head não pode substituir o elemento SOAP-ENV:Body. O primeiro elemento do corpo deve informar o nome correto do método a ser chamado – consultarPreco – e o endereço do web service – http://livro.com.br. Além disso, os parâmetros devem aparecer na ordem esperada pelo método, ou seja, isbn, titulo e anoPublicacao. 5. Um hotel começou a disponibilizar um web service para consulta de preços de diárias. O serviço retorna o valor da diária de acordo com o tipo e a categoria do quarto. Um cliente recebeu a seguinte resposta SOAP retornada pelo web service, porém não conseguiu recuperar o valor da diária. <SOAP-ENV:Envelope xmlns:SOAP-ENV = "http://www.w3.org/2001/12/soap-envelope" SOAP-ENV:encodingStyle = "http://www.w3.org/2001/12/soap-encoding"> <SOAP-ENV:Body xmlns:m = "http://www.xyz.org/reservas"> <m:ConsultarReserva> <m:TipoDeQuarto>Solteiro</m:TipoDeQuarto> <m:Categoria>Standard</m:Categoria> <m:Valor>150.00</m:Valor> </m:ConsultarReserva> </SOAP-ENV:Body> </SOAP-ENV:Envelope> Indique a alternativa que explica o ajuste que precisa ser feito na resposta SOAP para que ela esteja de acordo com a especificação do protocolo e possa ser corretamente interpretada pelos clientes. A. O tipo de dado da resposta deve ser alterado para um array, como todos os elementos internos. B. O valor do atributo encodingStyle deve ser modificado para referenciar o método de consulta. C. Um elemento SOAP-ENV:Header deve ser adicionado antes do elemento SOAP-ENV:Body. D. A struct ConsultarReserva deve ser renomeada para ConsultarReservaResponse. E. O valor da diária deve ser posicionado como primeiro elemento da struct ConsultarReserva. Resposta: E Motivo: De acordo com a especificação, o valor de retorno sempre deve ser o primeiro elemento da struct de retorno. Logo, um tipo de dado composto array não deve ser usado. O atributo encodingStyle tem um valor padrão indicando o namespace e a instância usada. Nenhuma referência ao método deve ser indicada neste atributo. O uso de cabeçalho SOAP-ENV:Header é opcional e, por isso, não interefere no correto processamento da resposta. Do mesmo modo, o acréscimo da palavra Response ao nome do método é apenas uma convenção, não comprometendo dessa forma a interpretação da mensagem de resposta. Mensagens SOAP 1. SOAP (Simple Object Access Protocol) é um protocolo para troca de informações estruturadas em ambientes distribuídos. Para que um documento XML possa ser identificado como uma mensagem SOAP, deve conter quais elementos? A. Envelope (obrigatório) – Head (obrigatório) – Fault (opcional). B. Title (obrigatório) – Envelope (opcional) – Body (obrigatório). C. Envelope (obrigatório) – Header (opcional) – Body (obrigatório). D. Header (obrigatório) – Envelope (obrigatório) – Body (opcional). E. Body (obrigatório) – Envelope (opcional) – Fault (opcional). Resposta: C Motivo: Os elementos envelope e body (corpo) são obrigatórios em uma mensagem SOAP. O envelope identifica o documento XML como uma mensagem SOAP. O body contém informações a serem transportadas para o destino final. Os elementos header (cabeçalho) e fault (falha) são opcionais. O header carrega informações adicionais e o fault contém informações dos erros ocorridos no envio da mensagem. 2. Para a troca de informações entre aplicações via Web, é necessário um padrão para que o destinatário compreenda a mensagem enviada. SOAP (Simple Object Access Protocol) é um protocolo de troca de mensagens entre sistemas computacionais recomendado pela W3C (WWW Consortium). Sobre esse protocolo, é correto afirmar que: A. utiliza as linguagens XML, HTML ou JSON para formatar mensagens. B. só pode ser utilizado para comunicar aplicações em um mesmo sistema operacional (Windows, Linux ou macOS). C. não é um protocolo utilizado para troca de mensagens estruturadas em plataformas centralizadas.D. quando combinado com HTTP, a mensagem SOAP fica retida no firewall, o que requer modificação na infraestrutura e comunicação para troca de mensagens. E. tem a característica de neutralidade, o que permite que seja utilizado com qualquer protocolo de transporte (como HTTP, SMTP, FTP). Resposta: E Motivo: O protocolo SOAP utiliza exclusivamente a linguagem XML para formatação de mensagens. A troca de mensagens estruturadas em plataformas descentralizadas e distribuídas pode ocorrer independentemente do sistema operacional que esteja sendo utilizado, pois o SOAP opera com qualquer protocolo de transporte (neutralidade). Além disso, quando combinada com o protocolo HTTP, a mensagem SOAP passa facilmente pelo firewall, o que não requer modificações na infraestrutura nem na comunicação para processar a troca de mensagens. 3. A comunicação entre sistemas computacionais distribuídos pode apresentar falhas por diversos motivos. O protocolo SOAP tem um elemento em sua estrutura para informar falhas no processamento da mensagem. Sobre o elemento fault da mensagem SOAP, pode-se afirmar que: A. é obrigatório na mensagem SOAP, assim como os elementos envelope, header e body. B. o subelemento <faultCode> é um código utilizado para identificar uma classe de falhas. C. pode aparecer diversas vezes na mensagem SOAP, para indicar diferentes erros. D. caso esteja presente na mensagem SOAP, deve aparecer como filho do elemento header. E. o subelemento <faultString> é um código utilizado para identificar alguma palavra que esteja escrita errada na mensagem SOAP. Resposta: B Motivo: O elemento fault é opcional em uma mensagem SOAP. Só pode aparecer uma única vez na mensagem e deve ser filho do elemento body. O subelemento <faultCode> é um código utilizado para identificar uma classe de falhas (resposta correta). O subelemento <faultString> é uma explicação humana legível da falha. 4. O protocolo SOAP tem uma estrutura que identifica a mensagem SOAP em um arquivo XML. O elemento envelope é obrigatório nessa estrutura. Sobre esse elemento, é correto afirmar que: A. o elemento envelope deve ser o elemento-raiz (root) da mensagem SOAP. B. os elementos obrigatórios header e body podem estar fora do elemento envelope, mas na mesma mensagem SOAP. C. o elemento envelope pode ter entre zero e dois elementos-filhos. D. vários namespaces podem ser associados ao elemento envelope. E. o atributo encodingStyle dentro de um envelope é utilizado para definir o estilo do documento XML. Resposta: A Motivo: O elemento envelope deve ser o elemento-raiz de um documento XML, para identificar que este será uma mensagem SOAP. Os elementos header (opcional) e body (obrigatório) devem estar dentro do elemento envelope. Este pode ter entre um e dois elementos-filhos, já que o elemento body é obrigatório e deve estar contido dentro de envelope. Um único namespace deve estar associado ao envelope. Caso esse elemento tenha outro namespace, a aplicação deve gerar um erro e descartar a mensagem. O atributo encodingStyle é utilizado para definir os tipos de dados usados no documento. 5. O protocolo SOAP é recomendado pela W3C (WWW Consortium) e, para estabelecer comunicação entre aplicações, deve conter determinados elementos em sua estrutura. Sobre o elemento header (cabeçalho) da mensagem SOAP, assinale a opção correta. A. O elemento header é obrigatório nas mensagens SOAP. B. O elemento header pode ser o segundo elemento-filho do elemento envelope. C. Seu atributo ator tem o objetivo de endereçá-lo a um terminal específico. D. Dentro do elemento header se encontra o conteúdo da mensagem, como processo de invocação e parâmetros necessários. E. O atributo mustUnderstand tem a função de definir os tipos de dados utilizados no elemento header. Resposta: C Motivo: O elemento header (cabeçalho) é opcional em uma mensagem SOAP. Se estiver presente, deve ser o primeiro elemento-filho do elemento-raiz envelope. O header tem os seguintes atributos: ator, cujo objetivo é endereçá-lo a um terminal específico, e mustUnderstand, que indica se será interpretado ou não pelo destinatário. O conteúdo da mensagem, como processo de invocação e parâmetros necessários, está dentro do elemento obrigatório body (corpo). Validação SOAP 1. Para realizar negócios na Internet, por onde circulam informações importantes para as organizações e, muitas vezes, sigilosas, garantir a segurança das informações é uma necessidade crítica. Com os Web Services, as aplicações tornam-se muito mais visíveis, expondo, assim, seus fluxos de negócios, processos e arquiteturas internas. Qual é a especificação utilizada para permitir a construção de Web Services seguros, utilizando-se extensões ao protocolo SOAP? A. HTTPS. B. UDP. C. WS-Security. D. XKMS. E. XACML. Resposta: C Motivo: O HTTPS é um protocolo da camada de transporte em que a segurança só é garantida em determinado caminho (ponto a ponto). O UDP é um protocolo que permite o envio de datagramas encapsulados em um pacote ipv4 ou ipv6 sem garantia de entrega dele. WS-Security é uma extensão do protocolo SOAP para aplicar segurança nos Web Services (resposta correta). O XKMS é uma especificação que tem o objetivo de facilitar o gerenciamento de chaves públicas de criptografia transferindo a complexidade da chave para um Web Service. A XACML descreve uma linguagem para políticas de controle de acesso e um formato para mensagens de solicitação e resposta. 2. Um token em um Web Service é uma reivindicação qualquer que geralmente representa a identificação do utilizador. Observe a figura a seguir: Assinale a alternativa que representa a validação de tokens na autenticação de uma mensagem SOAP: A. 1 B. 2 C. 3 D. 4 E. 5 Resposta: D Motivo: 1 – Envia o pedido de tokens de segurança (podendo ser Web Services ou não). 2 – Recebe tokens para adicionar à mensagem SOAP. 3 – Assina e envia mensagens para Web Services. 4 – Valida tokens. 5 – Recebimento de resposta. 3. A especificação WS-Security, que foi proposta inicialmente pela IBM e Microsoft e adotada pela OASIS, em 2004, trata da segurança de mensagens SOAP. Quais propriedades de segurança essa especificação garante? A. Integridade e confidencialidade. B. Confidencialidade e autorização. C. Não repúdio e autorização. D. Autenticação e integridade. E. Confidencialidade e não repúdio. Resposta: A Motivo: Os mecanismos da especificação WS-Security garantem a integridade e a confidencialidade de mensagens SOAP. O WS-Security tem mecanismos para construção de protocolos para autenticação, mas não trata diretamente de como a autenticação deve ser realizada. A linguagem SAML especifica documentos XML para troca de informações sobre autenticação e autorização relativos a um usuário de Web Service. A autenticação tem papel importante no não repúdio, pois é uma condição para essa propriedade (um cliente precisa mostrar que é ele mesmo). 4. A especificação SOAP básica não prevê segurança na troca de mensagens, deixando essa tarefa para especificações estendidas. O WS-Security é uma dessas especificações padronizada pela OASIS, com o objetivo de garantir a segurança não somente no nível da camada de transporte, mas fim a fim, tornando os Web Services seguros. Em qual elemento da mensagem SOAP o WS-Security é implementado? A. <Body>. B. <Security>. C. <Fault>. D. <Namespace>. E. <Header>. Resposta: E Motivo: A especificação WS-Security é implementada no elemento <Header>, que contém informações específicas da aplicação, como elementos de segurança. 5. O SOAP (Simple Object Access Protocol) é um protocolo para troca de dados estruturados em ambientes distribuídos. O protocolo estabelece que as mensagens SOAP tenham uma estrutura básica. Qual elemento dessa estrutura trata os erros das mensagens SOAP? A. <Header>. B. <Fault>. C. <Envelope>. D. <Xml>. E. <Body>. Resposta: B Motivo: A mensagem SOAP é formada por elementos obrigatórios (envelope e body) e elementos opcionais (header e fault). O envelope é o elemento raiz de uma mensagem SOAP. O bodyé o elemento que contém a mensagem propriamente dita. O header contém informações específicas de aplicações. E o elemento fault trata os erros das mensagens SOAP. Estrutura do XML 1. A linguagem XML é recomendada pela W3C e foi projetada para descrever dados utilizando elementos que podem ser definidos pelo usuário. Assinale a opção que tem um elemento escrito de forma correta, de acordo com a sintaxe do XML. A. <Elemento></elemento> B. <!elemento> </!elemento> C. <ELEMENTO> </ELEMENTO> D. <elemento> /elemento> E. <xelemento></xelemento> Resposta: C Motivo: A linguagem XML é case-sensitive, ou seja, Elemento é diferente de elemento. Caracteres especiais não devem ser utilizados para nomear um elemento. A tag inicial e a tag final do elemento estão escritas da mesma forma e foram abertas e fechadas corretamente. As tags devem ser abertas e fechadas corretamente. Os elementos não devem iniciar com as letras x, m ou l. 2. Arquivos são o meio que geralmente são utilizados para trocar dados entre sistemas computacionais. Eles têm padrões e determinada organização. Com isso, é possível trocar informações em diferentes dispositivos, enviando e recebendo dados estruturados de forma simplificada. O trecho do arquivo a seguir permite essa comunicação por seguir um padrão conhecido como: <bilhete><para>Maria</para><remetente>João</remetente><texto>Quero falar com você pessoalmente</texto></bilhete> A. PDF. B. CSV C. ODF D. XML E. CSS Resposta: D Motivo: A linguagem de marcação XML, resposta correta, permite a comunicação de diferentes sistemas em diferentes dispositivos. CSS (Cascading Style Sheets) é uma linguagem de estilo. CSV (Comma-Separated-Values) é um formato de arquivo, no qual os campos dos dados são separados por vírgulas. DF (Open Document Format) é um formato de arquivo utilizado para documentos de formato aberto, utilizados para troca e armazenamento de documentos de textos, apresentações, planilhas eletrônicas, desenhos, etc. Arquivos PDF (Portable Document Format) descrevem documentos com texto e gráficos em um formato independente da resolução dos dispositivos que estejam sendo visualizados. 3. A linguagem de marcação XML foi desenvolvida para descrever e trocar dados. Arquivos XML podem ser formados por tags, elementos e atributos. As tags são delimitadas por “<>” e iniciam e finalizam os elementos. Os elementos são as tags de início e fim e todo o conteúdo entre elas. Os atributos ficam localizados dentro da tag de início de um elemento. Assinale a alternativa correta sobre a estrutura dos arquivos XML. A. Os atributos de um arquivo XML podem conter múltiplos valores. B. Os atributos de um arquivo XML podem descrever estruturas. C. Os elementos podem conter múltiplos atributos. D. Os elementos não podem conter outros elementos dentro deles. E. Os atributos podem conter elementos. Resposta: C Motivo: Atributos de um arquivo XML não podem conter múltiplos valores. Elementos filhos podem. Atributos não podem descrever estruturas. Elementos filhos podem. Os elementos podem conter múltiplos atributos além de outros elementos. Apenas os elementos podem conter atributos. 4. A linguagem XML é uma linguagem de marcação recomendada pela W3C (WWW Consortium), derivada da linguagem SGML (Standard Generalized Markup Language, ou Linguagem de Marcação Padrão Generalizada), que foi projetada para armazenar e transportar dados de forma hierárquica. Um dos principais objetivos do XML é: A. prover a comunicação na Web por meio da troca de arquivos de forma dependente de sistemas operacionais e formatos de arquivos. B. facilitar a análise dos documentos XML por diferentes programas. C. ter uma especificação informal para marcação de documentos. D. ter um conjunto de tags pré-definido. E. suportar uma quantidade limitada de aplicações, não permitindo que elementos sejam definidos por usuários para estruturar os documentos. Resposta: B Motivo: Os principais objetivos da linguagem XML são prover a comunicação na Web, por meio da troca de arquivos de forma independente de sistemas operacionais e formatos de arquivos, e facilitar a análise dos documentos XML por diferentes programas (resposta correta). Além disso, deve ter uma especificação de forma para marcação de documentos. Não tem um conjunto definido de tags, podendo os elementos conter diferentes nomes em suas tags. 5. Um documento XML é um formato que obedece a uma série de regras de sintaxe da linguagem. Existem dois níveis de conformidade com o padrão XML. Um deles é a boa formação e o outro é a validade. Para ser bem formado, o documento XML precisa seguir algumas regras específicas. Assinale a opção que contém uma dessas regras. A. Um documento XML pode ter mais de um elemento-raiz. B. Um documento XML pode ter nenhum elemento. C. Os elementos de um documento XML não precisam de tag inicial e tag final. D. Os atributos de um documento XML não precisam estar entre aspas. E. Um documento XML deve começar com uma declaração XML. Resposta: E Motivo: O W3C recomenda que um documento XML deva ter uma declaração XML e esta deve ser a primeira coisa a aparecer no documento (resposta correta). O documento deve ter apenas um elemento-raiz, que deve conter todos os outros elementos. Deve ter pelo menos um elemento, e todos os elementos devem ter uma tag inicial e uma tag final. Os atributos devem estar entre aspas e serem valorados. Componentes XML 1. Uma empresa tem um arquivo XML contendo suas informações institucionais (nome fantasia, endereço, telefone, gerente). Uma alteração precisa ser feita nesse XML para inclusão da razão social da empresa. Considerando que a validação do XML é feita por meio de um DTD, assinale a alternativa que corresponde à maneira correta de se implementar essa alteração. A. Inclusão de uma tag <razao-social /> como último elemento do XML e inclusão de uma tag <! ELEMENT razao-social> no final do DTD. B. Adição de uma nova tag <razao-social /> em qualquer parte do arquivo XML e uma tag <! ELEMENT razao-social> em qualquer trecho do DTD. C. Inclusão de uma tag <razao-social /> abaixo da tag referente ao nome fantasia e uma tag <! ELEMENT razaosocial> na mesma posição no DTD. D. Inclusão de uma tag <razao-social /> no início do XML e uma tag <! ELEMENT razao-social> no trecho final do DTD. E. Inclusão de uma tag <razao-social /> interna à tag referente ao nome fantasia no XML e uma tag <! ELEMENT razao-social> no início do DTD. Resposta: A Motivo: Os elementos em um DTD devem ser definidos na mesma ordem em que eles devem aparecer no documento XML. Além disso, o nome de cadaELEMENT definido no DTD deve corresponder exatamente ao nome do elemento no XML. Ordens diferentes entre os elementos do XML e do DTD tornam o documento inválido. Outra condição de invalidade acontece quando há alguma discrepância entre os nomes das tags do XML e do respectivo DTD. 2. Uma universidade quer usar o formato XML para o envio e recebimento dos dados cadastrais de alunos. Para a validação dos arquivos, será usado XML Schema. Inicialmente, serão utilizados apenas 3 informações: nome do aluno, data de nascimento e número do CPF. Indique a alternativa que descreve a especificação correta do XML Schema para esse cenário. A. Definir os três elementos como atributos de um elemento complexType. Os tipos desses atributos seriam String por padrão. B. Definir o nome do aluno como String, a data de nascimento como Date e o número de CPF como int, e todos eles internos um elemento complexType. C. Definir cada elemento como um complexType e aninhar cada um dentro de um elemento do tipo sequence. D. Definir os três elementos como do tipo String e utilizar o mecanismo de herança para particularização do tipo de cada elemento. E. Definir cada elemento como do tipo sequence e manter o seu posicionamento externo ao elemento schema. Resposta: B Motivo: Como nome de aluno pode aceitar diferentes caracteres, a data de nascimento deve aceitar apenas datas válidas e o CPF é composto apenas de números, os tipos dos elementos devemser String, Date e int, respectivamente. Eles não devem ser definidos como elementos complexType, já que essa tag é usada para o aninhamento de outros elementos. Também não devem ser definidos como sequence, porque essa tag é empregada para a especificação de uma sequência de outros elementos. O mecanismo de generalização/herança do XML Schema também não se aplica nesse cenário, tendo em vista não haver propriedades comuns entre os elementos em questão. E, para que o XML seja considerado válido, todos os elementos devem ser posicionados internamente à tag schema 3. Um periódico científico está recebendo a submissão de várias propostas de artigos para serem incluídos em sua próxima edição. As propostas são enviadas em formato XML conforme o exemplo: <?xml version="1.0"?> <?xml-stylesheet type="text/xsl" href="example.xsl"?> <Artigo> <Titulo>Meu Artigo</Titulo> <Autores> <Autor>Sr. Foo</Autor> <Autor>Sr. Bar</Autor> </Autores> <Body>Este é o texto do artigo.</Body> </Artigo> Os editores desejam extrair as informações das propostas e gerar um documento no seguinte formato: Artigo: Meu Artigo Autores: - Sr. Foo - Sr. Bar Assinale a alternativa que completa o trecho de código XSLT a seguir, capaz de extrair as informações dos documentos XML e formatá-las conforme desejado pelos editores. <?xml version="1.0"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <!-- trecho de código faltante --> </xsl:stylesheet> A. <xsl:template match="/"> Artigo: <xsl:select="/Artigo/Titulo"/> <br/> Autores: - <xsl:select="/Artigo/Autores/Autor"> - <xsl:select="/Artigo/Autores/Autor"> </xsl:template> B. <xsl:template match="Artigo"> Artigo: <xsl:value-of select="/Artigo/Titulo"/> <br/> Autores: <xsl:for-each select="/Autores"> <br/>- <xsl:value-of select="Autor" /> </xsl:for-each> </xsl:template> C. <xsl:template match="/"> Artigo: <xsl:value-of select="/Artigo/Titulo"/> <br/> Autores: <xsl:for-each select="/Artigo/Autores/Autor"> <br/>- <xsl:value-of select="." /> </xsl:for-each> </xsl:template> D. <xsl:template match="/"> Artigo: Meu Artigo <br/> Autores: - Sr. Foo - Sr. Baa </xsl:template> E. <xsl:template match="/"> Artigo: <xsl:value-of select="/Titulo"/> <br/> Autores: <xsl:for-each select="Autores/Autor"> <xsl:value-of select="." /> </xsl:for-each> </xsl:template> Resposta: C Motivo: O template XSLT precisar indicar o contexto raiz ("/") a partir do qual o processamento vai acontecer. O conteúdo não XSLT "Artigo: " deve ser informado na primeira linha dentro do template para que seja copiado para a saída. Na sequência, a regra de recuperação do título (<xsl:value-of select="/Artigo/Titulo"/>) deve ser informada na frente desse texto, seguida de um tag HTML de quebra de linha <br/>. O conteúdo não XSLT "Autores: " deve ser informado seguido da regra que itera sobre os autores dos artigos (<xsl:for-each select="/Artigo/Autores/Autor">). Interno a essa regra, o seletor do conteúdo de cada tag autor (<xsl:value-of select="." />) deve ser descrito para recuperação do nome do autor. Uma quebra de linha e um conteúdo não XSLT "-" devem anteceder essa regra para correta impressão dos autores. 4. Uma empresa de contabilidade precisa fazer o processamento de vários lotes de arquivos XML para efetuar o balanço fiscal de seus clientes. Os arquivos têm diferentes tamanhos, e devem ser processados apenas os arquivos dos clientes vinculados ao setor de TI (o segmento de atuação do cliente é um dado presente no arquivo XML). Assinale a alternativa que descreve a seleção e a justificativa do parser XML correto para esse cenário. A. Uso de um parser DOM. A seleção dos arquivos poderá ser feita sem que o arquivo seja inteiramente carregado em memória, o que garante um uso eficiente desse recurso. B. Uso de um parser SAX. A construção da estrutura de árvore possibilitará uma seleção rápida dos arquivos e viabilizará um gerenciamento mais eficiente da memória. C. Uso de um parser DOM. O mecanismo de eventos pode ser usado para seleção dos arquivos, e o uso eficiente da memória será obtido com a geração da estrutura de árvore. D. Uso de um parser SAX. A seleção dos arquivos pode ser programada por meio de um evento, e o uso de memória será mais eficiente pelo carregamento parcial do arquivo. E. Uso de um parser DOM. A estrutura de árvore gerada permitirá que eventos sejam disparados para fins de seleção de arquivos e processamento eficiente em memória. Resposta: D Motivo: Um parser SAX possibilita que um evento seja disparado quando a tag que contém a informação do segmento seja processada. Caso o arquivo não seja de um cliente de TI, o carregamento em memória é interrompido, o que garante um uso mais eficiente desse recurso. Esse mecanismo de eventos é exclusivo do SAX, assim com a geração de uma estrutura de árvore é exclusiva de um parser DOM. Uma desvantagem no uso de DOM é exatamente o carregamento completo do arquivo em memória em virtude da estrutura de árvore criada, levando a uma demanda muito maior por memória. 5. Um aluno recebeu, no seguinte arquivo XML (boletim.xml), as notas obtidas nas disciplinas cursadas. <?xml version="1.0"?> <boletim> <aluno> <nome>Thiago Nascimento</nome> <matricula>1234-5678</matricula> </aluno> <notas> <nota disciplina="portugues">5</nota> <nota disciplina="matematica">10</nota> <nota disciplina="geografia">7</nota> <nota disciplina="historia">6</nota> <nota disciplina="fisica">8</nota> <nota disciplina="quimica">9</nota> <nota disciplina="biologia">8</nota> </notas> </boletim> Para saber se ele foi aprovado para o próximo ano, todas as notas obtidas devem ser superiores a 7. Assinale a alternativa que apresenta uma consulta XQuery válida e que retorne todas as notas inferiores a 7, indicando, dessa forma, que o aluno foi reprovado. A. for doc("boletim.xml")/notas/nota where $nota/nota<7 return $nota B. for $nota in doc("boletim.xml")/notas where $nota<7 return $nota C. for $n in doc("boletim.xml")/notas where $n/disciplina/nota<7 return $n D. for $n in doc("boletim/notas/nota") where $n<7 return $n E. for $n in doc("boletim.xml")/notas/nota where $n/nota<7 return $n Resposta: E Motivo: A consulta deve carregar o arquivo "boletim.xml" por meio da função doc e iterar sobre as notas por meio de um laço for que faça uso de uma expressão XPath para acessar cada nota (for $n in doc("boletim.xml")/notas/nota). Interno ao laço, a condição de notas inferiores a 7 precisa ser aplicada (where $n/nota<7), e cada nota que satisfaça à condição deve ser retornada por meio do comando return (return $n). Servidores de aplicação JPA 1. Para que se possa acessar uma entidade do banco de dados por meio da ORM por meio de um POJO, determinados metadados são adicionados por meio de anotações para que a JPA possa gerar o elo entre os modelos. Analise as afirmativas a seguir, que tratam sobre as anotações ORM, e classifique-as em verdadeiras (V) ou falsas (F): ( ) @Id define qual atributo corresponde à chave primária da tabela. ( ) @Table é aplicada para definir que o POJO representa uma ou mais tabelas da base de dados. ( ) @Entity indica que o POJO está ligado a uma tabela da base. ( ) @GeneratedValue define as estratégias de geração da chave primária. ( ) @Column permite que sejam inseridas novas colunas na tabela correspondente. A. V – V – F – V – V. B. V – F – V – V – F. C. V – F – V – F – V. D. F – V – V – F – V. E. F – F – F – V – V. Resposta: B Motivo: A anotação @Entity indica que o POJO está ligado a uma tabela da base, enquanto @Table especifica qual é a tabela correspondente. A ligação entre cada atributo e suas colunas correspondentes é anotada em @Column. @GeneratedValue define as estratégias de geração da chave primária, enquanto @Id define qual atributo corresponde à chave primária da tabela. 2. Um EntityManager é um objeto responsável por gerenciar as ações de persistência, sendo ele o responsável por proporcionar as ações de CRUD, por exemplo. Ele atua sobreum conjunto de classes persistentes definidas em uma tag específica do arquivo persistence.xml. Assinale a alternativa correta que indica a tag mencionada: A. javax.persistence. B. property. C. EntityManagerFactory. D. persistence-unit. E. createEntityManager. Resposta: D Motivo: Uma persistence-unit é um agrupamento lógico de classes persistentes definidas pelo usuário no arquivo persistence.xml. Ele é composto por um conjunto de tags property que assinalam as configurações específicas da unidade de persistência. EntityManagerFactory e createEntityManager são a classe e o método, respectivamente, utilizados na instância de um EntityManager. Essas classes fazem parte do pacote javax.persistence. 3. Em uma aplicação Java Web que utiliza o Hibernate, um desenvolvedor digitou o fragmento de código a seguir em um ambiente ideal e configurado corretamente. Pessoa pessoa = entityManager.find(Pessoa.class, 121); Assinale a alternativa correta quanto ao objeto pessoa. A. Os dados da tupla com o id especificado no método find serão carregados no objeto pessoa. B. Ainda não foi salvo no banco de dados, pois o método persist apenas torna o objeto persistente, necessitando obrigatoriamente ser executado em um bloco de transação para salvar o objeto. C. Ainda não foi salvo no banco de dados, pois a geração de instruções INSERT ocorrerá somente após um commit da transação ou fechamento da sessão. D. Foi salvo no banco, uma vez que o método persist já executa o comando INSERT automaticamente para objetos nesse estado. E. Pode não realizar a busca, pois o objeto não foi colocado em bloco de transação. Resposta: A Motivo: O método find retornará os dados da tupla com o id especificado e os carregará no objeto pessoa. Como o trecho não indica a necessidade do método persist, os dados não serão salvos no banco de dados, mesmo que estivessem em bloco de transação. O bloco de transação é necessário somente para operações que alterem o estado dos registros (inserção, alteração e exclusão). 4. Hibernate surgiu como uma solução para o aumento de produtividade na geração da camada de persistência. Ele foi tão bem-sucedido com o uso da ORM (Object Relational Mapping) que serviu de inspiração para a definição da JPA. Sobre o Hibernate, podemos afirmar que: A. Hibernate implementa especificações contidas na JPA, atuando entre a camada JDBC e a camada de acesso a dados da aplicação. B. Em sua configuração, o Hibernate torna opcional a utilização do arquivo persistence.xml para definição da unidade de persistência. C. Devido à utilização do Hibernate, o JDBC (Java Database Connectivity) não é mais utilizado em aplicações, sendo descontinuado. D. A Java Persistence API substitui as funções disponibilizadas pela implementação Hibernate, tornando-o desnecessário e obsoleto. E. O objetivo do Hibernate é fornecer interface ORM entre objetos Java e bancos de dados apenas para fins de consulta das informações. Resposta: A Motivo: O Hibernate é uma das implementações da JPA, situando-se entre a camada JDBC e a camada de acesso a dados da aplicação. Ele utiliza o arquivo persistence.xml para definir suas unidades de persistência e, assim, fornecer uma interface para consulta e alteração das informações contidas na base de dados. Ele dispensa a criação das consultas SQL, como seriam feitas utilizando diretamente o JDBC, mas ainda utiliza o Java Database Connectivity, servindo como uma camada de abstração entre aplicação e JDBC. A JPA é uma especificação, ou seja, um padrão para criação de frameworks que implementam suas regras, como é o caso do Hibernate. 5. Cada projeto tem suas particularidades, dependendo do objetivo final esperado. Com base nessas especificidades, selecionamos frameworks, APIs e bibliotecas que complementam ou agilizem a sua construção. Analise as afirmativas a seguir sobre as expectativas no uso de uma implementação da Java Persistence API, e classifique-as em verdadeiras (V) ou falsas (F): ( ) Abstrair queries SQL, traduzindo tabelas de dados para classes simples. ( ) Eliminar a dependência de um banco de dados relacional. ( ) Reduzir o tempo gasto com a escrita de consultas SQL. ( ) Fornecer um controlador que gerencie os dados em formato XML. ( ) Permitir que a camada de apresentação gerencie a persistência dinamicamente. A. V – F – F – F – V. B. F – V – V – F – F. C. V – F – V – F – F. D. V – F – F – V – V. E. F – F – V – V – V. Resposta: C Motivo: Uma implementação da Java Persistence API abstrai queries SQL, realizando a tradução das tabelas de dados para classes simples, sem a necessidade de gerenciar os dados em formato XML. Ela facilita a criação de uma camada de persistência e abstrai a criação de consultas SQL, reduzindo o tempo de desenvolvimento. Ela não elimina a necessidade de um banco de dados relacional, ao contrário, ela facilita a interface com ele. Cliente de web services (JSP, PHP) 1. Considerando a implementação de um Web service, pode-se afirmar que existem estruturas de assinatura de descrição e descoberta. Essas estruturas são conhecidas, respectivamente, por: A. JSON e XML. B. WSDL e XML. C. WSDL e URI. D. URI e SOAP. E. URI e XML. Resposta: C Motivo:WSDL é uma estrutura de descrição e URI de descoberta. JSON e XML são notações e linguagem de marcação que definem a estrutura dos objetos enviados pelos Web services. Já WSDL é uma estrutura, mas XML é uma linguagem de marcação que define a estrutura do objeto. URI (Identificador Uniforme de Recurso) é o endereço utilizado para identificar um recurso na Internet. E o SOAP é um protocolo para troca de informações estruturadas utilizado pelo Web service. 2. Web Services Description Language (WSDL) é utilizada para definir serviços como uma coleção de endpoints (endereços de rede), ou portas. É correto afirmar que a linguagem WSDL descreve: A. as regras de validação de um documento XML. B. as mensagens SOAP no formato de documentos XML. C. o padrão de requisição para serviços REST. D. o protocolo de segurança definido pela W3C. E. o tipo de linguagem de desenvolvimento do Web service. Resposta: B Motivo: WSDL é uma descrição em formato XML de um Web service que utilizará SOAP. Como o XML é uma linguagem de marcação, sua estrutura é definida por tag, definindo os objetos e atributos. O padrão da requisição definida para serviços REST são os verbos HTTP (get, post, put, delete, entre outros) definidos juntamente com a URI. A W3C é responsável pela padronização dos Web services, e não por protocolos de segurança que serão utilizados no Web service. O desenvolvimento do Web service é independente de linguagem de desenvolvimento. 3. Podemos citar como um exemplo prático de Web service um portal que pesquisa diversas empresas aéreas com o intuito de organizar programas especiais de fim de semana. Se previamente o usuário informar que gostaria de alugar um carro na cidade escolhida, fazer a reserva de uma mesa em um restaurante, realizar a compra de ingressos para o teatro e realizar a pesquisa de hotéis dentro da faixa de preços informada, o Web service da empresa aérea escolhida submete as informações aos outros Web services responsáveis pelas tarefas citadas e efetua as requisições do cliente. Nesse contexto, marque o item correto referente às arquiteturas de integração de Web services. A. Interoperabilidade é a capacidade de um sistema de se comunicar somente com outro sistema. B. O desenvolvimento de um Web service é utilizado somente para disponibilizar aplicações já existentes na Internet. C. Toda e qualquer aplicação publicada na Internet pode ser considerada um Web service, independentemente de linguagem de publicação e sistema. D. Web service é uma solução utilizada na integração de sistemas e na comunicação entre aplicações diferentes. E. REST é um estilo de protocolo de segurança que define um conjunto de restrições a serem usadas para a criação de Web services. Resposta: D Motivo: Interoperabilidade é a capacidade de um sistema de se comunicar de forma transparentecom um ou mais sistemas. Um Web service é uma solução utilizada na integração de sistemas e na comunicação entre aplicações diferentes para Internet, podendo disponibilizar dados antes off-line e torná-los acessíveis a outras aplicações na Internet, mas nem toda aplicação na Internet é considerada um Web service. REST é um estilo de arquitetura de software que define um conjunto de restrições a serem utilizadas para a criação de Web Services. 4. Simple Object Access Protocol (SOAP) é uma especificação para requisitar métodos de negócio, como documentos XML, e que suporta outros protocolos, como HTTP e SMTP. Em relação à sintaxe do SOAP, avalie as seguintes afirmações: I. Uma mensagem SOAP deve ser codificada usando XML. II. Uma mensagem SOAP não deve usar o namespace SOAP Envelope. III. Uma mensagem SOAP não deve conter instruções de processamento XML. IV. Uma mensagem SOAP deve conter uma referência DTD. Está correto o que se afirma em: A. I e III. B. III. C. II e IV. D. I e IV. E. II. Resposta: A Motivo: Uma mensagem SOAP é baseada em XML; por isso, deve ser codificada com ela e não precisa conter instruções de processamento em XML. Contudo, é necessário utilizar o namespace SOAP Envelope para que seja possível identificar e não deve conter uma referência DTD, já que é somente necessária uma estrutura de XML válida. 5. Diversas áreas do conhecimento discutem atualmente sobre a possibilidade de aproveitar melhor a massa de informações disponível na Internet, transformando-a em algo mais gerenciável e útil. Algumas propostas em estudo contemplam a adoção da linguagem de marcação XML. Sobre a estrutura básica de um XML (Extensible Markup Language), escolha a afirmativa correta: A. Nem todo documento XML deve conter o elemento root. B. Somente elementos root devem estar aninhados. C. XML não é case sensitive. D. Todos os elementos precisam de tags de fechamento. E. O XML, linguagem de programação, não necessita de formatação e validação. Resposta: D Motivo: Por ser uma linguagem de marcação, o XML precisa conter tags de abertura e fechamento do bloco de código, bem como o elemento root para sua definição de XML, como HTML, que também é um exemplo de outra linguagem de marcação. Sendo case sensitive, há distinção de escrita com letras maiúsculas e minúsculas. É necessário que o documento XML seja válido e formatado, pois é requisito da própria linguagem. Além disso, todos os elementos devem estar aninhados. Software de Apoio 1. O Postman é uma ferramenta de uso simples, com funcionalidades que dão apoio ao desenvolvimento de software. Esses recursos podem agilizar o processo de produção de um aplicativo. Sobre sua função, pode-se afirmar que o Postman: A. é um editor de código JavaScript multiplataforma. B. é uma aplicação apropriada para testes em APIs REST. C. é um repositório on-line de plugins de desenvolvimento. D. é um aplicativo de correção automática de erros de código. E. é um interpretador de dados em formato JSON. Resposta: B Motivo: O Postman é uma aplicação para a realização de testes em APIs REST. Por meio do protocolo HTTP, é possível fazer requisições a um serviço web e visualizar as respostas do servidor em diferentes formatos. A ferramenta não tem a funcionalidade de editar código, além de não ser um repositório on-line para plugins de desenvolvimento, visto que é um software e não um site. Também não é papel do Postman corrigir erros de código. A ferramenta, por meio de recursos de monitoramento, auxilia no entendimento de se há ou não erros em uma API. Por fim, o Postman não é um interpretador de dados em formato JSON. Quando uma requisição é feita, o servidor da API retorna os dados em diversos formatos, como JSON, XML e HTML. O Postman se encarrega de exibir esses dados, mas não é uma ferramenta de interpretação de informações. 2. O SoapUI tem, como uma de suas funcionalidades, os testes de API REST, em que, por meio de métodos do protocolo HTTP, pode consumir ou gravar dados na API. Além disso, pode-se afirmar que o SoapUI pode ser utilizado em testes de: A. vendas de software. B. conversão de dados. C. correção automática de códigos. D. SOAP APIs. E. mineração de dados. Resposta: D Motivo: O SoapUI é uma ferramenta para testes de REST APIs e SOAP APIs, retornando dados em formatos como JSON, HTML ou até mesmo XML. A ferramenta não pode ser utilizada em correções automáticas de códigos, pois quaisquer correções necessárias devem ser feitas manualmente pelo desenvolvedor. Além disso, o SoapUI não é uma ferramenta para conversão de dados, visto que seu papel é testar APIs e verificar questões como segurança e desempenho, nem para testes de vendas de software, pois se trata de uma aplicação para uso de programadores, não sendo uma ferramenta de marketing. Por fim, o SoapUI não é uma ferramenta para mineração de dados. Os dados que a ferramenta consegue visualizar são gerados por APIs e não por métodos de mineração de dados. 3. No SoapUI, ao fazer uma requisição para uma API, é possível escolher o formato de retorno dos dados (se estiver disponível mais de um formato). Nesse caso, quais são os possíveis formatos de retorno nessa ferramenta? A. RAW, HTML, JSON e XML. B. DOCX, XLSX, PPTX e ACCDB. C. DOCX, HTML, PHP e JAVA. D. CSS, PPTX, ACCDB e HTML. E. JSON, XML, RAW e CSS. Resposta: A Motivo: Os formatos que podem ser visualizados no SoapUI são RAW, HTML, JSON e XML. Na interface principal do programa, é possível selecionar o formato desejado para visualização dos dados, desde que esses dados existam na API no formato escolhido. Os formatos DOCX, XLSX, PPTX e ACCDB se referem a arquivos de extensão do Microsoft Office. PHP e JAVA são linguagens de programação e não arquivos de dados. CSS não é um arquivo de dados, mas um arquivo utilizado para estilizar páginas web. 4. Além do Postman e do SoapUI, outras ferramentas podem ser utilizadas para requisições. Uma delas também trabalha com requisições REST. Que ferramenta é essa? A. Visual Studio Code. B. Eclipse. C. Insomnia. D. Sublime Text. E. Brackets. Resposta: C Motivo: Uma ferramenta muito utilizada, similar ao SoapUI e ao Postman, é a Insomnia. Com ela, é possível fazer requisições HTTP. Visual Studio Code, Eclipse, Sublime Text e Brackets são editores de código-fonte de diversas linguagens de programação, não sendo utilizados para fazer testes em APIs. 5. A comunicação entre os softwares de apoio e as APIs é realizada por meio de protocolos de comunicação. Nesse contexto, quais são os protocolos suportados pelo Postman e pelo SoapUI? A. SOAP e UDP. B. IP e HTTP. C. SOAP e IP. D. SOAP e HTTP. E. HTTP e UDP. Resposta: D Motivo: Os protocolos suportados pelas ferramentas SoapUI e Postman são SOAP e HTTP. Ambos são utilizados como meio de comunicação entre as ferramentas e as APIs. Os dados podem ser retornados por esses protocolos em diferentes formatos, como JSON e XML, por exemplo. IP e UDP também são protocolos de comunicação, mas não têm como finalidade a atuação com requisições em APIs. Problemas relacionados à integração 1. Os códigos de status das respostas do protocolo HTTP indicam se uma requisição HTTP foi corretamente concluída. Qual código de status HTTP indica que o servidor detectou um looping infinito ao processar a requisição? A. 400. B. 404. C. 500. D. 501. E. 508. Resposta: E Motivo: O código de status HTTP 508 (Loop detected) indica que o servidor detectou um looping infinito ao processar a requisição solicitada. O código 400 (Bad request) indica que o servidor não entendeu a requisição, pois está com sintaxe inválida. O código 404 (Not found) indica que o servidor não pode encontrar o recurso solicitado. O código 500 (Internal server error) indica que o servidor encontrou uma situação para a qual não estava preparado. E o código 501 (Not implemented) indica que o método da requisição não é suportado pelo servidor e não pode ser manipulado. 2. Segundo a Fundação Mozilla, o protocolo HTTP define um conjunto de métodos de requisição responsáveispor indicar a ação a ser executada para dado recurso. Se um cliente requisita ao servidor o armazenamento de um relatório direcionado especificamente para um grupo de trabalho, qual método de requisição HTTP deve ser utilizado? A. Get.. B. Post. C. Put. D. Patch. E. Delete. Resposta: B Motivo: O método Post é utilizado para submeter uma entidade a um recurso específico; no caso, o relatório é a entidade. O método Get é utilizado para o retorno de dados. O método Put é utilizado para alterar todos os dados de uma solicitação. O método Patch é utilizado para aplicar modificações parciais em determinado recurso. O método Delete é utilizado para remover determinado recurso. 3. Uma exceção é um problema que surge durante a execução de um programa, interrompendo o fluxo normal do programa e finalizando de forma inesperada. A linguagem de programação Java utiliza exceções para lidar com erros e outros eventos excepcionais. Dada a seguinte situação: uma requisição HTTP de consulta a um banco foi executada, mas não obteve sucesso. Sabendo que o trecho de código onde a ação de consulta foi realizada recebeu o devido tratamento de erro, qual instrução da linguagem Java faz o lançamento da exceção ocorrida? A. Throw. B. Catch. C. Try. D. Finally. E. While. Resposta: A Motivo: A instrução Throw faz o laçamento de uma exceção capturada. As instruções Try e Catch são utilizadas para tratar as chamadas CheckedException. A instrução Finally é utilizada para que seja executada uma instrução independentemente de ter ocorrido erro ou não, e a instrução While é utilizada para repetir um bloco de código enquanto determinada condição seja verdadeira. 4. Um bom desenvolvedor de APIs REST sempre faz ótima documentação, requisito fundamental para que desenvolvedores, testadores e principalmente o usuário final tenham entendimento claro do comportamento oferecido pelo serviço. Qual das ferramentas a seguir pode ser utilizada para fazer a documentação completa de uma API REST? A. Eclipse IDE. B. Microsoft Word. C. Swagger. D. Astah. E. DBDesigner. Resposta: C Motivo: O Swagger é utilizado para criar a documentação de API de três formas: manualmente, automaticamente e codegen. O Eclipse IDE é um poderoso editor de código. O Microsoft Word é um poderoso editor de textos. O Astah é uma ferramenta para fazer documentação de sistemas que usam a linguagem de modelagem unificada (UML). O DBDesiner é utilizado para fazer a modelagem de banco de dados. 5. Segundo o site JSON.org, arquivos no formato JSON consistem em um objeto que começa com { chave de abertura e termina com } chave de fechamento. Cada nome é seguido por dois pontos ( : ), e os pares nome/valor são seguidos por vírgula ( , ). Caso seja enviado um arquivo para uma API escrita obedecendo à arquitetura RESTful que não obedeça a esse formato, qual status HTTP será retornado? A. 201. B. 414. C. 400. D. 404. E. 500. Resposta: C Motivo: Como se está enviando um arquivo com erro de sintaxe, o servidor irá retornar o código 400, que indica erro de sintaxe. O código de status 201 indica sucesso; 414 indica erro de URI; 404, erro de recurso não encontrado; e 500, erro de servidor. Certificações em integração de sistemas 1. Uma empresa de tecnologia precisa preencher uma vaga no time de desenvolvedores de sistemas. Para garantir que um profissional bem qualificado seja selecionado, ela decide optar por um candidato que tenha alguma certificação em TI. O único candidato que satisfaz esse requisito apresenta em seu currículo uma certificação emitida no ano de 2010. Assinale a alternativa que justifique corretamente a seleção ou rejeição desse candidato: A. Rejeição. Uma certificação emitida há dez anos seguramente tem sua validade expirada e não atesta que o profissional está a par das tecnologias vigentes. B. Seleção. Independentemente de quando uma certificação foi emitida, ela garante que o profissional tem o conhecimento técnico da área de atuação. C. Rejeição. Tecnologias disponíveis na década passada não são passíveis de certificação, o que invalida o certificado apresentado pelo candidato. D. Seleção. De posse de uma certificação em TI, um profissional está apto a desempenhar suas funções em qualquer área técnica. E. Rejeição. Certificações mais antigas não agregam valor técnico, tendo em vista que as tecnologias são substituídas por outras mais modernas. Resposta: A Motivo: A seleção de um candidato apenas com base em uma certificação emitida anos atrás não garante que ele esteja a par das tecnologias vigentes. Além disso, é pouco provável que a certificação ainda seja válida. Consequentemente, não se pode afirmar que o candidato tenha o conhecimento técnico para atuar na área onde a vaga está disponível. No entanto, embora a certificação seja antiga, no período em que foi emitida, ela atestava as habilidades técnicas do profissional. Logo, essa não seria uma razão para não selecioná-lo. E qualquer quer seja a certificação em TI, ela agrega valor ao profissional para que este, mais capacitado, atue em uma área específica, e não em qualquer área de TI. 2. A fim de qualificar a sua equipe de TI, uma empresa decide subsidiar a certificação de seus profissionais. Indique a alternativa que representa o melhor custo-benefício efetivo para a empresa: A. Fazer o levantamento das certificações existentes e escolher a mais barata, a fim de certificar o maior número possível de profissionais. B. Identificar a tecnologia mais crítica para a empresa e certificar, inicialmente, apenas os profissionais que atuam diretamente com ela. C. Buscar certificações que contemplem tecnologias semelhantes às utilizadas pela empresa para diminuir os custos e aumentar o número de certificações. D. Subsidiar apenas cursos preparatórios para as certificações, pois, dessa forma, o conhecimento técnico será da mesma forma alcançado. E. Certificar apenas uma parte do corpo de profissionais e organizar para que eles façam o repasse do conhecimento adquirido. Resposta: B Motivo: Como as certificações, em geral, demandam um investimento financeiro relevante, dar foco nas tecnologias mais relevantes e investir na certificação apenas dos profissionais que atuam diretamente com elas pode representar a melhor estratégia. A escolha de certificações apenas com base no preço do investimento não raro leva a um baixo retorno técnico. O mesmo acontece quando se utilizam certificações em tecnologias correlatas às utilizadas pela empresa – há o surgimento de um déficit técnico que pode prejudicar o bom desempenho dos profissionais. Quanto a investir apenas em cursos preparatórios ou na certificação de alguns profissionais para fins de repasses posteriores, há uma grande perda de validação de conhecimento proporcionado pela aplicação dos exames de certificação. 3. Um profissional de TI que deseja investir em uma certificação precisa ser realista quanto ao que esperar de retorno. Assinale a alternativa que indica um benefício tangível de ser obtido com uma certificação específica da área de atuação de um profissional: A. Amplo conhecimento das diversas tecnologias mais modernas. B. Menor tempo na absorção de tecnologias não contempladas pela certificação. C. Maior segurança técnica e domínio de suas atribuições profissionais. D. Aumento salarial que represente um salto em sua carreira. E. Afluxo de ofertas de trabalho vindas de outras empresas. Resposta: C Motivo: Uma certificação oferece ao profissional a possibilidade de agregar conhecimento técnico e ter o respaldo de suas habilidades por parte da empresa que emite a certificação. Naturalmente, isso leva a um maior domínio e confiança no exercício de suas funções. Não é objetivo de uma certificação dar amplo conhecimento a respeito de outras tecnologias que estejam fora do seu escopo nem otimizar a absorção de quaisquer outras tecnologias. Embora, em geral, profissionais certificados sejam contemplados com algum aumento salarial, não seria razoável esperar acréscimos exorbitantes ou um destaque profissional que culmine emuma profusão descomedida de ofertas de trabalho. 4. Uma empresa deseja migrar todas as suas aplicações on-premise para uma solução baseada em serviços integrados na nuvem ou cloud. Assinale a alternativa que indica qual certificação é mais adequada para o profissional liderar essa migração: A. Certificação em integração de aplicações em Oracle Azure. B. Certificação em Engenharia de Dados baseada em Azure. C. Certificação AWS do domínio Specialty. D. Certificação em integração de aplicações na plataforma Oracle Cloud. E. Certificação AWS em Cloud Partitioner. Resposta: D Motivo: A certificação em integração de aplicações na plataforma Oracle Cloud contempla todas as habilidades técnicas demandadas para a implantação e administração de serviços na nuvem. Certificações relacionadas à engenharia de dados, ao domínio AWS Specialty ou ao nível AWS Foundational (como a Cloud Partitioner) não abrangem os conhecimentos necessários para a atividade de migração para uma solução na nuvem. Além disso, a tecnologia de Cloud, conhecida como Azure, é de domínio da Microsoft, e não da Oracle. 5. Um profissional deseja se especializar como engenheiro de dados. Contudo, ele deseja obter as certificações baseadas tanto em tecnologias da Google como da Microsoft. Assinale a alternativa que indica o procedimento correto a ser adotado para a obtenção das certificações: A. Comprar um vocuher para cada exame e usá-lo repetidas vezes nos exames até que consiga a pontuação mínima necessária. B. Contratar cursos preparatórios para os dois exames, cursar todo o conteúdo e gerar as certificações após a conclusão e aprovação em cada curso. C. Fazer a contratação de cursos preparatórios para os dois exames e realizar apenas um exame, uma vez que um tem validade para o outro. D. Basta se familiarizar com o formato de apenas um dos exames, preparar-se com base nesse formato e realizar os dois exames. E. Familiarizar-se com o conteúdo e formato de cada exame de certificação, preparar-se para cada um e fazer os exames separadamente. Resposta: E Motivo: Cada certificação tem o seu formato e extensão. Então, é fundamental que o profissional se familiarize com essas particularidades, prepare-se adequadamente para cada um deles e realize cada exame individualmente. Um exame de certificação em uma tecnologia ou produto não tem qualquer relação com outras certificações. Além disso, embora os cursos preparatórios não sejam obrigatórios, eles são muito recomendados para uma adequada preparação. Contudo, a conclusão desses exames não isenta o profissional de se submeter ao exame, e cada exame está vinculado a um único voucher. Para cada nova tentativa de exame, um novo voucher deve ser comprado e utilizado. Simulado 1. Para realizar negócios na Internet, por onde circulam informações importantes para as organizações e, muitas vezes, sigilosas, garantir a segurança das informações é uma necessidade crítica. Com os Web Services, as aplicações tornam-se muito mais visíveis, expondo, assim, seus fluxos de negócios, processos e arquiteturas internas. Qual é a especificação utilizada para permitir a construção de Web Services seguros, utilizando-se extensões ao protocolo SOAP? A. HTTPS. B. UDP. C. XKMS. D. WS-Security. E. XACML. Resposta: D 2. A partir da Lei Geral de Proteção de Dados (LGPD), as instituições devem ter o devido cuidado nos processos de ciência de dados, a fim de garantir a eficiência necessária com o cumprimento das normas. Um sistema, alocado na Internet, solicita ao usuário dados pessoais e os armazena em uma base de dados relacional confiável, à qual somente a própria empresa tem acesso, utilizando-a para o fim de marketing. De acordo com a Lei Geral da Proteção de Dados e as fases de coleta e descarte do processo de ciência de dados, pode-se afirmar que: A. se o usuário pedir o descarte dos dados, a coleta não mais poderá ser realizada em nenhum momento, pois o usuário será excluído permanentemente. B. para que seja realizada a coleta de dados, a empresa não precisa que o usuário informe o consentimento, pois pode utilizar-se de outras vias. C. mesmo que o usuário peça o descarte, a empresa não é obrigada a fazê-lo, já que o usuário assinou um contrato digital de consentimento. D. o usuário pode solicitar a qualquer momento uma cópia dos dados, bem como compreender para que fim estão sendo utilizados. E. a empresa pode utilizar os dados para o fim necessário, ou seja, mesmo que tenha iniciado com marketing, poderá, posteriormente, realizar a venda dos dados. Resposta: D 3. O machine learning pode ser usado como uma tecnologia para identificar transações que podem ser fraudulentas. Uma instituição que faz operações de crédito precisa analisar se um novo cliente tem potencial de tornar-se inadimplente; assim, utiliza-se de uma base que contém dados de transações bancárias de 5 mil clientes dos últimos cinco anos, em que há a informação completa de financiamentos, cartões de crédito e compras realizadas e, ainda, se houve dívidas não pagas. Nesse contexto, pode-se afirmar: A. A base não está catalogada, já que não está definido se o cliente tem bom ou mau potencial; então, haverá o descarte parcial dos dados. B. Utilizar algoritmos com a aprendizagem não supervisionada será uma boa estratégia para o problema; assim, podem-se agrupar os clientes. C. Poderia ser desenvolvido um software em que haveria a recuperação dos dados por meio do SQL e a emissão de um relatório para a tomada de decisão. D. O problema tem uma base catalogada, e, assim pode-se utilizar o aprendizado supervisionado e, ainda, o algoritmo Naive Bayes ou SVM na classificação. E. O problema é de regressão, e pode-se utizar tanto o aprendizado supervisionado como o não supervisionado. Resposta: D 4. O uso da ciência de dados vem se tornando comum nos últimos anos. Apesar disso, ainda existem pessoas que expressam de forma errada a correlação entre estatística e ciência de dados. Qual é a explicação correta sobre a correlação entre estatística e ciência de dados? A. São iguais. Ambas têm como objetivo analisar os dados. B. A estatística é uma ferramenta da ciência de dados e é utilizada nas etapas de coleta e processamento de dados. C. A ciência de dados é um método utilizado pela estatística descritiva. D. A estatística é uma ferramenta da ciência de dados e é utilizada nas etapas de processar os dados e explorar as informações dos resultados. E. A estatística é utilizada para processar os dados, e a ciência de dados é responsável por interpretar os resultados da estatística. Resposta: D 5. O treinamento de uma rede neural profunda é parte importante no processo de aprendizagem. Assim, há a utilização de diversos hiperparâmetros. Um passo em relação aos dados consiste na divisão deles em amostras de treino, teste e validação.Dado que uma base A contém 5 milhões de dados sobre câncer de pele, classificados como benigno e maligno, e que 20% desse conjunto de dados não está rotulado, em relação à divisão referida, o que se pode afirmar? A. Os 20% não rotulados poderiam ser utilizados para a aprendizagem não supervisionada. B. Os dados não rotulados poderiam ser usados para validação e teste, e os rotulados, para o treinamento. C. Os dados não rotulados têm a prioridade de serem encontrados primeiro, a fim de, posteriormente, realizarem o treinamento. D. Para o treinamento inicial, basta obter 0,1% dos dados não rotulados, e, assim, será realizada a primeira parte. E. Pode-se afirmar que não há quantidade suficiente de dados para realizar o treinamento inicial. Resposta: B 6. A união de bases de dados similares, para tentar melhorar a análise dos dados, é uma tarefa comum em ciência de dados. Dado que uma base de dados A contém dados íntegros, com grande confiabilidade e com campos similares aos de uma base de dados B, ambas as bases poderiam ser usadas para analisar um conjunto de dados. No entanto, na base B, verifica-se que 65% de seu total de campos está nulo, e muitos dados contêm erros relacionados ao formato.
Compartilhar