Você está na página 1de 22

EJB 3.

0 Apresentao
Caio Nakashima caio.nakashima@mds.gov.br caionakashima@gmail.com

Agenda
Introduo Mapeamento Objeto Relacional Linguagem de Consulta e Persistncia WebService Exerccios

Introduo
Tecnologia Enterprise JavaBeans (EJB) um dos ncleos da especificao JAVA EE5. um framework para construir aplicaes corporativas orientadas objeto, distribudas e baseadas em componentes de negcio. As aplicaes EJB so escritas em JAVA, so escalveis e podem ser implementadas em qualquer plataforma que suporta a especificao EJB. Aplicaes EJ B so implementadas e executadas sob o controle do containter EJB.

Introduo (2)
A especificao EJB 3 foi publicada em maio de 2006. Houve uma mudana radical da tecnologia em relao s verses anteriores. A manipulao da persistncia de dados sofreu uma grande mudana. Persistncia no mais um servio provido por um continer EJB mas provido por um servidor que segue a especificao JPA (Java Persistence API). Aplicaes Java que necessitam de persistncia mas no necessitam dos servios providos por um continer EJB pode ser persistido fora do continer EJB por um provedor de persistncia EJB.

Arquitetura EJB

Fonte: http://www.jcp.org/en/jsr/detail?id=220.

Arquitetura EBJ

Fonte: Head First EJB By Bert Bates, Kathy Sierra ISBN: 0596005717 Publisher: O'Reilly

Introduo(3)
A tecnologia J2EE prov servios para aplicaes corporativas utilizando arquitetura multi camadas. Aplicaes J2EE so baseadas em JAVA e tambm para WEB que podem ser escritas uma vez e implementadas em quaisquer continer J2EE padro. Um servidor de aplicaes um ambiente que contm o continer. Exemplos de fornecedores que suportam a especificao J2EE:
SUN, IBM, Oracle, BEA, Jboss, entre outros.

Camada de Apresentao
Servlets, Pginas JSP e componentes JSF. As aplicaes so desenvolvidas e implantadas e executadas em um continer Web. Um cliente pode interagir com um continer WEB com um navegador ou um applet. Tanto com protocolo http ou https.

Camada de Negcio
Processamento do negcio
Session beans Message-drive beans

Persistncia dos dados


Entity beans JPA Java Persistence API

Complemento Arquitetura EJB


Outros servios que o continer J2EE oferece so:
WebServices Java Messaging Service Adaptadores de Recursos

Pode-se acessar um EJB diretamente de uma aplicao Java, por exemplo Swing, sem passar por um continer web. A aplicao Java pode ser isolada o ou rodar e um continer de aplicao cliente (ACC).
Um ACC possibilita um cliente executar em seu prprio JVM for do continer EJB para acessar um nmero limitado de servios EJB.

Arquitetura EJB (2)


Oferece um padro para desenvolvimento de aplicaes distribudas, orientado objetos e baseando em componentes de negcio. Os componentes desenvolvidos em uma estrutura EJB so:
Session bean Message-driven beans.

Existem muito objetos encapsulados em um processo de negcio. Estes componentes podem ser combinados para criar uma aplicao. Se a os EJBs forem bem projetados, eles podem ser reutilizados por outras aplicaes. EJBs so distribudos e podem estar em diferentes servidores podem ser chamados por clientes remotos de sistemas diferentes.

Arquitetura (session bean)


Um session bean deve ter uma interface de negcio que pode ser remota ou local. Um cliente remoto invoca a interface remota conforme o diagrama abaixo:

Arquitetura (message-driven)
um recepiente de para mensagem JMS. O cliente pode ser uma aplicao Java ou um componente J2EE enviando um mensagem JMS para uma pilha de mensagem ou tpico. A pilha de mensagem ou tpico pode ser gerenciado por um continer J2EE ou um servidor JMS dedicado.

Arquitetura (Entity Bean)


Entity bean tem uma vida longa e necessitam ser persistidos. Antes do EJB3, eram definidos como componentes acessveis remotamente como session e messagedriven beans. No EJB 3, entity bean so objetos Java e assim podem utilizar caractersticas orientadas a objeto como herana e polimorfismo que entity beans no podiam. Em EJB3, entidades so persistidas por uma engrenagem de persistncia que implementou a especificao JPA A engrenagem de persistncia pode rodar em um continer EJB ou fora do continer onde uma aplicao no necessite dos servios EJB.

Servios de Continer EJB


Suporta concorrncia e todos os componentes EJB so threads seguros. Prov pooling de instncias EJB. Balanceamento de carga e clustering so servios que contribuem para escalabilidade do EJB. JNDI (Java Naming and Directory Interface) Java RMI-IIOP (Remote Method Invocation run over Internet Inter-Orb Protocol) que permite uma sesso ser acessada remotamente por um cliente. Transparncia de local (JVM). Transformar stateless session em WebServices

JPA Persistence Engine


Muitas aplicaes no necessitam dos servios de um continer EJB mas necessitam de servios de persistncia. JPA foi publicado como uma especificao em separado As aplicaes executadas fora do continer EJB tambm podem usufruir dos servios do JPA. Os servios incluem:
Entity Manager Object Relational Mapping Java Persistence Query Language (JPQL)

JPA Persistence Engine (2)


Entity Manager prove servios para persistncia, gerncia de transao e gerncia de ciclo de vida das entidades. Anotao Object/Relational prove mapeamento das entidades em tabelas relacionais. JPQL utilizado para recuperar entidades persistidas. Esta especificao recente, e o poder do mapeamento O/R associado aos produtos como Hibernate e Oracle Toplink.

JPA Persistence Engine (3)


A especificao JPA foi desenhada baseada nestes dois produtos. Toplink e Hibernate so as engrenagens padro de alguns continer EJB3. Os continer Sun GlassFish e Oracle Application Server 11g utiliza Toplink como engrenagem de persistncia embutido. O continer JBoss EJB 3 utiliza Hibernate como engrenagem de persistncia embutido.

Diferenas entre EJB2 x EBJ3


A principal diferena esta na forma de manipulao da persistncia.
Antigamente era limitado o mapeamento objeto relacional entre entidades e tabelas relacionais. Herana e polimorfismo no era possvel em verses anteriores. Uma entidade EJB3 um objeto Java; no mais um entity bean.

An EJB 3 entity is truly a Java object; this could not be said of an entity bean.

Diferenas entre EJB2 x EBJ3 (2)


Introduo de metadata annotations (anotaes de metadados) utilizado como uma alternativa para descritores de implementao XML para configurao de componentes EJB e especificao do mapeamento objeto relacional das entidades. EJB Query language (EJB QL) melhorou muito.

Exemplo
Criar uma classe Event conforme o diagrama abaixo. Instanciar a classe em um objeto e persistir o objeto em qualquer banco de dados. Material necessrio:
Biblioteca Hibernate, Netbeans, SGBD.

Event Event_ID (PK) Titulo DataEvento Endereco

SGBD ?????

Exerccio
Criar uma classe denominada Pessoa . Instanciar um objeto e fazer sua persistncia.

Pessoa Pessoa_ID (PK) Nome Sexo Data_nascimento

SGBD ?????

Você também pode gostar