Ouvindo Opiniões
Regras de negócio na Aplicação, no Banco de Dados ou no Servidor de Aplicação (n-tier)?
Sobre o autor: Técnico em Informática e Bacharel em Sistemas de Informações pela UNIFEV. É Coordenador Editorial do portal www.activedelphi.com.br e trabalha como programador na Mega Sistemas Integrados (www.megaonline.com.br). Atua na área de programação há 6 anos, focando-se na arquitetura client/server e web, com DBExpress, Firebird, PHP e MySQL.
Contato: kelver@activedelphi.com.brComo dizem por aí, tudo depende da flexibilidade da calda do jacaré. :) De qualquer forma, vejo o seguinte: deve-se analisar alguns quesitos para definir onde ficarão as regras de negócio, como:
- Hardware dos clientes: Com o custo atual da tecnologia, cada dia mais temos clientes com hardwares de "servidores". Neste contexto, não faz mal colocar algumas regras de negócios que não sejam complexas e que não envolvam grandes massas de dados no lado cliente. Facilita o desenvolvimento e deixa o servidor em si para o que é realmente "pesado".
- Conexões simultâneas: Se este número for alto e as regras ficarem apenas no lado servidor, terá sobrecarga de processamento. Com muitas conexões o ideal é o n-tier, inclusive com mais de um servidor de aplicação, se necessário, que mantenham consigo as regras de negócio, possibilitando assim o balanceamento de carga dos processamentos.
- Posição geográfica dos clientes: Quando se trabalha em uma rede local, tráfego de dados (quando moderado) não é um grande problema. Portanto, até dá pra trazer algumas regras para o lado cliente. Entretanto, com clientes distantes do servidor, isto se torna uma "loucura", principalmente considerando a atual velocidade da internet a nós atualmente disponível. Nestes casos, regras no servidor são o ideal. (exceto se houver um grande número de clientes remotos, pois aí caímos no quesito anterior, de "Conexões simultâneas").
- Se for um sistema web: Aqui, naturalmente já temos uma arquitetura multicamadas, onde o servidor de aplicação é o servidor web em que o projeto está hospedado. Como em cada requisição o seu sistema, ou pelo menos parte dele será interpretado, incluir uma nova camada aqui para as regras de negócio é perda de tempo e de performance. Particularmente, prefiro as regras no servidor web (neste caso, servidor de aplicação). Também se aplica aqui a questão levantada no quesito "Conexões simultâneas", pois se a quantidade acesso simultâneo ao site for muito grande, é fundamental que haja mais de um servidor web, com as requisições balanceadas por algum software ou preferencialmente, por um hardware específico.
E pra finalizar, acho ainda que o servidor de banco de dados não seja o lugar ideal para as regras de negócios, exceto para aquelas que processam muitos dados de uma única vez. Do resto, vale seguir os itens que comentei acima.
Um grande abraço!
Leia também outras opiniões:
- Participe:
- Seja um colaborador
- |
- Sugira um assunto
- |
- Seja avisado de novos assuntos










