Professional Documents
Culture Documents
JavaBeans 3.0
Parte 1: Introdução
ATENÇÃO: Este material contém algumas imagens retirardas da docomentação oficial da SUN e
adaptadas para este material. As mesmas podem ser encontradas no site www.sun.com. O objetivo
deste material é recompilar uma série de informações existentes em diversas fontes e que possam
ser utilizadas para o estudo da tecnologia EJB 3.0 pelo leitor. Ao final do material são apresentadas
as bibliografias utilizadas para a elaboração do material. Sugere-se que as mesmas sejam utilizadas
para aprofundar os conhecimentos nesta tecnologia.
1
O que é um Enterprise JavaBean
JavaBean
Para alguns, esta tecnologia parece complicada, mas eles podem simplificar o
desenvolvimento de aplicações de negócio por resolver alguns requerimentos de serviços nos
quais em um sistema robusto faz diferença.
Até a versão 2.1 o desenvolvedor precisava configurar muitas coisas em arquivos XML,
porém a partir da versão 3.0 muitas das configurações que eram feitas em XML agora
podem ser feitas através de anotações. O uso de anotações simplificou muito a escrita de
componentes EJB.
2
Vários requerimentos que um sistema robusto necessita estão listados abaixo junto com
o que os EJBs oferecem para suprir estas demandas. A maioria destes requerimentos são
aplicáveis na aplicação desde que tenham as seguintes necessidades.
· Gerenciamento da Persistência.
Persistência Muitas aplicações empresariais manipulam os dados
persistentes. Um bean de entidade (um EJB que representa o dado persistente em um
meio de armazenamento como um banco de dados relacional) é projetado para
prover gerenciamento automático de dados persistentes, inclusive dados legados. Isto
é feito a partir da versão 3.0 de EJB utilizando a API de persitência, Java Persitence
API.
· Portabilidade
Portabilidade.
dade Uma aplicação que é portável através de múltiplas plataformas de
hardware e sistemas operacionais faz melhor uso de dos recursos da sua empresa,
principalmente em se tratando de sistemas heterogêneos e provê uma futura
flexibilidade de integração. A portabilidade diminui os riscos de uma aplicação tornar-
se obsoleta quando sistemas operacionais são atualizados ou hardware são
substituídos. A especificação das tecnologias J2EE, assegura que os serviços para
sistemas empresariais estejam disponíveis através de vários fornecedores e
plataformas.
· Alta dispobilidade.
dispobilidade Sistemas de missão crítica necessitam estar disponíveis todo
tempo. Implementações de Enterprise Beans podem prover controle a falhas
automaticamente quando um servidor sai do ar por crash ou para manutenções,
quando a rede está indisponível ou não confiável. Enterprise beans também gerencia
uma religação de dados quando acontece uma falha de sistema.
· Escalabilidade.
Escalabilidade Aplicações normalmente crescem, aumentando o número de
usuários e novos requisitos. Por terem um ciclo de vida gerenciado pelo container as
instâncias dos beans que servem as requisições podem ser colocadas em um pool
3
para maximizar a eficiência de recursos. Componentes podem ser migrados para
balancear carga sem um cluster de processadores.
- Pouca reusabilidade da solução, porque estes sistemas muitas vezes não eram
adequados para a realidade WEB e desta forma o percentual de reconstrução era
muito alto e principalmente quando era necessário a construção de pontes (bridges),
porque as diferentes tecnologias não conversavam satisfatoriamente o custo
aumentava ainda mais.
- Caso fosse necessário conectar com um outro DBMS que não fosse o que foi feito
no projeto original exigia uma reprogramação muito grande principalmente por que
poucos sistemas eram três camadas com um foco orientado a MVC (Model-View-
Controller).
O conceito de Enterprise Java Beans não é recente, vêm dos monitores transacionais,
os “TP monitors” que vieram de um ambiente Mainframe. Estas máquinas antigas, porém
eficientes no papel que se dispuseram a fazer, trabalham com os monitores transacionais
porém de uma forma monolítica e não uma forma distribuída. Partindo deste princípio
formamos uma definição de EJB além da já apresentada e cunhada pela SUN.
5
Tipos de Enterprise Bean
Existem três tipos de enterprise beans, os quais serão estudados aqui neste curso. Os
capítulos seguintes discutem estes tipos de beans mais detalhadamente.
1 – Session Bean
Beans
eans: Executa uma tarefa para um cliente
1.1 – Stateless:
Stateless: Sem informação de estado
1.2 – Stateful:
Stateful: Com informação de estado
3 – Entity Beans
Beans:
eans: Representa um objeto de entidade de negócios que existe no
armazenamento persistente
6
Uma arquitetura com Enterprise Java Beans
Container de EJB
Um Enterprise Bean não pode rodar fora de um container, porque o mesmo gerencia
todo o aspecto de um enterprise bean em um ambiente de execução, por exemplo: o acesso
remoto ao bean, segurança, persistência, transações, concorrência, acesso aos recursos de
pool, etc.
O container isola o enterprise bean a partir do acesso direto das aplicações clientes
quando essas invocam uma chamada remota a um Enterprise Bean. Inicialmente, o
container, intercepta a invocação para assegurar: persistência, transação e segurança pelas
propriedades do Bean para toda a operação que o cliente executar. Como o container
gerencia todos esses fatores automaticamente para o bean, então o desenvolvedor não
precisa implementar este tipo de lógica no código do bean. O desenvolvedor pode focar nas
as regras de negócio enquanto o container cuida dos serviços solicitados pelo bean, os quais
são definidos em um arquivo chamado deployment descriptor. Veremos este arquivo mais
adiante.
7
Figura 1-1: Arquitetura de um sistema com EJBs
Um bean que não está em uso, por exemplo, pode ser armazenado a partir da
memória em algum outro mecanismo que varia entre tipos de EJB (Session , Entity e
Message Driven Bean) no servidor, enquanto a referência remota fica intacta. Quando o
cliente invoca um método na interface remota o container simplesmente revitaliza o bean
para servir a requisição, deixando o processo totalmente transparente para a aplicação
cliente.
Para isto o Enterprise Bean interage com o container através de três mecanismos:
· Métodos de CallBack: Todo EJB implementa uma interface Enterprise Bean, sendo
os métodos da interface chamados de métodos de callback. Cada método callback
8
alerta o bean de um diferente evento no seu ciclo de vida e o container invocará estes
métodos para notificar o Bean quando os eventos acontecem (criação, remoção,
persistência, etc.). Os métodos de callback dão chance ao bean de fazer algum
processamento antes ou depois de algum evento gerado pelo container. Até a versão
2.1 os EJBs deveria seguir uma nomenclatura exata para métodos do seu ciclo de
vida, porém com anotações os nomes dos métodos não mais são importantes e
podem variar. A notação antes do nome do método é que irá dizer qual dos métodos
do ciclo de vida que o mesmo representa. Por exemplo
@javax.annotation.PostConstruct será utilizado para anotar um método como
sendo o método a ser executado após a costrução de um Session Bean.
· EJBContext Interface: Todo EJB obtém um objeto de contexto de EJB, o qual é uma
referência direta para o container. A interface EJBContext provê métodos para
interagir com o container tanto que o bean pode requisitar a informação sobre o seu
ambiente como a identificação do cliente ou o status de uma transação ou pode obter
referências remotas para ele mesmo.
9
O Conteúdo de um enterprise bean
Você empacota os arquivos da lista anterior em um arquivo JAR EJB, o módulo que
arqmazena o enterprise bean. Um arquivo JAR EJB é responsável e pode ser usado por
diferentes aplicações.
Para montar uma aplicação J2EE, você empacota um ou mais módulos – como
arquivos JAR EJB – em um arquivo EAR que contém o arquivo JAR EJB do bean e outros
arquivos, também implanta o enterprise bean no servidor J2EE.
10
Empacotamento da aplicação
Uma aplicação J2EE e cada um de seus módulos possuem seus próprios descritores
de implantação. Um descritor de implantação é um documento XML com uma extensão
.xml que descreve configurações de implantação de um componente. Um descritor de
implantação do módulo do enterprise bean, por exemplo, declara atributos de transação e
autorizações de segurança para um enterprise bean. Como as informações do descritor de
implantação são declarativas, elas podem ser alteradas sem modificar o código-fonte do
bean. No momento de execução, o servidor J2EE lê o descritor de implantação e age sobre o
componente adequadamente.
Uma aplicação J2EE com todos os seus módulos é entregue em um arquivo Enterprise
ARchive (EAR). Um arquivo EAR é um arquivo Java Archive (JAR) padrão com uma extensão
.ear. Dentro deste arquivo EAR normalmente você adiciona arquivos Web Archive (WAR) e
JAR.
11
Benefícios da utilização de EJBs
Links interessantes:
JBoss: http://www.jboss.org
NetBeans: http://www.netbeans.org
Sun: http://java.sun.com/javaee
12
Quando usar EJBs
Você deve considerar o uso de EJBs se sua aplicação tiver alguns dos seguintes requisitos:
13
Tipos de EJBs
1. Session Beans:
Beans: executa uma tarefa para um cliente. Pode representar um serviço
(negócio). São divididos em Stateless Session Bean e Stateful Session Bean
14
Convenções de nomes para
para EJB
Bibliografia
1 - BURKE, Bill and MONSON-HAEFEL, Richard. "Enterprise JavaBeans 3.0". O'Reilly. 5 ed. 2006. 760 p.
15