tutorial jboss seam

Post on 26-May-2015

203 Views

Category:

Software

4 Downloads

Preview:

Click to see full reader

DESCRIPTION

Tutorial introdutório sobre JBoss Seam

TRANSCRIPT

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

top related