Como criar uma aplicação sem EJB preparada para migrar para EJB3 mais tarde?  XML
Índice dos Fóruns » Arquitetura de Sistemas
Autor Mensagem
paula_16ago
Entusiasta Java

Membro desde: 13/04/2006 11:08:48
Mensagens: 16
Offline

Preciso montar uma arquitetura em MVC onde primeiramente será bem simples:
Apenas JSP e Servlet, só clases java simples com regras de negócio e acesso a banco de dados via JDBC.

Hoje esta aplicação irá ficar em apenas um servidor único.

Mas amanhã ela deve estar preparada para migrar para o modelo EJB3.

Como eu devo prepara-la para quando chegar a hora desta migração, esta ocorra da forma menos trabalhosa possivel?

Vi duas sugestões:

1- usando business delegate e façade. Onde minhas classes de negocios iriam implementar uma interface, que mais para frente seria a interface dos meus EJB's, e todos os meus objetos de negócio seriam do tipo desta interface.

2- usar uma fabrica (Abstract Factory) onde sempre seriam retornados objetos também do tipo da interface.

Alguma dessas sugestões é mais correta? Ou existe outra forma de fazer isto?
rissato
JavaEvangelist
[Avatar]

Membro desde: 16/05/2006 22:07:12
Mensagens: 446
Localização: Uberlândia
Offline

vc pode criar suas classes normalmente desde que:

- Sempre crie uma interface para definir os métodos que vc vai usar;
- Todas as classes tenham um construtor padrão;

O principal problema que vc deve mudar depois é a chamada às classes que serão gerenciados pelo EJB. Sem EJB, vc deve instanciar seus objetos usando "new SuaClasse();" e, com EJB, vc faz lookup da sua classe usando a classe InitialContext.

Mas tome muito cuidado durante o desenvolvimento sem EJB. Dependendo de como vc fizer, pode acabar ficando com muitos objetos consumindo memória no servidor, já que não haverá um container fazendo o controle.

Quer vc pense que é capaz ou não, vc está certo!

Sun Certified Java Programmer 6.0
[MSN] [ICQ]
paula_16ago
Entusiasta Java

Membro desde: 13/04/2006 11:08:48
Mensagens: 16
Offline

Mas eu vou usar ejb 3... não vou precisar fazer o lookup manual...

o que eu preciso saber então é como organizar o código, de forma a implementar o delegate e o façade e as interfaces dos meus objetos de negócios no pacote certo. E é nisto que estou com dúvida.

Onde devo codificar os delegates? E os façades?

Só criando interfaces para as minhas classes de negócio será suficiente?
nicholas.bittencourt
JavaTeenager
[Avatar]

Membro desde: 17/01/2007 00:17:42
Mensagens: 161
Localização: Niterói, RJ, Brasil
Offline

Aqui no trabalho passamos por esse problema e usamos a seguinte solução... Nao sei se eh a melhor porque ainda nao fizemos a migracao, mas parece funcionar bem.

1 - Como disse o rissato, todas as classes tem interface e um construtor padrao
2 - Elas sao mapeadas como atributos nos Managed Bean dos JSF
3 - Ao recuperar uma classe de negocio, vemos se a mesma foi "injetada" pelo repositorio. Caso contrario, usamos um ServiceLocator para buscar no Spring e entao no InitialContext.

Acho que atende...

--
Nicholas Dacal A. Bittencourt
http://goronah.blog.br

We also realized that solving everyone?s problems was too big of a challenge for the first release. It would be better to build a product that a lot of people love, than one that everyone tolerates (...) - Paul Buchheit, Gmail Engineer
[WWW] [MSN]
Rubem Azenha
GUJ Master
[Avatar]

Membro desde: 28/06/2004 00:10:43
Mensagens: 1933
Localização: São Paulo, SP
Offline

Que tal ja fazer a aplicacao usando algum EJB3-like ? Se voce nao quer usar um AS enorme, pode experimentar:

http://docs.jboss.org/ejb3/embedded/embedded.html
http://www.springsource.com/pitchfork/

Infelizmente nao faco ideia se essas geringoncas funcionam de verdade :/

Qualquer abordagem que escolha usar, crie CENTENAS de testes de integracao\teste funcionais automatizados para garantir que tua aplicacao vai continuar funcionando apos a migracao.



Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the Universe trying to produce bigger and better idiots. So far, the Universe is winning
[WWW]
 
Índice dos Fóruns » Arquitetura de Sistemas
Ir para:   
Powered by JForum 2.1.8 © JForum Team