Definição de um sistema de três camadas


8

As pessoas costumam afirmar que seguem uma 'arquitetura de três camadas (ou n camadas)' e, às vezes, afirmam estar mudando para um modelo de domínio. Mas eu realmente nunca entendi o que é essa mítica 'arquitetura de três camadas'. Parece não ter uma definição formal. Embora existam inúmeras referências e exemplos que explicam e demonstram o padrão do Modelo de Domínio, qualquer referência a três camadas sugere que você deve separar seu código em UI, Business Logic e Data Access Layers. E isso é tudo o que eles parecem dizer.

O que acho particularmente estranho é que, para mim, o Modelo de Domínio é a personificação perfeita desse paradigma de três camadas. os arquivos ORM e de mapeamento são a camada de acesso a dados, o domínio é a lógica de negócios e a interface do usuário é, bem, a interface do usuário. Então, por que as pessoas falam como se fosse algo novo e diferente, e algo para o qual deveriam mudar?

Antes de eu ver pessoas implementando o Modelo de Domínio, a maioria dos aplicativos era de UIs acessando procedimentos armazenados com a lógica dividida na UI e nos SPs. Às vezes, havia alguns assemblies chamados 'UI', 'BLL' e 'DLL', mas geralmente eram apenas mediadores entre as UIs e os SPs, deixando mais lugares para a lógica ser aleatoriamente distribuída.

Então, o que é essa arquitetura mítica de "três camadas"? Existe mesmo? e se sim, onde estão alguns exemplos disso implementados bem?

Respostas:


9

A definição da arquitetura de três camadas é um caso especial da arquitetura de n camadas . Em uma arquitetura de n camadas, existem n componentes e cada um interage apenas com o componente imediatamente "acima" e "abaixo" dele. Uma arquitetura de três camadas possui três desses componentes.

Normalmente, uma arquitetura de três camadas consiste em uma camada de interação do usuário, uma camada de regras de negócios e uma camada de serviços de dados (incluindo bancos de dados). A camada de interação do usuário emite apenas solicitações para a camada de regras de negócios, que recupera dados dos vários serviços de dados, os processa e os retorna para o usuário através da camada de interação do usuário.

A arquitetura de n camadas é um exemplo de padrão arquitetural (ou estilo arquitetônico). Ele simplesmente define algumas restrições na arquitetura do sistema. Por si só, não é uma visão completa da arquitetura do sistema. Embora eu tenha certeza de que existem sistemas que implementam algo como uma arquitetura de três camadas, é apenas um padrão que deve estabelecer uma discussão para o design e implementação adicionais de um sistema.


Basicamente, o que você está dizendo é que uma arquitetura de 3 camadas é uma arquitetura que tem 3 camadas ... o que é exatamente a resposta certa :-)
Jörg W Mittag

@ JörgWMittag Praticamente. Mas também estou dizendo que é apenas um padrão usado para simplificar a comunicação entre arquitetos de sistemas, designers de aplicativos e programadores. Na realidade, é um caso especial da arquitetura n-tier, que é um caso especial da arquitetura cliente-servidor.
Thomas Owens
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.