Lista de Exercícios de Arquitetura Orientada a serviços – SOA e Webservices – Lista 4 (10 Questões)
Questão 1
Qual o padrão de desenvolvimento utilizado na forma de comunicação com objetos distribuídos?
a) Front Control
b) Flyweight
c) DAO
d) Proxy
e) Request Dispatcher
Questão 2
Qual o serviço de nomes e diretórios do CORBA?
a) CORBA IDL
b) LDAP
c) DNS
d) JNDI
e) COS Naming
Questão 3
Qual a entidade responsável pela criação do CORBA?
a) DoD
b) OMG
c) DMSO
d) W3C
e) IEEE
Questão 4
Qual das opções abaixo NÃO é uma arquitetura de objetos distribuídos?
a) CORBA
b) JEE
c) DDObjects
d) COM
e) Pyro
Questão 5
Para que um servidor RMI possa se tornar compatível com o protocolo IIOP, segundo a especificação RMI-IIOP, a classe de negócios deve ser definida como um descendente de:
a) PortableRemoteObject
b) UnicastRemoteObject
c) MulticastRemoteObject
d) HttpServlet
e) RemoteException
Questão 6
Qual o elemento que viabiliza a compatibilidade com CORBA para os EJBs?
a) Descrição de serviços CORBA-IDL
b) Protocolo RMI-IIOP
c) Uso da linguagem Java
d) Uso do JNDI
e) Padrão Proxy
Questão 7
Qual a anotação que deve ser utilizada para efetuar a chamada ao pool de EJBs a partir de um Servlet?
a) @Local
b) @Remote
c) @Stateless
d) @Stateful
e) @EJB
Questão 8
Qual tipo de EJB era utilizado no J2EE para efetuar a persistência de dados?
a) Message Driven Bean
b) Stateless SessionBean
c) Stateful SessionBean
d) EntityBean
e) EntityManager
Questão 9
Um descendente de EJBHome deve gerar descendentes de EJBObject para prover acesso remoto ao pool de EJBs, enquanto descendentes de EJBLocalHome devem gerar descendentes de EJBLocalObject para prover acesso local ao mesmo pool. Para tal finalidade é utilizado o padrão de desenvolvimento:
a) Proxy
b) Flyweight
c) Abstract Factory
d) Session Facade
e) DAO
Questão 10
Considere as seguintes afirmativas:
I – A construção de pools de EJBs é baseada no padrão Flyweight.
II – A comunicação remota com os EJBs é feita segundo o padrão Proxy.
III – No J2EE tornou-se uma prática comum a adoção de um componente que siga o padrão Service Locator para localizar as fábricas de EJBs.
Quais estão corretas?
a) Apenas as afirmativas I e II
b) Apenas a afirmativa I
c) Apenas a afirmativa II
d) Apenas a afirmativa III
e) Todas as afirmativas
RESPOSTAS
Questão 1 – D
Justificativa: O padrão Proxy é adotado, já que são utilizados stubs e skeletons na comunicação entre cliente e servidor. Os demais padrões: Front Control é utilizado na camada de visualização para direcionamento de requisições apenas; Flyweight é utilizado nos pools de objetos; DAO trabalha na camada de dados, concentrando o acesso ao banco; e Request Dispatcher efetua redirecionamentos para visualizações específicas.
Questão 2 – E
Justificativa: No ambiente CORBA o serviço de nomes e diretórios para localização de componentes é denominado COS Naming, ou Common Object Service Naming Services.
Questão 3 – B
Justificativa: Criado pelo OMG (Object Management Group), o CORBA (Common Object Request Broker Architecture) trata de uma arquitetura padrão com o objetivo de estabelecer e simplificar a troca de dados entre sistemas distribuídos heterogêneos baseados em objetos.
Questão 4 – D
Justificativa: O formato COM server para arquivos binários compatíveis com a interface interoperável de componentes Microsoft. Para utilizar objetos distribuídos seria adotada uma tecnologia similar, porém com suporte ao ambiente distribuído, denominada DCOM.
Questão 5 – A
Justificativa: Os passos para colocar um sistema RMI sob o IIOP segue os mesmos passos de um RMI padrão, porém, para que a implementação esteja compatível com o CORBA, segundo o protocolo IIOP, deve ser utilizado um descendente de PortableRemoteObject na criação da classe de negócios.
Questão 6 – B
Justificativa: Incialmente, a descrição de serviços para os EJBs utiliza Java, e não CORBA-IDL. O padrão proxy é apenas o modelo de comunicação baseado em stubs, e o uso de Java ou JNDI não traz qualquer compatibilidade com o ambiente CORBA. O protocolo RMI-IIOP é o que traz esta compatibilidade.
Questão 7 – E
Justificativa: Para que este EJB seja utilizado a partir de um Servlet bastaria acrescentar um atributo do tipo da interface escolhida (remota ou local), anotado com @EJB. As demais anotações estão relacionadas à criação SessionBeans e suas interfaces.
Questão 8 – D
Justificativa: Os EntityBeans eram utilizados para persistência, mas foram substituídos pelo JPA no JEE5 por questões de performance. Quanto ao EntityManager, ele se refere à gestão de entidades anotadas do JPA. Os SessionBeans trabalham com processos de negócios síncronos, e os MDBs trabalham com recepção de mensagerias.
Questão 9 – C
Justificativa: Segundo o padrão Abstract Factory, toda a funcionalidade básica de integração com o framework fica pronta, enquanto o desenvolvedor especializa apenas para a fábrica concreta e interface concreta os detalhes referentes a regras de negócio próprias do aplicativo. Quanto ao Proxy, é utilizado na comunicação, o Flyweight na gestão dos pools de EJBs, o SessionFacade seria um Session encapsulando as chamadas aos EntityBeans ou JPA, e finalmente o DAO poderia ser utilizado para organizar as funções de persistência.
Questão 10 – E
Justificativa: Todas as afirmativas estão corretas. Particularmente quanto à afirmativa III, no JEE5 a adoção de anotações como @EJB acabou eliminando a necessidade de utilizar o Service Locator.
Se você tiver alguma dúvida ou correção a fazer, por favor, comente! Obrigado!