quarta-feira, 18 de abril de 2007

Seam components

Os componentes Seam são POJOs (Plain Old Java Objects), Java Beans ou EJB3 Beans. Seam suporta os seguintes componentes:
  • EJB 3.0 stateless session beans

  • EJB 3.0 stateful session beans

  • EJB 3.0 entity beans

  • JavaBeans

  • EJB 3.0 message-driven beans

Vou falar agora um pouco sobre cada um, como o Seam utiliza suas funcionalidades para facilitar o desenvolvimento de sistemas.

EJB 3.0 Stateless Session Beans
São componentes que não mantém estado por múltiplas invocações, ou seja a cada nova invocação um novo estado é criado. Ele é usado em JSF Action Lsiteners, no entanto não prove propriedades para os componentes de tela do JSF. A vida de um EJB Stateless esta ligada ao Contexto Stateless do Seam

EJB 3.0 Stateful Session Beans
Ao contrário do Stateless este tipo de EJB mantém estado por múltiplas invocações. Com este estado aplicações não armazenam dados temporários em DATA BASES e sim no Stateful Session Beans. Este é umas da principais diferenças entre o Seam e outro frameworks web. As informações armazendas neste estado podem ser acessadas diretamente da sessão web( HttpSession ). O Seam manipula o ciclo de vida deste estado para vc evitando colisões entre diferentes estados em conversações diferentes.
Stateful Session Beans são usados com JSF action listener e com backing beans provendo propriedades para componentes de formulários JSF.
Por padrão Stateful Session Beans são registrado no contexto de conversation e o mesmo nunca pode ser registrado nos contexto Page or Stateless. Todas as requisições para o escopo Stateful Session Bean são serializadas pelo Seam.

EJB 3.0 Entity Beans
São Beans persistentes, objetos que armazenam os dados da aplicação. Este tipo de Bean não suporta bijection ou context demarcation. O Entity Beans não são usados em JSF action listener, no entanto tem grande utilização como provedores de dados as propriedades dos componentes de tela JSF. São muito usados com EJB Stateless Session Beans implementando a famosa funcionalidade CRUD (create, update, delete).
Por padrão os Entity Beans são adicionados no contexto de conversação(conversation) e nunca devemos adiciona-lo no contexto stateless

JavaBeans
Javabeans são usados no Seam como stateless e stateful session bean. No entanto o mesmo não prove as funcionalidades dos Session Beans como: declaração e demarcação de transações, declarações de segurança, eficiente clusterização e replicação, serviço de persistência EJB 3.0, entre outros.
Por padrão os JavaBeans são adicionados no contexto de Evento(event context).

EJB 3.0 Message-driven beans
Message-driven beans podem funcionar como componentes do Seam, no entanto os Message-driven beans são chamados(invocados) completamete diferente dos outros componentes do Seam, ao invés de serem invocados por variáveis de contexto eles ficam escutando mensagens enviadas para uma Fila ou Tópico JMS. Os Message-driven beans não podem ficar limitados a um contexto do Seam. Nem tem acesso ao estado da sessão ou conversação do Bean chamador. Entretanto suportam bijection e outras funcionalidades do Seam.


Bom por hoje é só, no próximo tópico vou falar sobre interceptors, como registrar os componetes no Seam, como definimos escopos para os Beans no Seam entre outras funcionalidades.

Até mais, abraços

2 comentários:

quartaclassica disse...

Dae seu maldito!
To passando pra dar um oi e dizer que tá bacana o teu blog.
Espero que continue empolgado para escrever as pérolas que tive o prazer de ouvir enquanto trabalhávamos juntos.
Grande abraço Mac.
Goga

Unknown disse...

oi Julio,

Estou fazendo meus estudos e estou começando a conhecer a plataforma J2EE. Eu tenho ouvido bastante falar sobre Stateless, Stateful, EJB e tudo mais. Será que seria possível me explicar um pouco mais sobre estes componentes, pois para mim ainda parece um bicho de 7 cabeças.
Muito obrigado

Júnior MORAES
Grenoble - França