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 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";
}
.
.
.
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)
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;
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:
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.
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
•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
•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
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;
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;
@Remote
public 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;
@Local
public 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.
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>