Dúvida arquitetura JEE

2 respostas
Rapapel

Estou pensando na melhor forma de arquitetar uma aplicação EJB, e estou caindo em algumas dúvidas:

1ª - Na organização do projeto, o projeto é composto por 3 modulos, 1 web publico, 1 web cms, e 1 ejb negocio, preciso compartilhar algumas classes entre essas aplicações, ex: entidades e interfaces dos ejbs, então criarei mais um projeto jar simples para adicionar entidades e interfaces ejbs a principio. Mas isso gera uma questão, não quero deixar nenhuma lógica de negocio nas entidades pois elas estarão em um jar separado, logo, serão anemicas e serão entidades para persistir dados e transporta-los ocasionalmente, o que eu não gosto, gostaria de colocar alguma lógica lá, mas com essa organização acho que ficaria exposto d+.

2ª - Na comunicação entre Controle e Modelo, minha camada de negocios serão os ejbs, o que devo passar do controle p/ ejb? Vamos supor um cadastro de usuários, existe, um CadastroUsuariosEJB, Usuario entidade e um CadastroUsuariosControle, o controle chama o ejb: ejb.cadastrar(nome, nomeUsuario, senha, e mais uns 10 parametros), não gosto dessa abordagem deixa o método pouco legivel, ejb.cadastrar(usuarioEntidade), ou criar uma Classe DadosParaCadastro que encapsule esses dados e a invocação seria ejb.cadastrar(instanciaDeDadosParaCadastro), qual seria a melhor abordagem na opinião de vocês?

3ª Na comunicação entre Controle e Modelo, quando ocorrer a busca de algo, por exemplo mensagens de uma categoria, é listado na view as categorias com um link algumaCoisa.html?c=10,
o parametro é passado da visão para o controle e o controle invoca o ejb ejb.carregarMensagensPorCategoria(idCategorria), não sei se sou somente eu, mas acho muito esquisito isso, sempre pensei na comunicação entre objetos, mas acho que esse paradigma ainda vai durar em aplicações web com banco de dados relacionais, tambem seria estranho instanciar um objeto, popular o id somente p/ repassa-lo ao ejb.

Queria ouvir a opinião de vocês.

Obrigado.

2 Respostas

L

Bom naum sou especialista em arquitetura EJB 3 ,sou iniciante mas sempre utilizo um projeto web com os controllers um cliente com as interfaces dos ejbs e as entidades e um projeto ejb que comtem os ejbs propriamente ditos , bem parecido com o que vc descreveu acima,e naum vejo necessidade de manter logica no modulo client.

ja em relacao a sua segunda duvida , tive este problema tbm e utilizei um VO(value object) axo que fica mais legivel os metodos em vez de passar varios parametros.

E relacao a sua terceira duvida eu faco exatamente isso e naum conheco uma maneira melhor neste caso.

Rapapel

lgweb:
Bom naum sou especialista em arquitetura EJB 3 ,sou iniciante mas sempre utilizo um projeto web com os controllers um cliente com as interfaces dos ejbs e as entidades e um projeto ejb que comtem os ejbs propriamente ditos , bem parecido com o que vc descreveu acima,e naum vejo necessidade de manter logica no modulo client.

ja em relacao a sua segunda duvida , tive este problema tbm e utilizei um VO(value object) axo que fica mais legivel os metodos em vez de passar varios parametros.

E relacao a sua terceira duvida eu faco exatamente isso e naum conheco uma maneira melhor neste caso.

Parece que só existe essa arquitetura, penso em outra e nada me vem a cabeça.

Queria deixar meus objetos mais inteligentes, não somente VO’s, a entidade sem lógica é um VO só que sem o sufixo ou fora de um pacote .vo, e eu não deixaria a entidade(inteligente) no projeto client, mas deixaria no client uma entidade(VO).

Valeu pela opinião.

Criado 31 de agosto de 2010
Ultima resposta 31 de ago. de 2010
Respostas 2
Participantes 2