Questão nº 24
Questão de Tecnologia da Informação · FGV CVM 2024 (nº 24)
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.
```xml
<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. (alternativa correta)
Resposta comentada
Gabarito Alternativa E
No BPEL (Business Process Execution Language), a atividade invoke é usada para chamar um serviço web externo, enviando uma requisição e, opcionalmente, recebendo uma resposta.
- (A) Incorreta: Embora o SOA lide muito com assincronia, a presença de
inputVariableeoutputVariableno mesmoinvokeindica uma chamada síncrona. Para uma chamada assíncrona de requisição-resposta, o BPEL geralmente usaria uminvoke(para enviar a requisição) seguido de umreceive(para receber a resposta em um ponto posterior do processo), ou uminvokesemoutputVariablepara operações one-way. A armadilha aqui é associarinvokegenericamente a qualquer interação de serviço, sem observar os detalhes que o tornam síncrono neste caso. - (B) Incorreta: Para copiar dados entre variáveis, o BPEL utiliza a atividade
assign. - (C) Incorreta: A ordem de execução é estabelecida por atividades estruturadas como
sequence,flow,switch,while, entre outras. Oinvokeé uma atividade que é executada dentro dessa ordem. - (D) Incorreta: Variáveis são definidas na seção
<variables>do processo BPEL, usando o elemento<variable>. Oinvokeapenas utiliza variáveis já definidas. - (E) Correta: O comando
invokecominputVariableeoutputVariableespecificados na mesma atividade indica que o processo enviará uma requisição (inputVariable) para o serviço (partnerLink,portType,operation) e aguardará a resposta (outputVariable) antes de continuar sua execução. Essa é a definição de uma chamada síncrona.
Fonte: FGV CVM 2024 Analista CVM - TI Sistemas e Desenvolvimento (Perfil 8) (Caderno Tipo 1). Reproduzida para fins de estudo.