JBOSS SEAM
Projeto SETEC/SIGA/SIEP
Eder Nogueira
Camila Yokoigawa
Natal, Maio de 2007
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.
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
Introdução ao 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;
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;
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.
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.
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.
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:
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.
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;
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.
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.
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.
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
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.
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.
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;
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.
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
Referências
http://juliocsmac.blogspot.com
http://docs.jboss.com/seam/1.2.1.GA/reference/en/
http://www.ime.usp.br/~reverbel/SMA-
6/Slides/seminarios/jbossSeam.pdf

Tutorial JBoss Seam

  • 1.
    JBOSS SEAM Projeto SETEC/SIGA/SIEP EderNogueira Camila Yokoigawa Natal, Maio de 2007
  • 2.
    Sumário 1. Introdução aoJboss 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 JbossSeam ● 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
  • 4.
  • 5.
    Seam: Integração EJB3.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 EJB3.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 EJB3.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 oAJAX ● 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 oAJAX ● 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 ● Osdois 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 ● Oframework 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 ● Oscontextos 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 ● StatelessContext: 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 ● PageContext: 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 ● Emresumo, 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 ● ConversationContext: É 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 ● Nestecontexto 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 ● BusinessProcess 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 ● Omesmo 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 ● ApplicationContext: 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 parao 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
  • 22.