EJb e Command  XML
Índice dos Fóruns » Arquitetura de Sistemas
Autor Mensagem
jprogrammer
Virtual Machine Man
[Avatar]
Membro desde: 04/02/2005 13:49:20
Mensagens: 546
Offline

Gostaria de saber se ficaria coerente usar Ejb com pattern Command.
Eu teria um único EJB para todos os commands que delegam para a camada de negocio.
ex:



Este código é seguro ?
Eu aproveito as transações e recursos do EJB ?


O bom menino !!!
mister__m
Virtual Machine Man
[Avatar]

Membro desde: 18/03/2005 16:13:17
Mensagens: 736
Offline

Bem, a idéia do EJB Command pattern em si não é ruim, mas existem diversas considerações a serem feitas.

Primeiro, caso vá realmente utilizar este modelo mais simples, faça com que o método de seu EJB receba uma instância do Command para não ficar tão limitado. O uso indiscriminado desse padrão pra tudo leva a um código assustadoramente procedural conforme o sistema cresce e por isso é preciso ter cuidado.

Eu recomendo seguir uma abordagem que permita que o uso desse mecanismo seja invisível para quem chama o código, não limitando a classe a ter somente um método "executável" no EJB. O genesis implementa este padrão de forma invisível, algo que talvez você também devesse fazer. Vale a pena dar uma olhada.

Michael Nascimento Santos, aka Mister M

Summa Technologies do Brasil - http://www.summa-tech.com/
genesis: Uma nova forma de desenvolver aplicações - https://genesis.dev.java.net/
ThinNB: Suporte a Thinlet no NetBeans - https://thinnb.dev.java.net/
Líder da JSR-310 - Date and Time API
Expert Group Member das JSRs 207 (PD4J), 250 (Common Annotations), 270 (Java 2 SE 6.0), 296 (Swing Framework) e 303 (Bean Validation)
SouJava: Fortalecendo a comunidade Java brasileira - https://soujava.dev.java.net/ https://www.soujava.org.br/
JSR Community @ java.net - http://community.java.net/jsr
Blogs - http://blog.michaelnascimento.com.br/ http://today.java.net/pub/au/80
Twitter - @mr__m
[WWW]
jprogrammer
Virtual Machine Man
[Avatar]
Membro desde: 04/02/2005 13:49:20
Mensagens: 546
Offline


não limitando a classe a ter somente um método "executável" no EJB


Não entendi isso me explique...

O bom menino !!!
mister__m
Virtual Machine Man
[Avatar]

Membro desde: 18/03/2005 16:13:17
Mensagens: 736
Offline

jprogrammer wrote:

não limitando a classe a ter somente um método "executável" no EJB


Não entendi isso me explique...


Do jeito que você mesmo postou:



somente o método execute, com uma assinatura fixa, pode ser chamado no EJB. Isso é extremamente limitante para uma arquitetura.

Michael Nascimento Santos, aka Mister M

Summa Technologies do Brasil - http://www.summa-tech.com/
genesis: Uma nova forma de desenvolver aplicações - https://genesis.dev.java.net/
ThinNB: Suporte a Thinlet no NetBeans - https://thinnb.dev.java.net/
Líder da JSR-310 - Date and Time API
Expert Group Member das JSRs 207 (PD4J), 250 (Common Annotations), 270 (Java 2 SE 6.0), 296 (Swing Framework) e 303 (Bean Validation)
SouJava: Fortalecendo a comunidade Java brasileira - https://soujava.dev.java.net/ https://www.soujava.org.br/
JSR Community @ java.net - http://community.java.net/jsr
Blogs - http://blog.michaelnascimento.com.br/ http://today.java.net/pub/au/80
Twitter - @mr__m
[WWW]
jprogrammer
Virtual Machine Man
[Avatar]
Membro desde: 04/02/2005 13:49:20
Mensagens: 546
Offline

É essa a minha dúvida.
Teria apenas um ÚNICO ejb responsavel por toda comunicação client e server.
Mas esse EJB apenas passaria os dados do client para o server e chamaria o command apropriado para a camada de negócios.
Outra coisa, as classes commands não poderiam ser passadas porque elas seriam instanciadas no server e o cliente não necessariamente teria essas classes por motivo de centralizacão.

O EJB poderia ser coberto por uma camada envoltória apenas para não expo-lo.

Essa fina camada involtória se comunica com a camada de apresentação.

o execute poderia retornar valores também


Estava pensando nisso apenas como idéia. Por que isso traria idenpencia na comunicação entre client e server.
Qual sua opinião ?

This message was edited 1 time. Last update was at 13/04/2005 11:48:09


O bom menino !!!
mister__m
Virtual Machine Man
[Avatar]

Membro desde: 18/03/2005 16:13:17
Mensagens: 736
Offline

Mantenho os meus comentários iniciais. Dê uma olhada na abordagem do genesis para esta questão, veja o que você acha e, caso ache que não serve pra você, explique o porquê.

Michael Nascimento Santos, aka Mister M

Summa Technologies do Brasil - http://www.summa-tech.com/
genesis: Uma nova forma de desenvolver aplicações - https://genesis.dev.java.net/
ThinNB: Suporte a Thinlet no NetBeans - https://thinnb.dev.java.net/
Líder da JSR-310 - Date and Time API
Expert Group Member das JSRs 207 (PD4J), 250 (Common Annotations), 270 (Java 2 SE 6.0), 296 (Swing Framework) e 303 (Bean Validation)
SouJava: Fortalecendo a comunidade Java brasileira - https://soujava.dev.java.net/ https://www.soujava.org.br/
JSR Community @ java.net - http://community.java.net/jsr
Blogs - http://blog.michaelnascimento.com.br/ http://today.java.net/pub/au/80
Twitter - @mr__m
[WWW]
jprogrammer
Virtual Machine Man
[Avatar]
Membro desde: 04/02/2005 13:49:20
Mensagens: 546
Offline

Gostei desse genesis. Não vi com detalhes mais parece que ele faz um refactory no código baseado nas anotações. É +- como o XDoclet.

Mas ele dá suporte a aplicações web ?




O bom menino !!!
mister__m
Virtual Machine Man
[Avatar]

Membro desde: 18/03/2005 16:13:17
Mensagens: 736
Offline

jprogrammer wrote:Gostei desse genesis. Não vi com detalhes mais parece que ele faz um refactory no código baseado nas anotações. É +- como o XDoclet.


Hmmm, não é bem isso

O modelo do genesis que funciona out-of-the-box utiliza anotações e AOP para abstrair a complexidade e arquitetura de deployment da sua aplicação do código de negócios.

jprogrammer wrote:Mas ele dá suporte a aplicações web?


Sim e não. Toda a parte relativa a sua pergunta - que é relacionada com a camada de negócios - funcionaria em qualquer ambiente. As APIs de suporte a interface com o usuário são no momento voltadas a aplicações desktop, mas nada impede você de usar WebWork/JSF/Struts/Whatever + genesis.

Na versao 4 o genesis deve prover seu proprio suporte à aplicações web.

Michael Nascimento Santos, aka Mister M

Summa Technologies do Brasil - http://www.summa-tech.com/
genesis: Uma nova forma de desenvolver aplicações - https://genesis.dev.java.net/
ThinNB: Suporte a Thinlet no NetBeans - https://thinnb.dev.java.net/
Líder da JSR-310 - Date and Time API
Expert Group Member das JSRs 207 (PD4J), 250 (Common Annotations), 270 (Java 2 SE 6.0), 296 (Swing Framework) e 303 (Bean Validation)
SouJava: Fortalecendo a comunidade Java brasileira - https://soujava.dev.java.net/ https://www.soujava.org.br/
JSR Community @ java.net - http://community.java.net/jsr
Blogs - http://blog.michaelnascimento.com.br/ http://today.java.net/pub/au/80
Twitter - @mr__m
[WWW]
 
Índice dos Fóruns » Arquitetura de Sistemas
Ir para:   
Powered by JForum 2.1.8 © JForum Team