José Malcher Jr.

Eng. Software – Analista de Sistemas

Lista de Exercícios de Arquitetura Orientada a serviços – SOA e Webservices – Lista 3 (10 Questões)


Questão 1
Quando trabalhamos com processamento paralelo, um problema comum é a utilização de recursos compartilhados que podem ser lidos ou escritos de forma errônea devido à preempção. Para resolver isso deve ocorrer um sequenciamento no acesso ao recurso, o que é obtido no Java com o uso da palavra reservada:
a) static
b) volatile
c) synchronized
d) abstract
e) final


Questão 2
Uma classe ServerSocket deve escutar uma porta especificada e aceitar conexões solicitadas pelos clientes, repassando as mesmas para objetos Socket locais, o que define o circuito virtual entre cliente e servidor. Qual o método utilizado para aceitar uma conexão?
a) start
b) accept
c) getInputStream
d) getOutputStream
e) close


Questão 3
A utilização de RPC viabiliza a construção de sistemas de processamento distribuído com um formato de comunicação transparente para o programador. Quem permite esta transparência são os _______________ definidos para o padrão Proxy.
a) senders
b) idles
c) clientes
d) stubs
e) publishers


Questão 4
Na arquitetura do RPC, o elemento responsável por tratar as chamadas no servidor é denominado:
a) IDL
b) stub
c) skeleton
d) Socket
e) ServerSocket


Questão 5
O elemento na arquitetura do RPC que permite a geração automática de todo o aparato de comunicação em rede, de forma automatizada, por ferramentas como o rpcgen é:
a) IDL
b) stub
c) skeleton
d) Socket
e) ServerSocket


Questão 6
Em sistemas de processamento distribuído ocorre a necessidade de registrar e localizar componentes disponibilizados remotamente. O componente de software responsável por executar esta função seria:
a) Interface de Descrição de Serviços
b) Serviço de Nomes e Diretórios
c) Temporizador
d) Protocolo de Comunicação
e) Gerenciador do Banco de Dados


Questão 7
A transformação dos dados estruturados segundo uma determinada tecnologia, como Java ou C#, em formato compatível com as mensagens que são trafegadas entre os stubs é denominada:
a) serialização
b) unmarshalling
c) marshalling
d) de-serialização
e) vetorização


Questão 8
Em termos de RMI a descrição dos serviços é feita na própria linguagem Java através de uma interface descendente de:
a) Remote
b) Runnable
c) MessageListener
d) Serializable
e) CommandListener


Questão 9
Considere as afirmativas abaixo:
I – Os métodos expostos pela interface remota do RMI devem considerar a ocorrência da exceção RemoteException.
II – Criada a interface, deve ser definido uma classe que implementa a mesma e seja descendente de UnicastRemoteObject.
III – Os passos I e II são necessários e suficientes para a criação de um servidor RMI.
Quais as afirmativas corretas?
a) Todas estão corretas
b) Apenas a I está correta
c) Apenas a II está correta
d) As alternativas I e II estão corretas
e) Nenhuma está correta


Questão 10
No ambiente Java os serviços de nomes e diretórios são acessados através de:
a) DAP
b) LDAP
c) DNS
d) JEE
e) JNDI


 

 

 

 

 

 

 

 

 

 

 

 

RESPOSTAS
Questão 1 – C
Justificativa: Em linguagem Java uma tarefa independente pode ser definida pela extensão da classe Thread ou pela implementação da interface Runnable, e quando há necessidade de sincronização utiliza-se a palavra-chave synchronized.
Questão 2 – B
Justificativa: Os métodos getInputStream, getOutputStream e close pertencem à classe Socket, enquanto start inicia uma Thread. O método accept pertence ao ServerSocket e serve para receber uma conexão na porta especificada na inicialização do mesmo.
Questão 3 – D
Justificativa: As ferramentas para criação de aplicativos RPC cuidam da geração dos stubs para garantir a transparência da comunicação em rede. O par de stubs faz a transformação de chamadas e respostas nas mensagens necessárias.
Questão 4 – C
Justificativa: Em termos do servidor, o elemento responsável pela interceptação das chamadas é comumente denominado skeleton, e deve receber a chamada, ativar o componente de software responsável pelo processamento do pedido, e retornar com a resposta solicitada.
Questão 5 – A
Justificativa: A utilização de Socket e ServerSocket de forma plana não constituiria um sistema RPC. Nas arquiteturas do tipo RPC deve haver uma IDL (Interface Definition Language) que permita a aplicativos como o rpcgen gerar os stubs para a comunicação com o skeleton do servidor.
Questão 6 – B
Justificativa: Tanto no uso de RMI quanto no uso de CORBA, JEE, ou qualquer outro recurso que precise ser acessado a partir de uma localização externa ao programa que fornece este recurso, é comum o uso de serviços de nomes e diretórios.

Questão 7 – C
Justificativa: A transformação dos dados para o formato de envio é denominada marshalling, enquanto o processo inverso, na recepção, é denominado unmarshalling.
Questão 8 – A
Justificativa: O passo inicial para o desenvolvimento de um sistema com uso de RMI é a definição da interface remota, o que equivaleria à definição da IDL utilizada no RPC, porém restrita ao universo Java. Esta interface deverá ser descendente da interface Remote.
Questão 9 – D
Justificativa: A alternativa III está incorreta, pois seria ainda necessário criar um aplicativo (main) que registre uma instância da classe criada em II, bem como o rmiregistry deverá estar em execução para que este aplicativo consiga também executar.

Questão 10 – E
Justificativa: No caso do Java, as ações de registro e localização são feitas pelo JNDI, o qual apresenta uma interface única entre os diversos serviços de diretório, gerenciando inclusive o acesso a recursos como RMI, CORBA, DAP, LDAP e JEE.


Se você tiver alguma dúvida ou correção a fazer, por favor, comente! Obrigado!

outubro 28th, 2016

Posted In: Arquitetura Orientada a serviços – SOA e Webservices, Engenharia de Software, Exercícios

Tags:, ,