2. 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.
3. 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
5. 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;
6. 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;
7. 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.
8. 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.
9. 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.
10. 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:
11. 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.
12. 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;
13. 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.
14. 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.
15. 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.
16. 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
17. 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.
18. 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.
19. 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;
20. 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.
21. 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