Tecnologias relacionadas à Internet para concursos
Transcrição
Tecnologias relacionadas à Internet para concursos
Tecnologias relacionadas à Internet para concursos Questões comentada Handbook de Questões de TI Comentadas para Concursos Volume questões de TI Prefácio A Internet constitui-se em um conjunto de tecnologias da informação de maior crescimento e impacto nos ambientes acadêmico e empresarial. Pode ser denida como a rede das re- des,composta de uma vasta coleção de computadores e sistemas de comunicação fornecendo transferência de arquivos de softwares, imagens, sons e textos. Esta dimensão inovadora de conectividade impulsiona uma oportunidade sem paralelo para comunicação, colaboração, compartilhamento de recursos e acesso à informação. É com o objetivo de explorar esta oportunidade que surgem cada vez mais tecnologias web num ritmo sem precedentes. Objetivando mensurar o grau de absorção do candidato a estas novas tecnologias, os concursos da área de Tecnologia de Informação cobram tão assunto com enorme frequência. Este volume aborda algumas destas tecnologias. Para tanto, o Grupo Handbook de TI sele- cionou uma série de questões comentadas em detalhes para você. Bons estudos, Grupo Handbook de TI Página 1 de 49 www.handbookdeti.com.br Handbook de Questões de TI Comentadas para Concursos Volume questões de TI Direitos Autorais Este material é registrado no Escritório de Direitos Autorais (EDA) da Fundação Biblioteca Nacional. Todos os direitos autorais referentes a esta obra são reservados exclusivamente aos seus autores. Os autores deste material não proíbem seu compartilhamento entre amigos e colegas próximos de estudo. Contudo, a reprodução, parcial ou integral, e a disseminação deste material de forma indiscriminada através de qualquer meio, inclusive na Internet, extrapolam os limites da colaboração. Essa prática desincentiva o lançamento de novos produtos e enfraquece a comunidade concurseira Handbook de TI. A série Handbook de Questões de TI Comentadas para Concursos Além do Gabarito produção independente e contamos com você para mantê-la sempre viva. Grupo Handbook de TI Página 2 de 49 www.handbookdeti.com.br é uma Handbook de Questões de TI Comentadas para Concursos Volume questões de TI Canais de Comunicação O Grupo Handbook de TI disponibiliza diversos canais de comunicação para os concurseiros de TI. Loja Handbook de TI Acesse a nossa loja virtual em http://www.handbookdeti.com.br Serviço de Atendimento Comunique-se diretamente conosco através do e-mail [email protected] Twitter do Handbook de TI Acompanhe de perto promoções e lançamentos de produtos pelo nosso Twitter com/handbookdeti Página 3 de 49 www.handbookdeti.com.br http://twitter. Handbook de Questões de TI Comentadas para Concursos 1. Volume questões de TI Assuntos relacionados: Websites, Content Management System (CMS), Banca: Cesgranrio Instituição: BR Distribuidora Cargo: Analista de Sistemas - Desenvolvimento Ano: 2008 Questão: 68 Assinale a opção que NÃO apresenta um CMS (Content Management System). (a). Alfresco (b). Beehive (c). Plone (d). Drupal (e). Joomla Solução: Um Sistema de Gestão de Conteúdo - SGC, (em inglês Content Management Systems - CMS), é um sistema gestor de websites, portais e intranets que integra ferramentas necessárias para criar, gerir (editar e inserir) conteúdos em tempo real, sem a necessidade de programação de código, cujo objetivo é estruturar e facilitar a criação, administração, distribuição, publicação e disponibilidade da informação. A sua maior característica é a grande quantidade de funções presentes. Podemos dizer que um CMS é um framework, um esqueleto de website pré-programado, com recursos básicos e de manutenção e administração já prontamente disponíveis. É um sistema que permite a criação, armazenamento e administração de conteúdos de forma dinâmica, através de uma interface de utilização via Internet. Um CMS permite que a empresa tenha total autonomia sobre o conteúdo e evolução da sua presença na internet e dispense a assistência de terceiros ou empresas especializadas para manutenções de rotina. Nem mesmo é preciso um funcionário dedicado (webmaster), pois cada membro da equipe poderá gerir o seu próprio conteúdo, diminuindo os custos com recursos humanos. A habilidade necessária para trabalhar com um sistema de gestão de conteúdo não vai muito além dos conhecimentos necessários para um editor de texto. A aparência de um website criado com um CMS é customizável, através da utilização de templates que podem ser facilmente substituídos. Em suma, o grande diferencial de um CMS é permitir que o conteúdo de um website possa ser modicado de forma rápida e segura de qualquer computador conectado à Internet. Um sistema de gestão de conteúdo reduz custos e ajuda a suplantar barreiras potenciais à comunicação web reduzindo o custo da criação, contribuição e manutenção de conteúdo. Abordemos cada alternativa. (A) ERRADA Alfresco é um Sistema de Gestão de Conteúdo corporativo multi-plataforma (Windows e Unix/Linux) de código aberto. Seu design é orientado para usuários que exigem um alto grau de modularidade e performance escalonável. Alfresco inclui, entre outras coisas, um Página 4 de 49 www.handbookdeti.com.br Handbook de Questões de TI Comentadas para Concursos repositório de conteúdo, uma interface CIFS (Common Volume questões de TI Internet File System ) que fornece compatibilidade com o sistema de arquivo no Microsoft Windows e Sistemas Unix/Linux e um sistema de gerenciamento de conteúdo web capaz de virtualizar aplicações e sites estáticos através do Apache Tomcat e do indexador Lucene. O sistema Alfresco é desenvolvido usando a tecnologia Java. (B) CORRETA O Apache Beehive é um framework Java projetado para fazer o desenvolvimento de aplicações escritas no padrão J2EE de forma mais rápida e fácil. Ele utiliza vários softwares livres da Apache Software Foundation (ASF ou fundação Apache), como o XMLBeans. Ele adotou as últimas inovações da versão 5 (ou 1.5) do Java, incluindo a especicação JSR-175 que trata sobre anotações (metadados) em atributos, métodos e classes. Ele é construído sobre um framework desenvolvido para a versão 8.1 da ferramenta BEA Weblogic Workshop da BEA Systems. (C) ERRADA Plone é um Sistema de Gestão de Conteúdo livre e de código aberto escrito na linguagem Python e que roda sobre um Servidor de Aplicações Zope e sobre o framework CMF (Content Management Framework ). O Plone pode ser usado para a construção de portais de informação e também para construir sistemas de publicação de documentos ou até como ferramenta para trabalho colaborativo. Ele vem com um sistema de workow, segurança e funções pré-conguradas, um conjunto de tipos de conteúdo e suporte a várias línguas. O Plone roda em praticamente qualquer plataforma. (D) ERRADA Drupal é um Sistema de Gestão de Conteúdo livre e de código aberto escrito em PHP. Da mesma forma que os sistemas de gerenciamento de conteúdo mais modernos, o Drupal permite criar e organizar conteúdo, manipular a aparência, automatizar tarefas administrativas, e denir permissões e papéis para usuários e colaboradores. Por ser desenvolvido em PHP, o Drupal é independente de sistema operacional, no entanto requer um servidor HTTP compatível com PHP e um Servidor de Banco de Dados para funcionar. O Drupal é comumente descrito como um Framework de Gerenciamento de Conteúdo, pois além de oferecer as funcionalidades básicas de um CMS ele também implementa uma série de APIs robustas e apresenta uma estrutura modular que facilita o desenvolvimento de módulos extensivos. (E) ERRADA Joomla! é um CMS desenvolvido a partir do Mambo. É escrito em PHP e roda no ser- vidor web Apache ou IIS e banco de dados MySQL. A grande vantagem do Joomla é a sua diversidade de extensões extras, feitas não necessariamente pelos desenvolvedores do projeto. Componentes, módulos e plugins são atualizados constantemente e possuem grande valia para prossionais de web interessados em um site bem feito. O Joomla é um projeto de código aberto (licença GNU/GPL). Página 5 de 49 www.handbookdeti.com.br Handbook de Questões de TI Comentadas para Concursos 2. Volume questões de TI Assuntos relacionados: Servidor de Aplicações, J2EE, JEE, .NET, MVC, Banca: CESGRANRIO Instituição: Petrobras Cargo: Analista de Sistemas - Eng. de Software Ano: 2008 Questão: 47 Um servidor de aplicações provê diversos serviços para as aplicações que hospeda. Considerandose implementações típicas em J2EE/JEE e .NET, compondo uma arquitetura em 3 camadas, é correto armar que, dentre os serviços oferecidos pelos servidores de aplicações, encontra-se (a). validação de objetos de domínio, segundo as regras de negócio da aplicação. (b). geração de código através de MDA (Model Driven Architecture). (c). persistência nal dos objetos de domínio. (d). suporte nativo à arquitetura MVC. (e). estrutura para troca de mensagens entre aplicações. Solução: O objetivo dos servidores de aplicações é disponibilizar uma plataforma que permita aos programadores abstrair de uma gama de tarefas inerentes ao desenvolvimento do software. Dessa forma, os programadores podem se concentrar mais nas regras de negócio do que nas questões de infraestrutura da aplicação, como segurança, disponibilidade, balanceamento de carga, mensageiria etc. Para aplicações simples, a utilização de um servidor de aplicações pode representar um overhead ao invés de facilitar as tarefas dos programadores. No entanto, para grandes aplicações comerciais com requisitos mais rígidos de desempenho e robustez a falhas, os servidores de aplicações mostram-se muito úteis. Embora o conceito de servidor de aplicações seja aplicável para o desenvolvimento em uma grande quantidade de linguagens, nos últimos anos os que mais se tornaram populares são os servidores de aplicações J2EE (ou JEE, nas versões mais recentes), criados para suportar aplicações escritas em Java. Para exemplicar o conjunto de serviços que os servidores de aplicações podem oferecer, vejamos a Figura 1. Ela mostra a arquitetura JEE mais recente, publicada pela Sun Microsystems no documento JSR-000316. No esquema mostrado nessa gura, tanto o Web Container quanto o EJB Container são hospedados no servidor de aplicações, que oferece serviços diversos por meio de várias APIs. A API JMS (Java Message Service), por exemplo, oferece suporte a comunicação ponto-a-ponto conável. A API JavaMail permite que as aplicações enviem e-mails sem ter que se preocupar com as questões de las de mensagens, falhas etc. A API JASS, por sua vez, oferece facilidades para implementação de autenticação e autorização nas aplicações. Vale lembrar que os servidores de aplicações também oferecem facilidades para persistência de dados, como lembrado na alternativa C. No entanto, a palavra nal torna a alternativa, ao menos, duvidosa! Já no caso da alternativa D, é de se esperar que um ambiente tão cheio de funcionalidades como um servidor de aplicações ofereça suporte a construção de aplicações segundo Página 6 de 49 www.handbookdeti.com.br Handbook de Questões de TI Comentadas para Concursos Volume questões de TI o modelo MVC. No entanto, a construção de uma aplicações que obedeça ao MVC está muito mais ligada a separação dos componentes e camadas do sistema do que à plataforma tecnológica utilizada. É, portanto, possível construir aplicações MVC no bom e velho ASP, bem como nos novos e modernos servidores de aplicações. A validação de objetos de que trata a alternativa A é feita pelos servidores de aplicações, mas não está relacionada as regras de negócio das aplicações. A geração automática de código, por sua vez, é uma tarefa comum às IDEs, e não aos servidores de aplicações. Portanto, a alternativa E, por ser a mais objetiva e clara, é a resposta correta para essa questão. Figura 1: arquitetura JEE 6.0. Página 7 de 49 www.handbookdeti.com.br Handbook de Questões de TI Comentadas para Concursos 3. Volume questões de TI Assuntos relacionados: Linguagens de Programação, Java, JavaServer Pages (JSP), Banca: ESAF Instituição: Agência Nacional de Águas (ANA) Cargo: Analista Administrativo - Tecnologia da Informação e Comunicação / Desenvolvimento de Sistemas e Administração de Banco de Dados Ano: 2009 Questão: 32 Analise as seguintes armações a respeito de JSP: I. Em uma aplicação Web, há apenas um objeto page em cada JSP. II. Comentários JSP aparecem na resposta ao cliente. III. Os objetos com escopo session duram por toda a sessão de navegação do cliente. Assinale a opção correta. (a). Apenas a armação I é verdadeira. (b). Apenas a armação II é verdadeira. (c). Apenas a armação III é verdadeira. (d). As armações I, II e III são verdadeiras. (e). Nenhuma das armações é verdadeira. Solução: JavaServer Pages (JSP) é uma tecnologia baseada em Java utilizada no desenvolvimento Active Server Page (ASP) e PHP. Ela faz parte de uma tecnologia maior referida como Java 2 Enterprise Edition (J2EE). de páginas Web com conteúdo dinâmico, similar às tecnologias Além das tags HTML, que geram o conteúdo estático, uma página JSP também contém elementos JSP especiais que permitem inserir conteúdo dinâmico por meio dos elementos JSP. Os elementos JSP são processados pelo servidor Web antes da página HTLM ser enviada de volta ao browser. Ou seja, quando o usuário faz uma requisição a uma página JSP, o servidor executa os elementos JSP da página, inserindo os resultados dos mesmos junto a parte estática da página, e envia a página HTML para o usuário. A tecnologia JSP pode ser usada, por exemplo, para recuperar informação em um banco de dados, manipular arquivos, obter informações sobre o visitante, etc. Após uma breve introdução de JSP, a seguir, analisamos as armativas da questão: I. Como forma de facilitar a programação Web, em uma página JSP existem 9 objetos instanciados, conhecidos como Objetos Implícitos, que são: page : representa a própria página JSP, ou melhor, uma instância da classe servlet na qual a página foi convertida. É simplesmente um sinônimo para this; cong : armazena os parâmetros de inicialização (conguração) do servlet da página JSP; request : solicitação que aciona o processamento da página; response : responsável pela devolução do resultado ao usuário; out : representa o uxo de saída (output) para a página em si; pageContext : dados de contexto para a execução da página; session : representa a sessão atual de um usuário individual; Página 8 de 49 www.handbookdeti.com.br Handbook de Questões de TI Comentadas para Concursos Volume questões de TI application : representa a aplicação à qual a página pertence; exception : incluso nas páginas especícas para tratar exceções ou erros não capturados. Para cada página JSP processada existe um faz outro também deve fazer. servlet correspondente, ou seja, o que um Como o objeto page faz referência ao servlet gerado, existe um objeto page para cada JSP. Portanto, esta armativa é verdadeira. II. Como qualquer linguagem de programação Web, os comentários não aparecem na resposta ao cliente. Logo, esta armativa é falsa. III. O escopo de um objeto está relacionado com as páginas JSPs que podem acessar o objeto. Os escopos disponíveis são: objeto que possui escopo application, request, response, page session está disponível para session estão disponíveis todos os objetos vinculados à A principal utilização do escopo session todas as JSPs e session. O os servlets, e e para toda a sessão de usuário. é manter os estados de conexão entre cliente e ser- vidor, pois o protocolo HTTP não armazena informações de estado. Isso permite o usuário navegar entre várias páginas na aplicação Web sem perda de informações referentes à sessão de usuário. Um exemplo típico de utilização do escopo session é em autenticação de usuá- rios, onde é possível restringir acesso a determinadas páginas. Portanto, esta armativa é verdadeira porque os objetos com o escopo session duram du- rante toda a sessão negação do cliente. Após a análise das armativas, chegamos a conclusão que as armativas I e III são verdadeiras. Portanto, a alternativa correta é a (E). Note que o gabarito fornecido para esta questão não confere com o gabarito ocial. Possivelmente, a banca que organizou a prova deve ter cometido um equívoco na armativa I. Página 9 de 49 www.handbookdeti.com.br Handbook de Questões de TI Comentadas para Concursos 4. Volume questões de TI Assuntos relacionados: Multipurpose Internet Mail Extensions (MIME), External Data Representation (XDR), ASCII, HTML, Banca: ESAF Instituição: Agência Nacional de Águas (ANA) Cargo: Analista Administrativo - Tecnologia da Informação e Comunicação / Administração de Redes e Segurança de Informações Ano: 2009 Questão: 18 Ferramentas clientes de correio eletrônico são capazes de exibir dados não-ASCII via mensagem padrão de correio eletrônico devido (a). à ag de sincronização. (b). ao HTML. (c). à MIME. (d). ao metadado. (e). à representação externa de dados (XDR). Solução: Há diversos documentos RFC (do Inglês Request for Comments) que denem o padrão do correio eletrônico (doravante chamado email) e suas características, algumas delas são a RFC5322 [1] (que dene o padrão das mensagens de email e torna obsoletas suas predecessoras: a RFC 822 [2] e a RFC 2822 [3]) e as RFCs 2045 [4], 2047 [5] e 2049 [6]. Em particular, a RFC 2047 dene extensões para o uso de texto não ASCII em mensagens de email. Como as RFCs de 2045 a 2049 fazem parte do padrão MIME (do Inglês Multipurpose Internet Mail Extensions), já sabemos que a solução desta questão é a alternativa c, à MIME. No entanto, ainda que conheçamos a resposta, convém discutir alguns aspectos do email e das alternativas mencionadas no enunciado. O documento apresentado em [1] dene apenas o formato básico do email, enquanto os outros documentos denem os padrões que o incrementam. Nesse formato padrão, uma mensagem de email é formada por um cabeçalho e um corpo opcional. Todas as mensagens de email são, inicialmente, codicadas em ASCII e todas as linhas de um email devem ser terminadas pelos caracteres CR (Carriage Return, caractere de valor 13) e LF (Line Feed, caractere de valor 10), normalmente referenciados como CRLF. A sintaxe formal é descrita em [1] e, portanto, não será discutida aqui. No entanto, para ns ilustrativos, abaixo é exibida uma mensagem de email na forma como é trocada entre servidores para discussão de algumas de suas características. Essa mensagem de exemplo contém um cabeçalho e um breve corpo. É importante ressaltar que o padrão do email obriga que o corpo, quando presente, seja separado do cabeçalho por uma linha em branco (contento apenas a sequência CRLF). O cabeçalho é formado por campos, como destinatário (To), remetente (From), assunto (Subject) e assim por diante. Os campos de cabeçalho jamais são traduzidos nas mensagens e é função dos clientes de email exibi-los na língua do usuário. Já o corpo do email é composto por texto não estruturado e, em algumas vezes, terminado com uma assinatura. Conhecendo um pouco melhor sobre o formato de email, podemos investigar as alternativas desta questão. Página 10 de 49 www.handbookdeti.com.br Handbook de Questões de TI Comentadas para Concursos Volume questões de TI Date: Thu, 22 Jul 2010 21:44:02 -0300 From: John da Silva <[email protected]> To: [email protected] Subject: Oi foo, testando... Message-ID: <20100723004402.GA16086@localhost> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.5.20 (2009-06-14) Aqui vem o corpo da mensagem. No exemplo acima vemos uma mensagem de email com o uso de algumas extensões. Podemos saber disso pela presença dos cabeçalhos Content-Type e MIME-Version, denidos na RFC 2045. Esses cabeçalhos especicam que o conteúdo do email é em texto plano e codicado em ASCII e que a versão MIME usada é a 1.0, respectivamente. O corpo da mensagem é representado pela string Aqui vem o corpo da mensagem. Alternativas Abaixo apresentamos brevemente o signicado de cada uma das alternativas para que esta questão possa ser melhor compreendida. Flag de sincronização O termo ag de sincronização é genérico demais para que possamos depreender um signicado sem conhecer seu contexto. Por esse motivo, essa alternativa não será considerada. HTML HTML (do inglês Hypertext Markup Language), uma linguagem de marcação de (hiper)texto, é a linguagem predominante nas páginas web e provê mecanismos para a criação de documentos estruturados. Essa linguagem permite que imagens, objetos e formulários interativos sejam embutidos em uma página. Quando integrado ao email, o HTML permite que a mensagem enviada possua formatação, links e outras facilidades providas pela linguagem. A RFC 2557 [7] descreve um conjunto de boas práticas para que a troca de mensagens de email com HTML seja possível. Apesar de possuir uma sintaxe própria para especicar códigos especiais de entidade, o HTML em email ainda depende de MIME (quando enviado em obediência ao padrão) para o intercâmbio de mensagens em HTML e vemos que esta alternativa não pode, realmente, ser a solução desta questão. MIME Conforme brevemente discutido, MIME é a resposta correta para esta questão. Mas o que vem a ser MIME? Como seu próprio nome diz, MIME especica extensões de propósito geral para emails, são elas: 1. mensagens com texto em outra codicação além de ASCII; 2. um conjunto de extensivo de diferentes formatos para corpos de mensagem não textuais; Página 11 de 49 www.handbookdeti.com.br Handbook de Questões de TI Comentadas para Concursos Volume questões de TI 3. corpos de mensagem em diversos formatos; e 4. cabeçalhos de mensagens em outras codicações além de ASCII. Para que outras codicações sejam usadas no email, o padrão MIME dene uma sintaxe de palavras codicadas que pode ser usada ao invés de uma string literal (como seria enviada em um email padrão). Essa sintaxe usa strings ASCII para indicar a codicação original e a codicação de transferência de conteúdo (content-transfer-encoding) usada para mapear os bytes de conjunto de caracteres usado pelo cliente de email em caracteres ASCII. O formato usado nessa extensão é =conjunto de caracteres?codicação?texto codicado?=, com: • o nome do conjunto de caracteres sendo qualquer um registrado junto ao IANA (Internet Assigned Numbers Authority). Exemplos incluem utf-8, us-ascii e iso-8859-1; • 1 a forma de codicação usada, podendo ser tanto Q, para quoted-printable , quanto 2 B, para base64 ; • e o texto codicado é o texto na codicação Q ou base64. Considere, por exemplo, que a string Olá mundo! deve ser enviada em um cabeçalho. Usando o conjunto de caracteres iso-8859-1 e uma codicação em base64, a string seria representada como =?iso-8859-1?B?T2zh?= mundo!. Já se a codicação Q fosse usada, a string seria representada como =?iso-8859-1?Q?Ol=E1?= mundo! (no conjunto de caracteres iso-8859-1, ao caractere á é atribuído o valor hexadecimal 0xE1). É importante notar que, apesar de ter sido inicialmente criado apenas para o email, o padrão MIME hoje descreve tipos de conteúdo em geral, inclusive na web, através do antigo MIME type, hoje Internet media type. Como exemplo de Internet media type temos text/html, para o formato HTML, e application/msword para arquivos do Microsoft Word. Metadados O termo metadados é genérico demais para que possamos depreender um signicado sem conhecer seu contexto, já que não é possível saber, a priori quando um dado em particular é um metadado ou um dado. Informalmente, os metadados são denidos como dados sobre dados. De certa forma, faz sentido dizer que o padrão MIME para o uso de caracteres diferentes de ASCII em mensagens de email é um tipo de metadados, mas por ser deveras genérico, esta não é a solução desta questão e, por precisar de mais detalhes para uma melhor denição, o tópico não será aprofundado nesta solução. XDR O padrão XDR, do Inglês External Data Representation, é um padrão IETF (Internet Engineering Task Force, organização que desenvolve e mantém padrões da Internet,) que permite que dados sejam transmitidos de forma independente de arquitetura por sistemas computacionais heterogêneos. 1 A codicação quoted-printable é uma codicação que usa caracteres ASCII imprimíveis e o sinal de igual para transmitir dados de 8 bits em canais que suportam apenas 7 bits. 2 Base64 é um termo usado para métodos de codicação de dados binários que são tratados como números e que depois são traduzidos para uma representação de base (numérica) 64. Página 12 de 49 www.handbookdeti.com.br Handbook de Questões de TI Comentadas para Concursos Volume questões de TI Em princípio, o XDR nada tem a ver com email, o que justica esta não ser a solução desta questão. Referências [1] P. Resnick, editor, Internet message format, http://tools.ietf.org/html/rfc5322, outu- bro de 2008 [2] David Crocker, Standard for the format of ARPA Internet text messages, http://tools.ietf.org/html/rfc822, agosto de 1982 [3] P. Resnick, editor, Internet message format, http://tools.ietf.org/html/rfc2822, abril de 2001 [4] Freed, N., N. Borenstein, Multipurpose Internet Mail Extensions (MIME) Part One: Format of Internet Message Bodies, http://tools.ietf.org/html/rfc2045, novembro de 1996 [5] K. Moore, MIME (Multipurpose Internet Mail Extensions) Part Three: Message Header Extensions for Non-ASCII Text, http://tools.ietf.org/html/rfc2047, novembro de 1996 [6] Freed, N., N. Borenstein, Multipurpose Internet Mail Extensions (MIME) Part Five: Conformance Criteria and Examples, http://tools.ietf.org/html/rfc2049, novembro de 1996 [7] J. Palme, MIME E-mail Encapsulation of Aggregate Documents, such as HTML (MHTML), http://tools.ietf.org/html/rfc2110, março de 1997 Página 13 de 49 www.handbookdeti.com.br Handbook de Questões de TI Comentadas para Concursos 5. Volume questões de TI Assuntos relacionados: Padrões W3C, Web Services, Banca: CESGRANRIO Instituição: BNDES Cargo: Analista de Suporte Ano: 2008 Questão: 61 A empresa de informática X pretende acessar o web service da empresa Y. Qual o padrão W3C que possibilitará ao desenvolvedor de software da empresa X implementar a parte cliente que acessará o web service da empresa Y? (a). WSDL (b). HTML (c). XQuery (d). XPath (e). UDDI Solução: Web service é um componente de software identicado por uma URI (Uniform Resource Identier) que não depende de implementação ou de plataforma e pode ser descrito, publicado e invocado por meio de mensagens no padrão XML. Com web wervices é possível realizar integração entre sistemas desenvolvidos em diferentes linguagens e para diferentes plataformas. Além disso, é possível disponibilizar serviços interativos na Web. Ela é uma tecnologia de padrão aberto e padronizado pelo W3C. A arquitetura de web service é constituída por três componentes básicos: o servidor de registro (broker server ou service registry), o provedor de serviços (service provider) e o solicitante de serviços (service requestor). As interações entre esses componentes são de busca, publicação e integração. A interação entre web services se dá sob vários protocolos abertos, em diferentes níveis de abstração. Os protocolos utilizados para realizar a comunicação são: UDDI (Universal Description Discovery and Integration), WSDL (Web Services Description Language), XML (Extensible Markup Language), SOAP (Simple Object Access Protocol) e o HTTP. XML é uma linguagem de marcação apropriada para representação de dados, documentos e demais entidades. Sua essência fundamenta-se na capacidade de agregar informações. O SOAP é um protocolo de comunicação simples baseado em XML para troca de informações entre aplicações. A especicação do SOAP provê maneiras para construir mensagens que possam trafegar por meio de diversos protocolos de forma independente da linguagem de programação e do sistema operacional. Normalmente, o protocolo utilizado para troca de informações é o HTTP. As alternativas trazem as seguintes tecnologias: (A) WSDL (Web Services Description Language): é uma linguagem baseada em XML utilizada para descrever um web service e como acessá-lo. A descrição de um serviço consiste de duas partes: denição de implementação do serviço e denição da interface do serviço. A primeira descreve como uma interface de serviço é implementada Página 14 de 49 www.handbookdeti.com.br Handbook de Questões de TI Comentadas para Concursos Volume questões de TI por um provedor: onde o serviço está instalado e como ele pode ser acessado. E a segunda descreve o web service, incluindo métodos que são invocados e parâmetros que devem ser enviados; (B) HTML (Hyper Text Markup Language): é uma linguagem de marcação de tags utilizada para produzir páginas na Web; (C) XQuery (XML Query): é uma linguagem utilizada para executar consultas em dados XML; (D) XPath (XML Path): é uma linguagem para encontrar informações em um docu- mento XML. O XPath é utilizado para navegar através de atributos e elementos em um documento XML. Ela é o principal elemento no padrão XSLT; (E) Para que um serviço seja utilizado é necessário que o cliente consiga localizá-lo, e essa localização pode ser feita por meio do UDDI, que é uma especicação técnica para descrever, descobrir e publicar web services. Portanto, a resposta da questão é a alternativa A. Página 15 de 49 www.handbookdeti.com.br Handbook de Questões de TI Comentadas para Concursos 6. Volume questões de TI Assuntos relacionados: Protocolos de Redes, HTTP, HTTPS, Cookies, Variáveis de Sessão, Banca: Cesgranrio Instituição: Petrobras Cargo: Analista de Sistemas Pleno - Processos Ano: 2006 Questão: 25 A gura abaixo apresenta uma típica arquitetura utilizada para disponibilizar sites na Internet. Sobre essa arquitetura, são feitas as armativas abaixo. I - Os protocolos HTTP e HTTPS são protocolos inerentemente com informação de estado, o que facilita o gerenciamento dos estados por parte das aplicações e dos servidores Web, permitindo o balanceamento de carga através da distribuição das chamadas entre os servidores Web. II - Os cookies podem ser utilizados em alguns casos como alternativa para realizar o controle de estados através do armazenamento de informações no lado do cliente Web (Browser), sendo que uma desvantagem desta abordagem é que ela adiciona tráfego extra na rede, além de ser menos segura que o gerenciamento de estado feita no servidor. III - Se forem utilizadas variáveis de sessão para o gerenciamento de estado em servidores que não permitam o compartilhamento das variáveis entre eles, métodos que implementam anidade de sessões podem ser utilizados de forma a fazer com que um browser, ao se conectar com um servidor, tenha seus pedidos subseqüentes sempre direcionados para o mesmo servidor. A anidade de sessão pode prejudicar o balanceamento de carga utilizado em congurações como a apresentada na gura. Está(ão) correta(s) a(s) armativa(s): (a). I, apenas. (b). II, apenas. (c). III, apenas. (d). II e III, apenas. (e). I, II e III. Solução: Abordaremos cada item a m de solucionarmos a presente questão. Sobre o item I: Página 16 de 49 www.handbookdeti.com.br Handbook de Questões de TI Comentadas para Concursos HTTP (Hyper Text Transfer Protocol ): Volume questões de TI trata-se de um protocolo da Camada de Aplica- ção que dene tanto a estrutura da mensagem como o modo que o cliente e o servidor as trocam. Podemos classicá-lo como uma aplicação cliente-servidor. Lembre-se que uma página Web nada mais é que um conjunto de objetos, em que um objeto pode ser um arquivo HTML, uma imagem, um applet JAVA, etc. Cada objeto é referenciado por uma única URL, a qual possui dois componentes: o nome do hospedeiro e o nome do caminho do objeto. Por exemplo, na URL http://www.universidade.br/departamento/gura.gif, www.universidade.br é o nome do hospedeiro e /departamento/gura.gif é o nome do caminho do objeto. Vejamos, agora, como o HTTP realiza a comunicação entre o cliente (representado pelo Browser, que apresenta páginas Web e fornece várias características de navegação) e o servidor (por exemplo, Apache ou Microsoft Internet Information Server IIS, que é responsável por abrigar objetos Web). O HTTP usa o TCP como seu protocolo de transporte, isto é, as trocas de mensagens são realizadas orientada a conexão. Além disso, tais conexões podem ser persistentes ou não-persistentes. Abaixo, apresentamos o uxo de uma conexão não-persistente: 1. o processo cliente abre uma conexão TCP executando o three way handshake ; 2. o processo cliente envia uma mensagem de requisição HTTP ao servidor; 3. o processo servidor recebe a mensagem de requisição, encapsula o objeto Web requisitado em uma nova mensagem de resposta HTTP, e a envia ao cliente; 4. o processo servidor solicita o encerramento da conexão TCP; 5. o processo cliente recebe a mensagem de resposta, extrai o objeto da mensagem de resposta e o apresenta. Podemos observar, pelo uxo acima, que para cada objeto transferido há a exigência de abertura de uma nova conexão TCP, o que se mostra um tanto quanto ineciente, pois as páginas Web são, geralmente, constituídas de um arquivo-base HTML e de diversos objetos referenciados. Esta ineciência é sanada pela conexão persistente, pois o servidor deixa a conexão TCP aberta após enviar a resposta, ou seja, requisições e respostas subsequentes entre os mesmos cliente e servidor podem ser enviadas por meio da mesma conexão. É importante salientar que o servidor envia as respostas HTTP ao cliente sem armazenar nenhuma informação de estado sobre este, isto é, se um determinado cliente solicita o mesmo objeto duas vezes em um período de poucos segundos, o servidor não responde dizendo que acabou de enviar o objeto. Em vez disso, ele envia novamente o objeto ao cliente. Em outras palavras, dizemos que o HTTP é um protocolo sem estado. Portanto, já temos condições de dizer que o item I está errado. HTTPS: nada mais é que o uso do protocolo SSL (Secure Sockets Layer) com HTTP, por isso o nome HTTPS ( Secure HTTP). O protocolo SSL, introduzido pela Netscape em 1995, está posicionado entre a camada de transporte e a camada de aplicação da pilha TCP/IP, provendo serviços de autenticação do servidor, comunicação secreta e integridade de dados. Sobre o item II: Página 17 de 49 www.handbookdeti.com.br Handbook de Questões de TI Comentadas para Concursos Volume questões de TI Como vimos no item I, basicamente a Web não tem estados. O navegador envia uma solicitação a um servidor e recebe de volta um arquivo. Depois, o servidor esquece que já viu esse cliente especíco. Este modelo era bem adequado no início, quando a Web era usada apenas para recuperar documentos publicamente disponíveis. Porém, à medida que a Web começou a adquirir outras funções, o modelo causou problemas. Um segundo exemplo é o e-commerce (comércio eletrônico). Se um usuário percorrer uma loja eletrônica colocando itens em seu carrinho de compras de vez em quando, como o servidor irá controlar o conteúdo do carrinho? Para resolver esse problema, a Netscape criou uma técnica muito criticada, denominada cookies. O nome deriva de uma antiga gíria dos programadores, na qual um programa chama um procedimento e recebe de volta algo que talvez precise apresentar mais tarde para conseguir a realização de algum trabalho. Quando um cliente 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, um pequeno arquivo ou string (com 4 KB no máximo), o que, obviamente, adiciona tráfego extra à rede. Os navegadores armazenam os cookies oferecidos em um diretório de cookies no disco rígido do cliente, o que, diga-se de passagem, é um tanto quanto vulnerável. Como estes cookies podem conter informações sobre número de cartões de crédito, números de CPF e outras informações condenciais, é sempre possível que alguém mal-intencionado invada o computador do usuário a m de obter tais informações. Portanto, o item II está correto. Sobre o item III: O problema que as variáveis de sessão têm que superar é o fato do protocolo HTTP que você usa para navegar na web ser sem estado, como já dissemos no item I. A primeira vez que um novo usuário visita uma página, uma nova variável de sessão é automaticamente criada. Como? Por meio de cookies. Então, na primeira vez que você visita um site, não há cookie e o servidor cria uma nova sessão e seta um cookie com um valor único (ID). Posteriormente, quando o usuário navega pelo site, o cookie é enviado de volta ao servidor, permitindo que este reconheça o usuário. A sessão termina quando o usuário não abre outra página na aplicação por certo período de tempo, ou quando o usuário termina a sessão (clicando em log-o, por exemplo). Além disso, enquanto existir, a sessão é especíca para um usuário individual, e cada usuário tem uma sessão separada. Uma desvantagem da variável de sessão é que cada cliente exige anidade com o servidor onde começou a sessão, uma vez que é somente aí que estão as variáveis de sessão (neste servidor local). Isto requer aderência de sessão, o que elimina a redundância on-the-y (caso o servidor caia ou seja desligado, as sessões dos usuários serão destruídas), e prejudica o balanceamento dinâmico de carga mesmo em momentos em que há servidores ociosos (isto faz os usuários experimentarem situações irregulares, onde alguns experimentam um site extremamente lento enquanto outros navegam com rapidez e facilidade). Assim, concluímos que o item III também está correto. Portanto, a alternativa D está correta. Página 18 de 49 www.handbookdeti.com.br Handbook de Questões de TI Comentadas para Concursos 7. Volume questões de TI Assuntos relacionados: Padrões W3C, Web Services, Banca: CESGRANRIO Instituição: BNDES Cargo: Analista de Suporte Ano: 2008 Questão: 61 A empresa de informática X pretende acessar o web service da empresa Y. Qual o padrão W3C que possibilitará ao desenvolvedor de software da empresa X implementar a parte cliente que acessará o web service da empresa Y? (a). WSDL (b). HTML (c). XQuery (d). XPath (e). UDDI Solução: Web service é um componente de software identicado por uma URI (Uniform Resource Identier) que não depende de implementação ou de plataforma e pode ser descrito, publicado e invocado por meio de mensagens no padrão XML. Com web wervices é possível realizar integração entre sistemas desenvolvidos em diferentes linguagens e para diferentes plataformas. Além disso, é possível disponibilizar serviços interativos na Web. Ela é uma tecnologia de padrão aberto e padronizado pelo W3C. A arquitetura de web service é constituída por três componentes básicos: o servidor de registro (broker server ou service registry), o provedor de serviços (service provider) e o solicitante de serviços (service requestor). As interações entre esses componentes são de busca, publicação e integração. A interação entre web services se dá sob vários protocolos abertos, em diferentes níveis de abstração. Os protocolos utilizados para realizar a comunicação são: UDDI (Universal Description Discovery and Integration), WSDL (Web Services Description Language), XML (Extensible Markup Language), SOAP (Simple Object Access Protocol) e o HTTP. XML é uma linguagem de marcação apropriada para representação de dados, documentos e demais entidades. Sua essência fundamenta-se na capacidade de agregar informações. O SOAP é um protocolo de comunicação simples baseado em XML para troca de informações entre aplicações. A especicação do SOAP provê maneiras para construir mensagens que possam trafegar por meio de diversos protocolos de forma independente da linguagem de programação e do sistema operacional. Normalmente, o protocolo utilizado para troca de informações é o HTTP. As alternativas trazem as seguintes tecnologias: (A) WSDL (Web Services Description Language): é uma linguagem baseada em XML utilizada para descrever um web service e como acessá-lo. A descrição de um serviço consiste de duas partes: denição de implementação do serviço e denição da interface do serviço. A primeira descreve como uma interface de serviço é implementada Página 19 de 49 www.handbookdeti.com.br Handbook de Questões de TI Comentadas para Concursos Volume questões de TI por um provedor: onde o serviço está instalado e como ele pode ser acessado. E a segunda descreve o web service, incluindo métodos que são invocados e parâmetros que devem ser enviados; (B) HTML (Hyper Text Markup Language): é uma linguagem de marcação de tags utilizada para produzir páginas na Web; (C) XQuery (XML Query): é uma linguagem utilizada para executar consultas em dados XML; (D) XPath (XML Path): é uma linguagem para encontrar informações em um docu- mento XML. O XPath é utilizado para navegar através de atributos e elementos em um documento XML. Ela é o principal elemento no padrão XSLT; (E) Para que um serviço seja utilizado é necessário que o cliente consiga localizá-lo, e essa localização pode ser feita por meio do UDDI, que é uma especicação técnica para descrever, descobrir e publicar web services. Portanto, a resposta da questão é a alternativa A. Página 20 de 49 www.handbookdeti.com.br Handbook de Questões de TI Comentadas para Concursos 8. Volume questões de TI Assuntos relacionados: Desenvolvimento Web, Padrões W3C, Acessibilidade de Aplicações Web, Banca: Cesgranrio Instituição: Petrobras Cargo: Analista de Sistemas Júnior - Processos de Negócio Ano: 2008 Questão: 32 Já em 1999, o W3C emitiu recomendações sobre acessibilidade de páginas Web em seu Web Content Accessibility Guidelines 1.0. Estas recomendações visam, em especial, a permitir que pessoas com algum tipo de deciência possam utilizar as páginas, ainda que com dispositivos alternativos como leitores de tela. Entre os itens de acessibilidade a serem observados no projeto de sites e aplicações web, em geral, NÃO se inclui: (a). evitar usar imagens para representar texto (em botões, por exemplo). (b). evitar o uso de tabelas para ns de layout, a menos que façam sentido quando linearizadas. (c). evitar usar elementos que piscam ou se movem na tela. (d). abrir novas janelas para minimizar a necessidade do uso do botão Retornar do navegador. (e). organizar o conteúdo das páginas de forma que possa ser lido sem folhas de estilo. Solução: O Web Content Accessibility Guidelines 1.0, publicado em Maio de 1999 pelo W3C é um documento que tem por objetvo explicar como tornar o conteúdo Web acessível para pessoas com algum tipo de deciência. Em sua apresentação, o documento faz questão de ressaltar que as orientações por ele passadas são destinadas não somente aos desenvolvedores de conteúdo, mas também aos desenvolvedores de ferramentas de editoração e aos desenvolvedores de ferramentas integradas de desenvolvimento (IDEs, do Inglês, Integrated Development Tools). Tal recomendação faz todo sentido, uma vez que boa parte dos programadores, em especial os que trabalham com o desenvolvimento de alguma espécie gráca, utiliza IDEs e frameworks no intutito de alcançar maior produtividade. Como a produtividade, em geral, está em primeiro lugar no mundo comercial de desenvolvimento de aplicações, se as IDEs e frameworks não incorporarem os guidelines de do W3C, as metas de acessibilidade de tal organização estaria fadadas ao fracasso. Portanto, o objetivo principais dos guidelines é promover a acessibilidade, tornando o conteúdo Web mais disponível a todos os usuários independente do user-agent que eles estejam utilizando (browsers de desktop, browsers de voz, telefones móveis etc.) ou das restrições de ambiente às quais estejam submetidos (barulho em excesso, pouca iluminação etc). O aumento da acessibilidade também é obtido por meio da maior rapidez alcançada nas pesquisas quando se obedecem os guidelines. É importante ressaltar ainda que os guidelines não desencorajam os desenvolvedores de conteúdo a utilizar imagens, vídeos ou outros tipos de conteúdo multimídia que não sejam diretamente adequados à pessoas com deciências ou à usuários comuns sob restrições de ambiente. Ao invés disso, os guidelines procuram explicar como tornar tais conteúdos mas Página 21 de 49 www.handbookdeti.com.br Handbook de Questões de TI Comentadas para Concursos Volume questões de TI acessíveis de forma geral. Os 14 guidelines de acessibilidade trazidos na versão 1.0, assim como mostrados no documento ocial do W3C, são os seguintes: 1 Provide equivalent alternatives to auditory and visual content. 2 Don't rely on color alone. 3 Use markup and style sheets and do so properly. 4 Clarify natural language usage 5 Create tables that transform gracefully. 6 Ensure that pages featuring new technologies transform gracefully. 7 Ensure user control of time-sensitive content changes. 8 Ensure direct accessibility of embedded user interfaces. 9 Design for device-independence. 10 Use interim solutions. 11 Use W3C technologies and guidelines. 12 Provide context and orientation information. 13 Provide clear navigation mechanisms. 14 Ensure that documents are clear and simple. A resposta da questão é a alternativa D, pois abrir novas janelas não irá minimizar a necessidade de uso do Botão retornar, além de introduzir uma maior diculdade de navegação ao usuário, que terá de lidar com a alternância entre múltiplas janelas. Tal estratégia é contrária ao guideline 13, que recomenda que se ofereçam mecanismos claros de navegação. Por m, vale mencionar que em Dezembro de 2008, o W3C publicou a segunda versão dos guidelines de acessibilidade. A essência se mantém a mesma, embora a organização e apresentação dos guidelines tenha sido alterada, como pode ser visto a seguir: 1 Perceivable 1.1 Provide text alternatives for any non-text content so that it can be changed into other forms people need, such as large print, braille, speech, symbols or simpler language. 1.2 Provide alternatives for time-based media. 1.3 Create content that can be presented in dierent ways (for example simpler layout) without losing information or structure. 1.4 Make it easier for users to see and hear content including separating foreground from background. 2 Operable 2.1 Make all functionality available from a keyboard. 2.2 Provide users enough time to read and use content. 2.3 Do not design content in a way that is known to cause seizures. 2.4 Provide ways to help users navigate, nd content, and determine where they are. 3 Understandable 3.1 Make text content readable and understandable. 3.2 Make Web pages appear and operate in predictable ways. Página 22 de 49 www.handbookdeti.com.br Handbook de Questões de TI Comentadas para Concursos Volume questões de TI 3.3 Help users avoid and correct mistakes. 4 Robust 4.1 Maximize compatibility with current and future user agents, including assistive technologies. Reparem que, sob a ótica da versão 2, a resposta da questão seria a mesma, porém, desta vez, a guideline desobedecida seria a 2.4, já que a estratégia de abrir múltiplas janelas tornaria, para o usuário, mais difícil a tarefa de determinar onde ele está, prejudicando, por consequência, a navegação. Página 23 de 49 www.handbookdeti.com.br Handbook de Questões de TI Comentadas para Concursos 9. Volume questões de TI Assuntos relacionados: RSS, ATOM, Banca: CESGRANRIO Instituição: Petrobras Cargo: Analista de Sistemas - Eng. de Software Ano: 2008 Questão: 29 Os formatos de distribuição de informações e notícias (newsfeeds) RSS e ATOM foram disseminados pelos blogs e têm sido utilizados nos mais variados tipos de sites como alternativa a outras modalidades de distribuição de notícias. Sobre este tema, é correto armar que (a). ao assinar um newsfeed, o usuário passa a receber emails periódicos com as notícias fornecidas pelo mesmo. (b). ao contrário do ATOM, o RSS é um padrão do IETF (Internet Engineering Task Force). (c). os newsfeeds em ATOM são estruturados em formato XHTML. (d). os newsfeeds em RSS são estruturados em formato HTML. (e). o recurso de autodescoberta para ambos os formatos pode ser implementado através de tags link na seção header da página do site que os oferece. Solução: (A) ERRADA As informações publicadas via RSS e ATOM podem ser acessadas basicamente via leitores de feeds, também conhecidos como agregadores. Os agregadores são programas que permitem a visualização de vários feeds em um único local, organizados como o usuário preferir. Existem agregadores para Linux, Windows e Mac OS, agregadores em páginas de Internet, assim como agregadores nos próprios browsers. Exemplos típicos de programas leitores de RSS são Google Reader, RSS Reader e Bloglines. No linguajar das tecnologias RSS e ATOM, os os usuários assinam um feed de um determinado site e a partir daí o agregador começa a receber as informações distribuídas pelo site. Mais precisamente, é o agregador que se encarrega de vericar periodicamente se existe alguma nova informação disponível nas fontes. Perceba, portanto, que ao assinar um newsfeed o usuário não passa a receber emails com as notícias, como sugere este alternativa. Ou seja, esta não é a resposta para esta questão. (B) ERRADA O ATOM (que não é uma sigla) foi criado por um conjunto de desenvolvedores independentes, mas atualmente o projeto recebe apoio de grandes corporações da Internet. Para saber mais sobre o ATOM e suas características, o candidato pode visitar o site ocial do projeto em http://www.atomenabled.org. O RSS foi criado pela Netscape, mas atualmente sua especicação é mantida pelo RSS Advisory Board, cujo site ocial é o http://www.rssboard.org. Como o RSS não é um padrão IETF, concluímos que esta alternativa está errada. (C) e (D) ERRADAS Tanto o RSS quanto o ATOM são estruturados em XML, e não em XHTML e HTML como apresentam as alternativas. Página 24 de 49 www.handbookdeti.com.br Handbook de Questões de TI Comentadas para Concursos Volume questões de TI (E) CORRETA O recurso de autodescoberta é uma forma automática de noticar os aplicativos (browser, leitores, agregadores etc) que um determinado site possui feeds. Um exemplo típico da implementação do recurso de autodescoberta de feeds é mostrado a seguir. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html lang="en"> <head> <link rel="alternate" type="application/atom+xml" title="Main Atom" href="/xml/index.atom"> <link rel="alternate" type="application/atom+xml" title="Recent comments" href="/xml/comments.atom"> </head> <body> ... </body> </html> Página 25 de 49 www.handbookdeti.com.br Handbook de Questões de TI Comentadas para Concursos 10. Volume questões de TI Assuntos relacionados: HTTPS, RSS, ATOM, CSS, Web 2.0, Banca: Cesgranrio Instituição: Petrobras Cargo: Analista de Sistemas Júnior - Processos de Negócio Ano: 2008 Questão: 31 Analise as armativas a seguir, sobre tecnologias e arquitetura da Internet. I - Ao utilizar uma conexão segura (https) com um site, se um cliente não possuir uma identidade digital, tal como um e-CPF ou e-CNPJ, somente serão criptografados os dados enviados do cliente para o servidor. Nesta situação, o servidor não deve exibir dados sigilosos para o cliente, pelo fato de os mesmos estarem sujeitos à interceptação; esta é a principal razão pela qual alguns serviços na Internet só são disponibilizados para clientes que possuem identidade digital. II - Os formatos de distribuição de informações e notícias (newsfeeds) RSS e ATOM, baseados em XML e inicialmente utilizados em blogs, têm sido adotados nos mais variados tipos de sites como alternativa a outras modalidades de distribuição de notícias tais como as listas de e-mails. III - O uso de folhas de estilo CSS externas nas páginas de um site ou aplicação Internet, em alternativa à marcação com atributos nos tags HTML e XHTML, proporciona uma redução signicativa da exigência de banda, melhorando a experiência do usuário e demandando menos recursos dos servidores do site. IV - O termo Web 2.0, atualmente em evidência, se refere a um conjunto de novos padrões e recomendações do W3C, bem como a tecnologias de diversos fabricantes, que tornam possíveis a criação de aplicações para a Web Semântica (Semantic Web) conforme vislumbrado por Tim Berners-Lee, o criador da Web. Estão corretas APENAS as armativas (a). I e II (b). I e III (c). II e III (d). II e IV (e). III e IV Solução: Item I ERRADA O HTTPS é uma aplicação que tem por nalidade garantir segurança nas transmissões de dados através da Internet, em aplicações como Home Banking, compras por cartão de crédito, e-commerce, enm, aplicações comerciais que envolvam valores, informações privadas, senhas, etc. O HTTPS é a utilização do protocolo HTTP (HyperText Transfer Protocol) em conjunto com o protocolo SSL (Secure Sockets Layer). Para a transação segura ocorrer, o HTTPS deve estar ativado no servidor e pode estar ativado no cliente. Isto é, não é necessário o cliente ter HTTPS ativado, porém, o cliente deve ter um browser habilitado para o protocolo SSL. Um ponto importante no HTTPS é o uso de certicados digitais. Para o HTTPS ser ativado Página 26 de 49 www.handbookdeti.com.br Handbook de Questões de TI Comentadas para Concursos Volume questões de TI deve-se possuir um certicado. Logo, como todo servidor deve ter HTTPS ativado, ele deve ser certicado. Receber um certicado digital é a garantia para o cliente de que ele está mandando os dados para o host correto. Isso é o servidor é exatamente quem ele diz ser. O cliente pode conseguir informações do certicado do servidor através do browser, clicando no ícone em formato de cadeado. Um usuário, através de um browser, acessa o site do servidor que disponibiliza uma página segura (HTTPS). Esta conexão somente será possível se o usuário estiver com a opção de SSL ativada, ou através de um Proxy com SSL ativado. Caso contrário, a página estará indisponível para este usuário. Item II CORRETA O RSS é um conjunto de especicações voltadas para agregação e distribuição de conteúdos da Web, que facilita o processo de consulta e partilha de informação proveniente de diversas fontes de informação, periodicamente sujeitas a alterações ou atualizações. Tecnicamente, um dos principais trunfos dessa tecnologia reside em sua simplicidade, já que RSS nada mais é do que um arquivo-texto codicado dentro de um padrão compatível com o formato XML (eXtensible Markup Language). Este arquivo também é conhecido pelo nome de feed já que é alimentado constantemente, na medida em que ocorre alguma atualização no conteúdo. Assim, um arquivo RSS (feed) é, na realidade, uma lista constituída pelos elementos essenciais que descrevem uma determinada informação da Web: o título do documento, sua URL (Uniform Resource Locator, o endereço que localiza os sítios na Web) e uma breve descrição de seu conteúdo. O ATOM tem o mesmo objetivo do RSS, é escrito também em XML, exibe feeds parecidos aos do RSS, porém apresenta algumas vantagens. Do ponto de vista de quem recebe os feeds, o ATOM dá menos problemas na leitura, oferece título e subtítulo, nome do autor com ou sem seu email, data e horário da atualização, e dá a informação em forma de resumo. Atualmente existe um uso intensivo desta tecnologia em páginas cuja atualização ocorre com freqüência, como acontecem com os blogs, serviços de notícias e as tradicionais formas de publicação, como jornais e revistas. Esta é uma prática comum das agências de notícias que permitem outras páginas Web incorporarem suas notícias e resumos por meio de acordos visando ampliar o número de leitores. Item III CORRETA Uma folha de estilos é um conjunto de regras que informa a um programa, responsável pela formatação de um documento, como organizar a página, como posicionar e expor o texto e, dependendo de onde é aplicada, como organizar uma coleção de documentos. Com folhas de estilo é possível criar muitas páginas com um layout sosticado que antes só era possível usando imagens, tecnologias como Flash ou Applets Java. Estas páginas eram sempre mais pesadas, pois precisavam carregar imagens, componentes, programas. Com CSS é possível denir texto de qualquer tamanho, posicioná-lo por cima de outros objetos, ao lado ou por cima de texto e conseguir efeitos sosticados a um custo (banda de rede) baixo. O CSS no modo Linking cria outro arquivo, independente, só para as regras de estilo, realmente representa uma ruptura no ato de criar páginas. E uma enorme facilidade quando se deseja alterar a aparência dos sites. Há duas grandes vantagens em usá-lo: • separação entre formatação e conteúdo com consequente facilidade para atualização do site; e Página 27 de 49 www.handbookdeti.com.br Handbook de Questões de TI Comentadas para Concursos • Volume questões de TI diminuição drástica no tamanho do código de cada página. Como pode ser observado em uma das suas vantagens, a utilização do CSS externo melhora o desempenho ao carregar uma página porque o tamanho dos arquivos diminui, acelerando o carregamento das páginas. O browser utiliza o cache para carregar o mesmo CSS compartilhado por diversos arquivos, semelhante ao o que ocorre com imagens e arquivos Javascript externos. Item IV ERRADA A Web 2.0 é um conjunto de sites e serviços on-line bastante diferentes dos tradicionais, pois as páginas são mais interativas e os dados do usuário cam todos na rede. O termo Web 2.0 é usado para descrever uma nova fase da rede mundial (Internet), em que os produtores de software dispõem das ferramentas para criar sítios Web que têm a mesma aparência e o mesmo comportamento dos programas que tradicionalmente corriam nos computadores pessoais. A própria Web passou a ser a plataforma que oferece os serviços e os programas. De outra maneira, a Web 2.0 pode ser melhor denida como sendo uma nova forma de utilização dos recursos fornecidos pela Web na administração (envio e recebimento) de dados e não novos padrões e recomendações do W3C (World Wide Web Consortium). Portanto, a resposta correta é alternativa C. Página 28 de 49 www.handbookdeti.com.br Handbook de Questões de TI Comentadas para Concursos 11. Volume questões de TI Assuntos relacionados: XML, Banca: CESGRANRIO Instituição: Petrobras Cargo: Analista de Sistemas - Eng. de Software Ano: 2008 Questão: 31 Um tag XML válido do ponto de vista sintático é (a). <nome do cliente>Carlos da Silva</nome do cliente> (b). <_endereco tipo=residencial>Rua das Flores, 1234</_endereco> (c). <telefone numero=12345678 /> (d). <*preferencial* /> (e). <prossão>Professor</prossão> Solução: XML é o acrônimo para Extensible Markup Language. Assim como o HTML (HyperText Markup Language), o XML é derivado do padrão ISO 8879, mais conhecido como SGML (Standard Generalized Markup Language). A grande diferença entre HTML e XML é que o HTML dene a apresentação dos dados, enquanto o XML dene a estruturação dos dados e o que eles representam. Em outras palavras, o XML é utilizado para descrever o conteúdo do documento. Assim como o HTML, o XML faz uso de tags (palavras encapsuladas por sinais '<' e '>') e atributos (denidos com name=value). No HTML, as tags e atributos especicam têm funções denidas. A tag <b>, por exemplo, indica que texto deverá ser exibido em negrito, enquanto a tag <i> indica que o texto deve ser exibido em itálico. Já no XML, as tags são utilizadas apenas para delimitar os trechos de dados. Ou seja, uma tag <p>, que no HTML indicaria um parágrafo, no XML pode indicar um preço, um parâmetro, uma pessoa ou qualquer outra informação. Outro ponto fundamental na diferença entre o HTML e o XML é que no HTML existe um conjunto nito de tags, enquanto no XML, o conjunto de tags utilizadas em um documento pode ser denido pelo próprio usuário da linguagem, devendo as tags obedecerem um conjunto de regras de nomenclatura. Na especicação formal do XML, as regras de nomenclatura são denidas em termos utilizando a notação EBNF (Extended Backus-Naur Form). A seção 2.3 da especicação do XML, disponível em http://www.w3.org/TR/2006/REC-xml11-20060816/, apresenta em detalhe as regras de sintaxe. Algumas das regras mais importantes são as seguintes: • os nomes dos elementos podem conter letras, números e outros caracteres; • os nomes dos elementos não podem começar com números ou caracteres de pontuação; • os nomes dos elementos não podem começar com as sequências xml, XML, Xml e outras análogas; • os nomes dos elementos não podem conter espaços. Pelo o exposto, a alternativa (A) é inválida, pois o nome do elemento possui espaços. A alternativa (C) também apresenta uma sintaxe inválida, pois o valor do atributo numero não foi colocado entre aspas, que são necessárias nesse caso. Página 29 de 49 www.handbookdeti.com.br A alternativa (D), por sua Handbook de Questões de TI Comentadas para Concursos Volume questões de TI vez, é incorreta, pois começa com o caractere *, considerado inválido em qualquer posição em nome de tag. A alternativa (E) também é inválida, pois o nome do elemento está no formato HTML encoded. O nome deveria ser simplesmente <prossão>, sem a necessidade de substituir o ã pela sequência ã. A única alternativa correta é, portanto, a letra (B). Página 30 de 49 www.handbookdeti.com.br Handbook de Questões de TI Comentadas para Concursos 12. Volume questões de TI Assuntos relacionados: XML, CSS, HTTP, Banca: CESGRANRIO Instituição: Petrobras Cargo: Analista de Sistemas - Eng. de Software Ano: 2008 Questão: 32 Analise as armativas a seguir, sobre CSS (Cascading Style Sheets). I Uma folha de estilo CSS é um documento XML, em conformidade com o esquema XML xsd:css mantido pelo consórcio W3C, o que constitui uma barreira inicial de adoção para organizações onde o layout e a programação visual dos sites e portais são mantidas por prossionais de criação ao invés de desenvolvedores. II O uso de folhas de estilo CSS externas, em alternativa à marcação com atributos nos tags HTML e XHTML, proporciona uma redução signicativa da exigência de banda, melhorando a experiência do usuário e demandando menos recursos dos servidores do site. III É possível especicar folhas de estilos diferentes para diferentes mídias em que a página será utilizada, o que permite, por exemplo, que uma mesma página se apresente de forma diferente quando visualizada no browser e impressa. IV O termo Cascading, que, em Português, pode ser traduzido como Em Cascata, reete o fato de que, durante a aplicação de estilos a um documento, os tags que satisfazem a mais de um seletor receberão apenas os atributos de estilo do seletor especicado por último, ignorando todos os atributos de seletores anteriores. Estão corretas APENAS as armativas (a). I e II (b). I e III (c). II e III (d). II e IV (e). III e IV Solução: O CSS é uma linguagem utilizada para descrever a apresentação (aparência e formatação) de um documento escrito em linguagens de marcação. O CSS é comumente utilizado para estilizar páginas Web escritas em HTML, mas ele pode ser utilizado para formatar qualquer tipo de documento XML. O CSS foi primariamente desenvolvido para permitir a separação entre o conteúdo e elementos de apresentação de um documento, como cores, fontes e layouts. Essa separação permite, por exemplo: • aumentar a acessibilidade do conteúdo, a medida que permite a elaboração de documentos de melhor apresentação; • prover maior exibilidade e controle na especicação dos características da apresentação do conteúdo; • reduzir a complexidade e a repetição do conteúdo estrutural da página, permitindo o chamado • tableless web design ; reutilizar o código de apresentação, uma vez que vários documentos podem compartilhar as denições feitas em um único CSS. Página 31 de 49 www.handbookdeti.com.br Handbook de Questões de TI Comentadas para Concursos Volume questões de TI Em resumo, pode-se dizer que, ao separar o conteúdo da apresentação, o CSS simplica a editoração e a manutenção de sites Web. Notoriamente, essa separação também permite que a apresentação do site seja denida por designers (prossionais de criação), que podem trabalhar em paralelo aos desenvolvedores. Desprende-se disso que a armativa I é incorreta. O CSS permite também que um mesmo documento seja apresentado em diferentes estilos de acordo com o método de renderização utilizado. Nesse contexto, o método de renderização é basicamente denido de acordo com o dispositivo em que o documento será apresentado, que pode ser uma tela de computador (on-screen ), em uma impressora (in-print ) e até mesmo em um dispositivo Braille. Essa exibilidade do CSS tem ganhado enorme importância a medida que os dispositivos como hand-helds e celulares tem sido cada vez mais utilizados para acesso a Internet. Portanto, a alternativa III está correta. A utilização de arquivos CSS também pode contribuir para à economia de banda, a medida que os arquivos CSS podem ser armazenados no cache dos browsers. Ao serem armazenados em cache, a quantidade de requisições HTTP necessárias nas próximas vezes em que o site for acessado será menor. Em alguns casos, pode-se utilizar também o código CSS inline, ou seja, dentro da própria página HTML, de modo que não seja necessária uma requisição HTTP adicional para obter um arquivo CSS externo. Essa técnica é especialmente para diminuir o tempo de resposta de páginas que são acessadas uma vez (ou muito poucas vezes) dentro de uma sessão. Exemplos típicos de páginas com essa característica são as páginas iniciais de sites como Yahoo! e Google. Com isso, a alternativa II está correta. O endereço http://developer.yahoo.com/performance/rules.html apresenta essas e mais algumas dicas para aumentar o desempenho de aplicações web. A alternativa IV refere-se ao efeito cascata do CSS, que pode ser denido como um conjunto de regras de prioridade para aplicação da regra de estilo aos elementos do documento. Para determinar a prioridade são considerados diversos fatores, como o tipo de folha de estilo, o local físico da folha de estilo no seu todo, o local físico da regra de estilo na folha de estilo e a especicidade da regra de estilo. A ordem crescente de prioridade para o efeito cascata é: 1 folha de estilo padrão do navegador do usuário; 2 folha de estilo do usuário; 3 folha de estilo do desenvolvedor: 3.1 estilo externo (importado ou linkado); 3.2 estilo incorporado (denido na seção head do documento); 3.3 estilo inline (dentro de um elemento HTML). 4 declarações do desenvolvedor com !important; 5 declarações do usuário com !important. Assim, uma declaração de estilo com !important denido pelo usuário prevalece sobre todas as demais, pois é a de mais alta prioridade. Entre as folhas de estilo denidas pelo desenvolvedor do site, os estilos inline (dentro de um elemento HTML) tem a prioridade mais elevada, isto é, prevalecerá sobre a folha de estilo denida na seção head, e, esta prevalecerá sobre uma folha de estilo externa. Portanto, a alternativa IV é errada pois dene de forma errada as regras de priorização do CSS. Página 32 de 49 www.handbookdeti.com.br Handbook de Questões de TI Comentadas para Concursos 13. Volume questões de TI Assuntos relacionados: Web Services, Interoperabilidade entre Aplicações, Banca: CESGRANRIO Instituição: Petrobras Cargo: Analista de Sistemas - Eng. de Software Ano: 2008 Questão: 46 A interoperabilidade entre aplicações nos dias atuais é fortemente baseada no uso de web services. Duas abordagens arquiteturais distintas para o projeto e implementação de web services têm-se rmado no cenário de tecnologia. São elas: (a). REST e WS-* (b). SOAP e WSDL (c). RPC e RMI (d). SGML e HTML (e). B2B e B2C Solução: Web service é tecnologia que possibilita aplicações interagirem umas com as outras de forma independente de plataforma operacional e linguagem de programação utilizadas. Os Web services são componentes que permitem às aplicações enviarem e receberem mensagens formatadas em XML. Apesar de não ser obrigatório, geralmente o HTTP é escolhido como mecanismo de transporte dessas mensagens. (A) CORRETA O termo REST se refere a um conjunto de princípios de arquitetura para web services. Um conceito importante em REST é a existência de recursos (elementos de informação), que são individualmente identicados por URIs (Identicadores Uniforme de Recurso). De acordo com essa arquitetura, diferentes componentes da rede (clientes e servidores) devem utilizar os métodos do HTTP (por exemplo, POST, GET, PUT e DELETE) para trocarem representações dos recursos existentes (os arquivos ou cheiros são recebidos e enviados). Algumas especicações vêm sendo desenvolvidas, principalmente pela W3C, para estender as funcionalidades dos web services. Essas especicações são chamadas de WS-*. Algumas das especicações mais importantes são: WS-Security, WS-Addressing, WS-Reliability e WS-Transaction. Tendo em vista o exposto, é possível concluir que REST e WS-* são duas abordagens arquiteturais distintas que podem ser adotadas em projetos e desenvolvimentos de web services. (B) ERRADA SOAP (Simple Object Access Protocol) é um protocolo que dene, por meio de um conjunto de tags XML, o formato das estruturas das mensagens trocadas entre aplicações. Dois dos grandes benefícios do SOAP são: padrão aberto adotado pela maioria das grandes empresas de hardware e software; e construído sobre padrões também abertos como HTTP e XML. Web Services Denition Language (WSDL) é uma linguagem baseada em XML utilizada Página 33 de 49 www.handbookdeti.com.br Handbook de Questões de TI Comentadas para Concursos Volume questões de TI para descrever web services. Trata-se de um documento escrito em XML que além de descrever o serviço, especica como acessá-lo e quais as operações ou métodos disponíveis. Como SOAP é um protocolo e WSDL uma linguagem de denição, é incorreto dizer que eles são abordagens arquiteturais para projeto e implementação de web services. (C) ERRADA O RPC (Remote Procedure Call) dene um protocolo para execução remota de procedimentos em computadores ligados em rede. Esse protocolo pode ser utilizado com diferentes protocolos de transporte, tais como UDP e TCP. Antes de ser enviada pela rede, uma RPC emitida pela aplicação cliente é encapsulada segundo o padrão SOAP. O serviço remoto, ao receber a mensagem, faz o processo reverso, desencapsulando a mensagem e extraindo a chamada. A aplicação servidora, então, processa essa chamada e envia sua resposta à aplicação cliente. Essa mensagem de resposta também é enviada de forma encapsulada segundo o padrão SOAP. Na máquina cliente, a resposta é desencapsulada e repassada para a aplicação cliente. O RMI (Remote Method Invocation) é uma interface de programação que permite a execução de chamadas remotas no estilo RPC em aplicações desenvolvidas em Java. A API RMI provê ferramentas para que seja possível ao programador desenvolver uma aplicação sem se preocupar com detalhes de comunicação entre os diversos possíveis elementos (hosts) de um sistema. Apesar dos conceitos RPC e RMI se relacionarem com web service, é totalmente errôneo dizer que eles são abordagens arquiteturais para projeto e implementação de web services. (D) ERRADA SGML é um acrônimo para Standard Generalized Markup Language que foi denido pela norma ISO 8879:1986 Information processingText and oce systems. Ela é uma metalinguagem que pode ser utilizada para denir linguagens de marcação para documentos. SGML é uma descendente da GML (Generalized Markup Language) da IBM. Duas importantes linguagens derivadas da SGML são HTML (HyperText Markup Language) e XML (eXtensible Markup Language). HTML (Linguagem de Marcação de Hipertexto) é uma linguagem fundamentalmente baseada nos padrões HyTime e SGML. O HyTime (Hypermedia/Time-based Document Structuring Language - ISO 10744:1992) é um padrão para representação estruturada de hipermídia e informação baseada em tempo. De acordo com essa padrão, um documento é visto como um conjunto de eventos concorrentes dependentes de tempo (áudio, vídeo, etc.), conectados por webs ou hiperlinks. Por se tratarem de linguagens de marcação, não faz sentido nenhum dizer que SGML e HTML são abordagens arquiteturais para projeto e implementação de web services. (E) ERRADA B2B e B2C são duas das diversas siglas relacionadas ao e-commerce e ao e-business. Portanto, nada têm a ver com abordagens arquiteturais. As principais siglas são: Página 34 de 49 www.handbookdeti.com.br Handbook de Questões de TI Comentadas para Concursos Volume questões de TI • B2B (Business to Business) - são transações de comércio entre empresas; • B2C (Business to Consumer) - são transações de comércio entre empresa e consumidor. Um exemplo bem conhecido é o website Amazon; • C2C (Consumer to Consumer) - este é o comércio entre consumidores. Bons exemplos desse tipo de transação são os sites de leilão; • B2G (Business to Governement) - são as transações entre empresa e governo. O exemplo mais comum de B2G são as licitações online; • B2E (Business-to-Employee) - normalmente relacionado aos portais (intranets) que atendem aos funcionários. Tem por objetivo ser uma área central de relacionamento com a empresa. Através dele os funcionários podem, por exemplo, pedir material para sua área, gerir todos os seus benefício ou até utilizar processos de gestão dos funcionários (faltas, avaliações, inscrições em treinamentos, etc.). Página 35 de 49 www.handbookdeti.com.br Handbook de Questões de TI Comentadas para Concursos 14. Volume questões de TI Assuntos relacionados: XML, DTD, Banca: Cesgranrio Instituição: BR Distribuidora Cargo: Analista de Sistemas - Desenvolvimento Ano: 2008 Questão: 51 Uma das vantagens da linguagem XML Schema em relação à linguagem DTD é que a primeira apresenta (a). suporte à validação de documentos XML com elementos multivalorados. (b). suporte à validação de documentos XML que não são bem formados. (c). uso das mesmas regras de sintaxe de documentos XML comuns. (d). integração nativa com as APIs SAX e DOM de Java. (e). exibilidade de ser denida em um arquivo diferente do documento XML que valida. Solução: Vamos comentar desde o início para uma resolução consciente desta questão. Extensible Markup Language (XML) é uma linguagem de marcação para descrever de forma estruturada os dados de páginas Web. O XML é um dos padrões adotados pelo W3C (World Wide Web Consortium) e foi projetado para descrever o conteúdo de uma página Web, ao invés da sua formatação. O XML é derivado da linguagem SGML (Standard Generalized Markup Language), que é um padrão internacional para denição de formatos de representação de documentos. O SGML é muito mais complexo em comparação ao XML. DTD (Document Type Denition) é um conjunto de regras que denem as tags e seus possíveis valores válidos que podem ser utilizados em documentos da família SGML (SGML, XML, HTML). O DTD possui muitas limitações, algumas delas são: não existe um conjunto amplo de tipos; todos os dados são interpretados como texto, o que traz algumas diculdades como validação e comparação de dados; espaços não são suportados em nomes; e os elementos necessariamente devem aparecer na ordem especicada. Logo abaixo um exemplo de XML DTD muito simples. <!ELEMENT <!ELEMENT <!ELEMENT <!ELEMENT <!ELEMENT <!ELEMENT people_list (person*)> person (name, birthdate?, gender?, socialsecuritynumber?)> name (#PCDATA)> birthdate (#PCDATA)> gender (#PCDATA)> socialsecuritynumber (#PCDATA)> Um exemplo de XML que utiliza, de forma um tanto quanto intuitiva, o XML DTD exposto acima é apresentado a seguir. <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE people_list SYSTEM "example.dtd"> <people_list> <person> <name>Fred Bloggs</name> Página 36 de 49 www.handbookdeti.com.br Handbook de Questões de TI Comentadas para Concursos Volume questões de TI <birthdate>27/11/2008</birthdate> <gender>Male</gender> </person> </people_list> Antes do surgimento do XML Schema, era o DTD o recurso padrão para validar documentos do tipo XML. Em 2001, quando o W3C passou a recomendar o XML Schema, foi que este passou a substituir de forma mais abrangente o DTD. XML Schema é uma linguagem, com o mesmo propósito do DTD, baseada no próprio XML. Ou seja, ela permite criar regras utilizando o XML para validação de documentos XML. Os documentos que contêm regras XML Schema são chamados de XSD (XML Schema Denition). A seguir, um XML Schema bem simples, como exemplo. <?xml version="1.0"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.w3schools.com" xmlns="http://www.w3schools.com" elementFormDefault="qualified"> <xs:element name="note"> <xs:complexType> <xs:sequence> <xs:element name="to" type="xs:string"/> <xs:element name="from" type="xs:string"/> <xs:element name="heading" type="xs:string"/> <xs:element name="body" type="xs:string"/> </xs:sequence> </xs:complexType> </xs:element> </xs:schema> Agora um exemplo de XML que utiliza as regras criadas no XML Schema apresentado anteriormente. <?xml version="1.0"> <note> <to>Tove</to> <from>Jani</from> <heading>Reminder<heading> <body>Don't forget me this weekend!</body> </note> Agora sim vamos às alternativas. (A) ERRADA Como tanto DTD quanto XML Schema dão suporte à validação de documentos XML com elementos multivalorados, esta alternativa não deve ser marcada. Página 37 de 49 www.handbookdeti.com.br Handbook de Questões de TI Comentadas para Concursos Volume questões de TI (B) ERRADA Nenhuma das duas tecnologias validam documentos XML que não sejam bem formados. Inclusive, elas foram criadas fundamentalmente para este m. Por isso, esta alternativa também está errada. (C) CORRETA Esta é a alternativa correta. Vimos no comentário acima que documentos XML Schema seguem a mesma sintaxe dos documentos XML comuns. (D) ERRADA XML não está atrelado diretamente a Java, portanto, esta alternativa não faz nenhum sentido. (E) ERRADA Tanto os DTDs quanto os esquemas XML podem ser denidos em arquivos próprios, ou seja, fora dos documentos XML. Quando se escolhe a implementação nesse estilo, há no documento XML uma referência ao arquivo DTD ou XML Schema que o valida. Como a exibilidade mencionada nesta alternativa é comum as duas tecnologias em questão, esta alternativa está errada. Página 38 de 49 www.handbookdeti.com.br Handbook de Questões de TI Comentadas para Concursos 15. Volume questões de TI Assuntos relacionados: Desenvolvimento Web, HTML, DTD, XSLT, XML, Banca: Cesgranrio Instituição: Petrobras Cargo: Analista de Sistemas Pleno - Processos Ano: 2006 Questão: 27 Para os recursos utilizados no desenvolvimento de aplicações Web, assinale a opção FALSA. (a). O atributo accesskey da tag INPUT pode ser utilizado na HTML 4.0 para acrescentar um atalho de teclado a um elemento de formulário. (b). A instrução <META HTTP-EQUIV=Refresh Content=10; URL=page2.html> na seção HEAD de uma página em HTML 4.0 faz com que a página page2.html seja exibida automaticamente após 10 segundos de apresentação da página atual. (c). A declaração ENTITY em um DTD pode ser utilizada para declarar um conteúdo reutilizável e a declaração ELEMENT, para declarar um tipo de elemento XML. (d). Em um documento XSLT 2.0 padrão, o elemento <xls:insert> permite inserir uma folha de estilo externa onde <xls:insert> está localizado e <xls:primarykey> permite remover, da árvore do documento que está sendo transformado, nós de texto que consistem apenas de espaço em branco ou estão repetidos. (e). Se for declarado um atributo do tipo ID em um DTD, um parser de validação, ao analisar um documento utilizando este DTD, poderá reportar um erro se dois ou mais elementos no mesmo documento apresentarem o mesmo valor para este atributo. Solução: Com a evolução e a disseminação da Internet, aplicações direcionadas para a Web têm se tornado cada vez mais comuns. Atualmente, as empresas investem muito em aplicações corporativas deste tipo como: • Intranets; • Extranets; • Portais de e-commerce; • Portais B2B (Business • Portais B2C to Business ); (Business to Customer ). Aplicação Web é o termo utilizado para designar sistemas projetados para utilização através de um Browser. Trata-se de um conjunto de programas que é executado em um servidor de HTTP (Web Host). O desenvolvimento da tecnologia Web está relacionado, entre outros fatores, à necessidade de simplicar a atualização e manutenção mantendo o código-fonte em um mesmo local, de onde ele é acessado pelos diferentes usuários. Abordaremos cada alternativa a m de resolvermos a presente questão. (A) ERRADA O atributo accesskey associa um elemento do documento HTML a uma tecla de acesso. A tecla de acesso nada mais é que um caractere único disponível no teclado que é acessado pela tecla Alt + o caractere associado. Apresentamos, abaixo, um exemplo da sua aplicação em um campo de formulário. Página 39 de 49 www.handbookdeti.com.br Handbook de Questões de TI Comentadas para Concursos Volume questões de TI <input type="text"' name="nome" id="nome" accesskey="n"/> Analisando a formação do atributo (accesskey) e seu modo de aplicação, concluímos que teremos acesso ao campo intitulado como nome através da tecla n, ou seja, se o usuário teclar Alt + n terá acesso ao campo de formulário (nome). Trata-se, portanto, de um recurso extremamente útil para os usuários que portam alguma diculdade (por exemplo, impossibilidade de usar o mouse). (B) ERRADA Os meta elementos são usados em diversas ocasiões, sendo empregados para passar ao browser informações acerca do conteúdo, do autor, das descrições, etc., assim como controlar o uxo de informação e indexação das search engines. Abaixo, apresentamos alguns exemplos do uso do recurso meta refresh. Meta refresh é um método que instrui o Browser a renovar (Refresh ) automaticamente a página corrente da Web após um dado intervalo de tempo, usando, para tanto, um meta elemento do HTML com o parâmetro http-equiv setado para renovar (Refresh ) e um parâmetro Content com o intervalo de tempo em segundos. Também é possível instruir o Browser a buscar uma URL diferente quando a página é renovada, bastando incluir uma URL alternativa no parâmetro Content. <html> <head> <title>Handbook de TI</title> <meta http-equiv="Refresh" Content="60" /> </head> <body> </body> </html> No exemplo acima, o elemento meta indica ao Browser que a página em questão deve ser atualizada de 60 em 60 segundos. <html> <head> <title>Handbook de TI</title> <meta http-equiv="Refresh" Content="10;URL: www.handbookdeti.com.br " /> </head> <body> </body> </html> Ao entrar na página acima, o cliente é redirecionando dentro de 3 segundos para o endereço www.handbookdeti.com.br. (C) ERRADA Os DTDs (Document Type Denition Denição de Tipo de Documento) denem a estru- tura de um documento, onde são especicados quais os elementos e atributos são permitidos Página 40 de 49 www.handbookdeti.com.br Handbook de Questões de TI Comentadas para Concursos Volume questões de TI no documento, ou seja, dene um conjunto de regras. Estas regras serão utilizadas para que o analisador sintático verique se o documento está correto ou não (embora não seja necessário que um documento XML tenha um DTD correspondente, recomenda-se a utilização de DTDs para garantir a conformidade do documento). Como podemos ver a seguir, após a marcação <!ELEMENT aparece o nome do elemento seguido por seu modelo de conteúdo, e em seguida o sinal >. O modelo de conteúdo relaciona os lhos que podem ser aceitos no elemento. <!-- Os 4 sub-elementos são obrigatórios para tag cliente --> <!ELEMENT cliente (nome, CNPJ, inscrição, endereço)> <!-- fax e email são opcionais --> <!ELEMENT cliente (nome, fax?, email?)> <!-- Tag sorvete deve conter apenas um dos elementos --> <!ELEMENT sorvete (morango | limão | uva | chocolate)> <!-- Elemento empresa é vazio (provavelmente será utilizado com atributos apenas) --> <!ELEMENT empresa EMPTY> <!-- Elemento eletrônicos pode conter qualquer tipo de sub-elemento --> <!ELEMENT eletronicos ANY> Já as entidades podem ser usadas para representar caracteres especiais, sendo também usadas para referenciar um texto freqüentemente repetido ou alterado, isto é, permitem associar nomes com outros fragmentos do documento (textos, parte do DTD, arquivo externo). Elas podem ser dos seguintes tipos: • internas: podem incluir referências para outras entidades, mas não podem ser recur- sivas; • externas: a referência à entidade causa a inserção do arquivo indicado (arquivo .xml, por exemplo). Entidades externas podem ser texto ou binárias; • parametrizadas: podem ocorrer apenas dentro do DTD, sendo identicadas por <%> antes do seu nome. Funcionam como macros, sendo imediatamente expandidas na DTD. <!--Este é um exemplo de entidade interna. --> <!--Ao se utilizar a expressão &autora em um XML ela --> <!--será substituída automaticamente por "James Concurseiro" --> <!ENTITY autora "James Concurseiro"> <!-- Este é um exemplo de entidade externa. Quando houver &vol7 no XML ela --> <!-- será substituída por todo conteúdo de Volume7.xml --> <!ENTITY vol7 SYSTEM "/HandbookdeTI/Volume7.xml"> (D) CORRETA Sabe-se que uma das principais idéias de XML é deixar explícita a separação entre conteúdo, estrutura e apresentação de um documento para Web. Assim, como o XML trata Página 41 de 49 www.handbookdeti.com.br Handbook de Questões de TI Comentadas para Concursos Volume questões de TI apenas do conteúdo dos documentos, devem existir outros padrões para descrever o formato de apresentação dos dados. Uma das formas de superar esta limitação é usar a linguagem de folhas de estilo (XSL eXtensible Stylesheet Language ), a qual foi projetada para permitir que a descrição de estilo de apresentação de documentos seja separada da representação do conteúdo dos documentos. O princípio básico desta linguagem é prover uma sintaxe que permita associar partes especícas do conteúdo de documentos a estilos ou ações que devem ser realizadas sobre tais partes. Considere o caso de um site Web composto por muitas páginas produzidas por vários autores que trabalham na mesma empresa, neste caso, é desejável ter um meio de impedir que diferentes páginas tenham uma aparência distinta. Esse problema pode ser resolvido usando-se folhas de estilo. Quando as folhas de estilo são utilizadas, as páginas individuais deixam de usar estilos físicos, como negrito e itálico, passando a utilizar os estilos lógicos denidos na folha de estilo. (podemos comparar uma folha de estilo a um arquivo #include em um programa C). A XSL se divide em três: • XSL Transformations (XSLT): uma linguagem para transformar XML; • XML Path Language (XPath): uma linguagem para acessar e referir a partes de um documento XML; • XSL Formatting Objects (XSL-FO): um vocabulário XML para especicar semântica de formatação. As três são importantes, mas aqui só falaremos de XSLT. XSLT, abreviatura de eXtensible Stylesheet Language Tansformations, é a parte do XSL usada para transformar um documento XML em outro documento XML, ou em outro tipo de documento (HTML, XHTML, etc.). O XSLT utiliza o XPath (usado para navegar através dos elementos e atributos nos documentos XML) para encontrar informações nos documentos XML. Basicamente, a XSLT dene um conjunto de regras de transformação que serão aplicadas a um documento XML para produzir outro documento. Nesse processo de transformação, o XSLT utiliza o XPath para denir partes do documento de origem (fonte) que combinem (match ) com um ou mais templates pré-denidos. Quando uma combinação é encontrada, o XSLT transforma essas partes do documento de origem no documento de resultado (obviamente, as partes do documento de origem que não são combinadas com o template permanecerão sem modicações no documento de resultado). Esta linguagem, ao transformar um documento em outro, pode adicionar ou remover elementos ou atributos, ordenar ou reestruturar elementos, realizar testes e tomar decisões sobre que elementos ocultar ou mostrar no documento de saída. Como ocorre o processo de transformação? Bom, primeiramente precisamos compor um documento XSL (arquivo .xsl) seguindo o modelo abaixo. <xsl:template match = "expressão-XPath"> [ bloco de instruções XSL] </xsl:template> O atributo match contém uma expressão XPath com os elementos da árvore fonte aos quais o template se aplica. Isto é, esta parte do template é usada para selecionar os nós que Página 42 de 49 www.handbookdeti.com.br Handbook de Questões de TI Comentadas para Concursos se pretende transformar. Volume questões de TI Já o corpo do template contém as instruções de transformação (elementos) que serão aplicadas aos nós selecionados. Após a denição do arquivo XSL é preciso associar este arquivo no documento XML. A instrução que deve ser incluída no documento XML para que o interpretador XML faça uso da folha de estilo XSL denida é a seguinte: <?xml-stylesheet type="text/xsl" href="localização do arquivo.xsl"?> Pronto, agora podemos dar início ao processo de transformação: o processador XSL posicionase na raiz da árvore do documento fonte à procura de um template que se aplique à raiz. Se o processador encontra um template que se aplica à raiz, esse template coordena toda a transformação. Como dissemos anteriormente, esta transformação é auxiliada Ainda resta a pergunta: quais os elemento de transformação que a XSLT faz uso? A tabela 1 os apresenta com uma breve descrição. O leitor poderá perceber que os elementos citados no enunciado (<xsl:insert> e <xsl:insert-key>) inexistem na tabela. Portanto, está alternativa está correta. Elemento Descrição apply-imports Aplica uma regra do template de uma folha de estilo importado apply-templates Aplica uma regra do template no elemento corrente ou nos lhos do elemento corrente attribute Adiciona um atributo attribute-set Dene um conjunto de atributos call-template Faz uma chamada a um template choose Usado em conjunto com <when> and <otherwise> para expressar múltiplos testes condicionais comment Cria um nó comentado na arvore resultante copy Cria uma copia do nó corrente (sem nos lhos e atributos) copy-of Cria uma copia do nó corrente (com nos lhos e atributos) decimal-format Dene os caracteres e símbolos a serem usados quando se converte números em strings, com a função format-number() element Cria um elemento no documento de saída fallback Especica um código alternativo para rodar se o processador não suportar um elemento XSLT for-each Comando de repetição para cada nó em um nó especicado if Contém um template que será aplicado apenas se a condição especicada for verdadeira import Importa o conteúdo de uma folha de estilo em outro. Nota: Uma folha de estilo im- portado terá prioridade inferior a da folha de estilo que a importou Página 43 de 49 www.handbookdeti.com.br Handbook de Questões de TI Comentadas para Concursos include Volume questões de TI Inclui o conteúdo de uma folha de estilo em outra. Nota: Uma folha de estilo inclusa terá a mesma prioridade da folha de estilo que a incluiu key Declara uma chave nomeada que pode ser usada na folha de estilo com a função key() message Escreve uma mensagem de saída (usado para reportar erros) namespace-alias Substitui um namespace na folha de estilo com um namespace diferente na saída number Determina a posição inteira do nó corrente e formata um número otherwise Especica uma ação default para o elemento <choose> output Dene o formato do documento de saída param Declara um parâmetro local ou global preserve-space Dene o elemento para cada espaço em branco a ser preservado processing-instruction Escreve uma instrução de processamento na saída sort Ordena a saída strip-space Dene o elemento cada espaço em branco a ser removido stylesheet Dene o elemento raiz da folha de estilo template Regras a serem aplicadas ao nó especicado text Escreve o texto literal na saída transform Dene o elemento raiz da folha de estilo value-of Extrai o valor do nó selecionado variable Declare uma variavel local or global when Especica uma ação para o elemento <choose> with-param Dene o valor de um parâmetro a ser passado no template (E) ERRADA Uma declaração de atributos especica o nome do elemento, o nome do atributo, o tipo de atributo e um valor padrão. Esta declaração pode aparecer em qualquer lugar da DTD, mas geralmente aparece logo após a declaração do elemento ao qual pertence. Os tipos de atributos são: • String: o valor de um atributo do tipo String é uma cadeia de caracteres de qualquer tamanho; • Enumerado: Cada um dos valores possíveis que o atributo pode assumir está explicitamente enumerado na declaração e o atributo pode assumir apenas um dos valores especicados na sua declaração; • ID: Os IDs identicam unicamente elementos individuais em um documento, isto é, to- veja exemplo dos os valores usados para IDs em um documento devem ser diferentes ( Página 44 de 49 www.handbookdeti.com.br Handbook de Questões de TI Comentadas para Concursos Volume questões de TI abaixo); • IDREF/ IDREFS: o valor de um atributo IDREF deve ser o valor de um único atributo ID em algum elemento no documento. Já o IDREFS pode conter valores IDREF múltiplos separados por espaços em branco; • ENTITY/ ENTITIES: o valor de um atributo ENTITY deve ser o nome de uma única entidade. Já o valor de um atributo ENTITIES pode conter valores de entidades múltiplos separados por espaços em branco. <!-- Definição do atributo Handbook ISBN --> <!ATTLIST Handbook ISBN ID> <!-- Exemplo válido de elemento produto --> < Handbook ISBN="200107"/> Página 45 de 49 www.handbookdeti.com.br Handbook de Questões de TI Comentadas para Concursos 16. Volume questões de TI Assuntos relacionados: XML, Banca: ESAF Instituição: Agência Nacional de Águas (ANA) Cargo: Analista Administrativo - Tecnologia da Informação e Comunicação / Desenvolvimento de Sistemas e Administração de Banco de Dados Ano: 2009 Questão: 24 Analise as seguintes armações a respeito do esquema conceitual XML: I. Um elemento qualquer é denido por um nome e um valor. II. Um documento XML é denido por um nome e um elemento. III. Um atributo é denido por um nome de tipo, caracteres de dados e elementos associados. Assinale a opção correta. (a). Apenas a armação I é verdadeira. (b). Apenas a armação II é verdadeira. (c). Apenas a armação III é verdadeira. (d). As armações I, II e III são corretas. (e). Nenhuma das armações é verdadeira. Solução: A XML é uma tecnologia para criar linguagens de marcação que descrevem dados de praticamente qualquer tipo de uma forma estruturada, podendo ser utilizada para a descrição de dados em quase qualquer campo. Algumas linguagens de marcação baseadas em XML são a MathML, desenvolvida pelo W3C para descrever notações e expressões matemáticas com a sintaxe XML; a Chemical Markup Language (CML), linguagem que representa informações moleculares e químicas; a Wireless Markup Language (WML), que permite que as páginas Web sejam exibidas em dispositivos sem-o, como telefones celulares e PDAs; a Geography Markup Language (GML), que descreve informações geográcas para utilização e reutilização por diferentes aplicativos para diferentes propósitos; e Scalable Vector Graphics (SVG), uma maneira de descrever dados de imagens vetoriais para utilização na Web. Os documentos XML são geralmente armazenados em arquivos de texto que terminam com a extensão .xml (embora isso não seja um requisito da XML) e devem conter apenas um elemento raiz. Este elemento pode conter outros elementos. Apesar de um documento XML estar bem denido por seu nome e por seu elemento raiz, uma declaração XML inicial na primeira linha do documento é extremamente incentivada para identicar a versão utilizada. O exemplo a seguir esclarece esses e outros conceitos: ----- Início de documento ----<?xml version = ``1.0''?> <!-- Documento: carta.xml --> <carta> <contato tipo = ``remetente''> Página 46 de 49 www.handbookdeti.com.br Handbook de Questões de TI Comentadas para Concursos Volume questões de TI <nome>Maria da Silva</name> <logradouro>Rua das Roseiras</logradouro> <cidade>Vila Nova</cidade> <cep>98765</cep> <flag sexo=''F''/> </contato> <contato tipo = ``destinatário''> <nome>Paulo Novaes</name> <logradouro>Rua Quinze</logradouro> <cidade>Corcova</cidade> <cep>12345</cep> <flag sexo=''M''/> </contato> <saudação>Prezado Senhor:</saudação> <parágrafo>Comunicamos a recebimento de sua solicitação. Na oportunidade, informamos </parágrafo> <fechamento>Atenciosamente</fechamento> <assinatura>Sra. Maria da Silva</assinatura> </carta> ----- Final de documento ----Observa-se que o documento carta.xml inicia-se com uma declaração que indica a versão da XML adotada. A linha seguinte exibe um comentário delimitado por <! e >, aos moldes da HTML. O elemento raiz <carta> possui elementos lhos, devidamente aninhados, que denem a estrutura do documento. O texto com marcação (os elementos) está contido entre os sinais menor e maior (< e >), sendo que o texto entre uma marca de abertura e uma marca de nalização são considerados dados de caracteres. Evidentemente, os elementos lhos são considerados marcações, e não dados de caracteres. Todas as marcas de abertura de XML devem ter uma marca correspondente de nalização (identicada por </), e todas as marcas de abertura e de nalização devem estar corretamente aninhadas. Com a XML diferencia letras maiúscula de minúsculas, as marcas de abertura e de nalização devem ter as letras maiúsculas e minúsculas correspondentes. Desta forma, o elemento <carta> possui um correspondente </carta>. Quando o elemento não possui conteúdo, pode ser fechado na própria marcação de abertura, como é o caso de <ag sexo=F/>. Além de conteúdo (dados de caracteres) e de elementos lhos, um elemento pode possuir atributos que o descrevam. Os atributos são aninhados dentro da marca de abertura do elemento e seus valores são colocados entre aspas ou apóstrofes. Assim, o elemento <contato tipo = remetente> possui o atributo tipo cujo valor é remetente. Dito isso, percebe-se que a armativa I da questão encontra-se em desacordo com a teoria, pois um elemento é denido por uma marcação (que pode ser considerada o seu nome), mas, não obrigatoriamente deve possuir um valor em termos de atributos e elementos lhos. Semelhantemente, os atributos são denidos por um nome e um valor, porém não Página 47 de 49 www.handbookdeti.com.br Handbook de Questões de TI Comentadas para Concursos Volume questões de TI possuem elementos associados, o que invalida a armativa III. A armativa II está correta, pois um documento XML é denido por um nome e por seu elemento raiz. Desta forma, a resposta para a questão é o item b). Página 48 de 49 www.handbookdeti.com.br Handbook de Questões de TI Comentadas para Concursos Questão 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 Página 49 de 49 Volume questões de TI Resposta B E E C A D A D E C B C A C D B Handbook de TI Além do Gabarito Índice Remissivo .NET, 6 Acessibilidade de Aplicações Web, 21 ASCII, 10 ATOM, 24, 26 Content Management System (CMS), 4 Cookies, 16 CSS, 26, 31 Desenvolvimento Web, 21, 39 DTD, 36, 39 External Data Representation (XDR), 10 HTML, 10, 39 HTTP, 16, 31 HTTPS, 16, 26 Interoperabilidade entre Aplicações, 33 J2EE, 6 Java, 8 JavaServer Pages (JSP), 8 JEE, 6 Linguagens de Programação, 8 Multipurpose Internet Mail Extensions (MIME), 10 MVC, 6 Padrões W3C, 14, 19, 21 Protocolos de Redes, 16 RSS, 24, 26 Servidor de Aplicações, 6 Variáveis de Sessão, 16 Web 2.0, 26 Web Services, 14, 19, 33 Websites, 4 XML, 29, 31, 36, 39, 46 XSLT, 39 50