Empresas que utilizam JEE

6 respostas
ivela

Olá pessoal!!

Aqui na empresa onde trabalho, há uma grande discussão sobre utilizar Java para processar as regras de negócio (por exemplo, em Applications Servers com EJB’s) ou colocar tudo em procedures no banco.
Alguém tem exemplos reais sobre as vantagens e desvantagens de ambas abordagens?
Qualquer opnião sobre o assunto será de grande ajuda.

Obrigado!

6 Respostas

B

Depende da empresa. Não é qualquer um que consegue usar gatilhos com facilidade, e é por isso que DBA ganha bem. De qualquer forma, acho java uma linguagem muito boa para se aplicar regras de negócio no código, até porque é muito mais fácil de entender do que uma procedure para intermediários em SQL.

ignacio83

Eu sou da opnião que as regras de negócio devem estar todas na aplicação. Motivos:

  1. Facilidade de Manutenção (Procedures, principalmente encadeadas por triggers etc etc, são muito dificeis de dar manutenção.

  2. Procedures não são OO, se o seu sistema for Orientado a Objetos, facilita o entedimento de todos, inclusive de futuros desenvolvedores.

  3. No Java temos o JavaDoc (somente ele não serve como documentação do sistema mas pode ser bem útil)

  4. Liberdade de Banco de Dados, se um dia, quem sabe forem trocar de banco de dados não terão que reescrever as procedures e triggers, e vc utilizar JPA ou Hiberate eles automaticamente criaram as tabelas para o novo banco.

Conclusão: Utilize o Banco de Dados somente como um repositório de dados. Ah… Espere problemas com seu DBA. :slight_smile:

Obs: SEMPRE HÁ EXCEÇÕES, processamentos em batch muito pesados talvez valham mais a pena serem feitos através de procedures, mais considero está sempre a última opção.

R

Olá alévi,

na minha opinião as regras não deveriam ficar no banco de dados, e sim em uma camada de negócios em que eu pudesse, “em teoria”, manter e extender com maior facilidade. Pelo o que eu entendi a questão não é nem essa, e sim se alguem já viu uma implementação com java em que a camada de negócios e não o banco, realize um processamento muito pesado. Cite exemplos, e se possível uma ideia geral de como foi feito …

Não temos outra saída nesses casos se não correr pro banco?

Acho que é nessa linha que a discussão fica mais interessante :slight_smile:

ignacio83

Podemos fazer em batch… com agendadores. Ex: Quartz

R

ignacio83:

Não temos outra saída nesses casos se não correr pro banco?

Podemos fazer em batch… com agendadores. Ex: Quartz

voce poderia dar uma explicada com mais detalhes?
Obrigado!

L

rafa.fgs:
Olá alévi,

na minha opinião as regras não deveriam ficar no banco de dados, e sim em uma camada de negócios em que eu pudesse, “em teoria”, manter e extender com maior facilidade. Pelo o que eu entendi a questão não é nem essa, e sim se alguem já viu uma implementação com java em que a camada de negócios e não o banco, realize um processamento muito pesado. Cite exemplos, e se possível uma ideia geral de como foi feito …

Não temos outra saída nesses casos se não correr pro banco?

Acho que é nessa linha que a discussão fica mais interessante :slight_smile:

Conselho de quem está sofrendo muito com sistemas legados: Fuja de regras de dados no banco. Triggers, stored procedures e etc começam a se proliferar, e depois ninguém sabe aonde o dado foi alterado, por que…etc…

Aqui na empresa nós temos um caso de processamento bem pesado que é implementado em Java. Suceso cara…
Você pode optar pelo mais simples e usar threads para paralelizar as atividades, ou usar um framework para fazer esse trabalho pra você(EJB por exemplo).

Criado 24 de abril de 2009
Ultima resposta 24 de abr. de 2009
Respostas 6
Participantes 5