Introdução ao EJB

Postado em

A especificação do EJB facilita a vida do desenvolvedor de aplicativos que se encaixem em perfis de Aplicações Distribuídas, Ou seja, se você precisa desenvolver aplicativos que necessitem distribuir diferentes componentes em maquinas separadas, EJB é o produto feito exclusivamente para isso !!! Antes de considerar a tecnologia, é necessário possui um entendimento dos conceitos básicos que defendem a sua existência.

O que é um EJB ?

É um componentes portável e reusável responsável por encapsular alguma regra de negócio. Por exemplo, um EJB poderia gerenciar as emissões de fatura de um setor de cobrança. Uma variedade de outras aplicações denominadas “clientes” locais ou remotos poderiam chamar os métodos deste EJB. Exemplos disto seriam aplicativos de contabilidade e vendas que poderiam ser os vulgos “clientes” deste EJB. Ou seja, este dois aplicativos poderiam estar executando este EJB usando chamadas locais ou remotas, dependendo de onde as mesmas estariam instaladas. Isto é possivel pois os EJB são executados dentro um container, que permitem os desenvolvedores se focarem a colocar as lógicas de processamento dentro destes componentes sem se preocuparem com serviços de infraestrutura como chamadas locais ou remotas, controles de transações ou de segurança. Por mais incrível que parece, os EJB atualmente são desenvolvidos com Plain Old Java Objects conhecidos como POJOs no qual os desenvolvedores podem usar a filosofia de meta-data annotations para declarar e especificar como eles serão gerenciados e executados.

Tipos de EJBs

Atualmente temos 4 opções de EJB:
Statelless Session Bean – responsável por executar as mais tarefas distintas que não armazenem estado na execução conhecido atravez do conceito de programação STATELESS.
Statefull Session Bean – tem as mesmas responsabilidades do EJB Stateless, armazenando o estado da execução.
Entity Bean – responsável por representar uma entidade de negocio que existe dentro de uma base de dados.
Message Driven Bean – responsável por trabalhar com o gerenciamento de mensagens assíncronas baseado em uma outra especificação conhecida como Mensagens JMS.

Para os interessados neste poderosa tecnologia, esta disponível free para download o primeiro capitulo do livro EJB in Action que apresenta com mais profundidade todos os estes conceitos. Vale a pena lembra que a especificação 3.1 já esta oficializada e que novas características já foram adicionadas mas que ainda não estão disponíveis no geral pelos provedores envolvidos.

“Pelo que também Deus o exaltou soberanamente e lhe deu um nome que é sobre todo o nome…” Filipenses 2:9

Anúncios

6 comentários em “Introdução ao EJB

    Fábio disse:
    05/03/2010 às 13:55

    Continue escrevendo sobre EJBs, muita gente nunca teve contato com essa tecnologia, apesar de ser tão interessante.

    Algumas observações em relação a postagem:

    1 – EJBs podem tranquilamente residir na mesma máquina que o cliente, e sem interfaces remotas. Inclusive essa configuração é encorajada no web profile do Java EE 6. Nesse caso o conceito de distribuição fica um pouco vago, apesar de válido;
    2 – Como conclusão da observação anterior, ressalva-se que o EJB não é feito exclusivamente para distribuir regras de negócio em máquinas separadas;
    3 – Stateless Session Beans e Stateful Session Beans não tem a mesma responsabilidade, e o conceito de guardar estado precisa ser melhor explicado.
    Quando o cliente chama um bean do tipo stateless, o servidor pode gerenciar a instância do bean da maneira que bem entender. Pode fazer pool, usar uma fábrica ou simplesmente dar um new, dentre outras inúmeras abordagens. O bean pode guardar estado enquanto estiver em execução, porém o estado será transiente. Logo, é mais usado para operações idempotentes.

    Já os beans do tipo stateful não podem ser gerenciados de qualquer maneira, pois estão vinculados ao cliente que o chamou. Nesse caso, o cliente pode alterar o estado do bean de maneira persistente. Portanto, pode-se chamar o mesmo bean num momento posterior, que será recuperado da maneira que foi deixado da última vez. Para isso o servidor utilizará algum mecanismo de passivação.
    4 – O conceito de “Entity Bean” mudou drasticamente do EJB 2 para o EJB 3, e muitos já nem usam essa nomenclatura, apesar de válida.

    Fernando Franzini disse:
    05/03/2010 às 14:28

    Oi Fabio
    Concordo em partes com o que vc escreveu…..mas entenda que eu omiti estas informações nas “entre linhas” que vc pontou justamente para não estender o post. E eu até poderia colocar mais outras considerações…. Em contra partida discordo de algumas coisas….mas independente de sua intensão, obrigado pelo comentário. A paz.

    Camilo Lopes disse:
    06/03/2010 às 10:20

    opa! Fernando,

    Legal o post. parabens! Claro e bem objetivo.

    Herminio Torres disse:
    08/03/2010 às 18:26

    Ei onde eu posso comprar ou baixar os livros do interlink?!
    grato!

    Fernando Franzini disse:
    09/03/2010 às 12:57

    Oi Herminio

    Os livros podem ser comprados em http://www.temporeal.com.br e http://www.amazon.com.
    Abraços

    Sergio Fantin disse:
    07/12/2010 às 23:52

    Parabéns pelo post!

    Pra quem já conhece é sempre bom frisar os conceitos. Pra quem não conhece é um ótimo ponto de partida.

    Abraços…

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s