Necessidade do uso de EJB ? Estrutura Atual

Bom dia povo do fórum.
Estou avaliando a necessidade de utilização de EJB’s em um projeto empresarial e gostaria de fazer algumas questões a quem tem mais experiencia na coisa.

Bom, a arquitetura de desenvolvimento atual, conta com um banco de dados ( no caso o postgres ) Framework de persistência Hibernate, backend em java e interface em Adobe Flex, utilizamos o BlazeDS para conectar o flex ao java, como sugestão inicial estamos usando Tomcat como servidor web.

Estamos levantando algumas questões e entre elas, com a estrutura atual com a comunicação entre a camada de aplicação e o backend estando separados e o uso do hibernate, é se existe a necessidade de usar EJB e apos esta definição qual servidor usar, JBOSS ou Glasfish?

Li em alguns lugares que seria possível, utilizar EJB’s ( ou pseudo ejbs ) com o tomcat, mas sei que o tomcat não é contêiner EJB. Por acaso as entidades do backend em java funcionam com EJBs ? Alguém ja utiliza esta estrutura e tem um feedback para prover ? O sistema proposto é ERP inicialmente estaremos utilizando um unico servidor para abrigar o backend em java e os swf que serão enviados as estações.

Fico grato por qualquer informação ou sugestão.

ATT
Anderson.

Bom Dia,

Amigo, participei recentemente de um projeto envolvendo Java + Flex, embora a maioria do pessoal sempre vá no BlazeDS logo de cara, sugiro que você dê uma analisada no framework GraniteDS.

Além de fazer tudo que o BlazeDS faz, ele também vem com um framework do lado flex, chamado Tide, que provê algumas funcionalidades bem interessantes como DI, uma estrutura que te incentiva a usar um Controller do lado Flex, mantendo assim um sincronismo interessante entre java e flex.

Além disso há também o GAS que é um gerador de classes AS3 a partir das classes Java, permitindo que você envie entidades flex ‘diretamente’ ao Java e o framework se encarrega dessa conversão de AS3 para Java, a comunicação fica bem transparente, é bem interessante.

Somado a isso você pode considerar o uso do Spring ou Jboss Seam. Nesse mesmo projeto estávamos usando o Seam(que atendeu muito bem) mas com nossa migração do front-end de Flex para HTML aproveitamos e migramos do Seam para o Spring(ajudou bastante na execução dos testes escritos, ao menos na versão 2 do Seam era bem complicado rodar os testes escritos via maven, subíamos um jboss embedded cujo start demorava aproximadamente 40s)

Bom, talvez eu não tenha respondido plenamente sua pergunta e tenha trazido mais dúvidas do que respostas, mas tenho certeza que, caso você decida dar uma investigada no que citei vai se surpreender positivamente.

Abs

GraveDigger, de fato, não respondeu a pergunta e trouxe outra duvidas :smiley:
Mas nesta fase o que precisamos é questionar mesmo hehe então obrigado, vou dar uma olhada nas tuas sugestões. Talvez não implementemos agora mas em projetos ou melhorias quem sabe.

Duvida rola em se é mesmo necessário uso de EJB com a estrutura atual utilizada. (hibernate + Java + Flex + Servidor WEB). Que ganho necessariamente teríamos em produtividade e desempenho .

E no caso da necessidade do uso de EJB, qual dos servidores seria mais indicado ( lembrando a dobradinha produtividade e desempenho) JBOSS ou GlasFish ?

No aguardo, obrigado.

[quote=Roidanton] Bom dia povo do fórum.
Estou avaliando a necessidade de utilização de EJB’s em um projeto empresarial e gostaria de fazer algumas questões a quem tem mais experiencia na coisa.

Bom, a arquitetura de desenvolvimento atual, conta com um banco de dados ( no caso o postgres ) Framework de persistência Hibernate, backend em java e interface em Adobe Flex, utilizamos o BlazeDS para conectar o flex ao java, como sugestão inicial estamos usando Tomcat como servidor web.

Estamos levantando algumas questões e entre elas, com a estrutura atual com a comunicação entre a camada de aplicação e o backend estando separados e o uso do hibernate, é se existe a necessidade de usar EJB e apos esta definição qual servidor usar, JBOSS ou Glasfish?

Li em alguns lugares que seria possível, utilizar EJB’s ( ou pseudo ejbs ) com o tomcat, mas sei que o tomcat não é contêiner EJB. Por acaso as entidades do backend em java funcionam com EJBs ? Alguém ja utiliza esta estrutura e tem um feedback para prover ? O sistema proposto é ERP inicialmente estaremos utilizando um unico servidor para abrigar o backend em java e os swf que serão enviados as estações.

Fico grato por qualquer informação ou sugestão.

ATT
Anderson.

[/quote]

Os requisitos da sua solução tem que apontar para o uso de EJB. Ou seja, pesquisa quais são as motivações para se usar ejb e veja se sua solução contempla isso…caso contrario fuja de ejb, é uma das maiores dores de cabeça de uma coporação. Leia aqui - http://www.guj.com.br/java/259560-arquitetura-de-desenvolvimento

Outra coisa que esqueci de citar.

Um dos pontos que você deve verificar é a experiência de sua equipe. Se o pessoal já trabalhou anteriormente com as tecnologias envolvidas no projeto, isso deve ser considerado pois impacta diretamente na produtividade.

O BlazeDS integra muito bem com o Spring, eu sugiro você usá-lo ao invés do EJB, assim, de quebra, você não precisará de um Application Server(Jboss ou Glassfish) um Tomcat ou até mesmo um jetty já atenderia seus requisitos para servdor.

Porém, se a equipe nunca tiver trabalhado com Spring ou com qualquer outro framework de DI e IoC talvez fiquem um pouco confusos no começo, se for um projeto curto talvez a curva de aprendizado não valha a pena.

Enfim, são vários quesitos que você deverá considerar, valorize bastante os quesitos internos(conhecimento da equipe, velocidade de aprendizado, entusiasmo com a adoção de novas tecnologias, etc) pois geralmente esses são os fatores que mais impactam no seu projeto, muito mais do que a diferença entre os frameworks.

Abs

GraveDigger.
Obrigado, acho que esta tua ultiima mensagen foi bastante esclarecedora. Embora possa e irei levar em consideração tudo isto. Cretio que o certo será mesmo começar com a estrtura atual onde não existe a necessidade do EJB e caso for necessário futuramente, portar as funcionalidades para um servidor que implemente isto.

Mas duvida inicial permanece :smiley: