Padrão mvc - camadas em um servidor ou em servidores diferentes, qual a diferença?

No padrão mvc qual a diferença de se ter as 3 camadas em um mesmo servidor ou te-las em servidores diferentes?

MVC e arquitetura em 3 camadas são arquiteturas diferentes. Uma arquitetura MVC propriamente dita é assim:

Você pode entender, a grosso modo, View como sendo o que interage com os dispositivos de saída, Controller como sendo o que interage com os dispositivos de entrada, e Model que é onde estão os dados que são modificados pelo Controller e mostrados pela View. Tu pode ate distribuir isso, mas não é em camadas.

Você esta confundindo com camada de apresentação, logica e dados:


A diferença vai ser na forma como é feita a comunicação entre essas camadas, no caso que as camadas sejam distribuídas em lugar de estarem integradas no mesmo software, vai ser necessário fazer RPC (chamada de procedimentos remotos) ou equivalente como no caso de SQL para acesso à base de dados. Isso pode induzir latências e outros tipos de inconveniências devido a limitações físicas, que seriam menores no caso de rodar dentro do mesmo processo ou como processos diferentes mas no mesmo computador.

Um exemplo desse tipo de arquitetura são aplicações web modernas: a pagina HTML (junto com CSS, JavaScript, etc) é sua camada de apresentação, a lógica fica no servidor e é acessada via alguma API RESTful por exemplo, e a camada lógica é quem acessa o servidor de banco de dados.

1 curtida