| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 27/02/2010 13:44:49
|
GabrielCardelli
GUJ Ranger
![[Avatar]](/images/avatar/c692f04c9697bb4b14939a29499e997b.jpg)
Membro desde: 25/10/2008 13:07:31
Mensagens: 823
Localização: Rio de Janeiro
Offline
|
Opa galera beleza,?
Estou iniciando um estudo de EJB e queria entender como organizar minha aplicação.
Tenho um Projeto Web e um EJB
Onde quero fazer um CRUD de um simples Funcionário.
Uma que ouço muito no trabalho é que DAO não é serviço isto querdizer que ele não deve ser um EJB?
Então se for isso eu preciso de um intermediário entre minha Aplicação e meu Dao esse intermediário é o EJB? Vejo que na empresa eles utilizam do padrão façade,este deve ser utilizado no EJB?
Quem puder me dar uma luz agradeço,
Abraço pessoal
This message was edited 1 time. Last update was at 27/02/2010 19:28:53
|
Gabriel Cardelli
http://www.opengti.com.br |
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 27/02/2010 16:26:33
|
asaudate
GUJ Master
![[Avatar]](/images/avatar/974e2945a18e0bfb8e3aa8becac3e65c.jpg)
Membro desde: 01/09/2007 19:31:41
Mensagens: 1794
Localização: São Paulo
Offline
|
Está certo, sim. O DAO não deve ser exposto diretamente como EJB, já que vários clientes diferentes podem acessar o EJB (ou seja, expor diretamente o DAO pode tornar a sua aplicação insegura). Além do mais, em alguns casos, vários DAOs diferentes devem ser acessados por operação. Se o DAO for exposto diretamente, e os clientes fizerem uso direto, implicaria em: 1 - os clientes tem que fazer várias requisições para alcançar um único objetivo. 2 - haveria overhead excessivo, já que, no caso de EJBs remotos, isso gera chamadas de rede, aumentando o tráfego e diminuindo o tempo de resposta da aplicação. Logo, os façades resolvem bem esses problemas, já que eles podem ser modelados de maneira a recuperar o usuário a cada chamada e fazer todas as operações dentro do contexto EJB - ou seja, haveria apenas uma chamada de rede para várias operações.
Talvez hoje você não entenda esse padrão porque o que você quer fazer é um simples CRUD de Funcionário. Mas imagine o caso dessa autenticação, onde, por exemplo, você não possui o objeto Usuário, mas sim, duas strings com login e senha. Sua aplicação deve ser responsável por verificar a autenticidade destes (talvez criptografando / descriptografando a senha) e fazer também o CRUD propriamente dito. Com o façade, você remove esta responsabilidade do cliente, entendeu?
[]´s
|
Alexandre Saudate
__________________________
Do not try to bend the spoon - that's impossible. Instead, only try to realize the truth: there is no spoon.
Série quickstart: Spring+Spring Security+Jersey (REST) +Hibernate (JPA) -> https://github.com/alesaudate/kickstart-springjerseyhibernate
Evite usar Axis2!!! Leia aqui para mais detalhes!
@alesaudate
Quer ler um blog especializado em web services e SOA?
 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 27/02/2010 18:40:35
|
GabrielCardelli
GUJ Ranger
![[Avatar]](/images/avatar/c692f04c9697bb4b14939a29499e997b.jpg)
Membro desde: 25/10/2008 13:07:31
Mensagens: 823
Localização: Rio de Janeiro
Offline
|
asaudate, Eu acho que eu entendi digamos que eu queira trazer dados que estejam em vários DAOS e isso me retornaria o perfil do usuário então eu crio um método no serviço pegarUsuario() meu façade onde ele tem todas as chamadas aos DAOs e depois de executar tudo me retorna o que eu quero.
Com issoeu só tenho 1 chamada na rede.
Seria isso?
Abraço, obrigado
This message was edited 1 time. Last update was at 27/02/2010 18:41:53
|
Gabriel Cardelli
http://www.opengti.com.br |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 27/02/2010 18:52:32
|
asaudate
GUJ Master
![[Avatar]](/images/avatar/974e2945a18e0bfb8e3aa8becac3e65c.jpg)
Membro desde: 01/09/2007 19:31:41
Mensagens: 1794
Localização: São Paulo
Offline
|
Mais do que isso, você retira toda a responsabilidade do cliente de fazer essa recuperação. Vale lembrar que Façade é um padrão GoF, ou seja, não foi catalogado tendo a idéia de sistemas distribuídos em mente. É mais pra retirar , mesmo, a responsabilidade de fazer várias invocações diferentes a vários serviços diferentes. A parte de chamada de redes é um bônus na história toda.
[]´s
|
Alexandre Saudate
__________________________
Do not try to bend the spoon - that's impossible. Instead, only try to realize the truth: there is no spoon.
Série quickstart: Spring+Spring Security+Jersey (REST) +Hibernate (JPA) -> https://github.com/alesaudate/kickstart-springjerseyhibernate
Evite usar Axis2!!! Leia aqui para mais detalhes!
@alesaudate
Quer ler um blog especializado em web services e SOA?
 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 27/02/2010 19:28:29
|
GabrielCardelli
GUJ Ranger
![[Avatar]](/images/avatar/c692f04c9697bb4b14939a29499e997b.jpg)
Membro desde: 25/10/2008 13:07:31
Mensagens: 823
Localização: Rio de Janeiro
Offline
|
Valeu mano, muito obrigado.
|
Gabriel Cardelli
http://www.opengti.com.br |
|
|
 |
|
|