1 J2EE (Java Enterprise Edition) EJB 3.0 (Enterprise JavaBeans) Maurício Rosa
Jun 06, 2015
1
J2EE (Java Enterprise Edition) EJB 3.0 (Enterprise JavaBeans)
Maurício Rosa
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.
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.
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.
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.
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.
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)
Componentes da Arquitetura EJBComo é 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"; }
.
.
.
Componentes da Arquitetura EJB
Tipos de EBJ:
O componente EJB possui três tipos fundamentais que são:
1. Session Bean1. Stateful2. Stateless
2. Entity Bean3. Message-Driven Bean
1. Point-to-point (queue)2. Publish-subscriber (topic)
Componentes da Arquitetura EJB
1. 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;
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.
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"; }
.
.
.
Componentes da Arquitetura EJB
1. Session Bean
Tipos de Session Bean:
2. @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.
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"; }
.
.
.
Componentes da Arquitetura EJB
2. 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;
Componentes da Arquitetura EJB
3. 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;
Componentes da Arquitetura EJB
3. Message-Driven Bean
Existem dois tipos de destinos JMS:
1. Point-to-point (queue): uma mensagem enviada para a fila será consumida apenas por um cliente;
2. Publish-subscriber (topic): uma mensagem pode ser recepcionada por múltiplos clientes;
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;
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;
Componentes da Arquitetura EJB
Exemplo do uso :
import javax.ejb.Remote;
@Remotepublic interface StatelessSession {
public String sayHello(String name);
public String mostraDataAtual();
public String multiplica(int x, int y);
}
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;
Componentes da Arquitetura EJB
Exemplo do uso :
import javax.ejb.Local;
@Localpublic interface StatelessSession {
public String sayHello(String name);
public String mostraDataAtual();
public String multiplica(int x, int y);
}
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;
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
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.
Referenciashttp://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>
27
FIM