← Questões de Engenharia de Software

Engenharia de Software · FGV · 2022

Questão comentada de Engenharia de Software

Com relação ao papel dos middleware nos sistemas distribuídos, analise as afirmativas a seguir. I. São uma camada de software que fornece uma abstração de programação, bem como o mascaramento de heterogeneidade de redes de computadores, sistemas operacionais e linguagens de programação dos hosts. II. Fornecem um modelo computacional uniforme para ser usado pelos programadores de serviços e de aplicativos distribuídos. Os modelos possíveis incluem a invocação remota de objetos, a notificação remota de eventos, o acesso remoto a banco de dados e o processamento de transação distribuído. III. Atuam como contêineres que oferecem modos de gerar um código executável ou bytecode otimizado para uma ampla variedade de dispositivos hospedeiros: o compilador de uma linguagem em particular gera um pseudo-código para o contêiner de acordo com um processador e um sistema operacional específicos. Está correto o que se afirma em

Gabarito: D

Middleware é, em essência, a “cola” dos sistemas distribuídos. Ele fica entre o sistema operacional e as aplicações, ajudando a esconder diferenças de rede, hardware, SO e linguagem, para que o programador não precise reinventar a roda a cada ambiente diferente. A ideia central é dar uma camada de abstração e uniformidade: em vez de pensar em detalhes de comunicação e interoperabilidade, você pensa em serviços e objetos distribuídos. Por isso, a afirmativa I está correta. Ela descreve exatamente esse papel de mascarar a heterogeneidade e oferecer uma abstração de programação. Já a afirmativa II também está correta, porque o middleware pode fornecer modelos computacionais bem conhecidos, como chamada remota, eventos distribuídos, acesso a banco de dados e transações distribuídas. Em doutrina de sistemas distribuídos, isso aparece como suporte para comunicação, coordenação e integração entre componentes. A afirmativa III, por outro lado, foge do conceito de middleware e mistura ideias de compilador, bytecode e contêiner de execução. Isso lembra mais plataformas de execução e portabilidade de código do que middleware propriamente dito. Ou seja: o middleware não é um “gerador de bytecode otimizado” para vários dispositivos; ele atua como camada intermediária de serviços e comunicação. Assim, o gabarito D está correto porque apenas I e II descrevem corretamente o papel do middleware. A FGV gosta bastante dessa confusão entre camada de integração, ambiente de execução e mecanismo de compilação, então vale ficar atento: middleware não é compilador, nem máquina virtual, nem contêiner de código.

Continue treinando

Questões relacionadas