O documento discute os conceitos de J2EE e EJB 3.0. Especificamente, descreve o que é J2EE, suas características e o que é EJB, seus tipos de componentes (session bean, entity bean e message-driven bean), interfaces e como implementar um bean.
2. J2EE (Java Enterprise Edition)
• É a plataforma Java voltada para redes, internet,
intranets, aplicações corporativas;
• Contém bibliotecas especialmente desenvolvidas para o
acesso a servidores, a sistemas de e-mail, a banco de
dados;
• Foi desenvolvido para suportar uma grande quantidade de
usuários simultâneos.
3. Visão Geral EJB
JavaBeans (~1996)
• Modelo de componentes que privilegia o suporte a
ferramentas gráficas para a composição de aplicações .
Enterprise JavaBeans (EJB) (~1999)
• Extensão de JavaBeans para ambientes distribuídos;
• Ambiente Java robusto;
• Aplicações com arquitetura multicamadas;
• Modelo de componentes para grandes aplicações de
negócio.
4. EJB ou Enterprise JavaBeans
• É um dos principais componentes da plataforma J2EE;
• É um componente do tipo servidor que executa
no container do servidor de aplicação;
• Permite a criação modular, utilizando o conceito de
componentes, de aplicações servidoras;
• O componente utiliza o conceito de JavaBeans,
componentes da linguagem Java que permitem agrupar
diversos objetos em um simples objeto, chamado bean.
5. Componentes da Arquitetura EJB
Servidor EJB
• Servidor de aplicação genérico que fornece um ambiente
compatível com a especificação da arquitetura EJB.
• Fornece um ou mais containers para os componentes
nele implantados.
• Responsável pelo gerenciamento e coordenação da
alocação de recursos:
Threads, processos, memória, conexões a BD.
Serviços: transações, nomes, segurança e persistência.
6. Componentes da Arquitetura EJB
Container EJB
• Fornece contexto de execução e contexto transacional
aos componentes.
• Registra o componente no serviço de nomes, cria e
destrói instâncias.
• Fornece interface remota para o componente.
• Gerencia transações, estado e persistência.
7. Componentes da Arquitetura EJB
Anotações(@...)
• Adiciona informação a classe, interface, método ou variável.
• Anotações são usadas também para outras finalidades por
exemplo:
Descrever o tipo de EJB
Session Beans(@Stateful, @Stateless)
Entity Bean(@Entity)
Message-Driven Bean(@MessageDriven)
8. Componentes da Arquitetura EJB
Como é um Bean?
• É uma classe com anotação;
import javax.ejb.Stateless;
@Stateless
public class StatelessSessionBean implements StatelessSession {
public String sayHello(String name) {
return "Hello, " + name + "!n";
}
.
.
9. Componentes da Arquitetura EJB
Tipos de EBJ:
O componente EJB possui três tipos fundamentais que são:
• Session Bean
– Stateful
– Stateless
• Entity Bean
• Message-Driven Bean
– Point-to-point (queue)
– Publish-subscriber (topic)
10. Componentes da Arquitetura EJB
• Session Bean
• Representa uma sessão de um único cliente;
• Pode atualizar dados em bancos de dados, mas não representa os
dados;
• Vida relativamente curta;
• Removido quando ocorre queda do container cliente tem de
restabelecer um novo objeto sessão para continuar o trabalho;
11. Componentes da Arquitetura EJB
1. Session Bean
Tipos de Session Bean:
1. @Stateful
Matém o estado da informação retido pela duração da sessão.
Dedicado a um único cliente, não podendo ser acessado por
outros clientes. Ex: compra com cartão de crédito.
12. Componentes da Arquitetura EJB
Exemplo do uso :
import javax.ejb.Stateful;
@Stateful
public class StatefulSessionBean implements StatefulSession {
public String sayHello(String name) {
return "Hello, " + name + "!n";
}
.
.
.
13. Componentes da Arquitetura EJB
1. Session Bean
Tipos de Session Bean:
1. @Stateless
Não possui estado conversacional.
Não é dedicado a um único cliente.
Duração de um intervalo de execução de um serviço invocado
pelo cliente.
14. Componentes da Arquitetura EJB
Exemplo do uso :
import javax.ejb.Stateless;
@Stateless
public class StatelessSessionBean implements StatelessSession {
public String sayHello(String name) {
return "Hello, " + name + "!n";
}
.
.
.
15. Componentes da Arquitetura EJB
• Entity Bean
• Participa em transações;
• Possibilita acesso compartilhado por múltiplos usuários;
• Representa dados armazenados de forma persistente;
• Possui “vida longa”, ou seja, dura tanto quanto os dados em um banco
de dados;
• Uma falha do servidor é transparente ao cliente;
16. Componentes da Arquitetura EJB
• Message-Driven Bean
• EJB que é acionado de forma assíncrona;
• Trabalha totalmente vinculado ao conceito de utilização de um serviço
de mensagens;
• Utiliza a API do Java Message Service (JMS) em conjunto com Session
Beans;
• Serviços de mensagens introduzem novos conceitos de arquiteturas e
aumenta a confiabilidade da solução;
17. Componentes da Arquitetura EJB
1. Message-Driven Bean
Existem dois tipos de destinos JMS:
– Point-to-point (queue): uma mensagem enviada para a fila
será consumida apenas por um cliente;
– Publish-subscriber (topic): uma mensagem pode ser
recepcionada por múltiplos clientes;
18. Componentes da Arquitetura EJB
Interfaces
• Clientes acessam o Session Bean através de uma interface Java
simples (POJI);
• Métodos são publicados através desta interface;
• A interface deve ser implementada pela classe do Bean;
19. Componentes da Arquitetura EJB
Tipos de Interfaces:
Interface Remota
• Pode funcionar em uma máquina diferente e em uma máquina virtual
Java (JVM) diferente da qual o EJB está executando;
• Pode ser um componente Web, um cliente J2EE, ou um outro EJB;
• Para um cliente remoto, a posição do EJB é transparente;
20. Componentes da Arquitetura EJB
Exemplo do uso :
import javax.ejb.Remote;
@Remote
public interface StatelessSession {
public String sayHello(String name);
public String mostraDataAtual();
public String multiplica(int x, int y);
}
21. Componentes da Arquitetura EJB
Tipos de Interfaces:
Interface Local
• Deve funcionar na mesma JVM que o bean que ele acessa;
• Pode ser um componente web ou outro EJB;
• Ao cliente local, a posição do EJB que ele acessa não é transparente;
22. Componentes da Arquitetura EJB
Exemplo do uso :
import javax.ejb.Local;
@Local
public interface StatelessSession {
public String sayHello(String name);
public String mostraDataAtual();
public String multiplica(int x, int y);
}
23. Componentes da Arquitetura EJB
Tipos de Interfaces:
Classe bean
• Contém a lógica do negócio;
• Deve implementar no mínimo uma interface;
• Pode implementar mais de uma interface;
• Deve ser anotada com o seu tipo, ex: @Stateless;
• Interação nunca é feita diretamente com uma instância do Bean, mas
com Stubs que são gerados automaticamente pelo container;
24. Servidor de Aplicação
GlassFish
• O GlassFish Enterprise Server, desenvolvido para plataforma
Java EE;
• É um servidor de aplicações de código aberto de nível
corporativo que oferece desempenho, confiabilidade,
produtividade e facilidade de uso.
http://br.sun.com/practice/software/glassfish/index.jsp
25. Conclusão
• EJB 2 era muito complexo de usufruir dos serviços, implementá-los era
inviável e usá-los era difícil.
• EJB 3.0 é uma solução viável para aplicações “corporativas”
desenvolvimento EJB vem melhorando muito.
• EJB 3.0 permite a reutilização de código.
• EJB 3.1 irá simplificar mais ainda o desenvolvimento EJB.
26. Referencias
http://api.ning.com/files/n--bYDgNKr*WxtDkvbvVFbQ5OnGBPjfXxp6qhktGuHckyM7XlI5O-
pgoTegf3crvaqfaE3OCxHgQR9xUyoBLvUm-j4Ma8WGc/ejb.odp
http://www.slideshare.net
http://pt.wikipedia.org
www.j2eebrasil.com.br
java.sun.com
DOMINANDO ENTERPRISE JAVABEANS
de SCOTT W. AMBLER, ED ROMAN, TYLER JEWELL
JBoss Web Site: http://labs.jboss.com/portal/jbossejb3
http://pt.wikibooks.org
http://java.sun.com/products/ejb/
[MACIEL, 2002] MACIEL, F. R. Modelagem do catálogo e autenticação do direto utilizando j2ee e jaas. Porto
Alegre, RS, 2002. 72 f. Monografia (Bacharelado em Ciência da Computação) – Instituto de Informática,
Universidade Federal do Rio Grande do Sul. Disponível em: <http://www.inf.ufrgs.br/procpar/direto/trabalhos/
monografia.pdf>