enterprise javabeans simples e descomplicado, na prática

Post on 18-Dec-2014

3.052 Views

Category:

Technology

4 Downloads

Preview:

Click to see full reader

DESCRIPTION

Slides utlizados na apresentação de EJB's realizada no #TDC2012 com Vinicius Senger e Kleber Xavier da Globalcode

TRANSCRIPT

Slide 1

EJB simples e descomplicado, na prática

TDC2012

Slide 2

Palestrantes

Kleber Xavier – Arquiteto Senior / Globalcodekleber@globalcode.com.br

Vinicius Senger – Arquiteto Senior / Globalcodevinicius@globalcode.com.br@vsenger

Autores Livro Gratuito: “33 patterns com Java”http://www.slideshare.net/vsenger/33-design-patterns-com-java

Slide 3

Agenda

• Introdução• Por que EJB• Tipos de EJB

Slide 4

Características do EJB

• EJB é um modelo de componentes com foco em arquiteturas multi-camadas (baseado em princípios básicos de rede)

– RMI (Remote Method Invocation)– JNDI (Java Naming and Directory Interface)

• Responsável pela regra de negócio das aplicações Web e não Web

• EJB é um modelo de alto nível para objetos distribuídos / computação distribuída

Slide 5

Por que EJB ?

• Componentes de Negócio Distribuídos• Vários tipos de aplicações clientes podem utilizar as

mesmas regras de negócio;

• Infra-estrutura do Container de EJBs• Segurança• Controle Transacional• Gerenciamento de recursos• Agendamento de tarefas

• Padrão de Mercado para Componentes de Negócio

Slide 6

Rede LocalJVM + Container EE

Por que EJB ?

• Componentes de Negócio Distribuídos

Regras de Negócio

Java Web

Swing / JavaFX

Web Browser

web

Cliente SOA / WS

Slide 7

Por que EJB ?

• Infra-estrutura do Container de EJBs

Se

gu

ran

ça

Co

ntro

le Tra

nsa

cio

na

l

Es

calab

ilida

de

Dados Legados

+regras

Regrasde Negócio

Config. de Ambiente

Middleware de Mensagens

Slide 8

Por que EJB ?

• Padrão de Mercado para Componentes de Negócio:• Oracle Glassfish e WebLogic;• Red Hat JBoss AS;• IBM WebSphere;• Apache Geronimo;• etc ...

Slide 9

TCP / IPAplicação

ApresentaçãoTransporte

rede

EJB Server / Container

JRMP / RMI - IIOP

java.net

java.rmi

javax.ejb

Nív el

pro

gra

maç

ão

Remote Method Invocation

Slide 10

• Java EE 1.4 – Session Bean (Stateless/Stateful)– Entity Bean (BMP/CMP)– Message Driven Bean

• Java EE 5– Session Bean (Stateless/Stateful)– Message Driven Bean

• OBS.: JPA (API de persistência que substitui Entity Bean, mas não é um EJB)

Tipos de EJBs

Slide 11

EJB 3.x

• Tipos:– Session beans (Stateless e Stateful)

– Message-driven beans

• Interface de negócio– Local

– Remota

– Service Endpoint (web services)

• Classe de implementação do componente– POJO somente com métodos do componente

• Uso simplificado

Slide 12

EJB 3.x

• Interface de negócio – Anotada com o tipo da interface:

@Local (javax.ejb)

@Remote (javax.ejb)

@WebService (JAX-WS ) (javax.jws)

Slide 13

EJB 3.x

• Classe de implementação do componente– Anotada com o tipo do componente:

@Stateless (javax.ejb)

@Stateful (javax.ejb)

@MessageDriven (javax.ejb)

Slide 14

EJB 3.x

• Classe de implementação:import br.com.globalcode.model.Item;import java.util.*;import javax.ejb.Stateful; @Statefulpublic class CarrinhoBean implements CarrinhoRemote { List<Item> itens = new ArrayList<Item>(); public void addProduto(int codigo, int qtd) { itens.add(new Item(codigo,qtd); } public List getProdutos() { return itens; }}

Slide 15

• Empacotamento / Deployment:

– É um jar com a classes dentro do seus respectivos pacotes;

– Contém um diretório META-INF com os deployment descriptors;

Programação para EJBs

Slide 16

EJB 3.x

• Uso:– Componentes são injetados dentro dos

clientes– Anotações definem a dependência com o

componente

Slide 17

EJB 3.x

• Usando o EJB na versão 3.x

Injeção de dependência

Slide 18

Enterprise Java Beans 3.1

• JSR 318

– Melhora ainda mais EJBs 3.0

– Menor curva de aprendizado

– Maior simplicidade para aplicações menos complexas

– Novos recursos promissores

• Principais mudanças

– Novo componente Singleton Bean

– Melhoria no agendamento de tarefas

– Alternativa simplificada a MDBs

– Simplicidade no uso em aplicações Web / Desktop

Slide 19

EJB Lite

• Subconjunto da EJB 3.1 API

• Não define API adicional

• Permite servidores mais leves para cenários simplificados– Nem toda aplicação utiliza 100% dos recursos

EJB

Slide 20

EJB Lite

EJB LITE EJB FULL

Interface Local/NoInterface SIM SIM

Interface Remota SIM

Stateless, Stateful, Singleton SIM SIM

JPA 2.0 SIM SIM

Chamadas Assíncronas SIM

MDBs SIM

Web Services EndPoints SIM

Compatibilidade EJB 2.x SIM

Interoperabilidade RMI-IIOP SIM

Timer Service SIM

Entity Beans SIM

CMT/BMT SIM SIM

Segurança Declarativa SIM SIM

Interceptors SIM SIM

Slide 21

Deploy de EJBs na camada Web

• Facilita o uso de EJBs com aplicações baseadas na Web

• Menor curva de aprendizado

• Simplicidade

• Agora é possível empacotar EJBs diretamente no arquivo .war

• Em aplicações n-camadas recomenda-se o uso de módulos EJBs, como na 3.0.

Slide 22

Deploy de EJBs na camada Web

ecommerce.ear

<<EJB>>CarrinhoCompra

s

jsp, servlets,img, etc.

ecommerce.war

carrinho.jar

<<EJB>>CarrinhoCompra

s

jsp, servlets,img, etc.

ecommerce.war

JAVA EE 5 JAVA EE 6

Slide 23

• Java EE 5 e 6 apresentaram muitas melhorias em relação às versões anteriores, facilitando bastante o desenvolvimento de aplicativos;

• Alguns recursos não especificados são complementados por frameworks de mercado como Spring

• Parte dos recursos que faltavam foram acrescentados no Java EE 6

• Java EE 7 terá recursos para Cloud:

@MultiTenancy

Conclusões

Slide 24

http://www.oracle.com/technetwork/java/javaee/overview/index.html

http://docs.oracle.com/javaee/5/tutorial/doc/

http://docs.oracle.com/javaee/6/tutorial/doc/

Mais Informações

top related