Camada de apresentação
A camada de apresentação é a interface com o usuário e a camada de comunicação do aplicativo, na qual o usuário final interage com o aplicativo. Sua principal finalidade é exibir e coletar informações do usuário. Essa camada de nível superior pode ser executada em um navegador da web, como um aplicativo para desktop ou em uma interface gráfica com o usuário (GUI), por exemplo. As camadas de apresentação da web são geralmente desenvolvidos usando HTML, CSS e JavaScript. Os aplicativos para desktop podem ser escritos em diversas linguagens, dependendo da plataforma.
Camada do aplicativo
A camada do aplicativo, também conhecida como a camada lógica ou a camada do meio, é a parte central do aplicativo. Nessa camada, as informações coletadas na camada de apresentação são processadas, algumas vezes em relação a outras informações da camada de dados, usando a lógica de negócios que é um conjunto específico de regras de negócios. A camada do aplicativo pode também incluir, excluir ou modificar os dados da camada de dados.
A camada do aplicativo é geralmente desenvolvida usando Python, Java, Perl, PHP ou Ruby e se comunica com a camada de dados usando chamadas de API .
Camada de dados
A camada de dados, por vezes chamada de camada de banco de dados, camada de acesso a dados ou back-end, é na qual as informações processadas pelo aplicativo são armazenadas e gerenciadas. Este pode ser um sistema de gerenciamento de banco de dados relacional , como PostgreSQL, MySQL, MariaDB, Oracle, DB2, Informix ou Microsoft SQL Server ou em um servidor de banco de dados NoSQL , como Cassandra, CouchDB ou MongoDB.
Em um aplicativo de três camadas, toda a comunicação passa pela camada do aplicativo. A camada de apresentação e a camada de dados não podem se comunicar diretamente entre si.
Camada (tier) vs. nível (layer)
Em discussões de arquitetura de três camadas, nível é frequentemente usado de forma intercambiável e equivocadamente pela camada, como um 'nível de apresentação' ou 'nível lógico de negócios'.
Elas não são a mesma coisa. Um 'nível (layer)' refere-se a uma divisão funcional do software, mas uma 'camada (tier)' refere-se a uma divisão funcional do software que é executada em infraestrutura separada das outras divisões. O aplicativo Contatos em seu telefone, por exemplo, é um aplicativo de três níveis , mas um aplicativo de camada única , porque os três níveis são executados em seu telefone.
A diferença é importante, porque níveis não podem oferecer os mesmos benefícios que as camadas.