Prévia do material em texto
*************************************************************************** Considere que você é um desenvolvedor de software em uma empresa de tecnologia que se especializa em soluções IoT. Sua empresa foi contratada para desenvolver um sistema de controle de iluminação residencial inteligente que será integrado a um aplicativo de smartphone. Esse sistema permitirá que os usuários controlem as luzes de sua casa remotamente, programem horários para as luzes ligarem e desligarem automaticamente, e até ajustem a intensidade da iluminação. Agora, considerando a situação e os conhecimentos sobre IoT, é correto afirmar que a abordagem correta para implementar esse sistema de acordo com os princípios da IoT seria: A) desenvolver um aplicativo de smartphone que envie comandos SMS para um controlador centralizado que, por sua vez, controla as lâmpadas. B) instalar câmeras em cada sala para detectar quando as luzes precisam ser acesas ou apagadas, e transmitir essas informações para um servidor central. C) desenvolver um aplicativo de smartphone que se conecte diretamente às lâmpadas da casa, usando a tecnologia Bluetooth para controle e ajustes. D) conectar todas as lâmpadas a um único dispositivo IoT central, que é controlado por um aplicativo de smartphone. E) incorporar em cada lâmpada um sensor IoT que se conecta à rede Wi-Fi doméstica, e 👍se comunica com um servidor centralizado. >> *************************************************************************** Os Web Services têm sido fundamentais para integrar aplicações, mesmo que desenvolvidas com tecnologias incompatíveis. Eles possibilitam a comunicação entre as aplicações através da utilização de uma linguagem universal e podem assumir múltiplos papéis durante esse processo de interação. Considerando o texto apresentado, avalie as asserções a seguir e a relação proposta entre elas. I. Um Web Service agindo como Provedor de Serviço, publica suas capacidades e aguarda passivamente que outros Web Services o contatem para usar seus serviços, sem a necessidade de solicitar serviços de outros. PORQUE II. Um Web Service pode ser um Provedor de Serviços, fornecendo uma interface pública de seus serviços, ao mesmo tempo em que pode solicitar um serviço de outro Web Service, atuar como intermediário ao encaminhar uma solicitação para outro Web Service ou iniciar uma transmissão de mensagem como Remetente Inicial. A respeito dessas asserções, assinale a opção correta. A) A asserção I é uma proposição verdadeira, e a II é uma proposição falsa. B) A asserção I é uma proposição falsa, e a II é uma proposição verdadeira. >> C) As asserções I e II são proposições verdadeiras, e a II é uma justificativa correta da I. D) As asserções I e II são proposições falsas. E) As asserções I e II são proposições verdadeiras, mas a II não é uma justificativa correta da I. *************************************************************************** No contexto de web services, os documentos de definição de serviço têm um papel crucial na descrição e implementação do serviço oferecido por um web service. Esses documentos atuam como blocos de construção para realizar a descrição de um serviço. Considerando o texto apresentado, avalie as afirmações a seguir: I - A definição do serviço é dada por um documento WSDL que possui as definições da interface (Abstrato) e da implementação (Concreto). II - O documento Concreto representa a localização e a informação sobre a implementação de um web service. III - O documento de Abstração representa a localização e a informação detalhada da implementação de um web service. IV - A descrição do serviço é dada por um arquivo principal o WSDL que é responsável pela definição do serviço como um todo. É correto o que se afirma em: A) II, III e IV, apenas. B) III e IV, apenas. C) I e II, apenas. 👍D) I, II e IV, apenas. >> E) I e III, apenas. *************************************************************************** A computação em nuvem é um paradigma que fornece acesso on-demand a um conjunto compartilhado de recursos de computação configuráveis, que podem ser provisionados rapidamente com o mínimo de esforço de gerenciamento. A computação em nuvem pode ser dividida em três categorias principais: Infraestrutura como serviço (IaaS), Plataforma como serviço (PaaS) e Software como serviço (SaaS). A seguir, considere a seguinte situação: Você é um arquiteto de software trabalhando em uma startup que desenvolve um aplicativo para rastrear a saúde e a nutrição. Seu aplicativo precisa ser acessível em várias plataformas, incluindo smartphones, tablets e computadores. Além disso, seu aplicativo precisa ter a capacidade de escalar rapidamente em resposta a mudanças na demanda dos usuários. Considerando o texto apresentado e levando em conta as características e necessidades do seu aplicativo, qual dos seguintes serviços de computação em nuvem seria o mais adequado para a sua aplicação? A) PaaS, porque oferece uma plataforma de desenvolvimento com todos os recursos 👍necessários para criar o software e escalar conforme a demanda. >> B) PaaS, porque oferece controle total sobre os sistemas operacionais, armazenamento e aplicativos implantados. C) IaaS, porque oferece controle total sobre os sistemas operacionais, armazenamento e aplicativos implantados. D) IaaS, porque fornece software específico como um serviço que pode ser acessado de qualquer equipamento. E) SaaS, porque fornece software específico como um serviço que pode ser acessado de qualquer equipamento. *************************************************************************** A MapReduce é um modelo de programação que inclui diversas ferramentas, como a API e os frameworks, as quais o implementam. O Spark é um famoso framework que é capaz de executar as funções de Map e Reduce. Nesse sentido, considere a seguinte situação: Uma start-up está planejando implementar uma solução para processamento de big data. A equipe de engenharia de dados avalia várias opções e decide usar o Apache Spark para realizar as operações de Map e Reduce por causa de suas vantagens declaradas, como programação estendida, alto desempenho e a capacidade de programar em várias linguagens. Dado o cenário acima, o procedimento adequado para a equipe de engenharia de dados implementar o Apache Spark em sua solução de processamento de big data seria: A) implementar o Spark ao lado do Hadoop, aproveitando as capacidades de processamento distribuído do Spark e o sistema de arquivos distribuídos do Hadoop. >> B) usar o Spark para processar dados em tempo real, enquanto o Hadoop deve ser usado para processar dados históricos. C) escrever todas as funções Map e Reduce exclusivamente em Python, pois é a linguagem mais eficiente para o Spark. D) usar o Spark para realizar na função Map, e o Hadoop para realizar a função Reduce. E) usar o Spark para implementar todas as funcionalidades de sua solução de big data, substituindo completamente outras soluções de processamento de dados. *************************************************************************** Em um cenário onde uma empresa busca a criação de um novo software, capaz de lidar com grandes volumes de dados e com acesso tanto por dispositivos móveis quanto por desktops, o planejamento e compreensão da arquitetura de software é uma etapa crucial. Este planejamento é importante não apenas para estabelecer uma estrutura organizada do software, mas também para selecionar os frameworks e tecnologias a serem usados no desenvolvimento. Considerando o texto apresentado, assinale a alternativa que exemplifica corretamente a importância e a relevância do estudo da arquitetura de software: A) A arquitetura de software é irrelevante no desempenho do software, pois o desempenho depende principalmente da habilidade do programador. B) A arquitetura de software fornece um modelo, estilo e padrão parao desenvolvimento de software, facilitando a compreensão do software e possibilitando uma construção mais 👍organizada e estruturada. >> C) A arquitetura de software é irrelevante para sistemas distribuídos, pois esses sistemas são inerentemente complexos e requerem foco principalmente nas tecnologias e frameworks de desenvolvimento. D) A arquitetura de software é importante principalmente para softwares de pequeno porte, pois softwares maiores são menos dependentes de uma estrutura organizada. E) O estudo da arquitetura de software permite principalmente a escolha de uma linguagem de programação adequada para o desenvolvimento do software. *************************************************************************** A computação distribuída visa distribuir o processamento de uma aplicação entre os vários computadores conectados por uma rede. Habitualmente, uma aplicação distribuída é desenvolvida visando o processamento por meio de: cluster; grid cluster na nuvem. Dito isso, considere a seguinte situação: Você é um engenheiro de software responsável pelo desenvolvimento de um novo sistema de processamento de dados para uma grande empresa. O volume de dados é muito grande e deve ser processado em tempo real para fornecer análises relevantes para a equipe de negócios. Além disso, o sistema deve ser resiliente, com alta disponibilidade e desempenho. Considerando a informação acima, qual das seguintes opções de infraestrutura de processamento seria mais adequada para o seu sistema? A) Utilizar um cluster de computadores conectados por uma rede física, pois permite processamento distribuído e apresenta-se ao usuário como uma única máquina. >> B) Utilizar um cluster de computadores alocado na nuvem, pois proporciona escalabilidade e economia de custos, embora possa apresentar latência e preocupações com a segurança dos dados. C) Utilizar um único computador poderoso, pois seria capaz de lidar com a carga de trabalho, embora apresente limitações. D) Utilizar um único computador com um processador de alto desempenho, pois fornece bom desempenho, mas carece de resiliência, alta disponibilidade e capacidade de processamento distribuído. E) Utilizar um grid de computadores conectados pela internet, pois oferece processamento distribuído, mas pode apresentar maior latência devido à comunicação pela internet. *************************************************************************** A distribuição do processamento de dados nada mais é do que dividir os esforços computacionais entre as diversas máquinas do cluster, o que faz com que este seja realizado de forma simultânea no menor tempo possível. No final do processamento, os dados analisados por cada um dos computadores devem ser agregados para se obter um resultado final (PAN; CRUZ; VASCONCELLOS, 2019). PAN, H.; CRUZ, P.; VASCONCELLOS, P. MapReduce (big data). Rio de Janeiro: UFRJ, 2019. Disponível em: https://www.gta.ufrj.br/grad/12_1/mapreduce/index.htm. Acesso em: 19 jan. 2022. Considere a situação: Uma empresa de tecnologia está desenvolvendo um sistema para processar um grande volume de dados, contendo informações de acesso de usuários a um serviço específico, como horário, localização, e ação realizada. O sistema visa fornecer insights valiosos para a empresa com base nesses dados. A equipe de desenvolvimento decidiu utilizar o modelo de programação MapReduce para este fim. No entanto, eles estão encontrando desafios para implementar as funções Map e Reduce de maneira eficaz. Com base no conceito e no funcionamento do modelo de programação MapReduce, como a equipe de desenvolvimento deve implementar as funções Map e Reduce para processar essas informações de maneira eficaz? A) A função Map deve receber os dados e filtrá-los. A função Reduce deve então classificar os dados filtrados. B) A função Map deve receber um par de entrada de chave e valor, produzindo um único resultado. A função Reduce deve então receber esse resultado e produzir um conjunto final de chaves e valores. C) A função Map deve receber todos os dados de uma vez e processá-los. A função Reduce deve então receber os dados processados pelo Map e consolidá-los em um único resultado. D) A função Map deve receber os dados e realizar um pré-processamento. A função Reduce deve então receber os dados pré-processados e realizá-los. E) A função Map deve receber um par de entrada de chave e valor, produzindo um conjunto intermediário de chaves e valores. A função Reduce deve receber a chave e um conjunto de valores relacionados a ela, consolidando os resultados. >> *************************************************************************** A necessidade de serviços e de manipular e gerenciar grandes quantidades de dados de maneira confiável, junto com o interesse em descentralizar a informação, fez com que fossem impulsionados os estudos e desenvolvimentos na área de banco de dados distribuídos (BDD) e das arquiteturas de software. (ROSÁRIO, 2013) ROSÁRIO, L. G. O que é banco de dados distribuído? iMasters, 2013. Disponível em: https://imasters.com.br/banco-de-dados/o-que-e-banco-de-dados-distribuido. Acesso em: 29 jan. 2022. Em um cenário de desenvolvimento de software para uma aplicação de e-commerce, é necessário considerar fatores como escalabilidade, agilidade, facilidade de implantação, resiliência e a possibilidade de reutilização de código. Nesse contexto, surge a necessidade de escolher uma arquitetura que atenda a esses requisitos. Considerando o texto apresentado, assinale a alternativa correta que apresenta a arquitetura adequada para o desenvolvimento de software em relação ao e-commerce. 👍A) Os Microsserviços. >> B) A Linguagem XML. C) A Arquitetura Orientada a Serviços (SOA). D) O Protocolo SOAP. E) O Banco de dados distribuído. *************************************************************************** Existem ferramentas, frameworks, API e plataformas que permitem a realização do processamento distribuído de dados, como o modelo de programação MapReduce. O MapReduce é um modelo de programação amplamente utilizado para processar grandes quantidades de dados distribuídos de maneira eficiente, uma demanda comum na era do big data. Esse modelo tem duas fases principais: a fase de mapeamento (Map) e a fase de redução (Reduce). Considerando o texto apresentado, avalie as asserções a seguir e a relação proposta entre elas. I. A fase Reduce tem o papel de executar o processamento inicial dos dados de entrada, traçando um mapa das informações, filtrando-as e categorizando-as adequadamente. PORQUE II. A fase Map tem como objetivo principal sintetizar os resultados provenientes da função Reduce, para alcançar a saída final do processamento. A respeito dessas asserções, assinale a opção correta. A) A asserção I é uma proposição verdadeira, e a II é uma proposição falsa. B) A asserção I é uma proposição falsa, e a II é uma proposição verdadeira. C) As asserções I e II são proposições verdadeiras, e a II é uma justificativa correta da I. 👍D) As asserções I e II são proposições falsas. >> E) As asserções I e II são proposições verdadeiras, mas a II não é uma justificativa correta da I. *************************************************************************** O desenvolvimento de aplicações web tem se mostrado essencial na atualidade, permitindo a criação de sistemas distribuídos e aplicativos mobile que atendam às necessidades de um público cada vez mais conectado. Nesse contexto, os web services desempenham um papel importante, possibilitando a comunicação entre diferentes aplicações e permitindo a troca de dados de forma eficiente. Considerando o texto apresentado, avalie as asserções a seguir e a relação proposta entre elas. I. A utilização do web service é mais frequente para transferir dados entre diferentes aplicações. PORQUE II. Um web service é um método invocado por outras aplicaçõespor meio de tecnologias web. A respeito dessas asserções, assinale a opção correta. A) A asserção I é uma proposição verdadeira, e a II é uma proposição falsa. B) A asserção I é uma proposição falsa, e a II é uma proposição verdadeira. C) As asserções I e II são proposições verdadeiras, e a II é uma justificativa correta da I. 👍>> D) As asserções I e II são proposições falsas. E) As asserções I e II são proposições verdadeiras, mas a II não é uma justificativa correta da I. *************************************************************************** A arquitetura de software estabelece diretrizes para a estruturação e o design do software. Ela define os componentes do software e suas inter-relações. Nesse sentido, diferentes padrões são utilizados dependendo das necessidades e do contexto do software, como Cliente-Servidor, Model-View-Control (MVC), Model-View-Presenter (MVP) e Model-View- View-Model (MVVM). Considerando o texto apresentado, avalie as afirmações a seguir: I - O padrão Cliente-Servidor é utilizado para softwares web, e é inadequado a contextos desktop ou mobile. II - MVP e MVVM são padrões derivados do MVC, podendo ser utilizados em sistemas distribuídos e mobile. III - MVVM é um padrão desenvolvido especificamente para Windows Presentation Foundation (WPF) e Silverlight, portanto, é inadequado em outros contextos. IV - No padrão MVP, o componente Model é responsável pelo modelo de dados da aplicação. V - Padrões de projetos do GoF são comumente utilizados em projetos que não seguem a abordagem orientada a objetos. É correto o que se afirma em: A) I, III e V, apenas. B) II e III, apenas. C) III, apenas. D) I, II, IV e V, apenas. 👍E) II e IV, apenas. >> *************************************************************************** Microcontroladores podem ser resumidos em processadores com memória interna, como controles remotos, mouses de computador com botões programáveis e relógios de pulso. Com essa grande variedade de itens, o microcontrolador apresenta especificações diferentes, a fim de atender suas necessidades e consequente aplicação. Considerando o texto apresentado, avalie as afirmações a seguir: I - Microcontroladores são circuitos integrados que contêm um microprocessador, memória e interfaces de entrada e saída. II - Microcontroladores têm a capacidade de armazenar grandes quantidades de dados para processamento e análise futura. III - O desempenho de um microcontrolador é superior ao de um computador comum, permitindo análises complexas de dados em tempo real. IV - Os microcontroladores coletam e enviam dados para um servidor centralizado que processa os dados e envia instruções de volta para os dispositivos. É correto o que se afirma em: A) II, III e IV, apenas. B) III e IV, apenas. C) I e II, apenas. 👍D) I e IV, apenas. >> E) I e III, apenas. *************************************************************************** O conceito de Internet das Coisas é, basicamente, uma extensão do conceito de internet atual, que tem por objetivo conectar objetos à Internet, a fim de que sejam monitorados e controlados. Um bom exemplo dessa dinâmica é o fato de você estar no trabalho, tendo a ciência e o controle do que está acontecendo em sua casa, por meio de um aplicativo de celular, podendo, assim, controlar a temperatura, ter acesso a câmeras de monitoramento e ao do consumo de energia elétrica da instalação da residência, em tempo real, entre outros. PEREZ, C. C. da S. Trabalhando com redes de computadores: conceito e prática. 2. ed. São Paulo: Viena, 2017. Considerando o texto apresentado, avalie as asserções a seguir e a relação proposta entre elas. I. A IoT permite a conexão entre dispositivos de alta tecnologia, pois a implantação de tecnologias de troca de dados em objetos comuns é financeiramente inviável. PORQUE II. A IoT exclui a necessidade de interação humana com os objetos, uma vez que os dispositivos conectados à internet podem operar de forma totalmente autônoma. A respeito dessas asserções, assinale a opção correta. A) A asserção I é uma proposição verdadeira, e a II é uma proposição falsa. B) A asserção I é uma proposição falsa, e a II é uma proposição verdadeira. C) As asserções I e II são proposições verdadeiras, e a II é uma justificativa correta da I. 👍D) As asserções I e II são proposições falsas. >> E) As asserções I e II são proposições verdadeiras, mas a II não é uma justificativa correta da I. *************************************************************************** A tecnologia da Internet das Coisas (IoT) permite que dispositivos e equipamentos diversos se comuniquem por meio da Internet, possibilitando a coleta, o processamento e a troca de dados de forma eficiente. Uma peça-chave nessa infraestrutura de IoT é o protocolo MQTT (Message Queuing Telemetry Transport). Considere um cenário onde uma empresa de tecnologia decide implementar a Internet das Coisas (IoT) em seus processos internos para melhorar a eficiência operacional e precisa utilizar o protocolo MQTT. Levando em consideração as características e funcionalidades do protocolo MQTT, é correto afirmar que o "Broker" no MQTT: A) refere-se ao servidor que atua como um intermediário para enviar e encaminhar 👍mensagens entre os clientes. >> B) refere-se ao nível de garantia de entrega de mensagens, nível este que pode variar de 0 a 2. C) refere-se ao dispositivo cliente que se conecta ao servidor para enviar e receber mensagens. D) refere-se à ação de se inscrever em um tópico no servidor para receber mensagens publicadas. E) refere-se à funcionalidade de retenção de mensagens, armazenando-as para entregar a novos assinantes quando se conectam.