Download - Tutorial JBoss Seam

Transcript
Page 1: Tutorial JBoss Seam

JBOSS SEAM

Projeto SETEC/SIGA/SIEP

Eder Nogueira

Camila Yokoigawa

Natal, Maio de 2007

Page 2: Tutorial JBoss Seam

Sumário

1. Introdução ao Jboss Seam.

2. Seam: Integração EJB 3.0 e JSF

3. Integração com o AJAX

4. Contextos Seam

5. Conclusões.

Page 3: Tutorial JBoss Seam

Introdução ao Jboss Seam

● Desenvolvido por Gavin King, criador do Hibernate

● Integração entre EJB3 e JSF através de componentes

contextuais.

● Integrante do JBoss Enterprise Middleware Suite – JEMS

● Agrega outras tecnologias: AJAX, jBPM,Web Services, JMS,

Portlets

Page 4: Tutorial JBoss Seam

Introdução ao Jboss Seam

Page 5: Tutorial JBoss Seam

Seam: Integração EJB 3.0 e JSF

● JSF e EJB 3.0 são duas das mais novas "propriedades" do

JAVA EE 5;

● EJB 3 é um novíssimo modelo de componente de negócio

do lado do servidor e lógica de persistência e o JSF é um

ótimo modelo de componente para a camada de

apresentação;

Page 6: Tutorial JBoss Seam

Seam: Integração EJB 3.0 e JSF

● Infelizmente, nenhum deles estão habilitados para resolver

todos os problemas por si só trabalhando melhor juntos;

● A especificação JAVA EE 5 não provê uma maneira padrão

para integrar os dois modelos de componentes;

Page 7: Tutorial JBoss Seam

Seam: Integração EJB 3.0 e JSF

● Felizmente, os criadores de ambos os modelos previram

esta situação e forneceram pontos padrão de extensão para

reservar extensão e integração de outras soluções.

● Seam unifica o modelo de componente de JSF e EJB3,

eliminando a "colagem de código" e deixando o

desenvolvedor pensar sobre o problema da camada de

negócio.

Page 8: Tutorial JBoss Seam

Integração com o AJAX

● Seam suporta 2 soluções livres JSF baseadas em AJAX:

ICEfaces e Ajax4JSF.

● Estas soluções deixam você adicionar potencialidades para

sua interface sem a necessidade de escrever código

JavaScript.

● Seam também fornece uma camada remota e interna

JavaScript para componentes EJB3.

Page 9: Tutorial JBoss Seam

Integração com o AJAX

● Clientes AJAX podem facilmente chamar componentes do

lado do servidor e sobrescreve-los para tópicos JMS, sem a

necessidade de uma camada de ação intermediária.

Page 10: Tutorial JBoss Seam

Contextos Seam

● Os dois conceitos centrais no Seam são a noção de

contexto e de componente.

● Os componentes Seam são POJOs (Plain Old Java

Objects), Java Beans ou EJB3 Beans. Seam suporta os

seguintes componentes:

Page 11: Tutorial JBoss Seam

Contextos Seam

● O framework provê uma integração entre as

camadas de uma aplicação web. Porque ele

elimina os velhos problemas de uma

aplicação web não ter acesso ao contexto da

camada de negócio e vice/versa.

Page 12: Tutorial JBoss Seam

Contextos Seam

● Os contextos básicos do Seam são:

Stateless Context;

Event(request) context;

Page Context;

Conversation Context;

Session Context;

Business Process Context;

Application Context;

Page 13: Tutorial JBoss Seam

Contextos Seam

● Stateless Context: Mesmo conceito do Stateless

do EJB criado justamente para integração

com este tipo de EJB.

● Event Context: Como o nome mesmo diz,

os objetos registrados neste contexto vão

estar disponíveis durante a execução de um

determinado evento.

Page 14: Tutorial JBoss Seam

Contextos Seam

● Page Context: Contexto já conhecido por todos

que trabalham com aplicações web, esta

associado ao processo de renderização,

carregamento, lauding de uma página.

● Session Context:Este também é muito

conhecido por todos que trabalham com

aplicações web.

Page 15: Tutorial JBoss Seam

Contextos Seam

● Em resumo, este contexto inicia quando

acessamos a primeira tela da aplicação e só

será destruído quando fecharmos nosso

browser ou fazermos um logoff

implementado pela aplicação.

Page 16: Tutorial JBoss Seam

Contextos Seam

● Conversation Context: É um dos contextos que

diferencia o Seam de qualquer outro

framework existente no mercado.Com este

contexto podemos criar unidades de

conversação e registrar nestas unidades

todos os objetos e serviços que a aplicação

vai necessitar usar quando a mesma estiver

sendo executada sobre este contexto

Page 17: Tutorial JBoss Seam

Contextos Seam

● Neste contexto mesmo outras instâncias da

aplicação sendo acessadas em janelas

diferentes não terão acesso aos artefatos

registrados no contexto da outra, ou seja a

cada nova instância da aplicação em uma

nova janela se caracteriza como uma

instância independente, assim uma não terá

acesso as informações da outra mesmo

sendo executadas na mesma instância do

browser.

Page 18: Tutorial JBoss Seam

Contextos Seam

● Business Process Context: Mais um contexto

novo criado pelo Seam. Foi criado

especialmente para trabalharmos com fluxos

de trabalho(workflow) e garante para nós

que qualquer objeto ou serviço registrado

neste contexto vai estar disponível até o fim

do fluxo.

Page 19: Tutorial JBoss Seam

Contextos Seam

● O mesmo fica disponível para múltiplas

interações e múltiplos usuários e seu estado

é persistente;

● Ou seja, se eu fechar a aplicação e no dia

seguinte acessar ela novamente os objetos

registrados no fluxo em questão estarão ali

com as informações que foram deixadas

pela ultima vez;

Page 20: Tutorial JBoss Seam

Contextos Seam

● Application Context: E por ultimo, o já conhecido

contexto de aplicação, tudo que registrarmos

neste contexto fica disponível para todos que

acessarem a mesma, ou seja devemos

registrar neste contexto somente os serviços

que serão acessados por todos e que são

imutáveis , pois este contexto só é atualizado

no “startup” do servidor web.

Page 21: Tutorial JBoss Seam

Conclusões

● Base para o padrão web beans( padrão de

frameworks da web 2.0) JSR 299

● Integração de tecnologias padrão de mercado

como EJB3,JSF, jBPM

● Contexto web e da aplicação( EJB ) integrados

● Uso constante de anotações para configuração das

aplicações

● Aprendizagem fácil por já usar frameworks

conhecidos como JSF, EJB3, Hibernate e JBPM

● Necessidade de conhecermos a fundo das

tecnologias Java 5 JEE 5