Applilcation Server sem EJB  XML
Índice dos Fóruns » Java Enterprise Edition (Java EE)
Autor Mensagem
Jedi_FeniX
Virtual Machine Man
[Avatar]

Membro desde: 26/04/2007 14:32:30
Mensagens: 586
Offline

Vale a pena usar um application server sem usar EJB?
Por exemplo usar o app server só para controle de transações e criação de pool de conexões com o banco de dados? Ou seja, gostaria de saber os casos que seriam interessantes usar um application server ao invés de um servlet container.

www.bau-de-dev.com
julioviegas
Debugger

Membro desde: 14/08/2008 07:50:52
Mensagens: 70
Offline

Jedi_FeniX wrote:Vale a pena usar um application server sem usar EJB?
Por exemplo usar o app server só para controle de transações e criação de pool de conexões com o banco de dados? Ou seja, gostaria de saber os casos que seriam interessantes usar um application server ao invés de um servlet container.


Sim. Procure por Spring Framework, ele eh sua resposta... Com ele vc possui controle de transacoes e suporte a pool de conexoes de banco de dados independente de container.

Att,
JV -- julioviegas.com
[WWW] [MSN] [ICQ]
Jedi_FeniX
Virtual Machine Man
[Avatar]

Membro desde: 26/04/2007 14:32:30
Mensagens: 586
Offline

Então seria interessante ter jboss + spring + hibernate, mesmo se não for usar ejb?

This message was edited 1 time. Last update was at 30/07/2009 13:21:48


www.bau-de-dev.com
Jedi_FeniX
Virtual Machine Man
[Avatar]

Membro desde: 26/04/2007 14:32:30
Mensagens: 586
Offline

Qual o ganho que eu tenho escolhendo um application server em vez de um servlet container? Por exemplo passar a desenvolver no jboss ao invés de um tomcat?
Pergunto isso porque estou começando agora nos applications servers e queria entender melhor eles e o porque de usar eles.
Fiz algumas pesquisas no google, mas o conceito ainda não está muito claro.

This message was edited 1 time. Last update was at 30/07/2009 13:24:11


www.bau-de-dev.com
Luca
Moderador
[Avatar]

Membro desde: 06/09/2002 14:30:10
Mensagens: 5810
Localização: São Paulo/SP ou Paraty/RJ
Offline

Olá

Não sei porque você criou o mesmo tópico de novo. Acabou recebendo a mesma resposta que eu dei com a sugestão de usar Spring e/ou Hibernate

Mas se a sua dúvida é sobre o que um servidor do tipo JBoss faz a mais do que o Tomcat (ou o Jetty) então vou dizer algumas coisas para explicar (ou não):

- O JBoss usa um servlet conteiner que pode ser o tomcat ---> para servir servlets (e JSPs)

- O tomcat (ou o Jetty) não serve para aplicações que usam EJBs porque como disse antes, são apenas servlet conteiners.

Se você não vai usar EJBs, pode se contentar com o tomcat (ou o Jetty). Para transações tanto o tomcat como o Jetty não ajudam em nada. Quem pode ajudar nisto é o Hibernate e/ou o Spring.

Para complicar sua cabeça vou dizer que se pode usar o JBoss (ou o Glassfish ou outro similar) mesmo quando não se usa EJBs. Porque alguém faria isto? Porque o JBoss ou o Glassfish incluem facilidades de administração e clusterização que podem ser muito úteis.

Um conselho: esqueça o que o servidor de aplicação poderá fazer por você quanto ao controle de transações porque na verdade mesmo o JBoss não faz nada sozinho. Estude Hibernate e JPA antes de pensar em controlar transações seja lá como for. Depois veja como o Spring pode ajudar nisto. E vale a pena estudar EJBs 3.0 (nem passe perto dos antigos EJBs 2.x que foram a maior bobagem que já conheci em 40 anos que vivo na informática)

[]s
Luca

Dare Obasanjo (Program Manager at Microsoft)
"The folks I know from across the industry who have to build large scale Web services on the Web today at Google, Yahoo!, Facebook, Windows Live, Amazon, etc are using RESTful Web services. The only times I encounter someone with good things to say about WS-* is if it is their job to pimp these technologies or they have already "invested" in WS-* and want to defend that investment."


CEP, JMS, JMX e coisas afins (ou não)
http://lucabastos.blogspot.com/
[Email] [WWW]
Jedi_FeniX
Virtual Machine Man
[Avatar]

Membro desde: 26/04/2007 14:32:30
Mensagens: 586
Offline

Postei o tópico aqui porque achei que aqui fosse o local certo, só esqueci de postar no antigo que mudei para cá... hehehe.... , peço desculpas por isso....
JPA eu sei tanto que já uso, só que eu crio as minhas DAOs com o EntityManager dentro delas e desta maneira estou "confundido as coisas", ou seja, o DAO que está responsável por pegar um entitymanager, abrir a transação, dá um commit, fazer a persistencia ou a busca e fechar a transação.
Isso funciona muito bem, usando o tomcat e wicket mas queria aumentar mais o desacoplamento das minhas classes por isso comecei a pesquisar sobre application server, que me falaram que ele faria isso (controle de transações).
E no outro tópico eu coloquei que já usava JPA....

This message was edited 2 times. Last update was at 30/07/2009 14:37:15


www.bau-de-dev.com
Luca
Moderador
[Avatar]

Membro desde: 06/09/2002 14:30:10
Mensagens: 5810
Localização: São Paulo/SP ou Paraty/RJ
Offline

Olá

Jedi_FeniX wrote:...e application server, que me falaram que ele faria isso (controle de transações)....


Então... não faz mas contém as classes que os EJBs usa para fazer. E é você quem escreve os EJBs.

Mesma coisa com o Spring.

[]s
Luca

Dare Obasanjo (Program Manager at Microsoft)
"The folks I know from across the industry who have to build large scale Web services on the Web today at Google, Yahoo!, Facebook, Windows Live, Amazon, etc are using RESTful Web services. The only times I encounter someone with good things to say about WS-* is if it is their job to pimp these technologies or they have already "invested" in WS-* and want to defend that investment."


CEP, JMS, JMX e coisas afins (ou não)
http://lucabastos.blogspot.com/
[Email] [WWW]
thiagoks
Thread.start()

Membro desde: 14/02/2008 20:41:25
Mensagens: 38
Offline

Existem vários Transaction Managers que você pode colocar no Tomcat/Jetty. No momento lembro dois JOTM e do Bitronix, mas lembro que existem outros. Só dar uma procurada que você acha.
Jedi_FeniX
Virtual Machine Man
[Avatar]

Membro desde: 26/04/2007 14:32:30
Mensagens: 586
Offline

Muito obrigado pelas respostas elas estão ajudando muito.
Pelo que vi vale mais apenas usar EJB se for usar em um sistema distribuído, um dos motivos das minhas dúvidas.
Comecei a ler sobre EJB a um tempo atrás mas vi que se tem muito mais trabalho e muito mais codificação, mas vi que um app server te dá algumas facilidades, como o luca falou em um post anterior, mas só que a minha aplicação não chegaria a usar mais de um pc para reallizar as suas tarefas.
E por isso criei o tópico.... para tentar esclarecer estas dúvidas.
Agora gostaria de esclarecer algumas coisas o Spring também é um container?
thiagoks valeu pela dica, mas por enquanto vou focar no Spring....

This message was edited 1 time. Last update was at 30/07/2009 15:42:14


www.bau-de-dev.com
Luca
Moderador
[Avatar]

Membro desde: 06/09/2002 14:30:10
Mensagens: 5810
Localização: São Paulo/SP ou Paraty/RJ
Offline

Olá

EJBs 3.0 não são tão complicados como os anteriores (que se você aprendeu alguma coisa é bom esquecer) e podem ser usados em uma aplicação não distribuída. Aliás, pouquíssimas aplicações necessitam ser distribuídas. É muito raro precisar distribuir uma aplicação mas por aí você encontra um monte de aplicações que foram desenvolvidas de modo distribuído sem nenhuma necessidade.

O Spring é uma espécie de framework. É pouco mais do que uma API. E você nem precisa usar tudo que ele oferece. Pode ir aprendendo aos poucos.

[]s
Luca

Dare Obasanjo (Program Manager at Microsoft)
"The folks I know from across the industry who have to build large scale Web services on the Web today at Google, Yahoo!, Facebook, Windows Live, Amazon, etc are using RESTful Web services. The only times I encounter someone with good things to say about WS-* is if it is their job to pimp these technologies or they have already "invested" in WS-* and want to defend that investment."


CEP, JMS, JMX e coisas afins (ou não)
http://lucabastos.blogspot.com/
[Email] [WWW]
Jedi_FeniX
Virtual Machine Man
[Avatar]

Membro desde: 26/04/2007 14:32:30
Mensagens: 586
Offline

Então seu eu quiser fazer uma aplicação de "médio porte" seria interessante usar EJB? Qual conselho você daria de quando usar EJB?
E em relação ao Spring eu vi que ele faz injecção de dependência, se na minha classe DAO eu tenho um atributo do tipo EntityManager o Spring "coloca"uma instância do Entity Manager detro do DAO, mas de qualquer maneira o DAO ainda "fica dependente", qual o ganho que eu tenho?

www.bau-de-dev.com
Luca
Moderador
[Avatar]

Membro desde: 06/09/2002 14:30:10
Mensagens: 5810
Localização: São Paulo/SP ou Paraty/RJ
Offline

Olá

A vantagem de aprender EJBs 3.0 é que não é só de persistência que ele trata. Mas se é só persistência seu problema então JPA (e/ou hibernate) dão conta. E ambos servem para aplicações de pequeno, médio e grande porte.

O Spring dá várias vantagens. Leia a documentação que é melhor do que minha eventual resposta. Se fosse só pela injeção de dependência há outras APIs mais simples. Mas você já falou em transações.

[]s
Luca

Dare Obasanjo (Program Manager at Microsoft)
"The folks I know from across the industry who have to build large scale Web services on the Web today at Google, Yahoo!, Facebook, Windows Live, Amazon, etc are using RESTful Web services. The only times I encounter someone with good things to say about WS-* is if it is their job to pimp these technologies or they have already "invested" in WS-* and want to defend that investment."


CEP, JMS, JMX e coisas afins (ou não)
http://lucabastos.blogspot.com/
[Email] [WWW]
Jedi_FeniX
Virtual Machine Man
[Avatar]

Membro desde: 26/04/2007 14:32:30
Mensagens: 586
Offline

É pelo visto tenho que mudar o meu conceito em relação ao EJB..... hauhauahua......
Valeu cara pela ajuda!
Vou estudar mais sobre o assunto e por enquanto vou ficar com o Spring para fazer este controle.

www.bau-de-dev.com
thiagoks
Thread.start()

Membro desde: 14/02/2008 20:41:25
Mensagens: 38
Offline

Oi Jedi_FeniX, você pode utilizar um transaction manager junto com o Spring sem problemas. Só vai precisar mudar algumas configurações no seu xml. Depois dê uma olhada no capítulo sobre transações na documentação do Spring.

Se você for utilizar mais de um banco de dados ou outros elementos (mensageria) aí você vai ser obrigado a colocar isso no container, senão é mais simples ficar com as transações do hibernate / jdbc mesmo.
jeancz
Thread.start()
[Avatar]

Membro desde: 15/07/2005 10:40:46
Mensagens: 47
Localização: Brasil
Offline

O uso de EJB não é restrito somente a sistemas distribuídos.

O uso de EJB torna o sistema mais escalável, pois o servidor de aplicação que controla o processamento dos EJBs.

Abrindo um parênteses, um sistema escalável permite que manipular uma porção crescente de trabalho de forma uniforme. O uso de EJB em um servidor de aplicação, torna esse desenvolvimento transparente.

Não sei se ajudei a entender ou compliquei mais... hehehe

This message was edited 1 time. Last update was at 01/08/2009 10:53:10


Jean C. Zimermann
Analista e Desenvolvedor de Software

Dicas/Programação/Artigos/Piadas - http://www.diariodecomputador.blogspot.com
[WWW] [MSN]
 
Índice dos Fóruns » Java Enterprise Edition (Java EE)
Ir para:   
Powered by JForum 2.1.8 © JForum Team