EJB tem Lugar no MVC?  XML
Índice dos Fóruns » Arquitetura de Sistemas
Autor Mensagem
Jaba
JavaGuru
[Avatar]

Membro desde: 08/08/2008 20:56:54
Mensagens: 243
Offline

E ai Pessoal.

Bom, digamos que eu tenha uma aplicação WEB. Como qualquer uma, utilizaremos o MVC.
No Model, eu vou ter a regra de negócio. Na View, todos os elementos de integração. E no Controller, um Framework controlando as requisições.
Mas digamos que eu queira colocar EJB no meu projeto, para integrar a minha aplicação com outro servidor. A questão é: em que camada vai o EJB?
No Model, eu só irei possui as regras de negócio, e EJB não é usado para regra de negócio, então não pode entrar nessa camada. Na camada de View e Controller, nem sonhando.

Então, fica a duvida? Quando usamos EJB em um projeto, estamos abrindo mais uma camada somente para fazer a integração?

OCWCD - Oracle Certified Web Component Developer
OCJP - Oracle Certified Java Programmer
KET - Key English Test
PET - Preliminary English Test
raf4ever
GUJ Master

Membro desde: 30/01/2005 01:34:51
Mensagens: 1755
Localização: Fortaleza-Ce
Offline

Jaba wrote:E ai Pessoal.

Bom, digamos que eu tenha uma aplicação WEB. Como qualquer uma, utilizaremos o MVC.
No Model, eu vou ter a regra de negócio. Na View, todos os elementos de integração. E no Controller, um Framework controlando as requisições.
Mas digamos que eu queira colocar EJB no meu projeto, para integrar a minha aplicação com outro servidor. A questão é: em que camada vai o EJB?
No Model, eu só irei possui as regras de negócio, e EJB não é usado para regra de negócio, então não pode entrar nessa camada. Na camada de View e Controller, nem sonhando.

Então, fica a duvida? Quando usamos EJB em um projeto, estamos abrindo mais uma camada somente para fazer a integração?


EJB é uma solução procurando desesperadamente por um problema,então não use,opte por um 'lightweight container' como o Spring.

Rafael Roque
Quis custodiet ipsos custodes?
IBM Certified SOA Associate
ITIL Foundations Certified
SCEA(I)
SCWCD
SCJP
[Email] [MSN]
garcia-jj
JWizard

Membro desde: 13/04/2009 22:11:50
Mensagens: 2715
Localização: Porto Alegre
Offline

EJB é teu model, pois ele cuida da regra de negócio, controle transacional, etc.

http://github.com/garcia-jj
Não respondo dúvidas via MP. Use o fórum.
johnny quest
JavaEvangelist
[Avatar]

Membro desde: 01/02/2010 10:48:39
Mensagens: 372
Offline

EJB não adiciona mais uma camada na aplicação.
Na verdade EJB ajuda na modularização dos requisitos não funcionais da aplicação, melhorando a organização do código.
EJB entraria um pouco no Controller(parte de segurança) e também na parte de Modelo, por estender e também
adicionar regras que podem ser gerenciadas pelo Container EJB.
[ICQ]
FieroddPJ
JavaGuru
[Avatar]

Membro desde: 20/02/2005 00:00:00
Mensagens: 231
Offline

raf4ever wrote:
EJB é uma solução procurando desesperadamente por um problema,então não use,opte por um 'lightweight container' como o Spring.


Curioso, cada vez mais começo a pensar da mesma forma que vc!

Respondendo a pergunta, eu vejo o EJB, como um componente localizável dentro do servidor que possui uma determinada função, pra mim o EJB é usado como uma segunda camada de controller, ele adiciona a um objeto de negocio todas as suas características, por exemplo, vc tem um componente de negocio responsável pelas informações dos clientes e precisa que esse componente fique disponível via jndi, utilize os recursos de segurança do servidor e etc. Ai vc cria um EJB que disponibilize esse componente de negócio.

Achei o tópico interessante, pois cada vez mais tenho dúvidas sobre a real utilidade dos EJBs.

LinkedIn
[Email] [MSN]
romarcio
JWizard
[Avatar]

Membro desde: 17/12/2008 10:05:49
Mensagens: 2434
Localização: Santa Maria/RS
Online

raf4ever wrote:
EJB é uma solução procurando desesperadamente por um problema,então não use,opte por um 'lightweight container' como o Spring.


Na última empresa que trabalhei existiam aplicações que usavam EJB com Glassfish, e os clientes sofriam com isso por causa do consumo exagerado de memória. Como nunca mexi com EJB não sei ao certo o motivo, mas quando excluiram o EJB das aplicações as coisas melhoram.

Também acho que o Spring é uma ótima solução.

Mas sobre o post, EJB e MVC não tem nada haver.

Bacharel em Sistemas de Informação.
Oracle Certified Professional, Java SE 6 Programmer

Blog | Facebook | Twitter
[WWW]
erickfm8
GUJ Master

Membro desde: 06/10/2009 19:29:12
Mensagens: 1396
Offline

cara EJB E MVC NAO TEM NADA HAVER

EJB 3 é excelente a ser usado para sistemas de médio a grande porte (tambem está na especificação Java) eu particularmente prefiro ele do que Spring

MVC é um DesingPatters usado SOMENTE na CAMANDA de apresentação, no caso de vc usar Framework (JSF entre outros) esse por si ja implementa MVC.

Leia este artigo para entender sobre MVC , foi o melhor artigo que eu li até hoje
http://sergiotaborda.javabuilding.com/2009/11/mvc-e-camadas/

This message was edited 3 times. Last update was at 08/05/2011 16:44:36


Bacharel em Sistema de Informação
SCJP - Sun Certified Java Programmer
OCWCD - Oracle Certified Web Component Developer (Estudando..)
FieroddPJ
JavaGuru
[Avatar]

Membro desde: 20/02/2005 00:00:00
Mensagens: 231
Offline

EJB e MVC não são diretamente relacionados, mas é perfeitamente possível uma aplicação estruturada no padrão MVC utilizar EJB, que oq eu mais vi até hoje, a dúvida original era aonde o EJB entraria nesse caso.

O MVC não é utilizado somente na camada de apresentação, ele geralmente é usado pra organizar a aplicação como um todo, e a maioria dos frameworks web se propõem a realizar a função de controller, intermediando os requests da tela (view) e as respostas de negócio (model).

LinkedIn
[Email] [MSN]
raf4ever
GUJ Master

Membro desde: 30/01/2005 01:34:51
Mensagens: 1755
Localização: Fortaleza-Ce
Offline

erickfm8 wrote:cara EJB E MVC NAO TEM NADA HAVER
EJB 3 é excelente a ser usado para sistemas de médio a grande porte (tambem está na especificação Java) eu particularmente prefiro ele do que Spring


Sério?Pq?

Rafael Roque
Quis custodiet ipsos custodes?
IBM Certified SOA Associate
ITIL Foundations Certified
SCEA(I)
SCWCD
SCJP
[Email] [MSN]
erickfm8
GUJ Master

Membro desde: 06/10/2009 19:29:12
Mensagens: 1396
Offline

"

O design pattern Model-View-Controler , mais conhecido como MVC trata de uma solução para design de componentes que atuam dentro de uma mesma camada , normalmente na de Cliente e/ou na de Apresentação. As outras camadas usam outros padrões. A de domínio utiliza ~principalmente os padrões Entity e Service e o de integração os padrões Mediator e Bridge.
O MVC trata da separação de responsabilidade entre as classes da camada e não da separação da responsabilidade entre camadas.
"

pessoal leiam o artigo

EJB contem as regras de negócio mais o model é a parte que comunica com essas regras(parte da aplicação). Esse ?resto da aplicação? é genéricamente chamado de ?regras de negocio? por vários autores. Entenda que isto não significa que o model TEM as regras

Bacharel em Sistema de Informação
SCJP - Sun Certified Java Programmer
OCWCD - Oracle Certified Web Component Developer (Estudando..)
FieroddPJ
JavaGuru
[Avatar]

Membro desde: 20/02/2005 00:00:00
Mensagens: 231
Offline

Concordo com o autor do artigo ao mencionar o MVC com o design de componentes e citando o exemplo do swing, neste contexto aplicando o MVC em um componente faz todo o sentido que o model se comunique com as regras e não as tenha, afinal um botão do swing não teria como saber oq ele teria que fazer até eu codificar.

Agora o artigo reforça ainda mais que os EJBs não estão diretamente relacionados ao MVC e não diz que os EJBs não tem lugar no MVC e eu não entendi como ele ajuda a responder a questão inicial que era "EJB tem Lugar no MVC?"

Pensando dessa forma um EJB (Session ou MDB) corrersponderia a view/controller também pois seriam esses objetos com os quais vc lidaria e eles encapsulariam o model.

LinkedIn
[Email] [MSN]
erickfm8
GUJ Master

Membro desde: 06/10/2009 19:29:12
Mensagens: 1396
Offline

O artigo explica o que é MVC , deixei bem claro que o artigo é sobre este, mesmo assim não deixa de ajudar no assunto do forum...

'
"Pensando dessa forma um EJB (Session ou MDB) corrersponderia a view/controller também pois seriam esses objetos com os quais vc lidaria e eles encapsulariam o model."


isto de maneira alguma,, MVC é so na camada de apresentação ,, EJB fica na camada de negocio

no caso do JSF

a view ser as pagina .xhtml
e o controle seria o FacesContext

This message was edited 1 time. Last update was at 08/05/2011 20:07:31


Bacharel em Sistema de Informação
SCJP - Sun Certified Java Programmer
OCWCD - Oracle Certified Web Component Developer (Estudando..)
FieroddPJ
JavaGuru
[Avatar]

Membro desde: 20/02/2005 00:00:00
Mensagens: 231
Offline

Eu posso usar um design pattern em qualquer situação que seja pertinente usá-lo, acho que fui bastante infeliz no meu exemplo ... mas não acho que possa dizer que eu uso um pattern sempre pra esse caso e outro sempre para aquele caso.

LinkedIn
[Email] [MSN]
Jaba
JavaGuru
[Avatar]

Membro desde: 08/08/2008 20:56:54
Mensagens: 243
Offline

FieroddPJ wrote:Respondendo a pergunta, eu vejo o EJB, como um componente localizável dentro do servidor que possui uma determinada função, pra mim o EJB é usado como uma segunda camada de controller, ele adiciona a um objeto de negocio todas as suas características, por exemplo, vc tem um componente de negocio responsável pelas informações dos clientes e precisa que esse componente fique disponível via jndi, utilize os recursos de segurança do servidor e etc. Ai vc cria um EJB que disponibilize esse componente de negócio.


erickfm8 wrote:EJB contem as regras de negócio mais o model é a parte que comunica com essas regras(parte da aplicação). Esse ?resto da aplicação? é genéricamente chamado de ?regras de negocio? por vários autores. Entenda que isto não significa que o model TEM as regras


Tenho que admitir que depois do seu comentario, erickfm8, o meu conceito do Model estava errado. Mas tranquilo, nos frameworks atuais o Model então é abstraído, já que a delegação das actions da View são feitas pelo Controller do Framework, correto?

No caso então, FieroddPJ, vc enchega os EJB's como uma camada de "interfaceamento", ou seja, de comunicação entre objetos ou recursos em locais diferentes. Mas mesmo assim, dependendo da aplicação, pode haver regra de negócio no EJB. Claro que não é nada legal, mas pode ser que seja necessário. Eu sinceramente, e me desculpem e me ajudem se eu estiver falando besteira, gosto bastante do conceito de camadas. Uma camada somente para negócio, uma somente para o Banco (Famoso e Conhecido DAO), etc.

Seria correto então guardar todos os meus EJB's em um pacote e determinar que os mesmos são uma camada apenas de comunicação de objetos em locais diferentes?

OCWCD - Oracle Certified Web Component Developer
OCJP - Oracle Certified Java Programmer
KET - Key English Test
PET - Preliminary English Test
erickfm8
GUJ Master

Membro desde: 06/10/2009 19:29:12
Mensagens: 1396
Offline


erickfm8 wrote:
cara EJB E MVC NAO TEM NADA HAVER
EJB 3 é excelente a ser usado para sistemas de médio a grande porte (tambem está na especificação Java) eu particularmente prefiro ele do que Spring

raf4ever
Sério?Pq?



Model ele acessa as regras,, ele não TEM as regras de negocio ,,,

EJB tem regras de negocios

Bacharel em Sistema de Informação
SCJP - Sun Certified Java Programmer
OCWCD - Oracle Certified Web Component Developer (Estudando..)
 
Índice dos Fóruns » Arquitetura de Sistemas
Ir para:   
Powered by JForum 2.1.8 © JForum Team