enterprise javabeans simples e descomplicado, na prática

24
Slide 1 EJB simples e descomplicado, na prática TDC2012

Upload: globalcode

Post on 18-Dec-2014

3.052 views

Category:

Technology


4 download

DESCRIPTION

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

TRANSCRIPT

Page 1: Enterprise JavaBeans simples e descomplicado, na prática

Slide 1

EJB simples e descomplicado, na prática

TDC2012

Page 2: Enterprise JavaBeans simples e descomplicado, na prática

Slide 2

Palestrantes

Kleber Xavier – Arquiteto Senior / [email protected]

Vinicius Senger – Arquiteto Senior / [email protected]@vsenger

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

Page 3: Enterprise JavaBeans simples e descomplicado, na prática

Slide 3

Agenda

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

Page 4: Enterprise JavaBeans simples e descomplicado, na prática

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

Page 5: Enterprise JavaBeans simples e descomplicado, na prática

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

Page 6: Enterprise JavaBeans simples e descomplicado, na prática

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

Page 7: Enterprise JavaBeans simples e descomplicado, na prática

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

Page 8: Enterprise JavaBeans simples e descomplicado, na prática

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 ...

Page 9: Enterprise JavaBeans simples e descomplicado, na prática

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

Page 10: Enterprise JavaBeans simples e descomplicado, na prática

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

Page 11: Enterprise JavaBeans simples e descomplicado, na prática

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

Page 12: Enterprise JavaBeans simples e descomplicado, na prática

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)

Page 13: Enterprise JavaBeans simples e descomplicado, na prática

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)

Page 14: Enterprise JavaBeans simples e descomplicado, na prática

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; }}

Page 15: Enterprise JavaBeans simples e descomplicado, na prática

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

Page 16: Enterprise JavaBeans simples e descomplicado, na prática

Slide 16

EJB 3.x

• Uso:– Componentes são injetados dentro dos

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

componente

Page 17: Enterprise JavaBeans simples e descomplicado, na prática

Slide 17

EJB 3.x

• Usando o EJB na versão 3.x

Injeção de dependência

Page 18: Enterprise JavaBeans simples e descomplicado, na prática

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

Page 19: Enterprise JavaBeans simples e descomplicado, na prática

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

Page 20: Enterprise JavaBeans simples e descomplicado, na prática

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

Page 21: Enterprise JavaBeans simples e descomplicado, na prática

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.

Page 22: Enterprise JavaBeans simples e descomplicado, na prática

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

Page 23: Enterprise JavaBeans simples e descomplicado, na prática

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

Page 24: Enterprise JavaBeans simples e descomplicado, na prática

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