Cluster x EJB ? Algo mais que justifique o uso de EJB?  XML
Índice dos Fóruns » Java Enterprise Edition (Java EE)
Autor Mensagem
saoj
JWizard
[Avatar]

Membro desde: 09/03/2004 23:34:46
Mensagens: 2667
Localização: Chicago, EUA
Offline

Sempre que debato com o Rubem Azenha sobre EJB temos conversas bem produtivas sobre as reais vantagens e/ou desvantagens de adotar essa tecnologia.

Então deixo a pergunta para um debate sadio:

O que EJB te oferece que vc não pode fazer sem EJB de uma maneira muito mais leve, simples e pura?

Até outro dia eu achava que era cluster, mas depois de conhecer o JGroups, vi que nem pra isso ele está valendo a pena hoje em dia. Mas posso estar enganado...


Sergio A Oliveira Jr. - saoj

ExperiMENTA:

Mentawai = http://www.mentaframework.org - Full-stack Java Web Framework com Configuracão Programática
MentaQueue = http://mentaqueue.soliveirajr.com - Queue de alta-performance.
MentaLog = http://mentalog.soliveirajr.com - Non-intrusive, fast, garbage-less, colored and straightforward logging
MentaBean = http://mentabean.soliveirajr.com - Tiny ORM with SQL Builder
MentaRegex = http://mentaregex.soliveirajr.com - Perl-style regex for Java.
MentaContainer = http://mentacontainer.soliveirajr.com - Straightforward IoC, DI e Auto-Wiring
Space4J = http://www.space4j.org - Banco-de-dados de Objetos em Memória
Options-Lib = https://github.com/saoj/options-lib - Ruby classes para ter acesso as opcoes do Yahoo Finance
Selleto = http://www.selleto.com.br
Flipinion = http://www.flipinion.com
Kawai = http://www.kawaiwiki.org


[Email] [WWW]
oyama
Virtual Machine Man

Membro desde: 19/04/2005 10:11:09
Mensagens: 572
Offline

saoj wrote:Sempre que debato com o Rubem Azenha sobre EJB temos conversas bem produtivas sobre as reais vantagens e/ou desvantagens de adotar essa tecnologia.

Então deixo a pergunta para um debate sadio:

O que EJB te oferece que vc não pode fazer sem EJB de uma maneira muito mais leve, simples e pura?

Até outro dia eu achava que era cluster, mas depois de conhecer o JGroups, vi que nem pra isso ele está valendo a pena hoje em dia. Mas posso estar enganado...



Este Terracotta também prove clusterização de aplicações Java sem utilização de EJB.
chun
GUJ Master
[Avatar]
Membro desde: 08/11/2004 15:43:41
Mensagens: 1699
Localização: Curitiba/PR
Offline

saoj wrote:Sempre que debato com o Rubem Azenha sobre EJB temos conversas bem produtivas sobre as reais vantagens e/ou desvantagens de adotar essa tecnologia.

Então deixo a pergunta para um debate sadio:

O que EJB te oferece que vc não pode fazer sem EJB de uma maneira muito mais leve, simples e pura?

Até outro dia eu achava que era cluster, mas depois de conhecer o JGroups, vi que nem pra isso ele está valendo a pena hoje em dia. Mas posso estar enganado...



Acredito que as vantagens de EJB ( em sua versao 3 é claro ) são a integração entre os servicos e o appserver... com ejb voce tem já um controle de transacoes (JTA) , servico de mensagens (JMS) de forma integrada e totalmente transparente... com Java EE 5 ficou muito produtivo... pois até o contexto de persistencia é inserido via IoC.

Acredito que outras alternativas sejam capazes de fazer a mesma coisa... a pergunta seria... a que preço ? EJB oferece uma estrutura padrão e implementada por dezenas de fornecedores... até a parte de persistencia pode ser escolhida agora (JPA)

Clusterização é apenas UMA das vantagens... a separação do codigo fica muito evidente em Java EE 5 , isso torna as coisas mais simples de serem programadas... JAAS ficou muito mais simples e sumiram os milhares de XML (Spring) ... acredito que valha a pena hoje...

Com JBoss Seam voce tem uma integracao perfeita entre os EJB's e o JSF... ( que vai ser padrozinada pela JSR dos WebBeans )..

Quando se fala em desenvolvimento em grupo e curva de aprendizado não tão ingrime... Java EE 5 é a melhor opcao. Antigamente tinha que se saber dezenas de coisas... hoje não.

é claro que tudo isso pode ser oferecido por outros frameworks em conjunto... a pergunta continua... mas a que preço ?

e por que não usar ?

Ps: Este post é uma opinião pessoal e NÃO DEVE SER ENCARADO COMO VERDADE ABSOLUTA... então... caso você não concorde... não precisa cortar os pulsos...

------
Controverso Eu ? http://www.go-java.com/blog
[WWW] [ICQ]
Luca
Moderador
[Avatar]

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

Olá

Quando estudei EJBs 1.x há muitos anos atrás, fiquei com a certeza de que era apenas complicação desnecessária em 99% dos casos. O desenvolvedor Java que não poluiu a cabeça aprendendo EJBs 1.x fez muito mais pelo seu patrão do que muitos que recomendaram seu uso. Há por aí um grande legado de aplicações usando EJBs antigos rodando em servidores caríssimos obsoletos como é o caso da CEF por exemplo.

Mas agora estou estudando EJB 3.0 e acho que já dá para pensar em usar sem levar o custo do projeto para as rodas de piadas na hora do almoço nos outros departamentos. Só que pensar em usar não significa adotar indiscriminadamente como algun$ consultore$ andaram recomendando nos últimos anos (por ignorância ou sabotagem). Há ainda muitos projetos em que EBJs oferecem poucas vantagens.

[]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]
georgesq
JavaGuru
[Avatar]

Membro desde: 09/12/2002 12:25:25
Mensagens: 208
Localização: SP
Offline

Rapaz, quando pensarmos em solução de escalabilidade, como iremos fazer se não pudermos colocar nossos componentes distribuidos, e como outros colegas falaram, e para resolver, transação de negócio sem ter que extender frameworks para provêr tais funcionalidades.

As realidades fazem com que vc defina o que usar para resolver tais cituações, mais EJB é uma plataforma e padrão de mercado e em situações corporativas não abro mão dos Session para me provêr o que acima citei.

[s]
baiano

SCJP 1.5
[MSN] [ICQ]
Luca
Moderador
[Avatar]

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

Olá

georgesq wrote:componentes distribuidos


O problema é que isto não é um requisito comum ou padrão. Fazer isto só por fazer é o que ridicularizou o uso de EJBs.

Um dia almocei com vários diretores de empresas da área financeira. Os caras morriam de dar risada metendo o pau no Java. Eles citaram vários exemplos, inclusive o de uma grande instituição que gastou mais de R$ 20 milhões e depois de um ano ainda não tinha NADA funcionando. O dia em que você passar pela experiência que eu passei vai perceber o mal que alguns consultores podem fazer a uma empresa. Com EJBs pré 3.0 a maioria dos casos foi dinheiro jogado fora.

[]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]
Edufa
JavaEvangelist
[Avatar]

Membro desde: 18/04/2006 10:20:03
Mensagens: 315
Localização: Curitiba, PR
Offline

Uma dúvida, para usar JMS é preciso usar EJB ou apenas fica mais fácil usando EJB?


Edufa
Curitiba, PR
--
"O estado sou eu". - Luís XIV
"O estado somos nós."- Lênin
"O estado somos eu." - Lula
--
O mundo é deles mas a amazônia é nossa
O petróleo é nosso, mas o gás é deles.
Luca
Moderador
[Avatar]

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

Olá

JMS é uma das melhores coisas do Java. É bem fácil usar sem EJBs mas neste caso sou favorável a usar as message beans. Não só porque facilita mas também porque servidores como o JBoss podem ajudar na monitoração.

[]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]
chun
GUJ Master
[Avatar]
Membro desde: 08/11/2004 15:43:41
Mensagens: 1699
Localização: Curitiba/PR
Offline

Sim... mas vamos nos reservar a falar da tecnologia no atual estagio de amadurecimento... senao... vamos extender por meses esta "conversa"... que EJB 1.x e 2.x são terriveis já sabemos...

bola pra frente minha gente !

Ps: Este post é uma opinião pessoal e NÃO DEVE SER ENCARADO COMO VERDADE ABSOLUTA... então... caso você não concorde... não precisa cortar os pulsos...

------
Controverso Eu ? http://www.go-java.com/blog
[WWW] [ICQ]
Edufa
JavaEvangelist
[Avatar]

Membro desde: 18/04/2006 10:20:03
Mensagens: 315
Localização: Curitiba, PR
Offline

Olá Luca, obrigado pela resposta, pois então, pelo que andei vendo JMS poderia resolver alguns probleminhas meus, mas não estava querendo ter de ver EJB o sistema é pqno, baixo volume de acesso, etc... Fico feliz q um não dependa do outro.

Estava querendo abordar outras tecnologias, já que EJB será mais difícil de eu usar nos meus projetos. (a não ser q tudo mude, rs, mas não dá para prever tudo, rs)

Uma grande dúvida acerca de EJB é q justamente recomendam ele para sistemas maiores, justamente em cluster, e outars situações mais extremas, contudo o que vejo é ele sendo usando de forma geral, mesmo em sistemas pqnos, isso não seria o equivalente a matar uma mosca com um canhão.

E outro problema o que é um sistema grande, com um grande volume de acessos, etc? Claro q temos aqui pessoas que trabalham em bancos, telefonicas, etc, mas volte e meia aparece alguem falando de um sistema q tem muito acesso e tal, mas na verdade não tem, e um upgrade de hardware resolveria melhor q usar EJB, no meu ver de leigo.

Ou seja não existe uma super valorização dessa tecnologia?

Edufa
Curitiba, PR
--
"O estado sou eu". - Luís XIV
"O estado somos nós."- Lênin
"O estado somos eu." - Lula
--
O mundo é deles mas a amazônia é nossa
O petróleo é nosso, mas o gás é deles.
chun
GUJ Master
[Avatar]
Membro desde: 08/11/2004 15:43:41
Mensagens: 1699
Localização: Curitiba/PR
Offline

Java EE 5 torna o uso de EJB's uma coisa normal e sadia... se seu sistema é tão grande como fala... EJB pode ajudar voce a expandir o poder de fogo sem muita alteração na estrutura...

Coisa que com qualquer outra "arquitetura" voce precisaria estar se preparando desde agora... com tecnicas mirabolantes... para que lá na frente... nao precise reescrever tudo..

Ps: Este post é uma opinião pessoal e NÃO DEVE SER ENCARADO COMO VERDADE ABSOLUTA... então... caso você não concorde... não precisa cortar os pulsos...

------
Controverso Eu ? http://www.go-java.com/blog
[WWW] [ICQ]
Edufa
JavaEvangelist
[Avatar]

Membro desde: 18/04/2006 10:20:03
Mensagens: 315
Localização: Curitiba, PR
Offline

chun wrote:Java EE 5 torna o uso de EJB's uma coisa normal e sadia... se seu sistema é tão grande como fala... EJB pode ajudar voce a expandir o poder de fogo sem muita alteração na estrutura...

Coisa que com qualquer outra "arquitetura" voce precisaria estar se preparando desde agora... com tecnicas mirabolantes... para que lá na frente... nao precise reescrever tudo..


Sim chun isso eu entendi, no caso de um sistema grande é uma realidade, mas estava me referindo a sistemas pqnos ( e q pode falta de informações, experiencia ou parametros de comparação) os desenvolvedores acham q é grande e metem o EJB no meio, sendo q poderia ser resolvido com outras tecnologias.

Veja nunca mexi com EJB posso estar falando bobagem.

Agora se desenvolver com EJB é simples e fácil o "problema" residiria apenas no fato de usar um canhão para matar a mosca, mas o resultado final (q muitas vezes é só o q importa) é atingido (a mosca tá morta), risos.

Edufa
Curitiba, PR
--
"O estado sou eu". - Luís XIV
"O estado somos nós."- Lênin
"O estado somos eu." - Lula
--
O mundo é deles mas a amazônia é nossa
O petróleo é nosso, mas o gás é deles.
chun
GUJ Master
[Avatar]
Membro desde: 08/11/2004 15:43:41
Mensagens: 1699
Localização: Curitiba/PR
Offline

A proposta de JBoss Seam é justamente esta... usar para qualquer tamanho de projetos Java EE 5

Acredito que com a versão 5 da especificação Java EE , a adoção de EJB em projetos tenha sido invertida... em 90% das vezes voce pode colocar eles... para ajudar a separar as coisas... e deixar uma brecha para uma possivel clusterização futura ou até mesmo uma separacao explicita (ex: um servidor fazendo a regra de negocio e outros 15 atendendo requisicao http )

Com Java EE 5 ... o que abunda não prejudica

Ps: Este post é uma opinião pessoal e NÃO DEVE SER ENCARADO COMO VERDADE ABSOLUTA... então... caso você não concorde... não precisa cortar os pulsos...

------
Controverso Eu ? http://www.go-java.com/blog
[WWW] [ICQ]
saoj
JWizard
[Avatar]

Membro desde: 09/03/2004 23:34:46
Mensagens: 2667
Localização: Chicago, EUA
Offline


Para segurança, nada te impede de usar qualquer outra esquema de autenticação e autorização.

Para escalabilidade, nada te impede de usar um load balance qualquer.

Para cluster (load balance + failover), nada te impede de usar JGroups ou esse outro que falaram aí.

Para controle de transações, nada te impede de fazer isso na mão sem qualquer problema. 99% dos casos de transações são simples e não precisam de two-phase commit ou essas coisas complexas e muitas vezes sem qualquer benefício.

EJB é uma solução desesperadamente procurando um problema!

Sergio A Oliveira Jr. - saoj

ExperiMENTA:

Mentawai = http://www.mentaframework.org - Full-stack Java Web Framework com Configuracão Programática
MentaQueue = http://mentaqueue.soliveirajr.com - Queue de alta-performance.
MentaLog = http://mentalog.soliveirajr.com - Non-intrusive, fast, garbage-less, colored and straightforward logging
MentaBean = http://mentabean.soliveirajr.com - Tiny ORM with SQL Builder
MentaRegex = http://mentaregex.soliveirajr.com - Perl-style regex for Java.
MentaContainer = http://mentacontainer.soliveirajr.com - Straightforward IoC, DI e Auto-Wiring
Space4J = http://www.space4j.org - Banco-de-dados de Objetos em Memória
Options-Lib = https://github.com/saoj/options-lib - Ruby classes para ter acesso as opcoes do Yahoo Finance
Selleto = http://www.selleto.com.br
Flipinion = http://www.flipinion.com
Kawai = http://www.kawaiwiki.org


[Email] [WWW]
saoj
JWizard
[Avatar]

Membro desde: 09/03/2004 23:34:46
Mensagens: 2667
Localização: Chicago, EUA
Offline




Um dia almocei com vários diretores de empresas da área financeira. Os caras morriam de dar risada metendo o pau no Java. Eles citaram vários exemplos, inclusive o de uma grande instituição que gastou mais de R$ 20 milhões e depois de um ano ainda não tinha NADA funcionando. O dia em que você passar pela experiência que eu passei vai perceber o mal que alguns consultores podem fazer a uma empresa. Com EJBs pré 3.0 a maioria dos casos foi dinheiro jogado fora.



Eu trabalhei na Accenture na época que EJB surgia. Vi projetos gigantescos que foram jogados no lixo, porque foi feito um sistema gigante, cheio de bugs e uma carroça.

EJB 1.0 e EJB 2.0 era a receita certa para o desastre e prejuízo (para o cliente é claro!).

EJB 3 melhor. Claro, depois de tentar por 3 vezes fazer a coisa direito, já estava mais do que na hora de fazer uma coisa descente.

Mas EJB continua sendo totalmente desncessário, na minha opinião.

O que vc consegue fazer com EBJ que vc não consegue fazer sem ele? Difícil !

Sergio A Oliveira Jr. - saoj

ExperiMENTA:

Mentawai = http://www.mentaframework.org - Full-stack Java Web Framework com Configuracão Programática
MentaQueue = http://mentaqueue.soliveirajr.com - Queue de alta-performance.
MentaLog = http://mentalog.soliveirajr.com - Non-intrusive, fast, garbage-less, colored and straightforward logging
MentaBean = http://mentabean.soliveirajr.com - Tiny ORM with SQL Builder
MentaRegex = http://mentaregex.soliveirajr.com - Perl-style regex for Java.
MentaContainer = http://mentacontainer.soliveirajr.com - Straightforward IoC, DI e Auto-Wiring
Space4J = http://www.space4j.org - Banco-de-dados de Objetos em Memória
Options-Lib = https://github.com/saoj/options-lib - Ruby classes para ter acesso as opcoes do Yahoo Finance
Selleto = http://www.selleto.com.br
Flipinion = http://www.flipinion.com
Kawai = http://www.kawaiwiki.org


[Email] [WWW]
 
Índice dos Fóruns » Java Enterprise Edition (Java EE)
Ir para:   
Powered by JForum 2.1.8 © JForum Team