Você está na página 1de 35

EJB

Professor Marcelo Pacote – @professorpacote

W W W. D O M I N A N D OT I .CO M . B R W W W. D O M I N A N D OT I .CO M . B R
Enterprise Java Beans (EJB)

 Aplicações corporativas são naturalmente distribuídas


 Exemplos: aplicações bancárias, comércio eletrônico, folha de
pagamentos.
 Tecnologia de componentes
 Aplicações compostas por componentes.
 Um único componente pode ser reutilizado em diversas
aplicações.

Escalabilidade

Professor Marcelo Pacote - @professorpacote 2 W W W. D O M I N A N D OT I .CO M . B R


Componentes X Contêiner X Servidor de Aplicação

Servidor de
Aplicação

Contêiner
(EJB)

EJB
(componente)

Professor Marcelo Pacote - @professorpacote 3 W W W. D O M I N A N D OT I .CO M . B R


EJB - Características

 Características:
 Portabilidade entre servidores de aplicação (WODA)
 Padrão de mercado
 Desenvolvimento acelerado
 Desenvolvedores concentrados na lógica de negócio

Transação (JTA)

Segurança

Persistência

Professor Marcelo Pacote - @professorpacote 4 W W W. D O M I N A N D OT I .CO M . B R


Exercício [01] (CGU/ESAF/2012)

Os serviços de gerenciamento, oferecidos pelo contêiner EJB


(Enterprise JavaBeans), são de:
a) Transações. Persistência. Ciclo de Vida. Segurança.
b) Transições. Pertinência. Ciclo de Vida. Risco.
c) Transformações. Persistência. Ciclo de Projeto. Segurança.
d) Transações. Comunicação. Ciclo de Vida. Mercado.
e) Transações. Consistência. Fases. Segurança.

Professor Marcelo Pacote - @professorpacote 5 W W W. D O M I N A N D OT I .CO M . B R


Exercício [02] (STN/ESAF/2008)

A respeito de EJB (Enterprise Java Beans) é correto afirmar que


a) containers executam em componentes.
b) servidores de aplicação executam em containers.
c) containers são hospedados por servidores de aplicação.
d) servidores de aplicação são hospedados por componentes.
e) containers são hospedados por componentes.

Professor Marcelo Pacote - @professorpacote 6 W W W. D O M I N A N D OT I .CO M . B R


Exercício [03] (BRDE/AOCP/2012) (1/2)

Sobre definições e características de Enterprise JavaBeans, analise as


assertivas e assinale a alternativa que aponta as corretas.
I. A arquitetura Enterprise JavaBeans é uma arquitetura de componentes para o
desenvolvimento e a implantação de aplicativos de negócios distribuídos
baseados em componentes.
II. Aplicativos escritos utilizando a arquitetura Enterprise JavaBeans são
escalonáveis, transacionais e seguros com multiusuários.
III. Aplicativos escritos utilizando a arquitetura Enterprise JavaBeans uma vez
escritos são implantados em qualquer plataforma de servidor, que suporta a
especificação Enterprise JavaBeans

Professor Marcelo Pacote - @professorpacote 7 W W W. D O M I N A N D OT I .CO M . B R


Exercício [03] (BRDE/AOCP/2012) (2/2)

IV. A arquitetura JavaBeans encontra-se presentes em outras


linguagens de programação além da linguagem de
programação java, esta arquitetura encontra- se em Object
Pascal, Objective-C, Python, SuperCollider, Ruby, Smalltalk,
entre outras.
a) Apenas I e II.
b) Apenas I e III.
c) Apenas I, II e III.
d) Apenas II, III e IV.
e) I, II, III e IV.
Professor Marcelo Pacote - @professorpacote 8 W W W. D O M I N A N D OT I .CO M . B R
Tipos de Beans - EJB 2.0

 Session Beans
 “Verbos”. Modelam processos de negócio, como
autorização de cartão de crédito, engine de cálculo de
preços, etc.
 Entity Beans
 “Substantivos”. Modelam dados como produto, pedido,
empregado.
 Message Driven Beans
 São semelhantes aos Session Beans, entretanto são
invocados apenas por meio de mensagens (JMS).

Professor Marcelo Pacote - @professorpacote 9 W W W. D O M I N A N D OT I .CO M . B R


Tipos de Beans - EJB 3.1

 Session Beans
 “Verbos”. Modelam processos de negócio, como autorização de
cartão de crédito, engine de cálculo de preços, etc.
 Entity Beans
 “Substantivos”. Modelam dados como produto, pedido, empregado.
 Message Driven Beans
 São semelhantes aos Session Beans, entretanto são invocados
apenas por meio de mensagens (JMS).

 Na EJB 3.0, a persistência possui sua própria especificação chamada


JPA “Java Persistence API”.

Professor Marcelo Pacote - @professorpacote 10 W W W. D O M I N A N D OT I .CO M . B R


Tipos de Beans - Sumário

Tipo de Bean EJB 2.x EJB 3.1

Entity Beans

Message Driven Beans
 
Session Beans stateful stateful
stateless stateless
singleton

Professor Marcelo Pacote - @professorpacote 11 W W W. D O M I N A N D OT I .CO M . B R


Session Beans - Tipos

 Stateless Session Beans:


 Não mantém estado entre invocações de métodos.
 Exemplo: consulta de CEP, autorização de transação de cartão
 Stateful Session Beans:
 Mantém seu estado entre chamadas de métodos.
 Exemplo: carrinho de compras, prova digital
 Singleton Session Beans:
 Compartilhar dados transientes entre todos os usuários de uma
aplicação que faça uso de EJB
 Exemplo: número de usuários conectados, chat

Professor Marcelo Pacote - @professorpacote 12 W W W. D O M I N A N D OT I .CO M . B R


Session Beans (Stateless)

 São mantidos em um pool no EJB Container


 Escalabilidade
 Callbacks
 @postConstruct e @preDestroy

Não existe

Instância criada Instância destruída

Pronto Instância atendendo


chamada

Professor Marcelo Pacote - @professorpacote 13 W W W. D O M I N A N D OT I .CO M . B R


Session Beans (Stateful)

 Ciclo de vida
Não existe
 Callbacks
 @postConstruct e @preDestroy
 @PrePassivate e @PostActivate
Pronto

Passivado

Professor Marcelo Pacote - @professorpacote 14 W W W. D O M I N A N D OT I .CO M . B R


Session Beans (Singleton)

 Callbacks
 @postConstruct e @preDestroy

Não existe

Instância criada Instância destruída

Instância atendendo
Pronto chamada

Professor Marcelo Pacote - @professorpacote 15 W W W. D O M I N A N D OT I .CO M . B R


Exercício [04] (TRT-AM/2012/FCC/Analista) (1/2)

Professor Marcelo Pacote - @professorpacote 16 W W W. D O M I N A N D OT I .CO M . B R


Exercício [04] (TRT-AM/2012/FCC/Analista) (2/2)

Foi representado o ciclo de vida de um


a) Stateful Session Bean.
b) Stateless Session Bean.
c) Singleton Session Bean.
d) Message-Driven Bean.
e) Embedded Session Bean.

Professor Marcelo Pacote - @professorpacote 17 W W W. D O M I N A N D OT I .CO M . B R


Exercício [5] (BNDES/CESGRANRIO/2013/Desv./46)

Cada tipo de enterprise bean passa por diferentes fases durante seu
ciclo de vida. Um desses tipos possui um estado denominado Passivo.
Quando um bean entra nesse estado, o container EJB o desloca da
memória principal para a memória secundária.
Qual tipo de bean se comporta dessa maneira?
a) Stateless Session Bean
b) Stateful Session Bean
c) Web Service Bean
d) Singleton Session Bean
e) Message-Driven Bean

Professor Marcelo Pacote - @profmarcelopacote 18 W W W. D O M I N A N D OT I .CO M . B R


EJB – Outras características

 Transações
 CMT (Container Managed Transaction)
 BMT (Bean Managed Transaction)
 Persistência com EJB 2.x (BMP e CMP) – compatibilidade
 Interceptors
 É comum utilizar interceptadores para tarefas que não estão
diretamente relacionadas às regras de negócio implementadas nos
Session Beans.
 Exemplo: logs e controle de acesso.
 Podem ser especificados em nível de método ou de classe
(@interceptors)

Professor Marcelo Pacote - @professorpacote 19 W W W. D O M I N A N D OT I .CO M . B R


Exercício[06] (TRT-MS/2011/FCC/Tec. Judiciário)

Em relação ao Enterprise Java Beans, é correto afirmar:


a) No Session Bean, toda vez que um método é invocado, o estado de suas
variáveis se mantém apenas durante a invocação desse método.
b) Um Message-Driven Bean é um EJB que possui as interfaces home e
remote e apenas um método que recebe qualquer tipo de mensagem.
c) Um Entity Bean é um tipo de EJB que representa dado não persistente
armazenado em um banco de dados.
d) Enterprise Java Beans é um componente J2EE do tipo servidor que
executa no container do servidor de aplicação.
e) Message-Driven Bean é um EJB statefull.

Professor Marcelo Pacote - @professorpacote 20 W W W. D O M I N A N D OT I .CO M . B R


[07] (PRODAM-AM/2010/FUNCAB/Analista) (1/2)

Sejam as seguintes assertivas sobre os tipos de EJB existentes:


I. Process beans são excelentes opções para a implementação
da lógica do negócio, dos processos de negócio e dos fluxos de
trabalho.
II. Entity beans representam os objetos persistentes em uma
aplicação EJB.
III. Asynchronous beans podem ser usados para o envio
(recebimento) de mensagens assíncronas para (de) outros
sistemas.

Professor Marcelo Pacote - @professorpacote 21 W W W. D O M I N A N D OT I .CO M . B R


[07] (PRODAM-AM/2010/FUNCAB/Analista) (2/2)

Marque a alternativa correta em relação às assertivas acima.


a) Apenas I é verdadeira.
b) Apenas II é verdadeira.
c) Apenas III é verdadeira.
d) Todas são verdadeiras.
e) Todas as assertivas são falsas.

Professor Marcelo Pacote - @professorpacote 22 W W W. D O M I N A N D OT I .CO M . B R


Exercício[08] (PETR/2011/CESGRANRIO) (1/2)

No contexto da programação na plataforma Java EE, as tecnologias


Servlets, JSP e EJB estão disponíveis. A esse respeito, considere as
afirmativas abaixo.
I. EJB fornece ao programador Java EE os seguintes tipos
fundamentais: Entity Beans, Session Beans e Message Driven Beans.
II. JPA é parte integrante da especificação EJB e serve para definir as
interfaces de acesso local e/ou remoto de um componente EJB.
III. Um servidor de aplicações Java EE oferece vários recursos ao
desenvolvedor como pool de conexão, controle de transação, segurança
e gerenciamento de recursos.

Professor Marcelo Pacote - @professorpacote 23 W W W. D O M I N A N D OT I .CO M . B R


Exercício[08] (PETR/2011/CESGRANRIO) (2/2)

IV - Uma diferença entre as tecnologias Servlets e JSP é que, ao


contrário da segunda, a primeira permite o armazenamento do
estado da aplicação em variáveis de sessão.
São corretas APENAS as afirmativas
a) I e II
b) I e III
c) II e III
d) II e IV
e) III e IV

Professor Marcelo Pacote - @professorpacote 24 W W W. D O M I N A N D OT I .CO M . B R


Exercício[09] (TRE-BA/2010/CESPE/Analista)

( ) O Entrerprise JavaBeans (EJB), cuja especificação mais recente


é a da versão 2.1, define, em sistemas Java, um conjunto de
tecnologias utilizadas do lado cliente.

Professor Marcelo Pacote - @professorpacote 25 W W W. D O M I N A N D OT I .CO M . B R


Exercício[10] (TRE-CE/2012/FCC/Analista) (1/2)

No âmbito do Enterprise Java Beans 3.0, considere:


I. Utiliza a API JMS, facilita a quebra de acoplamento entre o cliente
e o destino (Point-to-point ou Publish- subscriber), e é acionado de
forma assíncrona.
II. Tratam os eventos nas fases do ciclo de vida dos EJB, por meio
de anotações, tais como, @PostConstruct, @PrePassivate e
@PostActivate.
III. Permitem que um código customizado seja aplicado para um
EJB, interceptam a chamada do método do EJB para executar um
código intermediário, e podem ser configurados no próprio Bean ou
em classes externas.

Professor Marcelo Pacote - @professorpacote 26 W W W. D O M I N A N D OT I .CO M . B R


Exercício[10] (TRE-CE/2012/FCC/Analista) (2/2)

As afirmações contidas nos itens I, II e III referem-se,


respectivamente, a
a) Session Bean, Injeção de Dependência e Timers.
b) Message-Driven Bean, Callback Methods e Interceptors.
c) Session Bean, Callback Methods e Timers.
d) Java Persistence API,Callback Methods e Message- Driven
Bean.
e) Java Persistence API, Message-Driven Bean e Session Bean.

Professor Marcelo Pacote - @professorpacote 27 W W W. D O M I N A N D OT I .CO M . B R


Gabarito

[01] a
[02] c
[03] c
[04] a
[05] b
[06] d
[07] b
[08] b
[09] errado
[10] b

Professor Marcelo Pacote - @professorpacote 28 W W W. D O M I N A N D OT I .CO M . B R


Anexo I
Exercícios Complementares

Professor Marcelo Pacote – @professorpacote

W W W. D O M I N A N D OT I .CO M . B R W W W. D O M I N A N D OT I .CO M . B R
Exercício [01] (MPOG/ESAF/2008) (1/2)

Para satisfazer aos objetivos de persistência e gerenciamento de


múltiplas aplicações cliente, os EJBs (Enterprise Java Beans) são
classifi cados como Session Beans (beans de sessão), utilizados para
monitorar sessões com aplicações cliente individuais, ou Entity Beans
(Beans de entidade), utilizados para lidar com dados. O contêiner
gerencia funcionalidades genéricas, tais como linhas de execução e
acesso a banco de dados.Em relação aos métodos de Session Beans
ou EntityBeans, é incorreto afirmar que o método
a) ejbRemove( ) é um método da classe EntityBean, responsável por
apagar o conteúdo do Bean da área de armazenamento.

Professor Marcelo Pacote - @professorpacote 30 W W W. D O M I N A N D OT I .CO M . B R


Exercício [01] (MPOG/ESAF/2008) (2/2)

b) ejbActivate( ) é um método da classe SessionBean, utilizado quando a


aplicação cliente faz contato como contêiner, recuperando o objeto
SessionBean correspondente a essa aplicação cliente.
c) ejbPassivate( ) é um método da classe SessionBean utilizado quando a
aplicação cliente interrompe o contato com o contêiner, armazenando o
objeto SessionBean correspondente a essa aplicação cliente.
d) ejbStore( ) é um método da classe EntityBean responsável por colocar
o conteúdo do Bean na área de armazenamento.
e) setSessionContext( ) é um método da classe SessionBean chamado
pelo contêiner quando o SessionBean é criado.

Professor Marcelo Pacote - @professorpacote 31 W W W. D O M I N A N D OT I .CO M . B R


Exercício[02] (CGU/2008/ESAF) (1/2)

A especificação do EJB (Enterprise Java Beans) tem como intenção


padronizar o tratamento de problemas comuns em aplicações complexas,
tais como persistência, integridade transacional,segurança e controle de
concorrência. A respeito do EJB, é correto afirmar que
a) os Entity Beans foram substituídos pela “Java Persistence API” na versão
EJB 3.0, porém, os Entity Beans de versões 2.x podem continuar utilizando o
“Container-Managed Persistence”(CMP) por questões de compatibilidade.
b) os Session Beans são responsáveis por garantir que o código cliente
possua privilégios suficientes de acesso a um EJB.
c) as classes EJB usadas pelas aplicações estão incluídas no pacote
javax.ejb.spi.

Professor Marcelo Pacote - @professorpacote 32 W W W. D O M I N A N D OT I .CO M . B R


Exercício[02] (CGU/2008/ESAF) (2/2)

d) um container EJB, na sua versão 3.0, possui 3 tipos


principais de beans: Application Beans, Session Beans e Server
Beans.
e) os Stateless Session Beans são objetos distribuídos que não
possuem estado, permitindo acesso concorrente aos mesmos.
Assim, o conteúdo das variáveis de instância é preservado entre
as chamadas de métodos.

Professor Marcelo Pacote - @professorpacote 33 W W W. D O M I N A N D OT I .CO M . B R


Exercício [03] (Serpro/2013/Cespe/Desv./79)

( ) No JBoss AS7, a carga de classes (class loading) é


baseada em módulos, que devem definir dependência explícita
em relação a outros módulos.

Professor Marcelo Pacote - @professorpacote 34 W W W. D O M I N A N D OT I .CO M . B R


Gabarito

[01] a
[02] a
[03] certo

Professor Marcelo Pacote - @professorpacote 35 W W W. D O M I N A N D OT I .CO M . B R

Você também pode gostar