Questão de Arquitetura de Software — SOA (Service-oriented architecture) — FGV 2024
Arquitetura de Software›SOA (Service-oriented architecture)
Código
fg077365
Banca
FGV
Órgão
CVM
Ano
2024
Nível
Superior
Cargo
Analista - Perfil 8 - TI / Sistemas e Desenvolvimento - Tarde
Roberto está implementando uma solução SOA, com base em uma plataforma específica para orquestração de serviços, e escreveu o comando a seguir, na sintaxe BPEL.<invoke name="InvokeSearchCEP"inputVariable="lSearchCEPInput"outputVariable="lSearchCEPOutput"partnerLink="SearchCEPService"portType="ns2:SearchCEPPort"operation="SearchCEP"/>O comando escrito por Roberto será utilizado para:
Areceber a resposta do serviço de forma assíncrona;
Bcopiar dados entre variáveis;
Cestabelecer a ordem de execução no processo;
Ddefinir uma variável;
Eefetuar uma chamada síncrona para o serviço.
Revelar gabarito e comentário▾
GabaritoE — efetuar uma chamada síncrona para o serviço.
Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.
BPEL: Elemento <invoke> e chamada síncrona
Gabarito: letra E. O elemento <invoke> na linguagem BPEL (WS-BPEL) é utilizado para invocar um serviço web. Por padrão, a invocação é síncrona – o processo aguarda a resposta do serviço antes de prosseguir. O comando apresentado não contém atributos que configurem um modo assíncrono (como asynchronous="yes" ou um callback handler), portanto trata-se de uma chamada síncrona.
A banca testa o conhecimento sobre a atividade de invocação no BPEL, que é o mecanismo central para orquestração de serviços. O BPEL permite tanto chamadas síncronas quanto assíncronas, mas a omissão de atributos específicos define o comportamento síncrono.
1Chama serviço web
2Padrão: síncrono
3Aguarda resposta
4Prossegue no fluxo
LEVEL · soulevel.com.br
Alternativa A — ❌ Incorreta
A alternativa afirma que o comando receberá a resposta do serviço de forma assíncrona. No BPEL, para uma invocação assíncrona é necessário declarar explicitamente um par de atividades receive/reply ou usar o atributo asynchronous="yes" no <invoke>. O trecho mostrado não possui tais configurações; logo, a chamada é síncrona, bloqueando o processo até o retorno.
Alternativa B — ❌ Incorreta
Copiar dados entre variáveis no BPEL é feito com a atividade <assign>, não com <invoke>. O <invoke> tem o propósito exclusivo de chamar um serviço; a transferência de dados entre variáveis ocorre em um passo anterior ou posterior, mas não é função direta do invoke.
Alternativa C — ❌ Incorreta
Estabelecer a ordem de execução no processo BPEL é papel das atividades de controle de fluxo, como <sequence>, <flow>, <if> etc. O <invoke> é uma atividade atômica que representa uma chamada a serviço, mas não define por si só a sequência – ele pode estar contido em uma dessas estruturas.
Alternativa D — ❌ Incorreta
Definir variáveis no BPEL é feito com o elemento <variable> dentro da seção <variables> do processo. O <invoke> apenas utiliza variáveis (nos atributos inputVariable e outputVariable), mas não as declara.
Alternativa E — ✅ Correta ⟵ GABARITO
O comando <invoke> do BPEL efetua a chamada a um serviço web. Quando não há indicação de assincronismo, o comportamento padrão é síncrono: o processo envia a mensagem de requisição e aguarda a resposta (que será armazenada na variável de saída lSearchCEPOutput). Todas as informações do parceiro (partnerLink), da porta (portType) e da operação (operation) estão presentes, confirmando que se trata de uma invocação direta e síncrona.
PEGA ESSA DICA!
No BPEL, lembre-se: <invoke> chama o serviço (síncrono por padrão); <receive> espera uma mensagem de entrada; <reply> responde a uma requisição recebida. Chamadas assíncronas exigem uma combinação de invoke com receive/reply ou o uso de atributos específicos.