Pular para o conteúdo principal

Questão de Arquitetura de Software — SOA (Service-oriented architecture) — FGV 2024

Arquitetura de SoftwareSOA (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:
  1. Areceber a resposta do serviço de forma assíncrona;
  2. Bcopiar dados entre variáveis;
  3. Cestabelecer a ordem de execução no processo;
  4. Ddefinir uma variável;
  5. 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.

  1. 1Chama serviço web
  2. 2Padrão: síncrono
  3. 3Aguarda resposta
  4. 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.

Gabarito: letra E.

Link permanente: /questoes/fg077365